From af53445c269342e69913f8514806d01f04520f03 Mon Sep 17 00:00:00 2001 From: MasterJah Date: Fri, 20 Feb 2026 13:30:03 +0300 Subject: [PATCH] =?UTF-8?q?init:=20=D1=87=D0=B8=D1=81=D1=82=D1=8B=D0=B9=20?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D1=80=D1=82=20Laravel=20+=20Vuexy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 38 + .env.example | 67 + .eslintrc.cjs | 238 + .gitattributes | 207 + .gitignore | 66 + .npmrc | 2 + .nvmrc | 1 + .stylelintrc.json | 46 + .vscode/anchor-comments.code-snippets | 23 + .vscode/extensions.json | 15 + .vscode/settings.json | 96 + .vscode/vue-ts.code-snippets | 18 + .vscode/vue.code-snippets | 63 + .vscode/vuetify.code-snippets | 52 + README.md | 35 + app/Http/Controllers/Controller.php | 8 + app/Models/User.php | 48 + app/Providers/AppServiceProvider.php | 24 + artisan | 18 + auto-imports.d.ts | 725 + bootstrap/app.php | 18 + bootstrap/cache/.gitignore | 2 + bootstrap/providers.php | 5 + components.d.ts | 395 + composer.json | 75 + composer.lock | 8098 ++++++++ config/app.php | 126 + config/auth.php | 115 + config/cache.php | 108 + config/database.php | 174 + config/filesystems.php | 80 + config/logging.php | 132 + config/mail.php | 118 + config/queue.php | 112 + config/services.php | 38 + config/session.php | 217 + database/.gitignore | 1 + database/factories/UserFactory.php | 44 + .../0001_01_01_000000_create_users_table.php | 49 + .../0001_01_01_000001_create_cache_table.php | 35 + .../0001_01_01_000002_create_jobs_table.php | 57 + database/seeders/DatabaseSeeder.php | 23 + docker-compose.yml | 90 + env.d.ts | 12 + package-lock.json | 16187 ++++++++++++++++ package.json | 135 + phpunit.xml | 32 + pnpm-lock.yaml | 8742 +++++++++ public/.htaccess | 25 + 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/images/svg/discord.svg | 10 + public/images/svg/gift.svg | 8 + public/images/svg/keyboard.svg | 8 + public/images/svg/laptop.svg | 8 + public/images/svg/lightbulb.svg | 8 + public/images/svg/rocket.svg | 8 + public/index.php | 20 + public/loader.css | 79 + public/robots.txt | 2 + resources/images/avatars/avatar-1.png | Bin 0 -> 13543 bytes resources/images/avatars/avatar-10.png | Bin 0 -> 17112 bytes resources/images/avatars/avatar-11.png | Bin 0 -> 13944 bytes resources/images/avatars/avatar-12.png | Bin 0 -> 16153 bytes resources/images/avatars/avatar-13.png | Bin 0 -> 16040 bytes resources/images/avatars/avatar-14.png | Bin 0 -> 15773 bytes resources/images/avatars/avatar-15.png | Bin 0 -> 15852 bytes resources/images/avatars/avatar-2.png | Bin 0 -> 15715 bytes resources/images/avatars/avatar-3.png | Bin 0 -> 14590 bytes resources/images/avatars/avatar-4.png | Bin 0 -> 15490 bytes resources/images/avatars/avatar-5.png | Bin 0 -> 14799 bytes resources/images/avatars/avatar-6.png | Bin 0 -> 16277 bytes resources/images/avatars/avatar-7.png | Bin 0 -> 13815 bytes resources/images/avatars/avatar-8.png | Bin 0 -> 16376 bytes resources/images/avatars/avatar-9.png | Bin 0 -> 18005 bytes .../images/cards/logo-mastercard-small.png | Bin 0 -> 3048 bytes resources/images/cards/paypal-primary.png | Bin 0 -> 673 bytes resources/images/cards/paypal-rounded.png | Bin 0 -> 924 bytes .../images/customizer-icons/border-light.svg | 16 + .../customizer-icons/collapsed-light.svg | 17 + .../images/customizer-icons/compact-light.svg | 11 + .../images/customizer-icons/default-light.svg | 17 + .../customizer-icons/horizontal-light.svg | 12 + .../images/customizer-icons/ltr-light.svg | 15 + .../images/customizer-icons/rtl-light.svg | 15 + .../images/customizer-icons/wide-light.svg | 11 + resources/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 resources/images/icons/payments/visa-icon.png | Bin 0 -> 2376 bytes resources/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 -> 14740 bytes .../images/illustrations/girl-app-academy.png | Bin 0 -> 41975 bytes .../images/illustrations/laptop-girl.png | Bin 0 -> 44793 bytes .../register-multi-step-illustration-dark.png | Bin 0 -> 33109 bytes ...register-multi-step-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 resources/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 resources/images/misc/fleet-car.png | Bin 0 -> 6857 bytes resources/images/pages/1.png | Bin 0 -> 88584 bytes resources/images/pages/2.png | Bin 0 -> 46099 bytes resources/images/pages/3.png | Bin 0 -> 58413 bytes resources/images/pages/401.png | Bin 0 -> 29837 bytes resources/images/pages/404.png | Bin 0 -> 34389 bytes resources/images/pages/5.jpg | Bin 0 -> 6790 bytes resources/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 resources/images/pages/TimelineRectangle1.png | Bin 0 -> 16638 bytes resources/images/pages/TimelineRectangle2.png | Bin 0 -> 10012 bytes resources/images/pages/TimelineRectangle3.png | Bin 0 -> 14744 bytes resources/images/pages/TimelineRectangle4.png | Bin 0 -> 22560 bytes .../pages/academy-course-illustration1.png | Bin 0 -> 44790 bytes .../academy-course-illustration2-dark.png | Bin 0 -> 29769 bytes .../academy-course-illustration2-light.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 -> 49258 bytes ...-v2-forgot-password-illustration-light.png | Bin 0 -> 48149 bytes ...th-v2-login-illustration-bordered-dark.png | Bin 0 -> 50857 bytes ...h-v2-login-illustration-bordered-light.png | Bin 0 -> 50076 bytes .../pages/auth-v2-login-illustration-dark.png | Bin 0 -> 54926 bytes .../auth-v2-login-illustration-light.png | Bin 0 -> 55244 bytes ...v2-register-illustration-bordered-dark.png | Bin 0 -> 84246 bytes ...2-register-illustration-bordered-light.png | Bin 0 -> 105130 bytes .../auth-v2-register-illustration-dark.png | Bin 0 -> 88378 bytes .../auth-v2-register-illustration-light.png | Bin 0 -> 112804 bytes ...th-v2-reset-password-illustration-dark.png | Bin 0 -> 99787 bytes ...h-v2-reset-password-illustration-light.png | Bin 0 -> 24410 bytes .../auth-v2-two-step-illustration-dark.png | Bin 0 -> 49857 bytes .../auth-v2-two-step-illustration-light.png | Bin 0 -> 49424 bytes ...auth-v2-verify-email-illustration-dark.png | Bin 0 -> 59298 bytes ...uth-v2-verify-email-illustration-light.png | Bin 0 -> 59092 bytes resources/images/pages/background-1.jpg | Bin 0 -> 36820 bytes resources/images/pages/background-2.jpg | Bin 0 -> 74443 bytes resources/images/pages/background-3.jpg | Bin 0 -> 88783 bytes resources/images/pages/boy-illustration.png | Bin 0 -> 12187 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 resources/images/pages/custom-radio-img-1.png | Bin 0 -> 44592 bytes resources/images/pages/custom-radio-img-2.png | Bin 0 -> 30000 bytes resources/images/pages/custom-radio-img-3.png | Bin 0 -> 38806 bytes resources/images/pages/empty-cart.png | Bin 0 -> 52479 bytes .../pages/forgot-password-illustration.png | Bin 0 -> 13375 bytes resources/images/pages/girl-using-mobile.png | Bin 0 -> 12662 bytes resources/images/pages/google-home.png | Bin 0 -> 9814 bytes .../images/pages/guitar-course-poster.png | Bin 0 -> 33258 bytes resources/images/pages/instructor-poster.png | Bin 0 -> 80272 bytes resources/images/pages/iphone-11.png | Bin 0 -> 11681 bytes resources/images/pages/misc-coming-soon.png | Bin 0 -> 33557 bytes resources/images/pages/misc-mask-dark.png | Bin 0 -> 1902 bytes resources/images/pages/misc-mask-light.png | Bin 0 -> 3777 bytes .../images/pages/misc-under-maintenance.png | Bin 0 -> 96366 bytes resources/images/pages/puma-shoes.jpeg | Bin 0 -> 13191 bytes .../pages/register-multi-step-bg-dark.png | Bin 0 -> 3213 bytes .../pages/register-multi-step-bg-light.png | Bin 0 -> 2988 bytes .../images/pages/singing-course-poster.png | Bin 0 -> 31061 bytes resources/images/pages/themeselection-qr.png | Bin 0 -> 3637 bytes resources/images/pages/tree-pot.png | Bin 0 -> 46666 bytes .../images/pages/user-profile-header-bg.png | Bin 0 -> 67090 bytes resources/images/svg/Card.svg | 8 + resources/images/svg/Check.svg | 4 + resources/images/svg/Diamond.svg | 12 + resources/images/svg/Suitcase.svg | 4 + resources/images/svg/Wallet.svg | 10 + resources/images/svg/address.svg | 25 + resources/images/svg/auth-v1-bottom-shape.svg | 4 + resources/images/svg/auth-v1-top-shape.svg | 4 + resources/images/svg/cart.svg | 5 + resources/images/svg/checkbox-checked.svg | 4 + .../images/svg/checkbox-indeterminate.svg | 4 + resources/images/svg/checkbox-unchecked.svg | 10 + resources/images/svg/discord.svg | 10 + resources/images/svg/gift.svg | 8 + resources/images/svg/home.svg | 5 + resources/images/svg/keyboard.svg | 4 + resources/images/svg/laptop.svg | 4 + resources/images/svg/lightbulb.svg | 8 + resources/images/svg/office.svg | 4 + resources/images/svg/paper-send.svg | 4 + resources/images/svg/payment.svg | 21 + resources/images/svg/radio-checked.svg | 3 + resources/images/svg/radio-unchecked.svg | 3 + resources/images/svg/rocket.svg | 4 + resources/images/svg/trending.svg | 14 + resources/images/svg/user-info.svg | 4 + resources/images/svg/user.svg | 6 + resources/images/svg/wizard-account.svg | 6 + resources/images/svg/wizard-address.svg | 18 + resources/images/svg/wizard-personal.svg | 6 + resources/images/svg/wizard-social-link.svg | 6 + resources/images/svg/wizard-submit.svg | 6 + resources/styles/@core/base/_components.scss | 195 + resources/styles/@core/base/_dark.scss | 16 + .../_default-layout-w-horizontal-nav.scss | 45 + .../base/_default-layout-w-vertical-nav.scss | 103 + .../styles/@core/base/_default-layout.scss | 16 + .../styles/@core/base/_horizontal-nav.scss | 194 + resources/styles/@core/base/_index.scss | 48 + resources/styles/@core/base/_layouts.scss | 63 + resources/styles/@core/base/_misc.scss | 20 + resources/styles/@core/base/_mixins.scss | 63 + .../styles/@core/base/_route-transitions.scss | 70 + resources/styles/@core/base/_utilities.scss | 189 + resources/styles/@core/base/_utils.scss | 90 + resources/styles/@core/base/_variables.scss | 198 + .../styles/@core/base/_vertical-nav.scss | 255 + .../@core/base/libs/_perfect-scrollbar.scss | 35 + .../@core/base/libs/vuetify/_index.scss | 1 + .../@core/base/libs/vuetify/_overrides.scss | 262 + .../@core/base/libs/vuetify/_variables.scss | 62 + .../_default-layout-horizontal-nav.scss | 27 + .../_default-layout-vertical-nav.scss | 45 + .../base/placeholders/_default-layout.scss | 3 + .../base/placeholders/_horizontal-nav.scss | 98 + .../@core/base/placeholders/_index.scss | 7 + .../styles/@core/base/placeholders/_misc.scss | 7 + .../styles/@core/base/placeholders/_nav.scss | 33 + .../base/placeholders/_vertical-nav.scss | 80 + .../styles/@core/base/skins/_bordered.scss | 72 + resources/styles/@core/base/skins/_index.scss | 1 + .../_default-layout-w-horizontal-nav.scss | 9 + .../_default-layout-w-vertical-nav.scss | 20 + .../@core/template/_horizontal-nav.scss | 40 + resources/styles/@core/template/_mixins.scss | 6 + .../styles/@core/template/_utilities.scss | 49 + .../styles/@core/template/_variables.scss | 102 + .../styles/@core/template/_vertical-nav.scss | 57 + resources/styles/@core/template/index.scss | 17 + .../@core/template/libs/apex-chart.scss | 108 + .../@core/template/libs/full-calendar.scss | 351 + .../styles/@core/template/libs/shepherd.scss | 94 + .../styles/@core/template/libs/swiper.scss | 5 + .../template/libs/vuetify/_variables.scss | 348 + .../libs/vuetify/components/_alert.scss | 114 + .../libs/vuetify/components/_avatar.scss | 27 + .../libs/vuetify/components/_badge.scss | 25 + .../libs/vuetify/components/_button.scss | 280 + .../libs/vuetify/components/_cards.scss | 3 + .../libs/vuetify/components/_checkbox.scss | 65 + .../libs/vuetify/components/_chip.scss | 102 + .../libs/vuetify/components/_dialog.scss | 27 + .../vuetify/components/_expansion-panels.scss | 106 + .../libs/vuetify/components/_field.scss | 308 + .../libs/vuetify/components/_list.scss | 30 + .../libs/vuetify/components/_menu.scss | 35 + .../libs/vuetify/components/_otp-input.scss | 17 + .../libs/vuetify/components/_pagination.scss | 140 + .../libs/vuetify/components/_progress.scss | 13 + .../libs/vuetify/components/_radio.scss | 46 + .../libs/vuetify/components/_rating.scss | 20 + .../libs/vuetify/components/_slider.scss | 27 + .../libs/vuetify/components/_snackbar.scss | 10 + .../libs/vuetify/components/_switch.scss | 58 + .../libs/vuetify/components/_table.scss | 48 + .../libs/vuetify/components/_tabs.scss | 91 + .../libs/vuetify/components/_textarea.scss | 9 + .../libs/vuetify/components/_timeline.scss | 99 + .../libs/vuetify/components/_tooltip.scss | 6 + .../libs/vuetify/components/index.scss | 25 + .../@core/template/libs/vuetify/index.scss | 3 + .../template/libs/vuetify/overrides.scss | 18 + .../styles/@core/template/pages/misc.scss | 20 + .../@core/template/pages/page-auth.scss | 63 + .../_default-layout-horizontal-nav.scss | 7 + .../_default-layout-vertical-nav.scss | 8 + .../placeholders/_horizontal-nav.scss | 47 + .../@core/template/placeholders/_index.scss | 6 + .../@core/template/placeholders/_misc.scss | 3 + .../@core/template/placeholders/_nav.scss | 27 + .../template/placeholders/_vertical-nav.scss | 40 + .../@core/template/skins/_bordered.scss | 82 + .../styles/@core/template/skins/_index.scss | 1 + resources/styles/styles.scss | 1 + resources/styles/variables/_template.scss | 6 + resources/styles/variables/_vuetify.scss | 7 + .../ts/@core/components/AppBarSearch.vue | 278 + .../components/AppDrawerHeaderSection.vue | 30 + resources/ts/@core/components/AppStepper.vue | 371 + resources/ts/@core/components/BuyNow.vue | 92 + .../CardStatisticsVerticalSimple.vue | 35 + .../ts/@core/components/CustomizerSection.vue | 27 + .../ts/@core/components/DialogCloseBtn.vue | 25 + resources/ts/@core/components/DropZone.vue | 132 + resources/ts/@core/components/I18n.vue | 47 + resources/ts/@core/components/MoreBtn.vue | 31 + .../ts/@core/components/Notifications.vue | 248 + .../components/ProductDescriptionEditor.vue | 198 + resources/ts/@core/components/ScrollToTop.vue | 40 + resources/ts/@core/components/Shortcuts.vue | 96 + .../ts/@core/components/TablePagination.vue | 39 + .../ts/@core/components/TheCustomizer.vue | 629 + .../ts/@core/components/ThemeSwitcher.vue | 60 + .../ts/@core/components/TiptapEditor.vue | 166 + .../app-form-elements/AppAutocomplete.vue | 58 + .../app-form-elements/AppCombobox.vue | 58 + .../app-form-elements/AppDateTimePicker.vue | 544 + .../app-form-elements/AppSelect.vue | 51 + .../app-form-elements/AppTextField.vue | 50 + .../app-form-elements/AppTextarea.vue | 51 + .../app-form-elements/CustomCheckboxes.vue | 81 + .../CustomCheckboxesWithIcon.vue | 95 + .../CustomCheckboxesWithImage.vue | 93 + .../app-form-elements/CustomRadios.vue | 84 + .../CustomRadiosWithIcon.vue | 88 + .../CustomRadiosWithImage.vue | 100 + .../@core/components/cards/AppCardActions.vue | 167 + .../ts/@core/components/cards/AppCardCode.vue | 154 + .../cards/CardStatisticsHorizontal.vue | 41 + .../cards/CardStatisticsVertical.vue | 48 + resources/ts/@core/composable/createUrl.ts | 20 + resources/ts/@core/composable/useCookie.ts | 43 + .../composable/useGenerateImageVariant.ts | 28 + .../@core/composable/useResponsiveSidebar.ts | 29 + resources/ts/@core/composable/useSkins.ts | 42 + resources/ts/@core/enums.ts | 21 + resources/ts/@core/index.ts | 43 + resources/ts/@core/initCore.ts | 93 + .../@core/libs/apex-chart/apexCharConfig.ts | 701 + .../ts/@core/libs/chartjs/chartjsConfig.ts | 372 + .../@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 + resources/ts/@core/stores/config.ts | 80 + resources/ts/@core/types.ts | 49 + resources/ts/@core/utils/colorConverter.ts | 35 + resources/ts/@core/utils/formatters.ts | 48 + resources/ts/@core/utils/helpers.ts | 32 + resources/ts/@core/utils/plugins.ts | 53 + resources/ts/@core/utils/validators.ts | 105 + resources/ts/@core/utils/vuetify.ts | 13 + resources/ts/@layouts/components.ts | 11 + .../ts/@layouts/components/HorizontalNav.vue | 36 + .../components/HorizontalNavGroup.vue | 110 + .../components/HorizontalNavLayout.vue | 151 + .../@layouts/components/HorizontalNavLink.vue | 56 + .../components/HorizontalNavPopper.vue | 175 + .../@layouts/components/TransitionExpand.vue | 92 + .../ts/@layouts/components/VNodeRenderer.tsx | 17 + .../ts/@layouts/components/VerticalNav.vue | 240 + .../@layouts/components/VerticalNavGroup.vue | 228 + .../@layouts/components/VerticalNavLayout.vue | 219 + .../@layouts/components/VerticalNavLink.vue | 68 + .../components/VerticalNavSectionTitle.vue | 37 + resources/ts/@layouts/config.ts | 43 + resources/ts/@layouts/enums.ts | 27 + resources/ts/@layouts/index.ts | 49 + resources/ts/@layouts/plugins/casl.ts | 56 + resources/ts/@layouts/stores/config.ts | 131 + resources/ts/@layouts/styles/_classes.scss | 3 + .../ts/@layouts/styles/_default-layout.scss | 35 + resources/ts/@layouts/styles/_global.scss | 10 + resources/ts/@layouts/styles/_mixins.scss | 30 + .../ts/@layouts/styles/_placeholders.scss | 53 + resources/ts/@layouts/styles/_rtl.scss | 7 + resources/ts/@layouts/styles/_variables.scss | 29 + resources/ts/@layouts/styles/index.scss | 3 + resources/ts/@layouts/symbols.ts | 1 + resources/ts/@layouts/types.ts | 126 + resources/ts/@layouts/utils.ts | 180 + resources/ts/App.vue | 26 + .../ts/components/AppLoadingIndicator.vue | 63 + resources/ts/components/AppPricing.vue | 247 + resources/ts/components/AppSearchHeader.vue | 77 + resources/ts/components/ErrorHeader.vue | 40 + .../dialogs/AddAuthenticatorAppDialog.vue | 101 + .../dialogs/AddEditAddressDialog.vue | 238 + .../dialogs/AddEditPermissionDialog.vue | 93 + .../components/dialogs/AddEditRoleDialog.vue | 302 + .../dialogs/AddPaymentMethodDialog.vue | 120 + .../components/dialogs/CardAddEditDialog.vue | 153 + .../ts/components/dialogs/ConfirmDialog.vue | 151 + .../ts/components/dialogs/CreateAppDialog.vue | 459 + .../dialogs/EnableOneTimePasswordDialog.vue | 85 + .../dialogs/PaymentProvidersDialog.vue | 122 + .../components/dialogs/PricingPlanDialog.vue | 34 + .../components/dialogs/ReferAndEarnDialog.vue | 181 + .../components/dialogs/ShareProjectDialog.vue | 198 + .../dialogs/TwoFactorAuthDialog.vue | 120 + .../components/dialogs/UserInfoEditDialog.vue | 242 + .../dialogs/UserUpgradePlanDialog.vue | 101 + resources/ts/composables/useApi.ts | 41 + resources/ts/layouts/blank.vue | 45 + .../DefaultLayoutWithHorizontalNav.vue | 51 + .../DefaultLayoutWithVerticalNav.vue | 54 + resources/ts/layouts/components/Footer.vue | 41 + .../components/NavBarNotifications.vue | 92 + .../ts/layouts/components/NavSearchBar.vue | 266 + .../ts/layouts/components/NavbarShortcuts.vue | 45 + .../components/NavbarThemeSwitcher.vue | 22 + .../ts/layouts/components/UserProfile.vue | 130 + resources/ts/layouts/default.vue | 56 + resources/ts/main.ts | 17 + resources/ts/navigation/horizontal/index.ts | 12 + resources/ts/navigation/vertical/index.ts | 12 + resources/ts/pages/[...error].vue | 54 + resources/ts/pages/chat.vue | 428 + resources/ts/pages/index.vue | 25 + resources/ts/pages/login.vue | 185 + resources/ts/pages/second-page.vue | 13 + resources/ts/plugins/1.router/index.ts | 36 + resources/ts/plugins/2.pinia.ts | 8 + resources/ts/plugins/iconify/build-icons.ts | 299 + resources/ts/plugins/iconify/index.ts | 5 + resources/ts/plugins/iconify/package.json | 3 + resources/ts/plugins/layouts.ts | 14 + resources/ts/plugins/vuetify/defaults.ts | 191 + resources/ts/plugins/vuetify/icons.ts | 84 + resources/ts/plugins/vuetify/index.ts | 47 + resources/ts/plugins/vuetify/theme.ts | 155 + resources/ts/plugins/webfontloader.ts | 19 + resources/ts/utils/api.ts | 10 + resources/ts/utils/constants.ts | 1 + resources/ts/utils/paginationMeta.ts | 6 + ...hatActiveChatUserProfileSidebarContent.vue | 182 + resources/ts/views/apps/chat/ChatContact.vue | 108 + .../apps/chat/ChatLeftSidebarContent.vue | 136 + resources/ts/views/apps/chat/ChatLog.vue | 149 + .../chat/ChatUserProfileSidebarContent.vue | 199 + resources/ts/views/apps/chat/useChat.ts | 23 + resources/ts/views/apps/chat/useChatStore.ts | 93 + .../pages/authentication/AuthProvider.vue | 46 + resources/views/application.blade.php | 55 + routes/console.php | 8 + routes/web.php | 7 + shims.d.ts | 15 + storage/app/.gitignore | 4 + storage/app/private/.gitignore | 2 + storage/app/public/.gitignore | 2 + storage/framework/.gitignore | 9 + storage/framework/cache/.gitignore | 3 + storage/framework/cache/data/.gitignore | 2 + storage/framework/sessions/.gitignore | 2 + storage/framework/testing/.gitignore | 2 + storage/framework/views/.gitignore | 2 + tests/Feature/ExampleTest.php | 19 + tests/TestCase.php | 10 + tests/Unit/ExampleTest.php | 16 + themeConfig.ts | 71 + tsconfig.json | 82 + typed-router.d.ts | 27 + vite.config.ts | 105 + 474 files changed, 58860 insertions(+) create mode 100644 .editorconfig create mode 100644 .env.example create mode 100644 .eslintrc.cjs create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 .nvmrc create mode 100644 .stylelintrc.json create mode 100644 .vscode/anchor-comments.code-snippets create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/vue-ts.code-snippets create mode 100644 .vscode/vue.code-snippets create mode 100644 .vscode/vuetify.code-snippets create mode 100644 README.md create mode 100644 app/Http/Controllers/Controller.php create mode 100644 app/Models/User.php create mode 100644 app/Providers/AppServiceProvider.php create mode 100644 artisan create mode 100644 auto-imports.d.ts create mode 100644 bootstrap/app.php create mode 100644 bootstrap/cache/.gitignore create mode 100644 bootstrap/providers.php create mode 100644 components.d.ts create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 config/app.php create mode 100644 config/auth.php create mode 100644 config/cache.php create mode 100644 config/database.php create mode 100644 config/filesystems.php create mode 100644 config/logging.php create mode 100644 config/mail.php create mode 100644 config/queue.php create mode 100644 config/services.php create mode 100644 config/session.php create mode 100644 database/.gitignore create mode 100644 database/factories/UserFactory.php create mode 100644 database/migrations/0001_01_01_000000_create_users_table.php create mode 100644 database/migrations/0001_01_01_000001_create_cache_table.php create mode 100644 database/migrations/0001_01_01_000002_create_jobs_table.php create mode 100644 database/seeders/DatabaseSeeder.php create mode 100644 docker-compose.yml create mode 100644 env.d.ts create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 phpunit.xml create mode 100644 pnpm-lock.yaml create mode 100644 public/.htaccess create mode 100644 public/favicon.ico create mode 100644 public/images/avatars/avatar-1.png create mode 100644 public/images/avatars/avatar-2.png create mode 100644 public/images/svg/discord.svg create mode 100644 public/images/svg/gift.svg create mode 100644 public/images/svg/keyboard.svg create mode 100644 public/images/svg/laptop.svg create mode 100644 public/images/svg/lightbulb.svg create mode 100644 public/images/svg/rocket.svg create mode 100644 public/index.php create mode 100644 public/loader.css create mode 100644 public/robots.txt create mode 100644 resources/images/avatars/avatar-1.png create mode 100644 resources/images/avatars/avatar-10.png create mode 100644 resources/images/avatars/avatar-11.png create mode 100644 resources/images/avatars/avatar-12.png create mode 100644 resources/images/avatars/avatar-13.png create mode 100644 resources/images/avatars/avatar-14.png create mode 100644 resources/images/avatars/avatar-15.png create mode 100644 resources/images/avatars/avatar-2.png create mode 100644 resources/images/avatars/avatar-3.png create mode 100644 resources/images/avatars/avatar-4.png create mode 100644 resources/images/avatars/avatar-5.png create mode 100644 resources/images/avatars/avatar-6.png create mode 100644 resources/images/avatars/avatar-7.png create mode 100644 resources/images/avatars/avatar-8.png create mode 100644 resources/images/avatars/avatar-9.png create mode 100644 resources/images/cards/logo-mastercard-small.png create mode 100644 resources/images/cards/paypal-primary.png create mode 100644 resources/images/cards/paypal-rounded.png create mode 100644 resources/images/customizer-icons/border-light.svg create mode 100644 resources/images/customizer-icons/collapsed-light.svg create mode 100644 resources/images/customizer-icons/compact-light.svg create mode 100644 resources/images/customizer-icons/default-light.svg create mode 100644 resources/images/customizer-icons/horizontal-light.svg create mode 100644 resources/images/customizer-icons/ltr-light.svg create mode 100644 resources/images/customizer-icons/rtl-light.svg create mode 100644 resources/images/customizer-icons/wide-light.svg create mode 100644 resources/images/icons/payments/ae-icon.png create mode 100644 resources/images/icons/payments/american-express.png create mode 100644 resources/images/icons/payments/img/ae-dark.png create mode 100644 resources/images/icons/payments/img/american-express.png create mode 100644 resources/images/icons/payments/img/dc-dark.png create mode 100644 resources/images/icons/payments/img/dc-light.png create mode 100644 resources/images/icons/payments/img/jcb-dark.png create mode 100644 resources/images/icons/payments/img/jcb-light.png create mode 100644 resources/images/icons/payments/img/master-dark.png create mode 100644 resources/images/icons/payments/img/mastercard.png create mode 100644 resources/images/icons/payments/img/paypal-dark.png create mode 100644 resources/images/icons/payments/img/paypal-light.png create mode 100644 resources/images/icons/payments/img/visa-dark.png create mode 100644 resources/images/icons/payments/img/visa-light.png create mode 100644 resources/images/icons/payments/mastercard-icon.png create mode 100644 resources/images/icons/payments/mastercard.png create mode 100644 resources/images/icons/payments/visa-icon.png create mode 100644 resources/images/icons/payments/visa.png create mode 100644 resources/images/illustrations/boy-app-academy.png create mode 100644 resources/images/illustrations/congo-illustration.png create mode 100644 resources/images/illustrations/girl-app-academy.png create mode 100644 resources/images/illustrations/laptop-girl.png create mode 100644 resources/images/illustrations/register-multi-step-illustration-dark.png create mode 100644 resources/images/illustrations/register-multi-step-illustration-light.png create mode 100644 resources/images/illustrations/sidebar-pic-1.png create mode 100644 resources/images/illustrations/sidebar-pic-2.png create mode 100644 resources/images/illustrations/sidebar-pic-3.png create mode 100644 resources/images/illustrations/sitting-girl-with-laptop.png create mode 100644 resources/images/illustrations/standingGirlImg.png create mode 100644 resources/images/logo.svg create mode 100644 resources/images/misc/3d-safe-box-with-golden-dollar-coins.png create mode 100644 resources/images/misc/3d-space-rocket-with-smoke.png create mode 100644 resources/images/misc/dollar-coins-flying-pink-piggy-bank.png create mode 100644 resources/images/misc/fleet-car.png create mode 100644 resources/images/pages/1.png create mode 100644 resources/images/pages/2.png create mode 100644 resources/images/pages/3.png create mode 100644 resources/images/pages/401.png create mode 100644 resources/images/pages/404.png create mode 100644 resources/images/pages/5.jpg create mode 100644 resources/images/pages/6.jpg create mode 100644 resources/images/pages/DealTypeBackground-dark.png create mode 100644 resources/images/pages/DealTypeBackground-light.png create mode 100644 resources/images/pages/TimelineRectangle1.png create mode 100644 resources/images/pages/TimelineRectangle2.png create mode 100644 resources/images/pages/TimelineRectangle3.png create mode 100644 resources/images/pages/TimelineRectangle4.png create mode 100644 resources/images/pages/academy-course-illustration1.png create mode 100644 resources/images/pages/academy-course-illustration2-dark.png create mode 100644 resources/images/pages/academy-course-illustration2-light.png create mode 100644 resources/images/pages/app-academy-tutor-1.png create mode 100644 resources/images/pages/app-academy-tutor-2.png create mode 100644 resources/images/pages/app-academy-tutor-3.png create mode 100644 resources/images/pages/app-academy-tutor-4.png create mode 100644 resources/images/pages/app-academy-tutor-5.png create mode 100644 resources/images/pages/app-academy-tutor-6.png create mode 100644 resources/images/pages/app-search-header-bg.png create mode 100644 resources/images/pages/auth-v2-forgot-password-illustration-dark.png create mode 100644 resources/images/pages/auth-v2-forgot-password-illustration-light.png create mode 100644 resources/images/pages/auth-v2-login-illustration-bordered-dark.png create mode 100644 resources/images/pages/auth-v2-login-illustration-bordered-light.png create mode 100644 resources/images/pages/auth-v2-login-illustration-dark.png create mode 100644 resources/images/pages/auth-v2-login-illustration-light.png create mode 100644 resources/images/pages/auth-v2-register-illustration-bordered-dark.png create mode 100644 resources/images/pages/auth-v2-register-illustration-bordered-light.png create mode 100644 resources/images/pages/auth-v2-register-illustration-dark.png create mode 100644 resources/images/pages/auth-v2-register-illustration-light.png create mode 100644 resources/images/pages/auth-v2-reset-password-illustration-dark.png create mode 100644 resources/images/pages/auth-v2-reset-password-illustration-light.png create mode 100644 resources/images/pages/auth-v2-two-step-illustration-dark.png create mode 100644 resources/images/pages/auth-v2-two-step-illustration-light.png create mode 100644 resources/images/pages/auth-v2-verify-email-illustration-dark.png create mode 100644 resources/images/pages/auth-v2-verify-email-illustration-light.png create mode 100644 resources/images/pages/background-1.jpg create mode 100644 resources/images/pages/background-2.jpg create mode 100644 resources/images/pages/background-3.jpg create mode 100644 resources/images/pages/boy-illustration.png create mode 100644 resources/images/pages/custom-checkbox-img-1.png create mode 100644 resources/images/pages/custom-checkbox-img-2.png create mode 100644 resources/images/pages/custom-checkbox-img-3.png create mode 100644 resources/images/pages/custom-radio-img-1.png create mode 100644 resources/images/pages/custom-radio-img-2.png create mode 100644 resources/images/pages/custom-radio-img-3.png create mode 100644 resources/images/pages/empty-cart.png create mode 100644 resources/images/pages/forgot-password-illustration.png create mode 100644 resources/images/pages/girl-using-mobile.png create mode 100644 resources/images/pages/google-home.png create mode 100644 resources/images/pages/guitar-course-poster.png create mode 100644 resources/images/pages/instructor-poster.png create mode 100644 resources/images/pages/iphone-11.png create mode 100644 resources/images/pages/misc-coming-soon.png create mode 100644 resources/images/pages/misc-mask-dark.png create mode 100644 resources/images/pages/misc-mask-light.png create mode 100644 resources/images/pages/misc-under-maintenance.png create mode 100644 resources/images/pages/puma-shoes.jpeg create mode 100644 resources/images/pages/register-multi-step-bg-dark.png create mode 100644 resources/images/pages/register-multi-step-bg-light.png create mode 100644 resources/images/pages/singing-course-poster.png create mode 100644 resources/images/pages/themeselection-qr.png create mode 100644 resources/images/pages/tree-pot.png create mode 100644 resources/images/pages/user-profile-header-bg.png create mode 100644 resources/images/svg/Card.svg create mode 100644 resources/images/svg/Check.svg create mode 100644 resources/images/svg/Diamond.svg create mode 100644 resources/images/svg/Suitcase.svg create mode 100644 resources/images/svg/Wallet.svg create mode 100644 resources/images/svg/address.svg create mode 100644 resources/images/svg/auth-v1-bottom-shape.svg create mode 100644 resources/images/svg/auth-v1-top-shape.svg create mode 100644 resources/images/svg/cart.svg create mode 100644 resources/images/svg/checkbox-checked.svg create mode 100644 resources/images/svg/checkbox-indeterminate.svg create mode 100644 resources/images/svg/checkbox-unchecked.svg create mode 100644 resources/images/svg/discord.svg create mode 100644 resources/images/svg/gift.svg create mode 100644 resources/images/svg/home.svg create mode 100644 resources/images/svg/keyboard.svg create mode 100644 resources/images/svg/laptop.svg create mode 100644 resources/images/svg/lightbulb.svg create mode 100644 resources/images/svg/office.svg create mode 100644 resources/images/svg/paper-send.svg create mode 100644 resources/images/svg/payment.svg create mode 100644 resources/images/svg/radio-checked.svg create mode 100644 resources/images/svg/radio-unchecked.svg create mode 100644 resources/images/svg/rocket.svg create mode 100644 resources/images/svg/trending.svg create mode 100644 resources/images/svg/user-info.svg create mode 100644 resources/images/svg/user.svg create mode 100644 resources/images/svg/wizard-account.svg create mode 100644 resources/images/svg/wizard-address.svg create mode 100644 resources/images/svg/wizard-personal.svg create mode 100644 resources/images/svg/wizard-social-link.svg create mode 100644 resources/images/svg/wizard-submit.svg create mode 100644 resources/styles/@core/base/_components.scss create mode 100644 resources/styles/@core/base/_dark.scss create mode 100644 resources/styles/@core/base/_default-layout-w-horizontal-nav.scss create mode 100644 resources/styles/@core/base/_default-layout-w-vertical-nav.scss create mode 100644 resources/styles/@core/base/_default-layout.scss create mode 100644 resources/styles/@core/base/_horizontal-nav.scss create mode 100644 resources/styles/@core/base/_index.scss create mode 100644 resources/styles/@core/base/_layouts.scss create mode 100644 resources/styles/@core/base/_misc.scss create mode 100644 resources/styles/@core/base/_mixins.scss create mode 100644 resources/styles/@core/base/_route-transitions.scss create mode 100644 resources/styles/@core/base/_utilities.scss create mode 100644 resources/styles/@core/base/_utils.scss create mode 100644 resources/styles/@core/base/_variables.scss create mode 100644 resources/styles/@core/base/_vertical-nav.scss create mode 100644 resources/styles/@core/base/libs/_perfect-scrollbar.scss create mode 100644 resources/styles/@core/base/libs/vuetify/_index.scss create mode 100644 resources/styles/@core/base/libs/vuetify/_overrides.scss create mode 100644 resources/styles/@core/base/libs/vuetify/_variables.scss create mode 100644 resources/styles/@core/base/placeholders/_default-layout-horizontal-nav.scss create mode 100644 resources/styles/@core/base/placeholders/_default-layout-vertical-nav.scss create mode 100644 resources/styles/@core/base/placeholders/_default-layout.scss create mode 100644 resources/styles/@core/base/placeholders/_horizontal-nav.scss create mode 100644 resources/styles/@core/base/placeholders/_index.scss create mode 100644 resources/styles/@core/base/placeholders/_misc.scss create mode 100644 resources/styles/@core/base/placeholders/_nav.scss create mode 100644 resources/styles/@core/base/placeholders/_vertical-nav.scss create mode 100644 resources/styles/@core/base/skins/_bordered.scss create mode 100644 resources/styles/@core/base/skins/_index.scss create mode 100644 resources/styles/@core/template/_default-layout-w-horizontal-nav.scss create mode 100644 resources/styles/@core/template/_default-layout-w-vertical-nav.scss create mode 100644 resources/styles/@core/template/_horizontal-nav.scss create mode 100644 resources/styles/@core/template/_mixins.scss create mode 100644 resources/styles/@core/template/_utilities.scss create mode 100644 resources/styles/@core/template/_variables.scss create mode 100644 resources/styles/@core/template/_vertical-nav.scss create mode 100644 resources/styles/@core/template/index.scss create mode 100644 resources/styles/@core/template/libs/apex-chart.scss create mode 100644 resources/styles/@core/template/libs/full-calendar.scss create mode 100644 resources/styles/@core/template/libs/shepherd.scss create mode 100644 resources/styles/@core/template/libs/swiper.scss create mode 100644 resources/styles/@core/template/libs/vuetify/_variables.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_alert.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_avatar.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_badge.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_button.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_cards.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_checkbox.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_chip.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_dialog.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_expansion-panels.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_field.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_list.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_menu.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_otp-input.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_pagination.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_progress.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_radio.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_rating.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_slider.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_snackbar.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_switch.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_table.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_tabs.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_textarea.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_timeline.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/_tooltip.scss create mode 100644 resources/styles/@core/template/libs/vuetify/components/index.scss create mode 100644 resources/styles/@core/template/libs/vuetify/index.scss create mode 100644 resources/styles/@core/template/libs/vuetify/overrides.scss create mode 100644 resources/styles/@core/template/pages/misc.scss create mode 100644 resources/styles/@core/template/pages/page-auth.scss create mode 100644 resources/styles/@core/template/placeholders/_default-layout-horizontal-nav.scss create mode 100644 resources/styles/@core/template/placeholders/_default-layout-vertical-nav.scss create mode 100644 resources/styles/@core/template/placeholders/_horizontal-nav.scss create mode 100644 resources/styles/@core/template/placeholders/_index.scss create mode 100644 resources/styles/@core/template/placeholders/_misc.scss create mode 100644 resources/styles/@core/template/placeholders/_nav.scss create mode 100644 resources/styles/@core/template/placeholders/_vertical-nav.scss create mode 100644 resources/styles/@core/template/skins/_bordered.scss create mode 100644 resources/styles/@core/template/skins/_index.scss create mode 100644 resources/styles/styles.scss create mode 100644 resources/styles/variables/_template.scss create mode 100644 resources/styles/variables/_vuetify.scss create mode 100644 resources/ts/@core/components/AppBarSearch.vue create mode 100644 resources/ts/@core/components/AppDrawerHeaderSection.vue create mode 100644 resources/ts/@core/components/AppStepper.vue create mode 100644 resources/ts/@core/components/BuyNow.vue create mode 100644 resources/ts/@core/components/CardStatisticsVerticalSimple.vue create mode 100644 resources/ts/@core/components/CustomizerSection.vue create mode 100644 resources/ts/@core/components/DialogCloseBtn.vue create mode 100644 resources/ts/@core/components/DropZone.vue create mode 100644 resources/ts/@core/components/I18n.vue create mode 100644 resources/ts/@core/components/MoreBtn.vue create mode 100644 resources/ts/@core/components/Notifications.vue create mode 100644 resources/ts/@core/components/ProductDescriptionEditor.vue create mode 100644 resources/ts/@core/components/ScrollToTop.vue create mode 100644 resources/ts/@core/components/Shortcuts.vue create mode 100644 resources/ts/@core/components/TablePagination.vue create mode 100644 resources/ts/@core/components/TheCustomizer.vue create mode 100644 resources/ts/@core/components/ThemeSwitcher.vue create mode 100644 resources/ts/@core/components/TiptapEditor.vue create mode 100644 resources/ts/@core/components/app-form-elements/AppAutocomplete.vue create mode 100644 resources/ts/@core/components/app-form-elements/AppCombobox.vue create mode 100644 resources/ts/@core/components/app-form-elements/AppDateTimePicker.vue create mode 100644 resources/ts/@core/components/app-form-elements/AppSelect.vue create mode 100644 resources/ts/@core/components/app-form-elements/AppTextField.vue create mode 100644 resources/ts/@core/components/app-form-elements/AppTextarea.vue create mode 100644 resources/ts/@core/components/app-form-elements/CustomCheckboxes.vue create mode 100644 resources/ts/@core/components/app-form-elements/CustomCheckboxesWithIcon.vue create mode 100644 resources/ts/@core/components/app-form-elements/CustomCheckboxesWithImage.vue create mode 100644 resources/ts/@core/components/app-form-elements/CustomRadios.vue create mode 100644 resources/ts/@core/components/app-form-elements/CustomRadiosWithIcon.vue create mode 100644 resources/ts/@core/components/app-form-elements/CustomRadiosWithImage.vue create mode 100644 resources/ts/@core/components/cards/AppCardActions.vue create mode 100644 resources/ts/@core/components/cards/AppCardCode.vue create mode 100644 resources/ts/@core/components/cards/CardStatisticsHorizontal.vue create mode 100644 resources/ts/@core/components/cards/CardStatisticsVertical.vue create mode 100644 resources/ts/@core/composable/createUrl.ts create mode 100644 resources/ts/@core/composable/useCookie.ts create mode 100644 resources/ts/@core/composable/useGenerateImageVariant.ts create mode 100644 resources/ts/@core/composable/useResponsiveSidebar.ts create mode 100644 resources/ts/@core/composable/useSkins.ts create mode 100644 resources/ts/@core/enums.ts create mode 100644 resources/ts/@core/index.ts create mode 100644 resources/ts/@core/initCore.ts create mode 100644 resources/ts/@core/libs/apex-chart/apexCharConfig.ts create mode 100644 resources/ts/@core/libs/chartjs/chartjsConfig.ts create mode 100644 resources/ts/@core/libs/chartjs/components/BarChart.ts create mode 100644 resources/ts/@core/libs/chartjs/components/BubbleChart.ts create mode 100644 resources/ts/@core/libs/chartjs/components/DoughnutChart.ts create mode 100644 resources/ts/@core/libs/chartjs/components/LineChart.ts create mode 100644 resources/ts/@core/libs/chartjs/components/PolarAreaChart.ts create mode 100644 resources/ts/@core/libs/chartjs/components/RadarChart.ts create mode 100644 resources/ts/@core/libs/chartjs/components/ScatterChart.ts create mode 100644 resources/ts/@core/stores/config.ts create mode 100644 resources/ts/@core/types.ts create mode 100644 resources/ts/@core/utils/colorConverter.ts create mode 100644 resources/ts/@core/utils/formatters.ts create mode 100644 resources/ts/@core/utils/helpers.ts create mode 100644 resources/ts/@core/utils/plugins.ts create mode 100644 resources/ts/@core/utils/validators.ts create mode 100644 resources/ts/@core/utils/vuetify.ts create mode 100644 resources/ts/@layouts/components.ts create mode 100644 resources/ts/@layouts/components/HorizontalNav.vue create mode 100644 resources/ts/@layouts/components/HorizontalNavGroup.vue create mode 100644 resources/ts/@layouts/components/HorizontalNavLayout.vue create mode 100644 resources/ts/@layouts/components/HorizontalNavLink.vue create mode 100644 resources/ts/@layouts/components/HorizontalNavPopper.vue create mode 100644 resources/ts/@layouts/components/TransitionExpand.vue create mode 100644 resources/ts/@layouts/components/VNodeRenderer.tsx create mode 100644 resources/ts/@layouts/components/VerticalNav.vue create mode 100644 resources/ts/@layouts/components/VerticalNavGroup.vue create mode 100644 resources/ts/@layouts/components/VerticalNavLayout.vue create mode 100644 resources/ts/@layouts/components/VerticalNavLink.vue create mode 100644 resources/ts/@layouts/components/VerticalNavSectionTitle.vue create mode 100644 resources/ts/@layouts/config.ts create mode 100644 resources/ts/@layouts/enums.ts create mode 100644 resources/ts/@layouts/index.ts create mode 100644 resources/ts/@layouts/plugins/casl.ts create mode 100644 resources/ts/@layouts/stores/config.ts create mode 100644 resources/ts/@layouts/styles/_classes.scss create mode 100644 resources/ts/@layouts/styles/_default-layout.scss create mode 100644 resources/ts/@layouts/styles/_global.scss create mode 100644 resources/ts/@layouts/styles/_mixins.scss create mode 100644 resources/ts/@layouts/styles/_placeholders.scss create mode 100644 resources/ts/@layouts/styles/_rtl.scss create mode 100644 resources/ts/@layouts/styles/_variables.scss create mode 100644 resources/ts/@layouts/styles/index.scss create mode 100644 resources/ts/@layouts/symbols.ts create mode 100644 resources/ts/@layouts/types.ts create mode 100644 resources/ts/@layouts/utils.ts create mode 100644 resources/ts/App.vue create mode 100644 resources/ts/components/AppLoadingIndicator.vue create mode 100644 resources/ts/components/AppPricing.vue create mode 100644 resources/ts/components/AppSearchHeader.vue create mode 100644 resources/ts/components/ErrorHeader.vue create mode 100644 resources/ts/components/dialogs/AddAuthenticatorAppDialog.vue create mode 100644 resources/ts/components/dialogs/AddEditAddressDialog.vue create mode 100644 resources/ts/components/dialogs/AddEditPermissionDialog.vue create mode 100644 resources/ts/components/dialogs/AddEditRoleDialog.vue create mode 100644 resources/ts/components/dialogs/AddPaymentMethodDialog.vue create mode 100644 resources/ts/components/dialogs/CardAddEditDialog.vue create mode 100644 resources/ts/components/dialogs/ConfirmDialog.vue create mode 100644 resources/ts/components/dialogs/CreateAppDialog.vue create mode 100644 resources/ts/components/dialogs/EnableOneTimePasswordDialog.vue create mode 100644 resources/ts/components/dialogs/PaymentProvidersDialog.vue create mode 100644 resources/ts/components/dialogs/PricingPlanDialog.vue create mode 100644 resources/ts/components/dialogs/ReferAndEarnDialog.vue create mode 100644 resources/ts/components/dialogs/ShareProjectDialog.vue create mode 100644 resources/ts/components/dialogs/TwoFactorAuthDialog.vue create mode 100644 resources/ts/components/dialogs/UserInfoEditDialog.vue create mode 100644 resources/ts/components/dialogs/UserUpgradePlanDialog.vue create mode 100644 resources/ts/composables/useApi.ts create mode 100644 resources/ts/layouts/blank.vue create mode 100644 resources/ts/layouts/components/DefaultLayoutWithHorizontalNav.vue create mode 100644 resources/ts/layouts/components/DefaultLayoutWithVerticalNav.vue create mode 100644 resources/ts/layouts/components/Footer.vue create mode 100644 resources/ts/layouts/components/NavBarNotifications.vue create mode 100644 resources/ts/layouts/components/NavSearchBar.vue create mode 100644 resources/ts/layouts/components/NavbarShortcuts.vue create mode 100644 resources/ts/layouts/components/NavbarThemeSwitcher.vue create mode 100644 resources/ts/layouts/components/UserProfile.vue create mode 100644 resources/ts/layouts/default.vue create mode 100644 resources/ts/main.ts create mode 100644 resources/ts/navigation/horizontal/index.ts create mode 100644 resources/ts/navigation/vertical/index.ts create mode 100644 resources/ts/pages/[...error].vue create mode 100644 resources/ts/pages/chat.vue create mode 100644 resources/ts/pages/index.vue create mode 100644 resources/ts/pages/login.vue create mode 100644 resources/ts/pages/second-page.vue create mode 100644 resources/ts/plugins/1.router/index.ts create mode 100644 resources/ts/plugins/2.pinia.ts create mode 100644 resources/ts/plugins/iconify/build-icons.ts create mode 100644 resources/ts/plugins/iconify/index.ts create mode 100644 resources/ts/plugins/iconify/package.json create mode 100644 resources/ts/plugins/layouts.ts create mode 100644 resources/ts/plugins/vuetify/defaults.ts create mode 100644 resources/ts/plugins/vuetify/icons.ts create mode 100644 resources/ts/plugins/vuetify/index.ts create mode 100644 resources/ts/plugins/vuetify/theme.ts create mode 100644 resources/ts/plugins/webfontloader.ts create mode 100644 resources/ts/utils/api.ts create mode 100644 resources/ts/utils/constants.ts create mode 100644 resources/ts/utils/paginationMeta.ts create mode 100644 resources/ts/views/apps/chat/ChatActiveChatUserProfileSidebarContent.vue create mode 100644 resources/ts/views/apps/chat/ChatContact.vue create mode 100644 resources/ts/views/apps/chat/ChatLeftSidebarContent.vue create mode 100644 resources/ts/views/apps/chat/ChatLog.vue create mode 100644 resources/ts/views/apps/chat/ChatUserProfileSidebarContent.vue create mode 100644 resources/ts/views/apps/chat/useChat.ts create mode 100644 resources/ts/views/apps/chat/useChatStore.ts create mode 100644 resources/ts/views/pages/authentication/AuthProvider.vue create mode 100644 resources/views/application.blade.php create mode 100644 routes/console.php create mode 100644 routes/web.php create mode 100644 shims.d.ts create mode 100644 storage/app/.gitignore create mode 100644 storage/app/private/.gitignore create mode 100644 storage/app/public/.gitignore create mode 100644 storage/framework/.gitignore create mode 100644 storage/framework/cache/.gitignore create mode 100644 storage/framework/cache/data/.gitignore create mode 100644 storage/framework/sessions/.gitignore create mode 100644 storage/framework/testing/.gitignore create mode 100644 storage/framework/views/.gitignore create mode 100644 tests/Feature/ExampleTest.php create mode 100644 tests/TestCase.php create mode 100644 tests/Unit/ExampleTest.php create mode 100644 themeConfig.ts create mode 100644 tsconfig.json create mode 100644 typed-router.d.ts create mode 100644 vite.config.ts diff --git a/.editorconfig b/.editorconfig new file mode 100644 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 100644 index 0000000..6d34b38 --- /dev/null +++ b/.env.example @@ -0,0 +1,67 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_URL=http://localhost + +APP_LOCALE=en +APP_FALLBACK_LOCALE=en +APP_FAKER_LOCALE=en_US + +APP_MAINTENANCE_DRIVER=file +# APP_MAINTENANCE_STORE=database + +PHP_CLI_SERVER_WORKERS=4 + +BCRYPT_ROUNDS=12 + +LOG_CHANNEL=stack +LOG_STACK=single +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=sqlite +# DB_HOST=127.0.0.1 +# DB_PORT=3306 +# DB_DATABASE=laravel +# DB_USERNAME=root +# DB_PASSWORD= + +SESSION_DRIVER=database +SESSION_LIFETIME=120 +SESSION_ENCRYPT=false +SESSION_PATH=/ +SESSION_DOMAIN=null + +BROADCAST_CONNECTION=log +FILESYSTEM_DISK=local +QUEUE_CONNECTION=database + +CACHE_STORE=database +# CACHE_PREFIX= + +MEMCACHED_HOST=127.0.0.1 + +REDIS_CLIENT=phpredis +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=log +MAIL_SCHEME=null +MAIL_HOST=127.0.0.1 +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +VITE_APP_NAME="${APP_NAME}" +VITE_API_BASE_URL= +VITE_MAPBOX_ACCESS_TOKEN= \ No newline at end of file diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..17ba468 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,238 @@ +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:regexp/recommended', + + // 'plugin:unicorn/recommended', + ], + parser: 'vue-eslint-parser', + parserOptions: { + ecmaVersion: 13, + parser: '@typescript-eslint/parser', + sourceType: 'module', + }, + plugins: [ + 'vue', + '@typescript-eslint', + 'regex', + 'regexp', + ], + ignorePatterns: ['resources/ts/plugins/iconify/*.js', 'node_modules', 'dist', '*.d.ts', 'vendor', '*.json'], + 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 auto imported', + }], + + // 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:meta-layouts', + '#auth$', + '#components$', + + // 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, + // }, + // }], + + // 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 \'resources/ts/assets/styles\'', + }, + { + 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/.gitattributes b/.gitattributes new file mode 100644 index 0000000..93c1acf --- /dev/null +++ b/.gitattributes @@ -0,0 +1,207 @@ +## GITATTRIBUTES FOR WEB PROJECTS +# +# These settings are for any web project. +# +# Details per file setting: +# text These files should be normalized (i.e. convert CRLF to LF). +# binary These files are binary and should be left untouched. +# +# Note that binary is a macro for -text -diff. +###################################################################### + +# Auto detect +## Handle line endings automatically for files detected as +## text and leave all files detected as binary untouched. +## This will handle all files NOT defined below. +* text=auto + +# Source code +*.bash text eol=lf +*.bat text eol=crlf +*.cmd text eol=crlf +*.coffee text +*.css text diff=css +*.htm text diff=html +*.html text diff=html +*.inc text +*.ini text +*.js text +*.json text +*.jsx text +*.less text +*.ls text +*.map text -diff +*.od text +*.onlydata text +*.php text diff=php +*.pl text +*.ps1 text eol=crlf +*.py text diff=python +*.rb text diff=ruby +*.sass text +*.scm text +*.scss text diff=css +*.sh text eol=lf +.husky/* text eol=lf +*.sql text +*.styl text +*.tag text +*.ts text +*.tsx text +*.xml text +*.xhtml text diff=html + +# Docker +Dockerfile text + +# Documentation +*.ipynb text eol=lf +*.markdown text diff=markdown +*.md text diff=markdown +*.mdwn text diff=markdown +*.mdown text diff=markdown +*.mkd text diff=markdown +*.mkdn text diff=markdown +*.mdtxt text +*.mdtext text +*.txt text +AUTHORS text +CHANGELOG text +CHANGES text +CONTRIBUTING text +COPYING text +copyright text +*COPYRIGHT* text +INSTALL text +license text +LICENSE text +NEWS text +readme text +*README* text +TODO text + +# Templates +*.dot text +*.ejs text +*.erb text +*.haml text +*.handlebars text +*.hbs text +*.hbt text +*.jade text +*.latte text +*.mustache text +*.njk text +*.phtml text +*.svelte text +*.tmpl text +*.tpl text +*.twig text +*.vue text + +# Configs +*.cnf text +*.conf text +*.config text +.editorconfig text +.env text +.gitattributes text +.gitconfig text +.htaccess text +*.lock text -diff +package.json text eol=lf +package-lock.json text eol=lf -diff +pnpm-lock.yaml text eol=lf -diff +.prettierrc text +yarn.lock text -diff +*.toml text +*.yaml text +*.yml text +browserslist text +Makefile text +makefile text + +# Heroku +Procfile text + +# Graphics +*.ai binary +*.bmp binary +*.eps binary +*.gif binary +*.gifv binary +*.ico binary +*.jng binary +*.jp2 binary +*.jpg binary +*.jpeg binary +*.jpx binary +*.jxr binary +*.pdf binary +*.png binary +*.psb binary +*.psd binary +# SVG treated as an asset (binary) by default. +*.svg text +# If you want to treat it as binary, +# use the following line instead. +# *.svg binary +*.svgz binary +*.tif binary +*.tiff binary +*.wbmp binary +*.webp binary + +# Audio +*.kar binary +*.m4a binary +*.mid binary +*.midi binary +*.mp3 binary +*.ogg binary +*.ra binary + +# Video +*.3gpp binary +*.3gp binary +*.as binary +*.asf binary +*.asx binary +*.avi binary +*.fla binary +*.flv binary +*.m4v binary +*.mng binary +*.mov binary +*.mp4 binary +*.mpeg binary +*.mpg binary +*.ogv binary +*.swc binary +*.swf binary +*.webm binary + +# Archives +*.7z binary +*.gz binary +*.jar binary +*.rar binary +*.tar binary +*.zip binary + +# Fonts +*.ttf binary +*.eot binary +*.otf binary +*.woff binary +*.woff2 binary + +# Executables +*.exe binary +*.pyc binary + +# RC files (like .babelrc or .eslintrc) +*.*rc text + +# Ignore files (like .npmignore or .gitignore) +*.*ignore text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6a3c0e1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,66 @@ +/.phpunit.cache +/node_modules +/public/build +/public/hot +/public/storage +/storage/*.key +/storage/pail +/vendor +.env +.env.backup +.env.production +.phpactor.json +.phpunit.result.cache +Homestead.json +Homestead.yaml +npm-debug.log +yarn-error.log +/auth.json +/.fleet +/.idea +/.nova +/.zed + +# 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 +resources/ts/plugins/iconify/icons.css + +# Ignore MSW script +public/mockServiceWorker.js + +# Env files +.env* +!.env.example diff --git a/.npmrc b/.npmrc new file mode 100644 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 100644 index 0000000..b009dfb --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +lts/* diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100644 index 0000000..ecf5829 --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1,46 @@ +{ + "extends": [ + "stylelint-config-standard-scss", + "stylelint-config-idiomatic-order", + "@stylistic/stylelint-config" + ], + "plugins": [ + "stylelint-use-logical-spec", + "@stylistic/stylelint-plugin" + ], + "overrides": [ + { + "files": [ + "**/*.scss" + ], + "customSyntax": "postcss-scss" + }, + { + "files": [ + "**/*.vue" + ], + "customSyntax": "postcss-html" + } + ], + "rules": { + "@stylistic/max-line-length": [ + 220, + { + "ignore": "comments" + } + ], + "@stylistic/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 100644 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 100644 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 100644 index 0000000..d2ee012 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,96 @@ +{ + "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]": { + "editor.defaultFormatter": "stylelint.vscode-stylelint" + }, + "[json]": { + "editor.defaultFormatter": "vscode.json-language-features" + }, + "[jsonc]": { + "editor.defaultFormatter": "vscode.json-language-features" + }, + "[vue]": { + "editor.defaultFormatter": "dbaeumer.vscode-eslint" + }, + "volar.preview.port": 3000, + "volar.completion.preferredTagNameCase": "pascal", + "eslint.options": {}, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit", + "source.fixAll.stylelint": "explicit", + "source.organizeImports": "explicit" + }, + "eslint.alwaysShowStatus": true, + "eslint.format.enable": true, + "eslint.packageManager": "pnpm", + "stylelint.packageManager": "pnpm", + "stylelint.validate": [ + "css", + "scss", + "vue" + ], + "cSpell.words": [ + "addressline", + "Composables", + "Customizer", + "destr", + "flagpack", + "Iconify", + "nuxt", + "ofetch", + "psudo", + "stylelint", + "touchless", + "triggerer", + "vuetify" + ], + "commentAnchors.tags.anchors": { + "ℹ️": { + "scope": "hidden", + "highlightColor": "#3498DB", + "styleComment": true, + "isItalic": false + }, + "👉": { + "scope": "file", + "highlightColor": "#98C379", + "styleComment": true, + "isItalic": false + }, + "❗": { + "scope": "hidden", + "highlightColor": "#FF2D00", + "styleComment": true, + "isItalic": false + } + }, + "highlight.regexFlags": "gi", + "highlight.regexes": { + "(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)": [ + { + "borderWidth": "1px", + "borderColor": "tomato", + "borderStyle": "solid" + } + ], + "(overflow-x:|overflow-y:)": [ + { + "borderWidth": "1px", + "borderColor": "green", + "borderStyle": "solid" + } + ] + } +} diff --git a/.vscode/vue-ts.code-snippets b/.vscode/vue-ts.code-snippets new file mode 100644 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 100644 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