From 4840b31c96b18b772d185c498a53b5a25a0a20c0 Mon Sep 17 00:00:00 2001 From: fbenoist68 Date: Sat, 2 Dec 2023 12:49:31 +0100 Subject: [PATCH] first commit --- .editorconfig | 38 + .env.example | 1 + .eslintrc.cjs | 245 + .gitignore | 43 + .npmrc | 2 + .nvmrc | 1 + .stylelintrc.json | 45 + .vscode/anchor-comments.code-snippets | 23 + .vscode/extensions.json | 15 + .vscode/settings.json | 113 + .vscode/vue-ts.code-snippets | 18 + .vscode/vue.code-snippets | 63 + .vscode/vuetify.code-snippets | 52 + README.md | 35 + auto-imports.d.ts | 1049 +++ components.d.ts | 64 + env.d.ts | 12 + eslint-internal-rules/.eslintrc.js | 14 + .../valid-appcardcode-code-prop.js | 53 + .../valid-appcardcode-demo-sfc.js | 82 + index.html | 49 + package.json | 136 + pnpm-lock.yaml | 8251 +++++++++++++++++ public/favicon.ico | Bin 0 -> 4286 bytes public/images/avatars/avatar-1.png | Bin 0 -> 13543 bytes public/images/avatars/avatar-2.png | Bin 0 -> 15715 bytes public/loader.css | 79 + shims.d.ts | 15 + src/@core/components/AppBarSearch.vue | 266 + .../components/AppDrawerHeaderSection.vue | 34 + src/@core/components/AppStepper.vue | 333 + src/@core/components/BuyNow.vue | 42 + .../CardStatisticsVerticalSimple.vue | 32 + src/@core/components/CustomizerSection.vue | 27 + src/@core/components/DialogCloseBtn.vue | 23 + src/@core/components/I18n.vue | 48 + src/@core/components/MoreBtn.vue | 27 + src/@core/components/Notifications.vue | 230 + src/@core/components/ScrollToTop.vue | 40 + src/@core/components/Shortcuts.vue | 85 + src/@core/components/TheCustomizer.vue | 563 ++ src/@core/components/ThemeSwitcher.vue | 57 + src/@core/components/TiptapEditor.vue | 139 + .../app-form-elements/AppAutocomplete.vue | 57 + .../app-form-elements/AppCombobox.vue | 57 + .../app-form-elements/AppDateTimePicker.vue | 512 + .../app-form-elements/AppSelect.vue | 49 + .../app-form-elements/AppTextField.vue | 48 + .../app-form-elements/AppTextarea.vue | 50 + .../app-form-elements/CustomCheckboxes.vue | 77 + .../CustomCheckboxesWithIcon.vue | 91 + .../CustomCheckboxesWithImage.vue | 94 + .../app-form-elements/CustomRadios.vue | 78 + .../CustomRadiosWithIcon.vue | 90 + .../CustomRadiosWithImage.vue | 91 + src/@core/components/cards/AppCardActions.vue | 167 + src/@core/components/cards/AppCardCode.vue | 125 + .../cards/CardStatisticsHorizontal.vue | 32 + .../cards/CardStatisticsVertical.vue | 41 + src/@core/composable/createUrl.ts | 20 + src/@core/composable/useCookie.ts | 43 + .../composable/useGenerateImageVariant.ts | 25 + src/@core/composable/useResponsiveSidebar.ts | 29 + src/@core/composable/useSkins.ts | 42 + src/@core/enums.ts | 21 + src/@core/index.ts | 42 + src/@core/initCore.ts | 93 + src/@core/libs/apex-chart/apexCharConfig.ts | 702 ++ src/@core/libs/chartjs/chartjsConfig.ts | 372 + src/@core/libs/chartjs/components/BarChart.ts | 58 + .../libs/chartjs/components/BubbleChart.ts | 58 + .../libs/chartjs/components/DoughnutChart.ts | 58 + .../libs/chartjs/components/LineChart.ts | 58 + .../libs/chartjs/components/PolarAreaChart.ts | 58 + .../libs/chartjs/components/RadarChart.ts | 58 + .../libs/chartjs/components/ScatterChart.ts | 58 + src/@core/scss/base/_components.scss | 172 + src/@core/scss/base/_dark.scss | 16 + .../_default-layout-w-horizontal-nav.scss | 45 + .../base/_default-layout-w-vertical-nav.scss | 103 + src/@core/scss/base/_default-layout.scss | 16 + src/@core/scss/base/_horizontal-nav.scss | 194 + src/@core/scss/base/_index.scss | 48 + src/@core/scss/base/_layouts.scss | 63 + src/@core/scss/base/_misc.scss | 20 + src/@core/scss/base/_mixins.scss | 63 + src/@core/scss/base/_route-transitions.scss | 70 + src/@core/scss/base/_utilities.scss | 175 + src/@core/scss/base/_utils.scss | 90 + src/@core/scss/base/_variables.scss | 198 + src/@core/scss/base/_vertical-nav.scss | 251 + .../scss/base/libs/_perfect-scrollbar.scss | 35 + src/@core/scss/base/libs/vuetify/_index.scss | 1 + .../scss/base/libs/vuetify/_overrides.scss | 295 + .../scss/base/libs/vuetify/_variables.scss | 57 + .../_default-layout-horizontal-nav.scss | 27 + .../_default-layout-vertical-nav.scss | 46 + .../base/placeholders/_default-layout.scss | 3 + .../base/placeholders/_horizontal-nav.scss | 99 + src/@core/scss/base/placeholders/_index.scss | 7 + src/@core/scss/base/placeholders/_misc.scss | 7 + src/@core/scss/base/placeholders/_nav.scss | 33 + .../scss/base/placeholders/_vertical-nav.scss | 81 + src/@core/scss/base/skins/_bordered.scss | 70 + src/@core/scss/base/skins/_index.scss | 1 + src/@core/scss/template/_components.scss | 1074 +++ .../_default-layout-w-horizontal-nav.scss | 9 + .../_default-layout-w-vertical-nav.scss | 20 + src/@core/scss/template/_horizontal-nav.scss | 35 + src/@core/scss/template/_utilities.scss | 26 + src/@core/scss/template/_variables.scss | 62 + src/@core/scss/template/_vertical-nav.scss | 43 + src/@core/scss/template/index.scss | 17 + src/@core/scss/template/libs/apex-chart.scss | 99 + .../scss/template/libs/full-calendar.scss | 310 + src/@core/scss/template/libs/shepherd.scss | 86 + src/@core/scss/template/libs/swiper.scss | 5 + .../template/libs/vuetify/_variables.scss | 280 + .../scss/template/libs/vuetify/index.scss | 2 + .../scss/template/libs/vuetify/overrides.scss | 6 + src/@core/scss/template/pages/misc.scss | 20 + src/@core/scss/template/pages/page-auth.scss | 44 + .../_default-layout-horizontal-nav.scss | 5 + .../_default-layout-vertical-nav.scss | 8 + .../placeholders/_horizontal-nav.scss | 33 + .../scss/template/placeholders/_index.scss | 5 + .../scss/template/placeholders/_nav.scss | 16 + .../template/placeholders/_vertical-nav.scss | 18 + src/@core/scss/template/skins/_bordered.scss | 66 + src/@core/scss/template/skins/_index.scss | 1 + src/@core/stores/config.ts | 80 + src/@core/types.ts | 49 + src/@core/utils/formatters.ts | 48 + src/@core/utils/helpers.ts | 32 + src/@core/utils/plugins.ts | 53 + src/@core/utils/validators.ts | 105 + src/@core/utils/vuetify.ts | 13 + src/@layouts/components.ts | 11 + src/@layouts/components/HorizontalNav.vue | 35 + .../components/HorizontalNavGroup.vue | 111 + .../components/HorizontalNavLayout.vue | 150 + src/@layouts/components/HorizontalNavLink.vue | 56 + .../components/HorizontalNavPopper.vue | 175 + src/@layouts/components/TransitionExpand.vue | 92 + src/@layouts/components/VNodeRenderer.tsx | 17 + src/@layouts/components/VerticalNav.vue | 235 + src/@layouts/components/VerticalNavGroup.vue | 267 + src/@layouts/components/VerticalNavLayout.vue | 228 + src/@layouts/components/VerticalNavLink.vue | 68 + .../components/VerticalNavSectionTitle.vue | 37 + src/@layouts/config.ts | 42 + src/@layouts/enums.ts | 27 + src/@layouts/index.ts | 48 + src/@layouts/plugins/casl.ts | 48 + src/@layouts/stores/config.ts | 111 + src/@layouts/styles/_classes.scss | 3 + src/@layouts/styles/_default-layout.scss | 35 + src/@layouts/styles/_global.scss | 10 + src/@layouts/styles/_mixins.scss | 28 + src/@layouts/styles/_placeholders.scss | 53 + src/@layouts/styles/_rtl.scss | 7 + src/@layouts/styles/_variables.scss | 29 + src/@layouts/styles/index.scss | 3 + src/@layouts/symbols.ts | 1 + src/@layouts/types.ts | 124 + src/@layouts/utils.ts | 180 + src/App.vue | 26 + src/assets/images/avatars/avatar-1.png | Bin 0 -> 13543 bytes src/assets/images/avatars/avatar-10.png | Bin 0 -> 17112 bytes src/assets/images/avatars/avatar-11.png | Bin 0 -> 13944 bytes src/assets/images/avatars/avatar-12.png | Bin 0 -> 16153 bytes src/assets/images/avatars/avatar-13.png | Bin 0 -> 16040 bytes src/assets/images/avatars/avatar-14.png | Bin 0 -> 15773 bytes src/assets/images/avatars/avatar-15.png | Bin 0 -> 15852 bytes src/assets/images/avatars/avatar-2.png | Bin 0 -> 15715 bytes src/assets/images/avatars/avatar-3.png | Bin 0 -> 14590 bytes src/assets/images/avatars/avatar-4.png | Bin 0 -> 15490 bytes src/assets/images/avatars/avatar-5.png | Bin 0 -> 14799 bytes src/assets/images/avatars/avatar-6.png | Bin 0 -> 16277 bytes src/assets/images/avatars/avatar-7.png | Bin 0 -> 13815 bytes src/assets/images/avatars/avatar-8.png | Bin 0 -> 16376 bytes src/assets/images/avatars/avatar-9.png | Bin 0 -> 18005 bytes .../images/customizer-icons/border-dark.svg | 16 + .../images/customizer-icons/border-light.svg | 16 + .../customizer-icons/collapsed-dark.svg | 24 + .../customizer-icons/collapsed-light.svg | 24 + .../images/customizer-icons/compact-dark.svg | 18 + .../images/customizer-icons/compact-light.svg | 18 + .../customizer-icons/dark-theme-dark.svg | 18 + .../customizer-icons/dark-theme-light.svg | 18 + .../images/customizer-icons/default-dark.svg | 24 + .../images/customizer-icons/default-light.svg | 24 + .../images/customizer-icons/expanded-dark.svg | 24 + .../customizer-icons/expanded-light.svg | 24 + .../images/customizer-icons/hidden-dark.svg | 19 + .../images/customizer-icons/hidden-light.svg | 19 + .../customizer-icons/light-theme-dark.svg | 24 + .../customizer-icons/light-theme-light.svg | 24 + .../images/customizer-icons/ltr-dark.svg | 22 + .../images/customizer-icons/ltr-light.svg | 22 + .../images/customizer-icons/rtl-dark.svg | 22 + .../images/customizer-icons/rtl-light.svg | 22 + .../customizer-icons/semi-dark-dark.svg | 18 + .../customizer-icons/semi-dark-light.svg | 30 + .../images/customizer-icons/static-dark.svg | 24 + .../images/customizer-icons/static-light.svg | 24 + .../images/customizer-icons/sticky-dark.svg | 24 + .../images/customizer-icons/sticky-light.svg | 24 + .../customizer-icons/system-theme-dark.svg | 8 + .../customizer-icons/system-theme-light.svg | 8 + .../images/customizer-icons/wide-dark.svg | 18 + .../images/customizer-icons/wide-light.svg | 18 + .../images/iconify-svg/3d-select-solid.svg | 5 + src/assets/images/iconify-svg/Card.svg | 8 + src/assets/images/iconify-svg/Check.svg | 8 + src/assets/images/iconify-svg/Diamond.svg | 10 + src/assets/images/iconify-svg/Paper.svg | 4 + src/assets/images/iconify-svg/Suitcase.svg | 8 + src/assets/images/iconify-svg/User.svg | 6 + src/assets/images/iconify-svg/UserInfo.svg | 4 + src/assets/images/iconify-svg/Wallet.svg | 10 + src/assets/images/iconify-svg/address.svg | 25 + src/assets/images/iconify-svg/cart.svg | 5 + .../images/iconify-svg/check-circle.svg | 1 + .../images/iconify-svg/checkbox-checked.svg | 3 + .../iconify-svg/checkbox-indeterminate.svg | 3 + .../images/iconify-svg/checkbox-unchecked.svg | 3 + .../images/iconify-svg/checked-checkbox.svg | 4 + .../images/iconify-svg/checked-radio.svg | 6 + src/assets/images/iconify-svg/discord.svg | 10 + src/assets/images/iconify-svg/edit.svg | 5 + src/assets/images/iconify-svg/gift.svg | 8 + src/assets/images/iconify-svg/google-docs.svg | 5 + src/assets/images/iconify-svg/home.svg | 8 + src/assets/images/iconify-svg/javascript.svg | 1 + src/assets/images/iconify-svg/keyboard.svg | 8 + .../images/iconify-svg/laptop-charging.svg | 5 + src/assets/images/iconify-svg/laptop.svg | 8 + .../images/iconify-svg/layout-right.svg | 5 + src/assets/images/iconify-svg/lifebelt.svg | 6 + src/assets/images/iconify-svg/lightbulb.svg | 8 + .../images/iconify-svg/list-arrow-icon.svg | 10 + src/assets/images/iconify-svg/medal.svg | 6 + src/assets/images/iconify-svg/office.svg | 8 + src/assets/images/iconify-svg/payment.svg | 21 + src/assets/images/iconify-svg/people-tag.svg | 7 + .../images/iconify-svg/radio-checked.svg | 3 + .../iconify-svg/radio-disabled-checked.svg | 5 + .../images/iconify-svg/radio-unchecked.svg | 3 + src/assets/images/iconify-svg/rocket.svg | 8 + src/assets/images/iconify-svg/star-empty.svg | 3 + src/assets/images/iconify-svg/star-fill.svg | 3 + src/assets/images/iconify-svg/star-half.svg | 3 + .../images/iconify-svg/transition-up.svg | 5 + src/assets/images/iconify-svg/trending.svg | 14 + src/assets/images/iconify-svg/typescript.svg | 1 + .../images/iconify-svg/wizard-account.svg | 6 + .../images/iconify-svg/wizard-address.svg | 18 + .../images/iconify-svg/wizard-personal.svg | 6 + .../images/iconify-svg/wizard-social-link.svg | 6 + .../images/iconify-svg/wizard-submit.svg | 6 + src/assets/images/icons/payments/ae-icon.png | Bin 0 -> 3224 bytes .../icons/payments/american-express.png | Bin 0 -> 8336 bytes .../images/icons/payments/img/ae-dark.png | Bin 0 -> 2167 bytes .../icons/payments/img/american-express.png | Bin 0 -> 1617 bytes .../images/icons/payments/img/dc-dark.png | Bin 0 -> 1311 bytes .../images/icons/payments/img/dc-light.png | Bin 0 -> 1339 bytes .../images/icons/payments/img/jcb-dark.png | Bin 0 -> 1265 bytes .../images/icons/payments/img/jcb-light.png | Bin 0 -> 1276 bytes .../images/icons/payments/img/master-dark.png | Bin 0 -> 2455 bytes .../images/icons/payments/img/mastercard.png | Bin 0 -> 2454 bytes .../images/icons/payments/img/paypal-dark.png | Bin 0 -> 1397 bytes .../icons/payments/img/paypal-light.png | Bin 0 -> 1359 bytes .../images/icons/payments/img/visa-dark.png | Bin 0 -> 1749 bytes .../images/icons/payments/img/visa-light.png | Bin 0 -> 1770 bytes .../images/icons/payments/mastercard-icon.png | Bin 0 -> 3644 bytes .../images/icons/payments/mastercard.png | Bin 0 -> 1452 bytes .../images/icons/payments/visa-icon.png | Bin 0 -> 2376 bytes src/assets/images/icons/payments/visa.png | Bin 0 -> 2805 bytes .../images/illustrations/boy-app-academy.png | Bin 0 -> 39377 bytes .../illustrations/congo-illustration.png | Bin 0 -> 17621 bytes .../images/illustrations/girl-app-academy.png | Bin 0 -> 41975 bytes .../images/illustrations/laptop-girl.png | Bin 0 -> 44793 bytes .../register-multistep-illustration-dark.png | Bin 0 -> 33109 bytes .../register-multistep-illustration-light.png | Bin 0 -> 34024 bytes .../images/illustrations/sidebar-pic-1.png | Bin 0 -> 24539 bytes .../images/illustrations/sidebar-pic-2.png | Bin 0 -> 37015 bytes .../images/illustrations/sidebar-pic-3.png | Bin 0 -> 26761 bytes .../sitting-girl-with-laptop.png | Bin 0 -> 28370 bytes .../images/illustrations/standingGirlImg.png | Bin 0 -> 35961 bytes src/assets/images/logo.svg | 6 + .../3d-safe-box-with-golden-dollar-coins.png | Bin 0 -> 14271 bytes .../misc/3d-space-rocket-with-smoke.png | Bin 0 -> 11290 bytes .../dollar-coins-flying-pink-piggy-bank.png | Bin 0 -> 10287 bytes src/assets/images/misc/fleet-car.png | Bin 0 -> 6857 bytes src/assets/images/pages/1.png | Bin 0 -> 88584 bytes src/assets/images/pages/2.png | Bin 0 -> 46099 bytes src/assets/images/pages/3.png | Bin 0 -> 58413 bytes src/assets/images/pages/401.png | Bin 0 -> 29837 bytes src/assets/images/pages/404.png | Bin 0 -> 34389 bytes src/assets/images/pages/5.jpg | Bin 0 -> 6790 bytes src/assets/images/pages/6.jpg | Bin 0 -> 55890 bytes .../images/pages/DealTypeBackground-dark.png | Bin 0 -> 2891 bytes .../images/pages/DealTypeBackground-light.png | Bin 0 -> 2344 bytes .../pages/academy-course-illustration1.png | Bin 0 -> 44790 bytes .../pages/academy-course-illustration2.png | Bin 0 -> 10976 bytes .../images/pages/app-academy-tutor-1.png | Bin 0 -> 74785 bytes .../images/pages/app-academy-tutor-2.png | Bin 0 -> 61223 bytes .../images/pages/app-academy-tutor-3.png | Bin 0 -> 83683 bytes .../images/pages/app-academy-tutor-4.png | Bin 0 -> 89959 bytes .../images/pages/app-academy-tutor-5.png | Bin 0 -> 89275 bytes .../images/pages/app-academy-tutor-6.png | Bin 0 -> 75188 bytes .../images/pages/app-search-header-bg.png | Bin 0 -> 31097 bytes ...h-v2-forgot-password-illustration-dark.png | Bin 0 -> 49766 bytes ...-v2-forgot-password-illustration-light.png | Bin 0 -> 51832 bytes ...th-v2-login-illustration-bordered-dark.png | Bin 0 -> 49856 bytes ...h-v2-login-illustration-bordered-light.png | Bin 0 -> 50313 bytes .../pages/auth-v2-login-illustration-dark.png | Bin 0 -> 57468 bytes .../auth-v2-login-illustration-light.png | Bin 0 -> 55970 bytes ...v2-register-illustration-bordered-dark.png | Bin 0 -> 82301 bytes ...2-register-illustration-bordered-light.png | Bin 0 -> 84302 bytes .../auth-v2-register-illustration-dark.png | Bin 0 -> 89766 bytes .../auth-v2-register-illustration-light.png | Bin 0 -> 89106 bytes ...th-v2-reset-password-illustration-dark.png | Bin 0 -> 44552 bytes ...h-v2-reset-password-illustration-light.png | Bin 0 -> 45516 bytes .../auth-v2-two-step-illustration-dark.png | Bin 0 -> 50593 bytes .../auth-v2-two-step-illustration-light.png | Bin 0 -> 51438 bytes ...auth-v2-verify-email-illustration-dark.png | Bin 0 -> 59730 bytes ...uth-v2-verify-email-illustration-light.png | Bin 0 -> 59743 bytes src/assets/images/pages/background-1.jpg | Bin 0 -> 36820 bytes src/assets/images/pages/background-2.jpg | Bin 0 -> 74443 bytes src/assets/images/pages/background-3.jpg | Bin 0 -> 88783 bytes src/assets/images/pages/boy-illustration.png | Bin 0 -> 12187 bytes .../pages/create-deal-review-complete.png | Bin 0 -> 28336 bytes .../images/pages/custom-checkbox-img-1.png | Bin 0 -> 25799 bytes .../images/pages/custom-checkbox-img-2.png | Bin 0 -> 35280 bytes .../images/pages/custom-checkbox-img-3.png | Bin 0 -> 27827 bytes .../images/pages/custom-radio-img-1.png | Bin 0 -> 44592 bytes .../images/pages/custom-radio-img-2.png | Bin 0 -> 30000 bytes .../images/pages/custom-radio-img-3.png | Bin 0 -> 38806 bytes .../pages/forgot-password-illustration.png | Bin 0 -> 13375 bytes .../images/pages/free-course-image1.png | Bin 0 -> 31135 bytes .../images/pages/free-course-image2.png | Bin 0 -> 32374 bytes src/assets/images/pages/girl-using-mobile.png | Bin 0 -> 12662 bytes src/assets/images/pages/google-home.png | Bin 0 -> 9814 bytes .../images/pages/hero-dashboard-light.png | Bin 0 -> 140830 bytes .../images/pages/hero-elements-light.png | Bin 0 -> 92499 bytes src/assets/images/pages/illustration-john.png | Bin 0 -> 21171 bytes src/assets/images/pages/iphone-11.png | Bin 0 -> 11681 bytes src/assets/images/pages/misc-coming-soon.png | Bin 0 -> 33557 bytes src/assets/images/pages/misc-mask-dark.png | Bin 0 -> 1902 bytes src/assets/images/pages/misc-mask-light.png | Bin 0 -> 1756 bytes .../images/pages/misc-under-maintenance.png | Bin 0 -> 96366 bytes src/assets/images/pages/pose-fs-9.png | Bin 0 -> 29430 bytes src/assets/images/pages/puma-shoes.jpeg | Bin 0 -> 13191 bytes .../pages/register-multistep-bg-dark.png | Bin 0 -> 3147 bytes .../pages/register-multistep-bg-light.png | Bin 0 -> 2771 bytes .../images/pages/section-title-icon.png | Bin 0 -> 638 bytes src/assets/images/pages/teamPerson1.png | Bin 0 -> 64298 bytes src/assets/images/pages/teamPerson2.png | Bin 0 -> 62715 bytes src/assets/images/pages/teamPerson3.png | Bin 0 -> 59349 bytes src/assets/images/pages/teamPerson4.png | Bin 0 -> 60216 bytes src/assets/images/pages/themeselection-qr.png | Bin 0 -> 3637 bytes .../images/pages/user-profile-header-bg.png | Bin 0 -> 67090 bytes src/assets/images/svg/Paper.svg | 4 + src/assets/images/svg/UserInfo.svg | 4 + .../images/svg/auth-v1-bottom-shape.svg | 4 + src/assets/images/svg/auth-v1-top-shape.svg | 4 + src/assets/images/svg/discord.svg | 10 + src/assets/images/svg/gift.svg | 8 + .../images/svg/indeterminate-checkbox.svg | 4 + src/assets/images/svg/keyboard.svg | 8 + src/assets/images/svg/paypal.svg | 19 + src/assets/images/svg/rocket.svg | 8 + src/assets/images/svg/unchecked-checkbox.svg | 4 + src/assets/images/svg/unchecked-radio.svg | 6 + src/assets/styles/styles.scss | 1 + src/assets/styles/variables/_template.scss | 6 + src/assets/styles/variables/_vuetify.scss | 7 + src/components/AppLoadingIndicator.vue | 63 + src/components/AppPricing.vue | 233 + src/components/AppSearchHeader.vue | 76 + src/components/ErrorHeader.vue | 33 + .../dialogs/AddAuthenticatorAppDialog.vue | 106 + .../dialogs/AddEditAddressDialog.vue | 243 + .../dialogs/AddEditPermissionDialog.vue | 95 + src/components/dialogs/AddEditRoleDialog.vue | 298 + .../dialogs/AddPaymentMethodDialog.vue | 117 + src/components/dialogs/CardAddEditDialog.vue | 151 + src/components/dialogs/ConfirmDialog.vue | 150 + src/components/dialogs/CreateAppDialog.vue | 440 + .../dialogs/EnableOneTimePasswordDialog.vue | 88 + .../dialogs/PaymentProvidersDialog.vue | 123 + src/components/dialogs/PricingPlanDialog.vue | 37 + src/components/dialogs/ReferAndEarnDialog.vue | 183 + src/components/dialogs/ShareProjectDialog.vue | 198 + .../dialogs/TwoFactorAuthDialog.vue | 164 + src/components/dialogs/UserInfoEditDialog.vue | 230 + .../dialogs/UserUpgradePlanDialog.vue | 105 + src/composables/useApi.ts | 42 + src/layouts/blank.vue | 42 + .../DefaultLayoutWithHorizontalNav.vue | 75 + .../DefaultLayoutWithVerticalNav.vue | 78 + src/layouts/components/Footer.vue | 37 + .../components/NavBarNotifications.vue | 92 + src/layouts/components/NavSearchBar.vue | 248 + src/layouts/components/NavbarShortcuts.vue | 45 + .../components/NavbarThemeSwitcher.vue | 22 + src/layouts/components/UserProfile.vue | 130 + src/layouts/default.vue | 30 + src/main.ts | 17 + src/navigation/horizontal/index.ts | 12 + src/navigation/vertical/index.ts | 12 + src/pages/[...error].vue | 52 + src/pages/index.vue | 25 + src/pages/login.vue | 173 + src/pages/second-page.vue | 13 + src/plugins/1.router/index.ts | 36 + src/plugins/2.pinia.ts | 8 + src/plugins/iconify/build-icons.ts | 293 + src/plugins/iconify/index.ts | 5 + src/plugins/iconify/package.json | 4 + src/plugins/layouts.ts | 13 + src/plugins/vuetify/defaults.ts | 186 + src/plugins/vuetify/icons.ts | 63 + src/plugins/vuetify/index.ts | 44 + src/plugins/vuetify/theme.ts | 122 + src/plugins/webfontloader.ts | 19 + src/utils/api.ts | 14 + src/utils/constants.ts | 1 + .../pages/authentication/AuthProvider.vue | 42 + themeConfig.ts | 70 + tsconfig.json | 77 + typed-router.d.ts | 144 + vite.config.ts | 103 + 435 files changed, 29686 insertions(+) create mode 100755 .editorconfig create mode 100755 .env.example create mode 100755 .eslintrc.cjs create mode 100755 .gitignore create mode 100755 .npmrc create mode 100755 .nvmrc create mode 100755 .stylelintrc.json create mode 100755 .vscode/anchor-comments.code-snippets create mode 100755 .vscode/extensions.json create mode 100755 .vscode/settings.json create mode 100755 .vscode/vue-ts.code-snippets create mode 100755 .vscode/vue.code-snippets create mode 100755 .vscode/vuetify.code-snippets create mode 100755 README.md create mode 100755 auto-imports.d.ts create mode 100755 components.d.ts create mode 100755 env.d.ts create mode 100755 eslint-internal-rules/.eslintrc.js create mode 100755 eslint-internal-rules/valid-appcardcode-code-prop.js create mode 100755 eslint-internal-rules/valid-appcardcode-demo-sfc.js create mode 100755 index.html create mode 100755 package.json create mode 100755 pnpm-lock.yaml create mode 100755 public/favicon.ico create mode 100755 public/images/avatars/avatar-1.png create mode 100755 public/images/avatars/avatar-2.png create mode 100755 public/loader.css create mode 100755 shims.d.ts create mode 100755 src/@core/components/AppBarSearch.vue create mode 100755 src/@core/components/AppDrawerHeaderSection.vue create mode 100755 src/@core/components/AppStepper.vue create mode 100755 src/@core/components/BuyNow.vue create mode 100755 src/@core/components/CardStatisticsVerticalSimple.vue create mode 100755 src/@core/components/CustomizerSection.vue create mode 100755 src/@core/components/DialogCloseBtn.vue create mode 100755 src/@core/components/I18n.vue create mode 100755 src/@core/components/MoreBtn.vue create mode 100755 src/@core/components/Notifications.vue create mode 100755 src/@core/components/ScrollToTop.vue create mode 100755 src/@core/components/Shortcuts.vue create mode 100755 src/@core/components/TheCustomizer.vue create mode 100755 src/@core/components/ThemeSwitcher.vue create mode 100755 src/@core/components/TiptapEditor.vue create mode 100755 src/@core/components/app-form-elements/AppAutocomplete.vue create mode 100755 src/@core/components/app-form-elements/AppCombobox.vue create mode 100755 src/@core/components/app-form-elements/AppDateTimePicker.vue create mode 100755 src/@core/components/app-form-elements/AppSelect.vue create mode 100755 src/@core/components/app-form-elements/AppTextField.vue create mode 100755 src/@core/components/app-form-elements/AppTextarea.vue create mode 100755 src/@core/components/app-form-elements/CustomCheckboxes.vue create mode 100755 src/@core/components/app-form-elements/CustomCheckboxesWithIcon.vue create mode 100755 src/@core/components/app-form-elements/CustomCheckboxesWithImage.vue create mode 100755 src/@core/components/app-form-elements/CustomRadios.vue create mode 100755 src/@core/components/app-form-elements/CustomRadiosWithIcon.vue create mode 100755 src/@core/components/app-form-elements/CustomRadiosWithImage.vue create mode 100755 src/@core/components/cards/AppCardActions.vue create mode 100755 src/@core/components/cards/AppCardCode.vue create mode 100755 src/@core/components/cards/CardStatisticsHorizontal.vue create mode 100755 src/@core/components/cards/CardStatisticsVertical.vue create mode 100755 src/@core/composable/createUrl.ts create mode 100755 src/@core/composable/useCookie.ts create mode 100755 src/@core/composable/useGenerateImageVariant.ts create mode 100755 src/@core/composable/useResponsiveSidebar.ts create mode 100755 src/@core/composable/useSkins.ts create mode 100755 src/@core/enums.ts create mode 100755 src/@core/index.ts create mode 100755 src/@core/initCore.ts create mode 100755 src/@core/libs/apex-chart/apexCharConfig.ts create mode 100755 src/@core/libs/chartjs/chartjsConfig.ts create mode 100755 src/@core/libs/chartjs/components/BarChart.ts create mode 100755 src/@core/libs/chartjs/components/BubbleChart.ts create mode 100755 src/@core/libs/chartjs/components/DoughnutChart.ts create mode 100755 src/@core/libs/chartjs/components/LineChart.ts create mode 100755 src/@core/libs/chartjs/components/PolarAreaChart.ts create mode 100755 src/@core/libs/chartjs/components/RadarChart.ts create mode 100755 src/@core/libs/chartjs/components/ScatterChart.ts create mode 100755 src/@core/scss/base/_components.scss create mode 100755 src/@core/scss/base/_dark.scss create mode 100755 src/@core/scss/base/_default-layout-w-horizontal-nav.scss create mode 100755 src/@core/scss/base/_default-layout-w-vertical-nav.scss create mode 100755 src/@core/scss/base/_default-layout.scss create mode 100755 src/@core/scss/base/_horizontal-nav.scss create mode 100755 src/@core/scss/base/_index.scss create mode 100755 src/@core/scss/base/_layouts.scss create mode 100755 src/@core/scss/base/_misc.scss create mode 100755 src/@core/scss/base/_mixins.scss create mode 100755 src/@core/scss/base/_route-transitions.scss create mode 100755 src/@core/scss/base/_utilities.scss create mode 100755 src/@core/scss/base/_utils.scss create mode 100755 src/@core/scss/base/_variables.scss create mode 100755 src/@core/scss/base/_vertical-nav.scss create mode 100755 src/@core/scss/base/libs/_perfect-scrollbar.scss create mode 100755 src/@core/scss/base/libs/vuetify/_index.scss create mode 100755 src/@core/scss/base/libs/vuetify/_overrides.scss create mode 100755 src/@core/scss/base/libs/vuetify/_variables.scss create mode 100755 src/@core/scss/base/placeholders/_default-layout-horizontal-nav.scss create mode 100755 src/@core/scss/base/placeholders/_default-layout-vertical-nav.scss create mode 100755 src/@core/scss/base/placeholders/_default-layout.scss create mode 100755 src/@core/scss/base/placeholders/_horizontal-nav.scss create mode 100755 src/@core/scss/base/placeholders/_index.scss create mode 100755 src/@core/scss/base/placeholders/_misc.scss create mode 100755 src/@core/scss/base/placeholders/_nav.scss create mode 100755 src/@core/scss/base/placeholders/_vertical-nav.scss create mode 100755 src/@core/scss/base/skins/_bordered.scss create mode 100755 src/@core/scss/base/skins/_index.scss create mode 100755 src/@core/scss/template/_components.scss create mode 100755 src/@core/scss/template/_default-layout-w-horizontal-nav.scss create mode 100755 src/@core/scss/template/_default-layout-w-vertical-nav.scss create mode 100755 src/@core/scss/template/_horizontal-nav.scss create mode 100755 src/@core/scss/template/_utilities.scss create mode 100755 src/@core/scss/template/_variables.scss create mode 100755 src/@core/scss/template/_vertical-nav.scss create mode 100755 src/@core/scss/template/index.scss create mode 100755 src/@core/scss/template/libs/apex-chart.scss create mode 100755 src/@core/scss/template/libs/full-calendar.scss create mode 100755 src/@core/scss/template/libs/shepherd.scss create mode 100755 src/@core/scss/template/libs/swiper.scss create mode 100755 src/@core/scss/template/libs/vuetify/_variables.scss create mode 100755 src/@core/scss/template/libs/vuetify/index.scss create mode 100755 src/@core/scss/template/libs/vuetify/overrides.scss create mode 100755 src/@core/scss/template/pages/misc.scss create mode 100755 src/@core/scss/template/pages/page-auth.scss create mode 100755 src/@core/scss/template/placeholders/_default-layout-horizontal-nav.scss create mode 100755 src/@core/scss/template/placeholders/_default-layout-vertical-nav.scss create mode 100755 src/@core/scss/template/placeholders/_horizontal-nav.scss create mode 100755 src/@core/scss/template/placeholders/_index.scss create mode 100755 src/@core/scss/template/placeholders/_nav.scss create mode 100755 src/@core/scss/template/placeholders/_vertical-nav.scss create mode 100755 src/@core/scss/template/skins/_bordered.scss create mode 100755 src/@core/scss/template/skins/_index.scss create mode 100755 src/@core/stores/config.ts create mode 100755 src/@core/types.ts create mode 100755 src/@core/utils/formatters.ts create mode 100755 src/@core/utils/helpers.ts create mode 100755 src/@core/utils/plugins.ts create mode 100755 src/@core/utils/validators.ts create mode 100755 src/@core/utils/vuetify.ts create mode 100755 src/@layouts/components.ts create mode 100755 src/@layouts/components/HorizontalNav.vue create mode 100755 src/@layouts/components/HorizontalNavGroup.vue create mode 100755 src/@layouts/components/HorizontalNavLayout.vue create mode 100755 src/@layouts/components/HorizontalNavLink.vue create mode 100755 src/@layouts/components/HorizontalNavPopper.vue create mode 100755 src/@layouts/components/TransitionExpand.vue create mode 100755 src/@layouts/components/VNodeRenderer.tsx create mode 100755 src/@layouts/components/VerticalNav.vue create mode 100755 src/@layouts/components/VerticalNavGroup.vue create mode 100755 src/@layouts/components/VerticalNavLayout.vue create mode 100755 src/@layouts/components/VerticalNavLink.vue create mode 100755 src/@layouts/components/VerticalNavSectionTitle.vue create mode 100755 src/@layouts/config.ts create mode 100755 src/@layouts/enums.ts create mode 100755 src/@layouts/index.ts create mode 100755 src/@layouts/plugins/casl.ts create mode 100755 src/@layouts/stores/config.ts create mode 100755 src/@layouts/styles/_classes.scss create mode 100755 src/@layouts/styles/_default-layout.scss create mode 100755 src/@layouts/styles/_global.scss create mode 100755 src/@layouts/styles/_mixins.scss create mode 100755 src/@layouts/styles/_placeholders.scss create mode 100755 src/@layouts/styles/_rtl.scss create mode 100755 src/@layouts/styles/_variables.scss create mode 100755 src/@layouts/styles/index.scss create mode 100755 src/@layouts/symbols.ts create mode 100755 src/@layouts/types.ts create mode 100755 src/@layouts/utils.ts create mode 100755 src/App.vue create mode 100755 src/assets/images/avatars/avatar-1.png create mode 100755 src/assets/images/avatars/avatar-10.png create mode 100755 src/assets/images/avatars/avatar-11.png create mode 100755 src/assets/images/avatars/avatar-12.png create mode 100755 src/assets/images/avatars/avatar-13.png create mode 100755 src/assets/images/avatars/avatar-14.png create mode 100755 src/assets/images/avatars/avatar-15.png create mode 100755 src/assets/images/avatars/avatar-2.png create mode 100755 src/assets/images/avatars/avatar-3.png create mode 100755 src/assets/images/avatars/avatar-4.png create mode 100755 src/assets/images/avatars/avatar-5.png create mode 100755 src/assets/images/avatars/avatar-6.png create mode 100755 src/assets/images/avatars/avatar-7.png create mode 100755 src/assets/images/avatars/avatar-8.png create mode 100755 src/assets/images/avatars/avatar-9.png create mode 100755 src/assets/images/customizer-icons/border-dark.svg create mode 100755 src/assets/images/customizer-icons/border-light.svg create mode 100755 src/assets/images/customizer-icons/collapsed-dark.svg create mode 100755 src/assets/images/customizer-icons/collapsed-light.svg create mode 100755 src/assets/images/customizer-icons/compact-dark.svg create mode 100755 src/assets/images/customizer-icons/compact-light.svg create mode 100755 src/assets/images/customizer-icons/dark-theme-dark.svg create mode 100755 src/assets/images/customizer-icons/dark-theme-light.svg create mode 100755 src/assets/images/customizer-icons/default-dark.svg create mode 100755 src/assets/images/customizer-icons/default-light.svg create mode 100755 src/assets/images/customizer-icons/expanded-dark.svg create mode 100755 src/assets/images/customizer-icons/expanded-light.svg create mode 100755 src/assets/images/customizer-icons/hidden-dark.svg create mode 100755 src/assets/images/customizer-icons/hidden-light.svg create mode 100755 src/assets/images/customizer-icons/light-theme-dark.svg create mode 100755 src/assets/images/customizer-icons/light-theme-light.svg create mode 100755 src/assets/images/customizer-icons/ltr-dark.svg create mode 100755 src/assets/images/customizer-icons/ltr-light.svg create mode 100755 src/assets/images/customizer-icons/rtl-dark.svg create mode 100755 src/assets/images/customizer-icons/rtl-light.svg create mode 100755 src/assets/images/customizer-icons/semi-dark-dark.svg create mode 100755 src/assets/images/customizer-icons/semi-dark-light.svg create mode 100755 src/assets/images/customizer-icons/static-dark.svg create mode 100755 src/assets/images/customizer-icons/static-light.svg create mode 100755 src/assets/images/customizer-icons/sticky-dark.svg create mode 100755 src/assets/images/customizer-icons/sticky-light.svg create mode 100755 src/assets/images/customizer-icons/system-theme-dark.svg create mode 100755 src/assets/images/customizer-icons/system-theme-light.svg create mode 100755 src/assets/images/customizer-icons/wide-dark.svg create mode 100755 src/assets/images/customizer-icons/wide-light.svg create mode 100755 src/assets/images/iconify-svg/3d-select-solid.svg create mode 100755 src/assets/images/iconify-svg/Card.svg create mode 100755 src/assets/images/iconify-svg/Check.svg create mode 100755 src/assets/images/iconify-svg/Diamond.svg create mode 100755 src/assets/images/iconify-svg/Paper.svg create mode 100755 src/assets/images/iconify-svg/Suitcase.svg create mode 100755 src/assets/images/iconify-svg/User.svg create mode 100755 src/assets/images/iconify-svg/UserInfo.svg create mode 100755 src/assets/images/iconify-svg/Wallet.svg create mode 100755 src/assets/images/iconify-svg/address.svg create mode 100755 src/assets/images/iconify-svg/cart.svg create mode 100755 src/assets/images/iconify-svg/check-circle.svg create mode 100755 src/assets/images/iconify-svg/checkbox-checked.svg create mode 100755 src/assets/images/iconify-svg/checkbox-indeterminate.svg create mode 100755 src/assets/images/iconify-svg/checkbox-unchecked.svg create mode 100755 src/assets/images/iconify-svg/checked-checkbox.svg create mode 100755 src/assets/images/iconify-svg/checked-radio.svg create mode 100755 src/assets/images/iconify-svg/discord.svg create mode 100755 src/assets/images/iconify-svg/edit.svg create mode 100755 src/assets/images/iconify-svg/gift.svg create mode 100755 src/assets/images/iconify-svg/google-docs.svg create mode 100755 src/assets/images/iconify-svg/home.svg create mode 100755 src/assets/images/iconify-svg/javascript.svg create mode 100755 src/assets/images/iconify-svg/keyboard.svg create mode 100755 src/assets/images/iconify-svg/laptop-charging.svg create mode 100755 src/assets/images/iconify-svg/laptop.svg create mode 100755 src/assets/images/iconify-svg/layout-right.svg create mode 100755 src/assets/images/iconify-svg/lifebelt.svg create mode 100755 src/assets/images/iconify-svg/lightbulb.svg create mode 100755 src/assets/images/iconify-svg/list-arrow-icon.svg create mode 100755 src/assets/images/iconify-svg/medal.svg create mode 100755 src/assets/images/iconify-svg/office.svg create mode 100755 src/assets/images/iconify-svg/payment.svg create mode 100755 src/assets/images/iconify-svg/people-tag.svg create mode 100755 src/assets/images/iconify-svg/radio-checked.svg create mode 100755 src/assets/images/iconify-svg/radio-disabled-checked.svg create mode 100755 src/assets/images/iconify-svg/radio-unchecked.svg create mode 100755 src/assets/images/iconify-svg/rocket.svg create mode 100755 src/assets/images/iconify-svg/star-empty.svg create mode 100755 src/assets/images/iconify-svg/star-fill.svg create mode 100755 src/assets/images/iconify-svg/star-half.svg create mode 100755 src/assets/images/iconify-svg/transition-up.svg create mode 100755 src/assets/images/iconify-svg/trending.svg create mode 100755 src/assets/images/iconify-svg/typescript.svg create mode 100755 src/assets/images/iconify-svg/wizard-account.svg create mode 100755 src/assets/images/iconify-svg/wizard-address.svg create mode 100755 src/assets/images/iconify-svg/wizard-personal.svg create mode 100755 src/assets/images/iconify-svg/wizard-social-link.svg create mode 100755 src/assets/images/iconify-svg/wizard-submit.svg create mode 100755 src/assets/images/icons/payments/ae-icon.png create mode 100755 src/assets/images/icons/payments/american-express.png create mode 100755 src/assets/images/icons/payments/img/ae-dark.png create mode 100755 src/assets/images/icons/payments/img/american-express.png create mode 100755 src/assets/images/icons/payments/img/dc-dark.png create mode 100755 src/assets/images/icons/payments/img/dc-light.png create mode 100755 src/assets/images/icons/payments/img/jcb-dark.png create mode 100755 src/assets/images/icons/payments/img/jcb-light.png create mode 100755 src/assets/images/icons/payments/img/master-dark.png create mode 100755 src/assets/images/icons/payments/img/mastercard.png create mode 100755 src/assets/images/icons/payments/img/paypal-dark.png create mode 100755 src/assets/images/icons/payments/img/paypal-light.png create mode 100755 src/assets/images/icons/payments/img/visa-dark.png create mode 100755 src/assets/images/icons/payments/img/visa-light.png create mode 100755 src/assets/images/icons/payments/mastercard-icon.png create mode 100755 src/assets/images/icons/payments/mastercard.png create mode 100755 src/assets/images/icons/payments/visa-icon.png create mode 100755 src/assets/images/icons/payments/visa.png create mode 100755 src/assets/images/illustrations/boy-app-academy.png create mode 100755 src/assets/images/illustrations/congo-illustration.png create mode 100755 src/assets/images/illustrations/girl-app-academy.png create mode 100755 src/assets/images/illustrations/laptop-girl.png create mode 100755 src/assets/images/illustrations/register-multistep-illustration-dark.png create mode 100755 src/assets/images/illustrations/register-multistep-illustration-light.png create mode 100755 src/assets/images/illustrations/sidebar-pic-1.png create mode 100755 src/assets/images/illustrations/sidebar-pic-2.png create mode 100755 src/assets/images/illustrations/sidebar-pic-3.png create mode 100755 src/assets/images/illustrations/sitting-girl-with-laptop.png create mode 100755 src/assets/images/illustrations/standingGirlImg.png create mode 100755 src/assets/images/logo.svg create mode 100755 src/assets/images/misc/3d-safe-box-with-golden-dollar-coins.png create mode 100755 src/assets/images/misc/3d-space-rocket-with-smoke.png create mode 100755 src/assets/images/misc/dollar-coins-flying-pink-piggy-bank.png create mode 100755 src/assets/images/misc/fleet-car.png create mode 100755 src/assets/images/pages/1.png create mode 100755 src/assets/images/pages/2.png create mode 100755 src/assets/images/pages/3.png create mode 100755 src/assets/images/pages/401.png create mode 100755 src/assets/images/pages/404.png create mode 100755 src/assets/images/pages/5.jpg create mode 100755 src/assets/images/pages/6.jpg create mode 100755 src/assets/images/pages/DealTypeBackground-dark.png create mode 100755 src/assets/images/pages/DealTypeBackground-light.png create mode 100755 src/assets/images/pages/academy-course-illustration1.png create mode 100755 src/assets/images/pages/academy-course-illustration2.png create mode 100755 src/assets/images/pages/app-academy-tutor-1.png create mode 100755 src/assets/images/pages/app-academy-tutor-2.png create mode 100755 src/assets/images/pages/app-academy-tutor-3.png create mode 100755 src/assets/images/pages/app-academy-tutor-4.png create mode 100755 src/assets/images/pages/app-academy-tutor-5.png create mode 100755 src/assets/images/pages/app-academy-tutor-6.png create mode 100755 src/assets/images/pages/app-search-header-bg.png create mode 100755 src/assets/images/pages/auth-v2-forgot-password-illustration-dark.png create mode 100755 src/assets/images/pages/auth-v2-forgot-password-illustration-light.png create mode 100755 src/assets/images/pages/auth-v2-login-illustration-bordered-dark.png create mode 100755 src/assets/images/pages/auth-v2-login-illustration-bordered-light.png create mode 100755 src/assets/images/pages/auth-v2-login-illustration-dark.png create mode 100755 src/assets/images/pages/auth-v2-login-illustration-light.png create mode 100755 src/assets/images/pages/auth-v2-register-illustration-bordered-dark.png create mode 100755 src/assets/images/pages/auth-v2-register-illustration-bordered-light.png create mode 100755 src/assets/images/pages/auth-v2-register-illustration-dark.png create mode 100755 src/assets/images/pages/auth-v2-register-illustration-light.png create mode 100755 src/assets/images/pages/auth-v2-reset-password-illustration-dark.png create mode 100755 src/assets/images/pages/auth-v2-reset-password-illustration-light.png create mode 100755 src/assets/images/pages/auth-v2-two-step-illustration-dark.png create mode 100755 src/assets/images/pages/auth-v2-two-step-illustration-light.png create mode 100755 src/assets/images/pages/auth-v2-verify-email-illustration-dark.png create mode 100755 src/assets/images/pages/auth-v2-verify-email-illustration-light.png create mode 100755 src/assets/images/pages/background-1.jpg create mode 100755 src/assets/images/pages/background-2.jpg create mode 100755 src/assets/images/pages/background-3.jpg create mode 100755 src/assets/images/pages/boy-illustration.png create mode 100755 src/assets/images/pages/create-deal-review-complete.png create mode 100755 src/assets/images/pages/custom-checkbox-img-1.png create mode 100755 src/assets/images/pages/custom-checkbox-img-2.png create mode 100755 src/assets/images/pages/custom-checkbox-img-3.png create mode 100755 src/assets/images/pages/custom-radio-img-1.png create mode 100755 src/assets/images/pages/custom-radio-img-2.png create mode 100755 src/assets/images/pages/custom-radio-img-3.png create mode 100755 src/assets/images/pages/forgot-password-illustration.png create mode 100755 src/assets/images/pages/free-course-image1.png create mode 100755 src/assets/images/pages/free-course-image2.png create mode 100755 src/assets/images/pages/girl-using-mobile.png create mode 100755 src/assets/images/pages/google-home.png create mode 100755 src/assets/images/pages/hero-dashboard-light.png create mode 100755 src/assets/images/pages/hero-elements-light.png create mode 100755 src/assets/images/pages/illustration-john.png create mode 100755 src/assets/images/pages/iphone-11.png create mode 100755 src/assets/images/pages/misc-coming-soon.png create mode 100755 src/assets/images/pages/misc-mask-dark.png create mode 100755 src/assets/images/pages/misc-mask-light.png create mode 100755 src/assets/images/pages/misc-under-maintenance.png create mode 100755 src/assets/images/pages/pose-fs-9.png create mode 100755 src/assets/images/pages/puma-shoes.jpeg create mode 100755 src/assets/images/pages/register-multistep-bg-dark.png create mode 100755 src/assets/images/pages/register-multistep-bg-light.png create mode 100755 src/assets/images/pages/section-title-icon.png create mode 100755 src/assets/images/pages/teamPerson1.png create mode 100755 src/assets/images/pages/teamPerson2.png create mode 100755 src/assets/images/pages/teamPerson3.png create mode 100755 src/assets/images/pages/teamPerson4.png create mode 100755 src/assets/images/pages/themeselection-qr.png create mode 100755 src/assets/images/pages/user-profile-header-bg.png create mode 100755 src/assets/images/svg/Paper.svg create mode 100755 src/assets/images/svg/UserInfo.svg create mode 100755 src/assets/images/svg/auth-v1-bottom-shape.svg create mode 100755 src/assets/images/svg/auth-v1-top-shape.svg create mode 100755 src/assets/images/svg/discord.svg create mode 100755 src/assets/images/svg/gift.svg create mode 100755 src/assets/images/svg/indeterminate-checkbox.svg create mode 100755 src/assets/images/svg/keyboard.svg create mode 100755 src/assets/images/svg/paypal.svg create mode 100755 src/assets/images/svg/rocket.svg create mode 100755 src/assets/images/svg/unchecked-checkbox.svg create mode 100755 src/assets/images/svg/unchecked-radio.svg create mode 100755 src/assets/styles/styles.scss create mode 100755 src/assets/styles/variables/_template.scss create mode 100755 src/assets/styles/variables/_vuetify.scss create mode 100755 src/components/AppLoadingIndicator.vue create mode 100755 src/components/AppPricing.vue create mode 100755 src/components/AppSearchHeader.vue create mode 100755 src/components/ErrorHeader.vue create mode 100755 src/components/dialogs/AddAuthenticatorAppDialog.vue create mode 100755 src/components/dialogs/AddEditAddressDialog.vue create mode 100755 src/components/dialogs/AddEditPermissionDialog.vue create mode 100755 src/components/dialogs/AddEditRoleDialog.vue create mode 100755 src/components/dialogs/AddPaymentMethodDialog.vue create mode 100755 src/components/dialogs/CardAddEditDialog.vue create mode 100755 src/components/dialogs/ConfirmDialog.vue create mode 100755 src/components/dialogs/CreateAppDialog.vue create mode 100755 src/components/dialogs/EnableOneTimePasswordDialog.vue create mode 100755 src/components/dialogs/PaymentProvidersDialog.vue create mode 100755 src/components/dialogs/PricingPlanDialog.vue create mode 100755 src/components/dialogs/ReferAndEarnDialog.vue create mode 100755 src/components/dialogs/ShareProjectDialog.vue create mode 100755 src/components/dialogs/TwoFactorAuthDialog.vue create mode 100755 src/components/dialogs/UserInfoEditDialog.vue create mode 100755 src/components/dialogs/UserUpgradePlanDialog.vue create mode 100755 src/composables/useApi.ts create mode 100755 src/layouts/blank.vue create mode 100755 src/layouts/components/DefaultLayoutWithHorizontalNav.vue create mode 100755 src/layouts/components/DefaultLayoutWithVerticalNav.vue create mode 100755 src/layouts/components/Footer.vue create mode 100755 src/layouts/components/NavBarNotifications.vue create mode 100755 src/layouts/components/NavSearchBar.vue create mode 100755 src/layouts/components/NavbarShortcuts.vue create mode 100755 src/layouts/components/NavbarThemeSwitcher.vue create mode 100755 src/layouts/components/UserProfile.vue create mode 100755 src/layouts/default.vue create mode 100755 src/main.ts create mode 100755 src/navigation/horizontal/index.ts create mode 100755 src/navigation/vertical/index.ts create mode 100755 src/pages/[...error].vue create mode 100755 src/pages/index.vue create mode 100755 src/pages/login.vue create mode 100755 src/pages/second-page.vue create mode 100755 src/plugins/1.router/index.ts create mode 100755 src/plugins/2.pinia.ts create mode 100755 src/plugins/iconify/build-icons.ts create mode 100755 src/plugins/iconify/index.ts create mode 100755 src/plugins/iconify/package.json create mode 100755 src/plugins/layouts.ts create mode 100755 src/plugins/vuetify/defaults.ts create mode 100755 src/plugins/vuetify/icons.ts create mode 100755 src/plugins/vuetify/index.ts create mode 100755 src/plugins/vuetify/theme.ts create mode 100755 src/plugins/webfontloader.ts create mode 100755 src/utils/api.ts create mode 100755 src/utils/constants.ts create mode 100755 src/views/pages/authentication/AuthProvider.vue create mode 100755 themeConfig.ts create mode 100755 tsconfig.json create mode 100755 typed-router.d.ts create mode 100755 vite.config.ts diff --git a/.editorconfig b/.editorconfig new file mode 100755 index 0000000..63c8c4c --- /dev/null +++ b/.editorconfig @@ -0,0 +1,38 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +end_of_line = lf +insert_final_newline = true + +# Matches multiple files with brace expansion notation +# Set default charset +[*.{js,py}] +charset = utf-8 + +# 4 space indentation +[*.py] +indent_style = space +indent_size = 4 + +# 2 space indentation +[*.{vue,scss,ts}] +indent_style = space +indent_size = 2 + +# Tab indentation (no size specified) +[Makefile] +indent_style = tab + +# Indentation override for all JS under lib directory +[lib/**.js] +indent_style = space +indent_size = 2 + +# Matches the exact files either package.json or .travis.yml +[{package.json,.travis.yml}] +indent_style = space +indent_size = 2 diff --git a/.env.example b/.env.example new file mode 100755 index 0000000..b8ca0df --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +VITE_API_BASE_URL= diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100755 index 0000000..a578d06 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,245 @@ +module.exports = { + env: { + browser: true, + es2021: true, + }, + extends: [ + '@antfu/eslint-config-vue', + 'plugin:vue/vue3-recommended', + 'plugin:import/recommended', + 'plugin:import/typescript', + 'plugin:promise/recommended', + 'plugin:sonarjs/recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:case-police/recommended', + + // 'plugin:unicorn/recommended', + ], + parser: 'vue-eslint-parser', + parserOptions: { + ecmaVersion: 13, + parser: '@typescript-eslint/parser', + sourceType: 'module', + }, + plugins: [ + 'vue', + '@typescript-eslint', + 'regex', + ], + ignorePatterns: ['src/plugins/iconify/*.js', 'node_modules', 'dist', '*.d.ts', 'vendor'], + rules: { + 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', + + // indentation (Already present in TypeScript) + 'comma-spacing': ['error', { before: false, after: true }], + 'key-spacing': ['error', { afterColon: true }], + 'n/prefer-global/process': ['off'], + 'sonarjs/cognitive-complexity': ['off'], + + 'vue/first-attribute-linebreak': ['error', { + singleline: 'beside', + multiline: 'below', + }], + + 'antfu/top-level-function': 'off', + '@typescript-eslint/no-explicit-any': 'off', + + // indentation (Already present in TypeScript) + 'indent': ['error', 2], + + // Enforce trailing comma (Already present in TypeScript) + 'comma-dangle': ['error', 'always-multiline'], + + // Enforce consistent spacing inside braces of object (Already present in TypeScript) + 'object-curly-spacing': ['error', 'always'], + + // Enforce camelCase naming convention + 'camelcase': 'error', + + // Disable max-len + 'max-len': 'off', + + // we don't want it + 'semi': ['error', 'never'], + + // add parens ony when required in arrow function + 'arrow-parens': ['error', 'as-needed'], + + // add new line above comment + 'newline-before-return': 'error', + + // add new line above comment + 'lines-around-comment': [ + 'error', + { + beforeBlockComment: true, + beforeLineComment: true, + allowBlockStart: true, + allowClassStart: true, + allowObjectStart: true, + allowArrayStart: true, + + // We don't want to add extra space above closing SECTION + ignorePattern: '!SECTION', + }, + ], + + // Ignore _ as unused variable + '@typescript-eslint/no-unused-vars': ['error', { varsIgnorePattern: '^_+$', argsIgnorePattern: '^_+$' }], + + 'array-element-newline': ['error', 'consistent'], + 'array-bracket-newline': ['error', 'consistent'], + + 'vue/multi-word-component-names': 'off', + + 'padding-line-between-statements': [ + 'error', + { blankLine: 'always', prev: 'expression', next: 'const' }, + { blankLine: 'always', prev: 'const', next: 'expression' }, + { blankLine: 'always', prev: 'multiline-const', next: '*' }, + { blankLine: 'always', prev: '*', next: 'multiline-const' }, + ], + + // Plugin: eslint-plugin-import + 'import/prefer-default-export': 'off', + 'import/newline-after-import': ['error', { count: 1 }], + 'no-restricted-imports': ['error', 'vuetify/components', { + name: 'vue3-apexcharts', + message: 'apexcharts are autoimported', + }], + + // For omitting extension for ts files + 'import/extensions': [ + 'error', + 'ignorePackages', + { + js: 'never', + jsx: 'never', + ts: 'never', + tsx: 'never', + }, + ], + + // ignore virtual files + 'import/no-unresolved': [2, { + ignore: [ + '~pages$', + 'virtual:generated-layouts', + + // Ignore vite's ?raw imports + '.*\?raw', + ], + }], + + // Thanks: https://stackoverflow.com/a/63961972/10796681 + 'no-shadow': 'off', + '@typescript-eslint/no-shadow': ['error'], + + '@typescript-eslint/consistent-type-imports': 'error', + + // Plugin: eslint-plugin-promise + 'promise/always-return': 'off', + 'promise/catch-or-return': 'off', + + // ESLint plugin vue + 'vue/block-tag-newline': 'error', + 'vue/component-api-style': 'error', + 'vue/component-name-in-template-casing': ['error', 'PascalCase', { registeredComponentsOnly: false, ignores: ['/^swiper-/'] }], + 'vue/custom-event-name-casing': ['error', 'camelCase', { + ignores: [ + '/^(click):[a-z]+((\d)|([A-Z0-9][a-z0-9]+))*([A-Z])?/', + ], + }], + 'vue/define-macros-order': 'error', + 'vue/html-comment-content-newline': 'error', + 'vue/html-comment-content-spacing': 'error', + 'vue/html-comment-indent': 'error', + 'vue/match-component-file-name': 'error', + 'vue/no-child-content': 'error', + 'vue/require-default-prop': 'off', + + 'vue/no-duplicate-attr-inheritance': 'error', + 'vue/no-empty-component-block': 'error', + 'vue/no-multiple-objects-in-class': 'error', + 'vue/no-reserved-component-names': 'error', + 'vue/no-template-target-blank': 'error', + 'vue/no-useless-mustaches': 'error', + 'vue/no-useless-v-bind': 'error', + 'vue/padding-line-between-blocks': 'error', + 'vue/prefer-separate-static-class': 'error', + 'vue/prefer-true-attribute-shorthand': 'error', + 'vue/v-on-function-call': 'error', + 'vue/no-restricted-class': ['error', '/^(p|m)(l|r)-/'], + 'vue/valid-v-slot': ['error', { + allowModifiers: true, + }], + + // -- Extension Rules + 'vue/no-irregular-whitespace': 'error', + 'vue/template-curly-spacing': 'error', + + // -- Sonarlint + 'sonarjs/no-duplicate-string': 'off', + 'sonarjs/no-nested-template-literals': 'off', + + // -- Unicorn + // 'unicorn/filename-case': 'off', + // 'unicorn/prevent-abbreviations': ['error', { + // replacements: { + // props: false, + // }, + // }], + + // Internal Rules + 'valid-appcardcode-code-prop': 'error', + 'valid-appcardcode-demo-sfc': 'error', + + // https://github.com/gmullerb/eslint-plugin-regex + 'regex/invalid': [ + 'error', + [ + { + regex: '@/assets/images', + replacement: '@images', + message: 'Use \'@images\' path alias for image imports', + }, + { + regex: '@/assets/styles', + replacement: '@styles', + message: 'Use \'@styles\' path alias for importing styles from \'src/assets/styles\'', + }, + + { + id: 'Disallow icon of icon library', + regex: 'mdi-\\w', + message: 'Only \'tabler\' icons are allowed', + }, + + { + regex: '@core/\\w', + message: 'You can\'t use @core when you are in @layouts module', + files: { + inspect: '@layouts/.*', + }, + }, + { + regex: 'useLayouts\\(', + message: '`useLayouts` composable is only allowed in @layouts & @core directory. Please use `useThemeConfig` composable instead.', + files: { + inspect: '^(?!.*(@core|@layouts)).*', + }, + }, + ], + + // Ignore files + '\.eslintrc\.cjs', + ], + }, + settings: { + 'import/resolver': { + node: true, + typescript: {}, + }, + }, +} diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..11d02e4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,43 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# 👉 Custom Git ignores + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +!.vscode/settings.json +!.vscode/*.code-snippets +!.vscode/tours +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? +.yarn + +# iconify dist files +src/plugins/iconify/icons.css + +# Ignore MSW script +public/mockServiceWorker.js + +# Env files +.env* +!.env.example diff --git a/.npmrc b/.npmrc new file mode 100755 index 0000000..4b10cef --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +auto-install-peers=true +shamefully-hoist=true diff --git a/.nvmrc b/.nvmrc new file mode 100755 index 0000000..b009dfb --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +lts/* diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100755 index 0000000..b028674 --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1,45 @@ +{ + "extends": [ + "stylelint-config-standard-scss", + "stylelint-config-idiomatic-order" + ], + "plugins": [ + "stylelint-use-logical-spec", + "stylelint-codeguide" + ], + "overrides": [ + { + "files": [ + "**/*.scss" + ], + "customSyntax": "postcss-scss" + }, + { + "files": [ + "**/*.vue" + ], + "customSyntax": "postcss-html" + } + ], + "rules": { + "codeguide/max-line-length": [ + 120, + { + "ignore": "comments" + } + ], + "codeguide/indentation": 2, + "liberty/use-logical-spec": true, + "selector-class-pattern": null, + "color-function-notation": null, + "annotation-no-unknown": [ + true, + { + "ignoreAnnotations": [ + "default" + ] + } + ], + "media-feature-range-notation": null + } +} diff --git a/.vscode/anchor-comments.code-snippets b/.vscode/anchor-comments.code-snippets new file mode 100755 index 0000000..7342c88 --- /dev/null +++ b/.vscode/anchor-comments.code-snippets @@ -0,0 +1,23 @@ +{ + "Add hand emoji": { + "prefix": "cm-hand-emoji", + "body": [ + "👉" + ], + "description": "Add hand emoji" + }, + "Add info emoji": { + "prefix": "cm-info-emoji", + "body": [ + "ℹ️" + ], + "description": "Add info emoji" + }, + "Add warning emoji": { + "prefix": "cm-warning-emoji", + "body": [ + "❗" + ], + "description": "Add warning emoji" + } +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100755 index 0000000..27843f1 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,15 @@ +{ + "recommendations": [ + "dbaeumer.vscode-eslint", + "editorconfig.editorconfig", + "xabikos.javascriptsnippets", + "stylelint.vscode-stylelint", + "fabiospampinato.vscode-highlight", + "github.vscode-pull-request-github", + "vue.volar", + "antfu.iconify", + "cipchk.cssrem", + "matijao.vue-nuxt-snippets", + "dongido.sync-env" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100755 index 0000000..3326d67 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,113 @@ +{ + "editor.formatOnSave": true, + "files.insertFinalNewline": true, + "javascript.updateImportsOnFileMove.enabled": "always", + "[javascript]": { + "editor.defaultFormatter": "dbaeumer.vscode-eslint" + }, + "[typescript]": { + "editor.defaultFormatter": "dbaeumer.vscode-eslint", + "editor.autoClosingBrackets": "always" + }, + "[markdown]": { + "editor.defaultFormatter": "DavidAnson.vscode-markdownlint" + }, + // SCSS + "[scss]": { + "editor.defaultFormatter": "stylelint.vscode-stylelint" + }, + // JSON + "[json]": { + "editor.defaultFormatter": "vscode.json-language-features" + }, + "[jsonc]": { + "editor.defaultFormatter": "vscode.json-language-features" + }, + // Vue + "[vue]": { + "editor.defaultFormatter": "dbaeumer.vscode-eslint", + }, + // Extension: Volar + "volar.preview.port": 3000, + "volar.completion.preferredTagNameCase": "pascal", + // Extension: ESLint + "eslint.options": { + "rulePaths": [ + "eslint-internal-rules" + ] + }, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true, + "source.fixAll.stylelint": true, + "source.organizeImports": true, + }, + "eslint.alwaysShowStatus": true, + "eslint.format.enable": true, + // Extension: Stylelint + "stylelint.packageManager": "pnpm", + "stylelint.validate": [ + "css", + "scss", + "vue" + ], + // Extension: Spell Checker + "cSpell.words": [ + "Composables", + "Customizer", + "flagpack", + "Iconify", + "psudo", + "stylelint", + "touchless", + "triggerer", + "vuetify" + ], + // Extension: Comment Anchors + "commentAnchors.tags.list": [ + { + "tag": "ℹ️", + "scope": "hidden", + // This color is taken from "Better Comments" Extension (?) + "highlightColor": "#3498DB", + "styleComment": true, + "isItalic": false, + }, + { + "tag": "👉", + "scope": "file", + // This color is taken from "Better Comments" Extension (*) + "highlightColor": "#98C379", + "styleComment": true, + "isItalic": false + }, + { + "tag": "❗", + "scope": "hidden", + // This color is taken from "Better Comments" Extension (*) + "highlightColor": "#FF2D00", + "styleComment": true, + "isItalic": false, + }, + ], + // Extension: fabiospampinato.vscode-highlight + "highlight.regexFlags": "gi", + "highlight.regexes": { + // We flaged this for enforcing logical CSS properties + "(100vh|translate|margin:|padding:|margin-left|margin-right|rotate|text-align|border-top|border-right|border-bottom|border-left|float|background-position|transform|width|height|top|left|bottom|right|float|clear|(p|m)(l|r)-|border-(start|end)-(start|end)-radius)": [ + { + // "rangeBehavior": 1, + "borderWidth": "1px", + "borderColor": "tomato", + "borderStyle": "solid" + } + ], + "(overflow-x:|overflow-y:)": [ + { + // "rangeBehavior": 1, + "borderWidth": "1px", + "borderColor": "green", + "borderStyle": "solid" + } + ] + } +} diff --git a/.vscode/vue-ts.code-snippets b/.vscode/vue-ts.code-snippets new file mode 100755 index 0000000..360713a --- /dev/null +++ b/.vscode/vue-ts.code-snippets @@ -0,0 +1,18 @@ +{ + "Vue TS - DefineProps": { + "prefix": "dprops", + "body": [ + "defineProps<${1:Props}>()" + ], + "description": "DefineProps in script setup" + }, + "Vue TS - Props interface": { + "prefix": "iprops", + "body": [ + "interface Props {", + " ${1}", + "}" + ], + "description": "Create props interface in script setup" + } +} diff --git a/.vscode/vue.code-snippets b/.vscode/vue.code-snippets new file mode 100755 index 0000000..814d167 --- /dev/null +++ b/.vscode/vue.code-snippets @@ -0,0 +1,63 @@ +{ + "script": { + "prefix": "vue-sfc-ts", + "body": [ + "", + "", + "", + "", + "", + "" + ], + "description": "Vue SFC Typescript" + }, + "template": { + "scope": "vue", + "prefix": "template", + "body": [ + "" + ], + "description": "Create