Repository: epicmaxco/vuestic-admin Branch: master Commit: 9c5b44f3674d Files: 220 Total size: 1.8 MB Directory structure: gitextract_vqblgh86/ ├── .editorconfig ├── .eslintrc.cjs ├── .gitattributes ├── .github/ │ ├── COMMIT_CONVENTION.md │ ├── CONTRIBUTING.md │ ├── ISSUE_TEMPLATE.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── dependabot.yml │ └── workflows/ │ └── playwright.yml ├── .gitignore ├── .husky/ │ ├── .gitignore │ └── pre-commit ├── .nvmrc ├── .prettierignore ├── .prettierrc ├── .storybook/ │ ├── main.ts │ ├── preview.ts │ └── storybook-main.scss ├── .vscode/ │ └── extensions.json ├── .yarnrc.yml ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.ja-JP.md ├── README.md ├── README.zh-CN.md ├── _redirects ├── docs/ │ └── pre-production.md ├── e2e/ │ ├── .gitignore │ ├── README.MD │ ├── package.json │ ├── playwright.config.ts │ ├── stubs/ │ │ ├── index.ts │ │ ├── projects.ts │ │ └── users.ts │ ├── tests/ │ │ └── vuestic-admin.spec.ts │ └── utils/ │ └── index.ts ├── index.html ├── netlify.toml ├── package.json ├── postcss.config.js ├── public/ │ └── site.webmanifest ├── src/ │ ├── App.vue │ ├── components/ │ │ ├── NotFoundImage.vue │ │ ├── VuesticLogo.stories.ts │ │ ├── VuesticLogo.vue │ │ ├── app-layout-navigation/ │ │ │ └── AppLayoutNavigation.vue │ │ ├── icons/ │ │ │ ├── VaIconCleanCode.vue │ │ │ ├── VaIconColor.vue │ │ │ ├── VaIconDiscord.vue │ │ │ ├── VaIconFaster.vue │ │ │ ├── VaIconFree.vue │ │ │ ├── VaIconFresh.vue │ │ │ ├── VaIconGitHub.vue │ │ │ ├── VaIconHideSidebar.vue │ │ │ ├── VaIconMenu.vue │ │ │ ├── VaIconMenuCollapsed.vue │ │ │ ├── VaIconMessage.vue │ │ │ ├── VaIconNotification.vue │ │ │ ├── VaIconResponsive.vue │ │ │ ├── VaIconRich.vue │ │ │ ├── VaIconSlower.vue │ │ │ ├── VaIconVue.vue │ │ │ └── VaIconVuestic.vue │ │ ├── navbar/ │ │ │ ├── AppNavbar.vue │ │ │ └── components/ │ │ │ ├── AppNavbarActions.vue │ │ │ ├── GitHubButton.vue │ │ │ └── dropdowns/ │ │ │ ├── NotificationDropdown.vue │ │ │ └── ProfileDropdown.vue │ │ ├── sidebar/ │ │ │ ├── AppSidebar.vue │ │ │ └── NavigationRoutes.ts │ │ ├── typography/ │ │ │ ├── Typography.stories.ts │ │ │ └── Typography.vue │ │ ├── va-charts/ │ │ │ ├── VaChart.vue │ │ │ ├── chart-types/ │ │ │ │ ├── BarChart.vue │ │ │ │ ├── BubbleChart.vue │ │ │ │ ├── DoughnutChart.vue │ │ │ │ ├── HorizontalBarChart.vue │ │ │ │ ├── LineChart.vue │ │ │ │ ├── Map.vue │ │ │ │ └── PieChart.vue │ │ │ ├── external-tooltip.ts │ │ │ └── vaChartConfigs.js │ │ ├── va-medium-editor/ │ │ │ ├── VaMediumEditor.vue │ │ │ └── _variables.scss │ │ └── va-timeline-item.vue │ ├── data/ │ │ ├── CountriesList.ts │ │ ├── charts/ │ │ │ ├── barChartData.ts │ │ │ ├── bubbleChartData.ts │ │ │ ├── composables/ │ │ │ │ ├── useChartColors.ts │ │ │ │ └── useChartData.ts │ │ │ ├── doughnutChartData.ts │ │ │ ├── horizontalBarChartData.ts │ │ │ ├── index.ts │ │ │ ├── lineChartData.ts │ │ │ ├── pieChartData.ts │ │ │ └── revenueChartData.ts │ │ ├── geo.json │ │ ├── pages/ │ │ │ ├── projects-db.json │ │ │ ├── projects.ts │ │ │ ├── users-db.json │ │ │ └── users.ts │ │ ├── types.ts │ │ └── users.json │ ├── env.d.ts │ ├── i18n/ │ │ ├── index.ts │ │ └── locales/ │ │ ├── br.json │ │ ├── cn.json │ │ ├── es.json │ │ ├── gb.json │ │ └── ir.json │ ├── layouts/ │ │ ├── AppLayout.vue │ │ ├── AuthLayout.vue │ │ └── RouterBypass.vue │ ├── main.ts │ ├── pages/ │ │ ├── 404.vue │ │ ├── admin/ │ │ │ ├── dashboard/ │ │ │ │ ├── Dashboard.vue │ │ │ │ ├── DataSection.vue │ │ │ │ ├── DataSectionItem.vue │ │ │ │ └── cards/ │ │ │ │ ├── MonthlyEarnings.vue │ │ │ │ ├── ProjectTable.vue │ │ │ │ ├── RegionRevenue.vue │ │ │ │ ├── RevenueByLocationMap.vue │ │ │ │ ├── RevenueReport.vue │ │ │ │ ├── RevenueReportChart.vue │ │ │ │ ├── Timeline.vue │ │ │ │ └── YearlyBreakup.vue │ │ │ └── pages/ │ │ │ └── 404PagesPage.vue │ │ ├── auth/ │ │ │ ├── CheckTheEmail.vue │ │ │ ├── Login.vue │ │ │ ├── RecoverPassword.vue │ │ │ └── Signup.vue │ │ ├── billing/ │ │ │ ├── BillingPage.vue │ │ │ ├── Invoices.vue │ │ │ ├── MembeshipTier.vue │ │ │ ├── PaymentInfo.vue │ │ │ ├── modals/ │ │ │ │ └── ChangeYourPaymentPlan.vue │ │ │ └── types.ts │ │ ├── faq/ │ │ │ ├── FaqPage.vue │ │ │ ├── data/ │ │ │ │ ├── navigationLinks.json │ │ │ │ └── popularCategories.json │ │ │ └── widgets/ │ │ │ ├── Categories.vue │ │ │ ├── Navigation.vue │ │ │ ├── Questions.vue │ │ │ └── RequestDemo.vue │ │ ├── payments/ │ │ │ ├── PaymentsPage.vue │ │ │ ├── payment-system/ │ │ │ │ ├── PaymentSystem.stories.ts │ │ │ │ └── PaymentSystem.vue │ │ │ ├── types.ts │ │ │ └── widgets/ │ │ │ ├── billing-address/ │ │ │ │ ├── BillingAddressCreateModal.stories.ts │ │ │ │ ├── BillingAddressCreateModal.vue │ │ │ │ ├── BillingAddressEdit.stories.ts │ │ │ │ ├── BillingAddressEdit.vue │ │ │ │ ├── BillingAddressList.stories.ts │ │ │ │ ├── BillingAddressList.vue │ │ │ │ ├── BillingAddressListItem.stories.ts │ │ │ │ ├── BillingAddressListItem.vue │ │ │ │ ├── BillingAddressUpdateModal.stories.ts │ │ │ │ └── BillingAddressUpdateModal.vue │ │ │ └── my-cards/ │ │ │ ├── PaymentCardCreateModal.stories.ts │ │ │ ├── PaymentCardCreateModal.vue │ │ │ ├── PaymentCardEdit.stories.ts │ │ │ ├── PaymentCardEdit.vue │ │ │ ├── PaymentCardList.stories.ts │ │ │ ├── PaymentCardList.vue │ │ │ ├── PaymentCardListItem.stories.ts │ │ │ ├── PaymentCardListItem.vue │ │ │ ├── PaymentCardUpdateModal.stories.ts │ │ │ └── PaymentCardUpdateModal.vue │ │ ├── preferences/ │ │ │ ├── Preferences.vue │ │ │ ├── modals/ │ │ │ │ ├── EditNameModal.vue │ │ │ │ └── ResetPasswordModal.vue │ │ │ ├── preferences-header/ │ │ │ │ └── PreferencesHeader.vue │ │ │ ├── settings/ │ │ │ │ └── Settings.vue │ │ │ └── styles.ts │ │ ├── pricing-plans/ │ │ │ ├── PricingPlans.vue │ │ │ ├── options.ts │ │ │ └── styles.ts │ │ ├── projects/ │ │ │ ├── ProjectsPage.vue │ │ │ ├── components/ │ │ │ │ └── ProjectStatusBadge.vue │ │ │ ├── composables/ │ │ │ │ ├── useProjectStatusColor.ts │ │ │ │ ├── useProjectUsers.ts │ │ │ │ └── useProjects.ts │ │ │ ├── types.ts │ │ │ └── widgets/ │ │ │ ├── EditProjectForm.vue │ │ │ ├── ProjectCards.vue │ │ │ └── ProjectsTable.vue │ │ ├── settings/ │ │ │ ├── Settings.vue │ │ │ ├── language-switcher/ │ │ │ │ └── LanguageSwitcher.vue │ │ │ ├── notifications/ │ │ │ │ └── Notifications.vue │ │ │ └── theme-switcher/ │ │ │ └── ThemeSwitcher.vue │ │ └── users/ │ │ ├── UsersPage.vue │ │ ├── composables/ │ │ │ └── useUsers.ts │ │ ├── types.ts │ │ └── widgets/ │ │ ├── EditUserForm.vue │ │ ├── UserAvatar.vue │ │ └── UsersTable.vue │ ├── router/ │ │ └── index.ts │ ├── scss/ │ │ ├── icon-fonts/ │ │ │ ├── index.scss │ │ │ └── vuestic-icons/ │ │ │ └── vuestic-icons.scss │ │ ├── main.scss │ │ ├── tailwind.scss │ │ └── vuestic.scss │ ├── services/ │ │ ├── api.ts │ │ ├── toCSV.ts │ │ ├── utils.ts │ │ └── vuestic-ui/ │ │ ├── global-config.ts │ │ ├── icons-config/ │ │ │ ├── aliases.ts │ │ │ └── icons-config.ts │ │ └── themes.ts │ └── stores/ │ ├── billing-addresses.ts │ ├── global-store.ts │ ├── index.ts │ ├── notifications.ts │ ├── payment-cards.ts │ ├── projects.ts │ ├── user-store.ts │ └── users.ts ├── tailwind.config.js ├── tsconfig.json └── vite.config.ts ================================================ FILE CONTENTS ================================================ ================================================ FILE: .editorconfig ================================================ root = true [*] charset = utf-8 indent_style = space indent_size = 2 end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true ================================================ FILE: .eslintrc.cjs ================================================ module.exports = { root: true, env: { browser: true, es2021: true, node: true, 'vue/setup-compiler-macros': true, }, plugins: ['@typescript-eslint'], parser: 'vue-eslint-parser', parserOptions: { parser: '@typescript-eslint/parser', sourceType: 'module', ecmaVersion: 2021, }, extends: [ 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:vue/vue3-recommended', '@vue/typescript/recommended', '@vue/prettier', 'plugin:storybook/recommended', ], rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', '@typescript-eslint/no-non-null-assertion': 0, '@typescript-eslint/no-explicit-any': 0, // allow explicit any's because of the legacy code and ts-less deps, but still prohibit IMplicit any's 'vue/multi-word-component-names': 0, 'vue/no-lone-template': 0, 'vue/v-on-event-hyphenation': ['warn', 'never', { autofix: true }], 'vue/component-name-in-template-casing': ['warn', 'PascalCase', { registeredComponentsOnly: false }], 'vue/script-indent': ['warn', 2], // , { baseIndent: 0 } - we should use that, but it didn't work for me for some reason. }, } ================================================ FILE: .gitattributes ================================================ e2e/__screenshots__/** filter=lfs diff=lfs merge=lfs -text ================================================ FILE: .github/COMMIT_CONVENTION.md ================================================ ## Git Commit Message Convention > This is adapted from [Angular's commit convention](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular). #### TL;DR: Messages must match the following regex: ```js ;/^(revert: )?(feat|fix|docs|style|refactor|test|ci|chore)(\(.+\))?: .{1,70}/ ``` #### Types - `feat` - new functionality. - `fix` - patching a bug. - `docs` - documentation and comments. - `style` - style changes only (not necessarily in css). - `refactor` - reworking internals without impacting project interface. - `test` - tests and demo. - `ci` - deploy and continuous integration. - `chore` - no significant code changes: code formatting, version changes, tool updates, minor refactorings. #### Examples Appears under "Features" header, `compiler` subheader: ``` feat(compiler): add 'comments' option ``` Appears under "Bug Fixes" header, `v-model` subheader, with a link to issue #28: ``` fix(v-model): handle events on blur close #28 ``` Appears under "Performance Improvements" header, and under "Breaking Changes" with the breaking change explanation: ``` feat(core): improve vdom diffing by removing 'foo' option BREAKING CHANGE: The 'foo' option has been removed. ``` The following commit and commit `667ecc1` do not appear in the changelog if they are under the same release. If not, the revert commit appears under the "Reverts" header. ``` revert: feat(compiler): add 'comments' option This reverts commit 667ecc1654a317a13331b17617d973392f415f02. ``` ### Full Message Format A commit message consists of a **header**, **body** and **footer**. The header has a **type**, **scope** and **subject**: ``` ():