From 1f853e81785e401499537c74eaa8f0cfeb69a673 Mon Sep 17 00:00:00 2001 From: Julien Nahum Date: Sat, 9 Dec 2023 15:47:03 +0100 Subject: [PATCH] Work in progress --- client/.gitignore | 24 + client/README.md | 75 + client/app.vue | 83 + client/components/forms/CheckboxInput.vue | 46 + client/components/forms/CodeInput.vue | 65 + client/components/forms/ColorInput.vue | 45 + client/components/forms/DateInput.vue | 190 + client/components/forms/FileInput.vue | 239 + client/components/forms/FlatSelectInput.vue | 96 + client/components/forms/ImageInput.vue | 215 + client/components/forms/PhoneInput.vue | 145 + client/components/forms/RatingInput.vue | 85 + client/components/forms/RichTextAreaInput.vue | 81 + client/components/forms/ScaleInput.vue | 107 + client/components/forms/SelectInput.vue | 131 + client/components/forms/SignatureInput.vue | 62 + client/components/forms/TextAreaInput.vue | 56 + client/components/forms/TextInput.vue | 76 + client/components/forms/ToggleSwitchInput.vue | 46 + .../components/forms/components/InputHelp.vue | 21 + .../forms/components/InputLabel.vue | 25 + .../forms/components/InputWrapper.vue | 54 + .../forms/components/UploadedFile.vue | 63 + .../components/forms/components/VCheckbox.vue | 72 + .../components/forms/components/VSelect.vue | 224 + .../components/forms/components/VSwitch.vue | 22 + client/components/forms/index.js | 55 + client/components/forms/useFormInput.js | 88 + client/components/forms/validation/Alert.js | 21 + .../forms/validation/AlertError.vue | 29 + .../forms/validation/AlertSuccess.vue | 37 + .../components/forms/validation/HasError.vue | 43 + client/components/global/Breadcrumb.vue | 89 + client/components/global/Card.vue | 27 + client/components/global/Collapse.vue | 41 + client/components/global/Dropdown.vue | 54 + client/components/global/EditableDiv.vue | 72 + client/components/global/Loader.vue | 13 + client/components/global/Modal.vue | 180 + client/components/global/Navbar.vue | 216 + client/components/global/Notifications.vue | 139 + client/components/global/NotionPage.vue | 36 + client/components/global/ProTag.vue | 85 + client/components/global/ScrollShadow.vue | 185 + client/components/global/Steps.vue | 44 + client/components/global/VButton.vue | 185 + .../components/global/WorkspaceDropdown.vue | 104 + .../global/transitions/Collapsible.vue | 59 + .../global/transitions/VTransition.vue | 19 + .../open/components/RecordOperations.vue | 63 + .../open/editors/EditorOptionsPanel.vue | 46 + .../open/editors/EditorRightSidebar.vue | 28 + .../open/forms/OpenCompleteForm.vue | 261 + client/components/open/forms/OpenForm.vue | 423 + .../components/open/forms/OpenFormButton.vue | 84 + .../components/open/forms/OpenFormField.vue | 342 + .../components/AdvancedFormUrlSettings.vue | 66 + .../open/forms/components/CopyContent.vue | 67 + .../open/forms/components/FormEditor.vue | 325 + .../forms/components/FormFieldsEditor.vue | 341 + .../open/forms/components/FormStats.vue | 120 + .../open/forms/components/FormSubmissions.vue | 250 + .../open/forms/components/FormUrlPrefill.vue | 88 + .../form-components/AddFormBlock.vue | 275 + .../form-components/FormAboutSubmission.vue | 205 + .../components/form-components/FormAccess.vue | 73 + .../form-components/FormCustomCode.vue | 50 + .../form-components/FormCustomSeo.vue | 80 + .../form-components/FormCustomization.vue | 135 + .../form-components/FormEditorPreview.vue | 114 + .../form-components/FormEditorSidebar.vue | 49 + .../form-components/FormErrorModal.vue | 40 + .../form-components/FormInformation.vue | 169 + .../form-components/FormNotifications.vue | 75 + .../form-components/FormSecurityPrivacy.vue | 48 + .../form-components/FormStructure.vue | 44 + .../components/FormNotificationsDiscord.vue | 90 + .../FormNotificationsMessageActions.vue | 64 + .../components/FormNotificationsOption.vue | 103 + .../components/FormNotificationsSlack.vue | 91 + ...ormNotificationsSubmissionConfirmation.vue | 122 + .../components/FormNotificationsWebhook.vue | 89 + .../form-logic-components/ColumnCondition.vue | 174 + .../form-logic-components/ConditionEditor.vue | 119 + .../FormBlockLogicEditor.vue | 213 + .../GroupControlSlot.vue | 39 + .../templates/FormTemplateModal.vue | 191 + .../components/templates/QuestionsEditor.vue | 77 + .../open/forms/fields/FormFieldEdit.vue | 166 + .../forms/fields/components/BlockOptions.vue | 160 + .../fields/components/ChangeFieldType.vue | 82 + .../forms/fields/components/FieldOptions.vue | 615 + client/components/open/tables/OpenTable.vue | 391 + .../open/tables/components/OpenCheckbox.vue | 33 + .../open/tables/components/OpenDate.vue | 35 + .../open/tables/components/OpenFile.vue | 71 + .../open/tables/components/OpenSelect.vue | 39 + .../open/tables/components/OpenTag.vue | 101 + .../open/tables/components/OpenText.vue | 99 + .../open/tables/components/OpenUrl.vue | 26 + .../open/tables/components/ResizableTh.vue | 67 + client/components/pages/OpenFormFooter.vue | 64 + .../pages/auth/ForgotPasswordModal.vue | 78 + .../pages/auth/components/LoginForm.vue | 115 + .../pages/auth/components/QuickRegister.vue | 76 + .../pages/auth/components/RegisterForm.vue | 154 + client/components/pages/forms/NewFeatures.vue | 107 + .../forms/create/CreateFormBaseModal.vue | 157 + .../components/pages/forms/show/EmbedCode.vue | 55 + .../forms/show/EmbedFormAsPopupModal.vue | 199 + .../components/pages/forms/show/ExtraMenu.vue | 209 + .../pages/forms/show/FormCleanings.vue | 107 + .../pages/forms/show/FormQrCode.vue | 50 + .../pages/forms/show/RegenerateFormLink.vue | 117 + .../components/pages/forms/show/ShareLink.vue | 44 + .../pages/forms/show/UrlFormPrefill.vue | 99 + .../pages/pricing/CheckoutDetailsModal.vue | 101 + .../components/pages/pricing/CustomPlan.vue | 41 + .../pages/pricing/MonthlyYearlySelector.vue | 37 + .../components/pages/pricing/PricingTable.vue | 173 + .../pages/templates/SingleTemplate.vue | 88 + .../pages/templates/TemplateTags.vue | 84 + .../pages/templates/TemplatesList.vue | 190 + client/components/pages/welcome/AiFeature.vue | 107 + client/components/pages/welcome/Features.vue | 130 + .../components/pages/welcome/MoreFeatures.vue | 84 + .../pages/welcome/TemplatesSlider.vue | 86 + .../components/pages/welcome/Testimonials.vue | 46 + client/components/service/Crisp.vue | 32 + client/components/tools/StopImpersonation.vue | 61 + .../vendor/appsumo/AppSumoBilling.vue | 82 + .../vendor/appsumo/AppSumoRegister.vue | 54 + client/composables/useAmplitude.js | 34 + client/composables/useConfig.js | 2 + client/composables/useCrisp.js | 53 + client/composables/useIsIframe.js | 6 + client/config/form-themes.js | 123 + client/layouts/basic.vue | 24 + client/layouts/default.vue | 8 + client/mixins/form_editor/initForm.js | 57 + client/mixins/forms/fieldsLogic.js | 17 + .../forms/form-pending-submission-key.js | 22 + client/mixins/forms/input.js | 64 + client/mixins/forms/saveUpdateAlert.js | 11 + client/mixins/seo-meta.js | 23 + client/nuxt.config.ts | 33 + client/opnform.config.js | 30 + client/package-lock.json | 12071 ++++++++++++++++ client/package.json | 58 + client/pages/ai-form-builder.vue | 548 + client/pages/auth/password/email.vue | 56 + client/pages/auth/password/reset.vue | 74 + client/pages/auth/verification/resend.vue | 58 + client/pages/auth/verification/verify.vue | 59 + .../community/students-academics-ngos.vue | 35 + client/pages/errors/404.vue | 24 + client/pages/forms/create-guest.vue | 153 + client/pages/forms/create.vue | 164 + client/pages/forms/edit.vue | 148 + client/pages/forms/show-public.vue | 221 + client/pages/forms/show/index.vue | 270 + client/pages/forms/show/share.vue | 70 + client/pages/forms/show/stats.vue | 30 + client/pages/forms/show/submissions.vue | 31 + client/pages/home.vue | 224 + client/pages/index.vue | 245 + client/pages/integrations.vue | 43 + client/pages/login.vue | 83 + client/pages/pricing.vue | 284 + client/pages/privacy-policy.vue | 33 + client/pages/register.vue | 84 + client/pages/settings/account.vue | 61 + client/pages/settings/admin.vue | 92 + client/pages/settings/billing.vue | 63 + client/pages/settings/index.vue | 105 + client/pages/settings/password.vue | 53 + client/pages/settings/profile.vue | 66 + client/pages/settings/workspace.vue | 224 + client/pages/subscriptions/error.vue | 32 + client/pages/subscriptions/success.vue | 78 + client/pages/templates.vue | 47 + client/pages/templates/industries-show.vue | 238 + client/pages/templates/my_templates.vue | 44 + client/pages/templates/show.vue | 328 + client/pages/templates/types-show.vue | 238 + client/pages/terms-conditions.vue | 31 + client/plugins/amplitude.js | 26 + client/public/favicon.ico | Bin 0 -> 4286 bytes .../fonts/general-sans/GeneralSans-Bold.eot | Bin 0 -> 63986 bytes .../fonts/general-sans/GeneralSans-Bold.ttf | Bin 0 -> 63832 bytes .../fonts/general-sans/GeneralSans-Bold.woff | Bin 0 -> 27860 bytes .../fonts/general-sans/GeneralSans-Bold.woff2 | Bin 0 -> 21180 bytes .../general-sans/GeneralSans-BoldItalic.eot | Bin 0 -> 66232 bytes .../general-sans/GeneralSans-BoldItalic.ttf | Bin 0 -> 66064 bytes .../general-sans/GeneralSans-BoldItalic.woff | Bin 0 -> 28912 bytes .../general-sans/GeneralSans-BoldItalic.woff2 | Bin 0 -> 22228 bytes .../general-sans/GeneralSans-Extralight.eot | Bin 0 -> 64556 bytes .../general-sans/GeneralSans-Extralight.ttf | Bin 0 -> 64360 bytes .../general-sans/GeneralSans-Extralight.woff | Bin 0 -> 26964 bytes .../general-sans/GeneralSans-Extralight.woff2 | Bin 0 -> 20916 bytes .../GeneralSans-ExtralightItalic.eot | Bin 0 -> 66146 bytes .../GeneralSans-ExtralightItalic.ttf | Bin 0 -> 65936 bytes .../GeneralSans-ExtralightItalic.woff | Bin 0 -> 27564 bytes .../GeneralSans-ExtralightItalic.woff2 | Bin 0 -> 21156 bytes .../fonts/general-sans/GeneralSans-Italic.eot | Bin 0 -> 68072 bytes .../fonts/general-sans/GeneralSans-Italic.ttf | Bin 0 -> 67916 bytes .../general-sans/GeneralSans-Italic.woff | Bin 0 -> 31620 bytes .../general-sans/GeneralSans-Italic.woff2 | Bin 0 -> 23988 bytes .../fonts/general-sans/GeneralSans-Light.eot | Bin 0 -> 66678 bytes .../fonts/general-sans/GeneralSans-Light.ttf | Bin 0 -> 66492 bytes .../fonts/general-sans/GeneralSans-Light.woff | Bin 0 -> 30356 bytes .../general-sans/GeneralSans-Light.woff2 | Bin 0 -> 23252 bytes .../general-sans/GeneralSans-LightItalic.eot | Bin 0 -> 68380 bytes .../general-sans/GeneralSans-LightItalic.ttf | Bin 0 -> 68180 bytes .../general-sans/GeneralSans-LightItalic.woff | Bin 0 -> 31756 bytes .../GeneralSans-LightItalic.woff2 | Bin 0 -> 24036 bytes .../fonts/general-sans/GeneralSans-Medium.eot | Bin 0 -> 66100 bytes .../fonts/general-sans/GeneralSans-Medium.ttf | Bin 0 -> 65912 bytes .../general-sans/GeneralSans-Medium.woff | Bin 0 -> 30252 bytes .../general-sans/GeneralSans-Medium.woff2 | Bin 0 -> 22904 bytes .../general-sans/GeneralSans-MediumItalic.eot | Bin 0 -> 68170 bytes .../general-sans/GeneralSans-MediumItalic.ttf | Bin 0 -> 67968 bytes .../GeneralSans-MediumItalic.woff | Bin 0 -> 31620 bytes .../GeneralSans-MediumItalic.woff2 | Bin 0 -> 23856 bytes .../general-sans/GeneralSans-Regular.eot | Bin 0 -> 66436 bytes .../general-sans/GeneralSans-Regular.ttf | Bin 0 -> 66280 bytes .../general-sans/GeneralSans-Regular.woff | Bin 0 -> 30320 bytes .../general-sans/GeneralSans-Regular.woff2 | Bin 0 -> 23084 bytes .../general-sans/GeneralSans-Semibold.eot | Bin 0 -> 65936 bytes .../general-sans/GeneralSans-Semibold.ttf | Bin 0 -> 65744 bytes .../general-sans/GeneralSans-Semibold.woff | Bin 0 -> 30716 bytes .../general-sans/GeneralSans-Semibold.woff2 | Bin 0 -> 23092 bytes .../GeneralSans-SemiboldItalic.eot | Bin 0 -> 67894 bytes .../GeneralSans-SemiboldItalic.ttf | Bin 0 -> 67688 bytes .../GeneralSans-SemiboldItalic.woff | Bin 0 -> 32116 bytes .../GeneralSans-SemiboldItalic.woff2 | Bin 0 -> 24300 bytes .../general-sans/GeneralSans-Variable.eot | Bin 0 -> 111048 bytes .../general-sans/GeneralSans-Variable.ttf | Bin 0 -> 110820 bytes .../general-sans/GeneralSans-Variable.woff | Bin 0 -> 32544 bytes .../general-sans/GeneralSans-Variable.woff2 | Bin 0 -> 38132 bytes .../GeneralSans-VariableItalic.eot | Bin 0 -> 112960 bytes .../GeneralSans-VariableItalic.ttf | Bin 0 -> 112704 bytes .../GeneralSans-VariableItalic.woff | Bin 0 -> 33984 bytes .../GeneralSans-VariableItalic.woff2 | Bin 0 -> 40720 bytes client/public/img/appsumo/as-Select-dark.png | Bin 0 -> 9252 bytes .../public/img/appsumo/as-taco-white-bg.png | Bin 0 -> 9644 bytes client/public/img/customers/dbs.png | Bin 0 -> 4828 bytes client/public/img/customers/harvard.png | Bin 0 -> 8726 bytes client/public/img/customers/hyundai.png | Bin 0 -> 2914 bytes client/public/img/customers/sciencespo.png | Bin 0 -> 4271 bytes client/public/img/customers/yale.png | Bin 0 -> 3183 bytes client/public/img/icons/clock.png | Bin 0 -> 90861 bytes client/public/img/icons/form_happy.png | Bin 0 -> 113325 bytes client/public/img/icons/happy_flame.png | Bin 0 -> 194671 bytes client/public/img/icons/neutral.png | Bin 0 -> 265189 bytes client/public/img/icons/plant.png | Bin 0 -> 417682 bytes client/public/img/icons/rocket.png | Bin 0 -> 182466 bytes client/public/img/icons/sad.png | Bin 0 -> 239928 bytes client/public/img/icons/sparks.png | Bin 0 -> 159670 bytes client/public/img/icons/welcome.png | Bin 0 -> 299890 bytes client/public/img/icons/wonder.png | Bin 0 -> 320038 bytes client/public/img/logo.png | Bin 0 -> 7661 bytes client/public/img/logo.svg | 1 + .../ai-feature-illustration.svg | 85 + .../ai_form_builder/background-pattern-ai.svg | 285 + .../ai_form_builder/background-pattern.svg | 78 + .../ai_form_builder/examples-placeholder.png | Bin 0 -> 3211 bytes .../img/pages/ai_form_builder/hero-mockup.png | Bin 0 -> 198861 bytes .../pages/ai_form_builder/icon-browser.svg | 21 + .../img/pages/ai_form_builder/icon-create.svg | 7 + .../ai_form_builder/icon-customization.svg | 12 + .../ai_form_builder/icon-email-input.svg | 12 + .../img/pages/ai_form_builder/icon-fast.svg | 18 + .../ai_form_builder/icon-radio-buttons.svg | 13 + .../img/pages/ai_form_builder/icon-share.svg | 17 + .../pages/ai_form_builder/icon-textarea.svg | 12 + .../img/pages/ai_form_builder/step-1.svg | 262 + .../img/pages/ai_form_builder/step-2.svg | 265 + .../img/pages/ai_form_builder/step-3.svg | 281 + .../pages/create_form/share_notion_db.webm | Bin 0 -> 886095 bytes .../public/img/pages/forms/blurred_graph.png | Bin 0 -> 233451 bytes .../img/pages/forms/search_notfound.png | Bin 0 -> 38836 bytes client/public/img/pages/onboarding/guide.png | Bin 0 -> 118215 bytes .../onboarding/login_with_notion_guide.png | Bin 0 -> 263128 bytes .../public/img/pages/welcome/homebackdrop.png | Bin 0 -> 80373 bytes .../img/pages/welcome/product-cover.jpg | Bin 0 -> 271285 bytes client/public/img/pages/welcome/step-1.jpg | Bin 0 -> 145120 bytes client/public/img/pages/welcome/step-2.jpg | Bin 0 -> 147710 bytes client/public/img/pages/welcome/step-3.jpg | Bin 0 -> 152237 bytes .../img/pages/welcome/tutorial_screenshot.jpg | Bin 0 -> 75304 bytes client/public/img/social-preview.jpg | Bin 0 -> 37277 bytes .../img/tutorial/contact-form-template.png | Bin 0 -> 53909 bytes client/public/img/tutorial/example.gif | Bin 0 -> 838310 bytes .../img/tutorial/integrate_to_notion.gif | Bin 0 -> 1123423 bytes client/public/img/tutorial/share_database.gif | Bin 0 -> 963036 bytes client/public/video/opnform-ai.mp4 | Bin 0 -> 3590204 bytes client/public/widgets/embed-min.js | 20 + client/public/widgets/embed.js | 139 + client/scss/app.scss | 58 + client/scss/fonts.scss | 202 + client/server/tsconfig.json | 3 + client/stores/app.js | 71 + client/stores/auth.js | 70 + client/stores/errors.js | 15 + client/stores/forms.js | 82 + client/stores/records.js | 49 + client/stores/templates.js | 120 + client/stores/working_form.js | 50 + client/stores/workspaces.js | 95 + client/tailwind.config.js | 92 + client/tsconfig.json | 4 + package.json | 2 +- .../js/components/pages/welcome/Features.vue | 8 +- .../plugins/config/vue-tailwind/datePicker.js | 19 - resources/sass/app.scss | 2 +- 315 files changed, 34058 insertions(+), 25 deletions(-) create mode 100644 client/.gitignore create mode 100644 client/README.md create mode 100644 client/app.vue create mode 100644 client/components/forms/CheckboxInput.vue create mode 100644 client/components/forms/CodeInput.vue create mode 100644 client/components/forms/ColorInput.vue create mode 100644 client/components/forms/DateInput.vue create mode 100644 client/components/forms/FileInput.vue create mode 100644 client/components/forms/FlatSelectInput.vue create mode 100644 client/components/forms/ImageInput.vue create mode 100644 client/components/forms/PhoneInput.vue create mode 100644 client/components/forms/RatingInput.vue create mode 100644 client/components/forms/RichTextAreaInput.vue create mode 100644 client/components/forms/ScaleInput.vue create mode 100644 client/components/forms/SelectInput.vue create mode 100644 client/components/forms/SignatureInput.vue create mode 100644 client/components/forms/TextAreaInput.vue create mode 100644 client/components/forms/TextInput.vue create mode 100644 client/components/forms/ToggleSwitchInput.vue create mode 100644 client/components/forms/components/InputHelp.vue create mode 100644 client/components/forms/components/InputLabel.vue create mode 100644 client/components/forms/components/InputWrapper.vue create mode 100644 client/components/forms/components/UploadedFile.vue create mode 100644 client/components/forms/components/VCheckbox.vue create mode 100644 client/components/forms/components/VSelect.vue create mode 100644 client/components/forms/components/VSwitch.vue create mode 100644 client/components/forms/index.js create mode 100644 client/components/forms/useFormInput.js create mode 100644 client/components/forms/validation/Alert.js create mode 100644 client/components/forms/validation/AlertError.vue create mode 100644 client/components/forms/validation/AlertSuccess.vue create mode 100644 client/components/forms/validation/HasError.vue create mode 100644 client/components/global/Breadcrumb.vue create mode 100644 client/components/global/Card.vue create mode 100644 client/components/global/Collapse.vue create mode 100644 client/components/global/Dropdown.vue create mode 100644 client/components/global/EditableDiv.vue create mode 100644 client/components/global/Loader.vue create mode 100644 client/components/global/Modal.vue create mode 100644 client/components/global/Navbar.vue create mode 100644 client/components/global/Notifications.vue create mode 100644 client/components/global/NotionPage.vue create mode 100644 client/components/global/ProTag.vue create mode 100644 client/components/global/ScrollShadow.vue create mode 100644 client/components/global/Steps.vue create mode 100644 client/components/global/VButton.vue create mode 100644 client/components/global/WorkspaceDropdown.vue create mode 100644 client/components/global/transitions/Collapsible.vue create mode 100644 client/components/global/transitions/VTransition.vue create mode 100644 client/components/open/components/RecordOperations.vue create mode 100644 client/components/open/editors/EditorOptionsPanel.vue create mode 100644 client/components/open/editors/EditorRightSidebar.vue create mode 100644 client/components/open/forms/OpenCompleteForm.vue create mode 100644 client/components/open/forms/OpenForm.vue create mode 100644 client/components/open/forms/OpenFormButton.vue create mode 100644 client/components/open/forms/OpenFormField.vue create mode 100644 client/components/open/forms/components/AdvancedFormUrlSettings.vue create mode 100644 client/components/open/forms/components/CopyContent.vue create mode 100644 client/components/open/forms/components/FormEditor.vue create mode 100644 client/components/open/forms/components/FormFieldsEditor.vue create mode 100644 client/components/open/forms/components/FormStats.vue create mode 100644 client/components/open/forms/components/FormSubmissions.vue create mode 100644 client/components/open/forms/components/FormUrlPrefill.vue create mode 100644 client/components/open/forms/components/form-components/AddFormBlock.vue create mode 100644 client/components/open/forms/components/form-components/FormAboutSubmission.vue create mode 100644 client/components/open/forms/components/form-components/FormAccess.vue create mode 100644 client/components/open/forms/components/form-components/FormCustomCode.vue create mode 100644 client/components/open/forms/components/form-components/FormCustomSeo.vue create mode 100644 client/components/open/forms/components/form-components/FormCustomization.vue create mode 100644 client/components/open/forms/components/form-components/FormEditorPreview.vue create mode 100644 client/components/open/forms/components/form-components/FormEditorSidebar.vue create mode 100644 client/components/open/forms/components/form-components/FormErrorModal.vue create mode 100644 client/components/open/forms/components/form-components/FormInformation.vue create mode 100644 client/components/open/forms/components/form-components/FormNotifications.vue create mode 100644 client/components/open/forms/components/form-components/FormSecurityPrivacy.vue create mode 100644 client/components/open/forms/components/form-components/FormStructure.vue create mode 100644 client/components/open/forms/components/form-components/components/FormNotificationsDiscord.vue create mode 100644 client/components/open/forms/components/form-components/components/FormNotificationsMessageActions.vue create mode 100644 client/components/open/forms/components/form-components/components/FormNotificationsOption.vue create mode 100644 client/components/open/forms/components/form-components/components/FormNotificationsSlack.vue create mode 100644 client/components/open/forms/components/form-components/components/FormNotificationsSubmissionConfirmation.vue create mode 100644 client/components/open/forms/components/form-components/components/FormNotificationsWebhook.vue create mode 100644 client/components/open/forms/components/form-logic-components/ColumnCondition.vue create mode 100644 client/components/open/forms/components/form-logic-components/ConditionEditor.vue create mode 100644 client/components/open/forms/components/form-logic-components/FormBlockLogicEditor.vue create mode 100644 client/components/open/forms/components/form-logic-components/GroupControlSlot.vue create mode 100644 client/components/open/forms/components/templates/FormTemplateModal.vue create mode 100644 client/components/open/forms/components/templates/QuestionsEditor.vue create mode 100644 client/components/open/forms/fields/FormFieldEdit.vue create mode 100644 client/components/open/forms/fields/components/BlockOptions.vue create mode 100644 client/components/open/forms/fields/components/ChangeFieldType.vue create mode 100644 client/components/open/forms/fields/components/FieldOptions.vue create mode 100644 client/components/open/tables/OpenTable.vue create mode 100644 client/components/open/tables/components/OpenCheckbox.vue create mode 100644 client/components/open/tables/components/OpenDate.vue create mode 100644 client/components/open/tables/components/OpenFile.vue create mode 100644 client/components/open/tables/components/OpenSelect.vue create mode 100644 client/components/open/tables/components/OpenTag.vue create mode 100644 client/components/open/tables/components/OpenText.vue create mode 100644 client/components/open/tables/components/OpenUrl.vue create mode 100644 client/components/open/tables/components/ResizableTh.vue create mode 100644 client/components/pages/OpenFormFooter.vue create mode 100644 client/components/pages/auth/ForgotPasswordModal.vue create mode 100644 client/components/pages/auth/components/LoginForm.vue create mode 100644 client/components/pages/auth/components/QuickRegister.vue create mode 100644 client/components/pages/auth/components/RegisterForm.vue create mode 100644 client/components/pages/forms/NewFeatures.vue create mode 100644 client/components/pages/forms/create/CreateFormBaseModal.vue create mode 100644 client/components/pages/forms/show/EmbedCode.vue create mode 100644 client/components/pages/forms/show/EmbedFormAsPopupModal.vue create mode 100644 client/components/pages/forms/show/ExtraMenu.vue create mode 100644 client/components/pages/forms/show/FormCleanings.vue create mode 100644 client/components/pages/forms/show/FormQrCode.vue create mode 100644 client/components/pages/forms/show/RegenerateFormLink.vue create mode 100644 client/components/pages/forms/show/ShareLink.vue create mode 100644 client/components/pages/forms/show/UrlFormPrefill.vue create mode 100644 client/components/pages/pricing/CheckoutDetailsModal.vue create mode 100644 client/components/pages/pricing/CustomPlan.vue create mode 100644 client/components/pages/pricing/MonthlyYearlySelector.vue create mode 100644 client/components/pages/pricing/PricingTable.vue create mode 100644 client/components/pages/templates/SingleTemplate.vue create mode 100644 client/components/pages/templates/TemplateTags.vue create mode 100644 client/components/pages/templates/TemplatesList.vue create mode 100644 client/components/pages/welcome/AiFeature.vue create mode 100644 client/components/pages/welcome/Features.vue create mode 100644 client/components/pages/welcome/MoreFeatures.vue create mode 100644 client/components/pages/welcome/TemplatesSlider.vue create mode 100644 client/components/pages/welcome/Testimonials.vue create mode 100644 client/components/service/Crisp.vue create mode 100644 client/components/tools/StopImpersonation.vue create mode 100644 client/components/vendor/appsumo/AppSumoBilling.vue create mode 100644 client/components/vendor/appsumo/AppSumoRegister.vue create mode 100644 client/composables/useAmplitude.js create mode 100644 client/composables/useConfig.js create mode 100644 client/composables/useCrisp.js create mode 100644 client/composables/useIsIframe.js create mode 100644 client/config/form-themes.js create mode 100644 client/layouts/basic.vue create mode 100644 client/layouts/default.vue create mode 100644 client/mixins/form_editor/initForm.js create mode 100644 client/mixins/forms/fieldsLogic.js create mode 100644 client/mixins/forms/form-pending-submission-key.js create mode 100644 client/mixins/forms/input.js create mode 100644 client/mixins/forms/saveUpdateAlert.js create mode 100644 client/mixins/seo-meta.js create mode 100644 client/nuxt.config.ts create mode 100644 client/opnform.config.js create mode 100644 client/package-lock.json create mode 100644 client/package.json create mode 100644 client/pages/ai-form-builder.vue create mode 100644 client/pages/auth/password/email.vue create mode 100644 client/pages/auth/password/reset.vue create mode 100644 client/pages/auth/verification/resend.vue create mode 100644 client/pages/auth/verification/verify.vue create mode 100644 client/pages/community/students-academics-ngos.vue create mode 100644 client/pages/errors/404.vue create mode 100644 client/pages/forms/create-guest.vue create mode 100644 client/pages/forms/create.vue create mode 100644 client/pages/forms/edit.vue create mode 100644 client/pages/forms/show-public.vue create mode 100644 client/pages/forms/show/index.vue create mode 100644 client/pages/forms/show/share.vue create mode 100644 client/pages/forms/show/stats.vue create mode 100644 client/pages/forms/show/submissions.vue create mode 100644 client/pages/home.vue create mode 100644 client/pages/index.vue create mode 100644 client/pages/integrations.vue create mode 100644 client/pages/login.vue create mode 100644 client/pages/pricing.vue create mode 100644 client/pages/privacy-policy.vue create mode 100644 client/pages/register.vue create mode 100644 client/pages/settings/account.vue create mode 100644 client/pages/settings/admin.vue create mode 100644 client/pages/settings/billing.vue create mode 100644 client/pages/settings/index.vue create mode 100644 client/pages/settings/password.vue create mode 100644 client/pages/settings/profile.vue create mode 100644 client/pages/settings/workspace.vue create mode 100644 client/pages/subscriptions/error.vue create mode 100644 client/pages/subscriptions/success.vue create mode 100644 client/pages/templates.vue create mode 100644 client/pages/templates/industries-show.vue create mode 100644 client/pages/templates/my_templates.vue create mode 100644 client/pages/templates/show.vue create mode 100644 client/pages/templates/types-show.vue create mode 100644 client/pages/terms-conditions.vue create mode 100644 client/plugins/amplitude.js create mode 100644 client/public/favicon.ico create mode 100644 client/public/fonts/general-sans/GeneralSans-Bold.eot create mode 100644 client/public/fonts/general-sans/GeneralSans-Bold.ttf create mode 100644 client/public/fonts/general-sans/GeneralSans-Bold.woff create mode 100644 client/public/fonts/general-sans/GeneralSans-Bold.woff2 create mode 100644 client/public/fonts/general-sans/GeneralSans-BoldItalic.eot create mode 100644 client/public/fonts/general-sans/GeneralSans-BoldItalic.ttf create mode 100644 client/public/fonts/general-sans/GeneralSans-BoldItalic.woff create mode 100644 client/public/fonts/general-sans/GeneralSans-BoldItalic.woff2 create mode 100644 client/public/fonts/general-sans/GeneralSans-Extralight.eot create mode 100644 client/public/fonts/general-sans/GeneralSans-Extralight.ttf create mode 100644 client/public/fonts/general-sans/GeneralSans-Extralight.woff create mode 100644 client/public/fonts/general-sans/GeneralSans-Extralight.woff2 create mode 100644 client/public/fonts/general-sans/GeneralSans-ExtralightItalic.eot create mode 100644 client/public/fonts/general-sans/GeneralSans-ExtralightItalic.ttf create mode 100644 client/public/fonts/general-sans/GeneralSans-ExtralightItalic.woff create mode 100644 client/public/fonts/general-sans/GeneralSans-ExtralightItalic.woff2 create mode 100644 client/public/fonts/general-sans/GeneralSans-Italic.eot create mode 100644 client/public/fonts/general-sans/GeneralSans-Italic.ttf create mode 100644 client/public/fonts/general-sans/GeneralSans-Italic.woff create mode 100644 client/public/fonts/general-sans/GeneralSans-Italic.woff2 create mode 100644 client/public/fonts/general-sans/GeneralSans-Light.eot create mode 100644 client/public/fonts/general-sans/GeneralSans-Light.ttf create mode 100644 client/public/fonts/general-sans/GeneralSans-Light.woff create mode 100644 client/public/fonts/general-sans/GeneralSans-Light.woff2 create mode 100644 client/public/fonts/general-sans/GeneralSans-LightItalic.eot create mode 100644 client/public/fonts/general-sans/GeneralSans-LightItalic.ttf create mode 100644 client/public/fonts/general-sans/GeneralSans-LightItalic.woff create mode 100644 client/public/fonts/general-sans/GeneralSans-LightItalic.woff2 create mode 100644 client/public/fonts/general-sans/GeneralSans-Medium.eot create mode 100644 client/public/fonts/general-sans/GeneralSans-Medium.ttf create mode 100644 client/public/fonts/general-sans/GeneralSans-Medium.woff create mode 100644 client/public/fonts/general-sans/GeneralSans-Medium.woff2 create mode 100644 client/public/fonts/general-sans/GeneralSans-MediumItalic.eot create mode 100644 client/public/fonts/general-sans/GeneralSans-MediumItalic.ttf create mode 100644 client/public/fonts/general-sans/GeneralSans-MediumItalic.woff create mode 100644 client/public/fonts/general-sans/GeneralSans-MediumItalic.woff2 create mode 100644 client/public/fonts/general-sans/GeneralSans-Regular.eot create mode 100644 client/public/fonts/general-sans/GeneralSans-Regular.ttf create mode 100644 client/public/fonts/general-sans/GeneralSans-Regular.woff create mode 100644 client/public/fonts/general-sans/GeneralSans-Regular.woff2 create mode 100644 client/public/fonts/general-sans/GeneralSans-Semibold.eot create mode 100644 client/public/fonts/general-sans/GeneralSans-Semibold.ttf create mode 100644 client/public/fonts/general-sans/GeneralSans-Semibold.woff create mode 100644 client/public/fonts/general-sans/GeneralSans-Semibold.woff2 create mode 100644 client/public/fonts/general-sans/GeneralSans-SemiboldItalic.eot create mode 100644 client/public/fonts/general-sans/GeneralSans-SemiboldItalic.ttf create mode 100644 client/public/fonts/general-sans/GeneralSans-SemiboldItalic.woff create mode 100644 client/public/fonts/general-sans/GeneralSans-SemiboldItalic.woff2 create mode 100644 client/public/fonts/general-sans/GeneralSans-Variable.eot create mode 100644 client/public/fonts/general-sans/GeneralSans-Variable.ttf create mode 100644 client/public/fonts/general-sans/GeneralSans-Variable.woff create mode 100644 client/public/fonts/general-sans/GeneralSans-Variable.woff2 create mode 100644 client/public/fonts/general-sans/GeneralSans-VariableItalic.eot create mode 100644 client/public/fonts/general-sans/GeneralSans-VariableItalic.ttf create mode 100644 client/public/fonts/general-sans/GeneralSans-VariableItalic.woff create mode 100644 client/public/fonts/general-sans/GeneralSans-VariableItalic.woff2 create mode 100644 client/public/img/appsumo/as-Select-dark.png create mode 100644 client/public/img/appsumo/as-taco-white-bg.png create mode 100644 client/public/img/customers/dbs.png create mode 100644 client/public/img/customers/harvard.png create mode 100644 client/public/img/customers/hyundai.png create mode 100644 client/public/img/customers/sciencespo.png create mode 100644 client/public/img/customers/yale.png create mode 100644 client/public/img/icons/clock.png create mode 100644 client/public/img/icons/form_happy.png create mode 100644 client/public/img/icons/happy_flame.png create mode 100644 client/public/img/icons/neutral.png create mode 100644 client/public/img/icons/plant.png create mode 100644 client/public/img/icons/rocket.png create mode 100644 client/public/img/icons/sad.png create mode 100644 client/public/img/icons/sparks.png create mode 100644 client/public/img/icons/welcome.png create mode 100644 client/public/img/icons/wonder.png create mode 100644 client/public/img/logo.png create mode 100644 client/public/img/logo.svg create mode 100644 client/public/img/pages/ai_form_builder/ai-feature-illustration.svg create mode 100644 client/public/img/pages/ai_form_builder/background-pattern-ai.svg create mode 100644 client/public/img/pages/ai_form_builder/background-pattern.svg create mode 100644 client/public/img/pages/ai_form_builder/examples-placeholder.png create mode 100644 client/public/img/pages/ai_form_builder/hero-mockup.png create mode 100644 client/public/img/pages/ai_form_builder/icon-browser.svg create mode 100644 client/public/img/pages/ai_form_builder/icon-create.svg create mode 100644 client/public/img/pages/ai_form_builder/icon-customization.svg create mode 100644 client/public/img/pages/ai_form_builder/icon-email-input.svg create mode 100644 client/public/img/pages/ai_form_builder/icon-fast.svg create mode 100644 client/public/img/pages/ai_form_builder/icon-radio-buttons.svg create mode 100644 client/public/img/pages/ai_form_builder/icon-share.svg create mode 100644 client/public/img/pages/ai_form_builder/icon-textarea.svg create mode 100644 client/public/img/pages/ai_form_builder/step-1.svg create mode 100644 client/public/img/pages/ai_form_builder/step-2.svg create mode 100644 client/public/img/pages/ai_form_builder/step-3.svg create mode 100644 client/public/img/pages/create_form/share_notion_db.webm create mode 100644 client/public/img/pages/forms/blurred_graph.png create mode 100644 client/public/img/pages/forms/search_notfound.png create mode 100644 client/public/img/pages/onboarding/guide.png create mode 100644 client/public/img/pages/onboarding/login_with_notion_guide.png create mode 100644 client/public/img/pages/welcome/homebackdrop.png create mode 100644 client/public/img/pages/welcome/product-cover.jpg create mode 100644 client/public/img/pages/welcome/step-1.jpg create mode 100644 client/public/img/pages/welcome/step-2.jpg create mode 100644 client/public/img/pages/welcome/step-3.jpg create mode 100644 client/public/img/pages/welcome/tutorial_screenshot.jpg create mode 100644 client/public/img/social-preview.jpg create mode 100644 client/public/img/tutorial/contact-form-template.png create mode 100644 client/public/img/tutorial/example.gif create mode 100644 client/public/img/tutorial/integrate_to_notion.gif create mode 100644 client/public/img/tutorial/share_database.gif create mode 100644 client/public/video/opnform-ai.mp4 create mode 100644 client/public/widgets/embed-min.js create mode 100644 client/public/widgets/embed.js create mode 100644 client/scss/app.scss create mode 100644 client/scss/fonts.scss create mode 100644 client/server/tsconfig.json create mode 100644 client/stores/app.js create mode 100644 client/stores/auth.js create mode 100644 client/stores/errors.js create mode 100644 client/stores/forms.js create mode 100644 client/stores/records.js create mode 100644 client/stores/templates.js create mode 100644 client/stores/working_form.js create mode 100644 client/stores/workspaces.js create mode 100644 client/tailwind.config.js create mode 100644 client/tsconfig.json delete mode 100644 resources/js/plugins/config/vue-tailwind/datePicker.js diff --git a/client/.gitignore b/client/.gitignore new file mode 100644 index 0000000..4a7f73a --- /dev/null +++ b/client/.gitignore @@ -0,0 +1,24 @@ +# Nuxt dev/build outputs +.output +.data +.nuxt +.nitro +.cache +dist + +# Node dependencies +node_modules + +# Logs +logs +*.log + +# Misc +.DS_Store +.fleet +.idea + +# Local env files +.env +.env.* +!.env.example diff --git a/client/README.md b/client/README.md new file mode 100644 index 0000000..f5db2a2 --- /dev/null +++ b/client/README.md @@ -0,0 +1,75 @@ +# Nuxt 3 Minimal Starter + +Look at the [Nuxt 3 documentation](https://nuxt.com/docs/getting-started/introduction) to learn more. + +## Setup + +Make sure to install the dependencies: + +```bash +# npm +npm install + +# pnpm +pnpm install + +# yarn +yarn install + +# bun +bun install +``` + +## Development Server + +Start the development server on `http://localhost:3000`: + +```bash +# npm +npm run dev + +# pnpm +pnpm run dev + +# yarn +yarn dev + +# bun +bun run dev +``` + +## Production + +Build the application for production: + +```bash +# npm +npm run build + +# pnpm +pnpm run build + +# yarn +yarn build + +# bun +bun run build +``` + +Locally preview production build: + +```bash +# npm +npm run preview + +# pnpm +pnpm run preview + +# yarn +yarn preview + +# bun +bun run preview +``` + +Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information. diff --git a/client/app.vue b/client/app.vue new file mode 100644 index 0000000..4409287 --- /dev/null +++ b/client/app.vue @@ -0,0 +1,83 @@ + + + diff --git a/client/components/forms/CheckboxInput.vue b/client/components/forms/CheckboxInput.vue new file mode 100644 index 0000000..fa37fd4 --- /dev/null +++ b/client/components/forms/CheckboxInput.vue @@ -0,0 +1,46 @@ + + + diff --git a/client/components/forms/CodeInput.vue b/client/components/forms/CodeInput.vue new file mode 100644 index 0000000..f373f18 --- /dev/null +++ b/client/components/forms/CodeInput.vue @@ -0,0 +1,65 @@ + + + diff --git a/client/components/forms/ColorInput.vue b/client/components/forms/ColorInput.vue new file mode 100644 index 0000000..3bfa0e8 --- /dev/null +++ b/client/components/forms/ColorInput.vue @@ -0,0 +1,45 @@ + + + diff --git a/client/components/forms/DateInput.vue b/client/components/forms/DateInput.vue new file mode 100644 index 0000000..35b953d --- /dev/null +++ b/client/components/forms/DateInput.vue @@ -0,0 +1,190 @@ + + + diff --git a/client/components/forms/FileInput.vue b/client/components/forms/FileInput.vue new file mode 100644 index 0000000..984ab91 --- /dev/null +++ b/client/components/forms/FileInput.vue @@ -0,0 +1,239 @@ + + + diff --git a/client/components/forms/FlatSelectInput.vue b/client/components/forms/FlatSelectInput.vue new file mode 100644 index 0000000..c7e7362 --- /dev/null +++ b/client/components/forms/FlatSelectInput.vue @@ -0,0 +1,96 @@ + + + diff --git a/client/components/forms/ImageInput.vue b/client/components/forms/ImageInput.vue new file mode 100644 index 0000000..ff92f73 --- /dev/null +++ b/client/components/forms/ImageInput.vue @@ -0,0 +1,215 @@ + + + diff --git a/client/components/forms/PhoneInput.vue b/client/components/forms/PhoneInput.vue new file mode 100644 index 0000000..ae530da --- /dev/null +++ b/client/components/forms/PhoneInput.vue @@ -0,0 +1,145 @@ + + + diff --git a/client/components/forms/RatingInput.vue b/client/components/forms/RatingInput.vue new file mode 100644 index 0000000..d0b091e --- /dev/null +++ b/client/components/forms/RatingInput.vue @@ -0,0 +1,85 @@ + + + diff --git a/client/components/forms/RichTextAreaInput.vue b/client/components/forms/RichTextAreaInput.vue new file mode 100644 index 0000000..b4efc7e --- /dev/null +++ b/client/components/forms/RichTextAreaInput.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/client/components/forms/ScaleInput.vue b/client/components/forms/ScaleInput.vue new file mode 100644 index 0000000..5eef878 --- /dev/null +++ b/client/components/forms/ScaleInput.vue @@ -0,0 +1,107 @@ + + + diff --git a/client/components/forms/SelectInput.vue b/client/components/forms/SelectInput.vue new file mode 100644 index 0000000..521f83e --- /dev/null +++ b/client/components/forms/SelectInput.vue @@ -0,0 +1,131 @@ + + + diff --git a/client/components/forms/SignatureInput.vue b/client/components/forms/SignatureInput.vue new file mode 100644 index 0000000..3859127 --- /dev/null +++ b/client/components/forms/SignatureInput.vue @@ -0,0 +1,62 @@ + + + diff --git a/client/components/forms/TextAreaInput.vue b/client/components/forms/TextAreaInput.vue new file mode 100644 index 0000000..6929602 --- /dev/null +++ b/client/components/forms/TextAreaInput.vue @@ -0,0 +1,56 @@ +