@nathapp/na-cli 1.0.1-rc.1 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. package/README.md +7 -5
  2. package/dist/templates/k8s-cert-manager/README.md +60 -0
  3. package/dist/templates/k8s-cert-manager/cloudflare-cert-manager-issuer.yaml +26 -0
  4. package/dist/templates/k8s-deployment/templates/_deployment.tpl +1 -1
  5. package/dist/templates/k8s-deployment/templates/_endpointslice.tpl +42 -0
  6. package/dist/templates/k8s-deployment/templates/_gateway.tpl +94 -0
  7. package/dist/templates/k8s-deployment/templates/_grpcroute.tpl +186 -0
  8. package/dist/templates/k8s-deployment/templates/_httproute.tpl +209 -0
  9. package/dist/templates/k8s-deployment/templates/_ingressroute.tpl +178 -0
  10. package/dist/templates/k8s-deployment/templates/_middleware.tpl +553 -0
  11. package/dist/templates/k8s-deployment/templates/_serverstransport.tpl +73 -0
  12. package/dist/templates/k8s-deployment/templates/_service.tpl +4 -1
  13. package/dist/templates/k8s-helm-chart/templates/endpointslice.yaml +1 -0
  14. package/dist/templates/k8s-helm-chart/templates/gateway.yaml +1 -0
  15. package/dist/templates/k8s-helm-chart/templates/grpcroute.yaml +1 -0
  16. package/dist/templates/k8s-helm-chart/templates/httproute.yaml +1 -0
  17. package/dist/templates/k8s-helm-chart/templates/ingressroute.yaml +1 -0
  18. package/dist/templates/k8s-helm-chart/templates/middleware.yaml +1 -0
  19. package/dist/templates/k8s-helm-chart/templates/serverstransport.yaml +1 -0
  20. package/dist/templates/k8s-helm-chart/values.yaml +3 -5
  21. package/dist/templates/nestjs-api/{.env → .env.local} +5 -0
  22. package/dist/templates/nestjs-api/.gitignore-rename +2 -1
  23. package/dist/templates/nestjs-api/Dockerfile +33 -13
  24. package/dist/templates/nestjs-api/package.json +31 -17
  25. package/dist/templates/nestjs-api/src/i18n/en_US/date.json +7 -0
  26. package/dist/templates/nestjs-api/src/i18n/en_US/exception.json +1 -1
  27. package/dist/templates/nestjs-api/src/i18n/en_US/validation.json +16 -0
  28. package/dist/templates/nestjs-api/src/i18n/zh_CN/date.json +7 -0
  29. package/dist/templates/nestjs-api/src/i18n/zh_CN/validation.json +16 -0
  30. package/dist/templates/nestjs-api/src/i18n/zh_TW/date.json +7 -0
  31. package/dist/templates/nestjs-api/src/i18n/zh_TW/validation.json +16 -0
  32. package/dist/templates/nestjs-api/test/jest-e2e.json +4 -1
  33. package/dist/templates/nestjs-library/.npmignore-rename +4 -0
  34. package/dist/templates/nestjs-library/package.json +3 -3
  35. package/dist/templates/ts-library/.npmignore-rename +4 -0
  36. package/dist/templates/ts-library/package.json +1 -1
  37. package/dist/templates/turbo-nestjs-vuexy/README.md +3 -0
  38. package/dist/templates/turbo-nestjs-vuexy/package.json +49 -0
  39. package/dist/templates/turbo-nestjs-vuexy/packages/eslint-config/README.md +3 -0
  40. package/dist/templates/turbo-nestjs-vuexy/packages/eslint-config/library.js +43 -0
  41. package/dist/templates/turbo-nestjs-vuexy/packages/eslint-config/package.json +18 -0
  42. package/dist/templates/turbo-nestjs-vuexy/packages/eslint-config/vue.js +236 -0
  43. package/dist/templates/{ts-library/tsconfig.json → turbo-nestjs-vuexy/packages/typescript-config/base.json} +4 -6
  44. package/dist/templates/turbo-nestjs-vuexy/packages/typescript-config/nestjs.json +12 -0
  45. package/dist/templates/turbo-nestjs-vuexy/packages/typescript-config/package.json +9 -0
  46. package/dist/templates/turbo-nestjs-vuexy/packages/typescript-config/vue.json +82 -0
  47. package/dist/templates/turbo-nestjs-vuexy/turbo.json +24 -0
  48. package/dist/templates/vuexy-portal/.editorconfig +1 -0
  49. package/dist/templates/vuexy-portal/.eslintrc.cjs +237 -0
  50. package/dist/templates/vuexy-portal/.gitignore-rename +42 -0
  51. package/dist/templates/vuexy-portal/.stylelintrc.json +46 -0
  52. package/dist/templates/vuexy-portal/Dockerfile +43 -0
  53. package/dist/templates/vuexy-portal/README.md +35 -0
  54. package/dist/templates/vuexy-portal/auto-imports.d.ts +1131 -0
  55. package/dist/templates/vuexy-portal/components.d.ts +68 -0
  56. package/dist/templates/vuexy-portal/dev.Dockerfile +25 -0
  57. package/dist/templates/vuexy-portal/docker-compose.dev.yml +14 -0
  58. package/dist/templates/vuexy-portal/docker-compose.prod.yml +13 -0
  59. package/dist/templates/vuexy-portal/entrypoint.sh +6 -0
  60. package/dist/templates/vuexy-portal/env.d.ts +12 -0
  61. package/dist/templates/vuexy-portal/index.html +57 -0
  62. package/dist/templates/vuexy-portal/nginx.conf +14 -0
  63. package/dist/templates/vuexy-portal/package.json +140 -0
  64. package/dist/templates/vuexy-portal/pnpm-lock.yaml +7963 -0
  65. package/dist/templates/vuexy-portal/prod.Dockerfile +41 -0
  66. package/dist/templates/vuexy-portal/public/favicon.ico +0 -0
  67. package/dist/templates/vuexy-portal/public/images/avatars/avatar-1.png +0 -0
  68. package/dist/templates/vuexy-portal/public/images/avatars/avatar-2.png +0 -0
  69. package/dist/templates/vuexy-portal/public/images/svg/discord.svg +10 -0
  70. package/dist/templates/vuexy-portal/public/images/svg/gift.svg +8 -0
  71. package/dist/templates/vuexy-portal/public/images/svg/keyboard.svg +8 -0
  72. package/dist/templates/vuexy-portal/public/images/svg/laptop.svg +8 -0
  73. package/dist/templates/vuexy-portal/public/images/svg/lightbulb.svg +8 -0
  74. package/dist/templates/vuexy-portal/public/images/svg/rocket.svg +8 -0
  75. package/dist/templates/vuexy-portal/public/loader.css +79 -0
  76. package/dist/templates/vuexy-portal/public/mockServiceWorker.js +287 -0
  77. package/dist/templates/vuexy-portal/shims.d.ts +15 -0
  78. package/dist/templates/vuexy-portal/src/@core/components/AppBarSearch.vue +278 -0
  79. package/dist/templates/vuexy-portal/src/@core/components/AppDrawerHeaderSection.vue +30 -0
  80. package/dist/templates/vuexy-portal/src/@core/components/AppStepper.vue +371 -0
  81. package/dist/templates/vuexy-portal/src/@core/components/BuyNow.vue +92 -0
  82. package/dist/templates/vuexy-portal/src/@core/components/CardStatisticsVerticalSimple.vue +35 -0
  83. package/dist/templates/vuexy-portal/src/@core/components/CustomizerSection.vue +27 -0
  84. package/dist/templates/vuexy-portal/src/@core/components/DialogCloseBtn.vue +25 -0
  85. package/dist/templates/vuexy-portal/src/@core/components/DropZone.vue +135 -0
  86. package/dist/templates/vuexy-portal/src/@core/components/I18n.vue +48 -0
  87. package/dist/templates/vuexy-portal/src/@core/components/MoreBtn.vue +24 -0
  88. package/dist/templates/vuexy-portal/src/@core/components/Notifications.vue +245 -0
  89. package/dist/templates/vuexy-portal/src/@core/components/ProductDescriptionEditor.vue +198 -0
  90. package/dist/templates/vuexy-portal/src/@core/components/ScrollToTop.vue +41 -0
  91. package/dist/templates/vuexy-portal/src/@core/components/Shortcuts.vue +99 -0
  92. package/dist/templates/vuexy-portal/src/@core/components/TablePagination.vue +39 -0
  93. package/dist/templates/vuexy-portal/src/@core/components/TheCustomizer.vue +618 -0
  94. package/dist/templates/vuexy-portal/src/@core/components/ThemeSwitcher.vue +61 -0
  95. package/dist/templates/vuexy-portal/src/@core/components/TiptapEditor.vue +166 -0
  96. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppAutocomplete.vue +57 -0
  97. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppCombobox.vue +57 -0
  98. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppDateTimePicker.vue +543 -0
  99. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppSelect.vue +50 -0
  100. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppTextField.vue +78 -0
  101. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/AppTextarea.vue +50 -0
  102. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomCheckboxes.vue +81 -0
  103. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomCheckboxesWithIcon.vue +95 -0
  104. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomCheckboxesWithImage.vue +93 -0
  105. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomRadios.vue +81 -0
  106. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomRadiosWithIcon.vue +88 -0
  107. package/dist/templates/vuexy-portal/src/@core/components/app-form-elements/CustomRadiosWithImage.vue +99 -0
  108. package/dist/templates/vuexy-portal/src/@core/components/cards/AppCardActions.vue +167 -0
  109. package/dist/templates/vuexy-portal/src/@core/components/cards/AppCardCode.vue +152 -0
  110. package/dist/templates/vuexy-portal/src/@core/components/cards/CardStatisticsHorizontal.vue +41 -0
  111. package/dist/templates/vuexy-portal/src/@core/components/cards/CardStatisticsVertical.vue +48 -0
  112. package/dist/templates/vuexy-portal/src/@core/scss/base/_components.scss +185 -0
  113. package/dist/templates/vuexy-portal/src/@core/scss/base/_dark.scss +16 -0
  114. package/dist/templates/vuexy-portal/src/@core/scss/base/_default-layout-w-horizontal-nav.scss +45 -0
  115. package/dist/templates/vuexy-portal/src/@core/scss/base/_default-layout-w-vertical-nav.scss +103 -0
  116. package/dist/templates/vuexy-portal/src/@core/scss/base/_default-layout.scss +16 -0
  117. package/dist/templates/vuexy-portal/src/@core/scss/base/_horizontal-nav.scss +194 -0
  118. package/dist/templates/vuexy-portal/src/@core/scss/base/_index.scss +48 -0
  119. package/dist/templates/vuexy-portal/src/@core/scss/base/_layouts.scss +63 -0
  120. package/dist/templates/vuexy-portal/src/@core/scss/base/_misc.scss +20 -0
  121. package/dist/templates/vuexy-portal/src/@core/scss/base/_mixins.scss +63 -0
  122. package/dist/templates/vuexy-portal/src/@core/scss/base/_route-transitions.scss +70 -0
  123. package/dist/templates/vuexy-portal/src/@core/scss/base/_utilities.scss +181 -0
  124. package/dist/templates/vuexy-portal/src/@core/scss/base/_utils.scss +90 -0
  125. package/dist/templates/vuexy-portal/src/@core/scss/base/_variables.scss +198 -0
  126. package/dist/templates/vuexy-portal/src/@core/scss/base/_vertical-nav.scss +255 -0
  127. package/dist/templates/vuexy-portal/src/@core/scss/base/libs/_perfect-scrollbar.scss +35 -0
  128. package/dist/templates/vuexy-portal/src/@core/scss/base/libs/vuetify/_index.scss +1 -0
  129. package/dist/templates/vuexy-portal/src/@core/scss/base/libs/vuetify/_overrides.scss +264 -0
  130. package/dist/templates/vuexy-portal/src/@core/scss/base/libs/vuetify/_variables.scss +62 -0
  131. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_default-layout-horizontal-nav.scss +27 -0
  132. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_default-layout-vertical-nav.scss +45 -0
  133. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_default-layout.scss +3 -0
  134. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_horizontal-nav.scss +98 -0
  135. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_index.scss +7 -0
  136. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_misc.scss +7 -0
  137. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_nav.scss +33 -0
  138. package/dist/templates/vuexy-portal/src/@core/scss/base/placeholders/_vertical-nav.scss +80 -0
  139. package/dist/templates/vuexy-portal/src/@core/scss/base/skins/_bordered.scss +72 -0
  140. package/dist/templates/vuexy-portal/src/@core/scss/base/skins/_index.scss +1 -0
  141. package/dist/templates/vuexy-portal/src/@core/scss/template/_default-layout-w-horizontal-nav.scss +9 -0
  142. package/dist/templates/vuexy-portal/src/@core/scss/template/_default-layout-w-vertical-nav.scss +20 -0
  143. package/dist/templates/vuexy-portal/src/@core/scss/template/_horizontal-nav.scss +40 -0
  144. package/dist/templates/vuexy-portal/src/@core/scss/template/_mixins.scss +6 -0
  145. package/dist/templates/vuexy-portal/src/@core/scss/template/_utilities.scss +49 -0
  146. package/dist/templates/vuexy-portal/src/@core/scss/template/_variables.scss +102 -0
  147. package/dist/templates/vuexy-portal/src/@core/scss/template/_vertical-nav.scss +47 -0
  148. package/dist/templates/vuexy-portal/src/@core/scss/template/index.scss +17 -0
  149. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/apex-chart.scss +108 -0
  150. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/full-calendar.scss +351 -0
  151. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/shepherd.scss +94 -0
  152. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/swiper.scss +5 -0
  153. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/_variables.scss +351 -0
  154. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_alert.scss +114 -0
  155. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_avatar.scss +27 -0
  156. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_badge.scss +25 -0
  157. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_button.scss +280 -0
  158. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_cards.scss +3 -0
  159. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_checkbox.scss +57 -0
  160. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_chip.scss +102 -0
  161. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_dialog.scss +27 -0
  162. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_expansion-panels.scss +106 -0
  163. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_field.scss +308 -0
  164. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_list.scss +30 -0
  165. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_menu.scss +35 -0
  166. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_otp-input.scss +17 -0
  167. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_pagination.scss +140 -0
  168. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_progress.scss +13 -0
  169. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_radio.scss +46 -0
  170. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_rating.scss +20 -0
  171. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_slider.scss +27 -0
  172. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_snackbar.scss +10 -0
  173. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_switch.scss +58 -0
  174. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_table.scss +48 -0
  175. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_tabs.scss +91 -0
  176. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_textarea.scss +9 -0
  177. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_timeline.scss +99 -0
  178. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/_tooltip.scss +6 -0
  179. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/components/index.scss +25 -0
  180. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/index.scss +3 -0
  181. package/dist/templates/vuexy-portal/src/@core/scss/template/libs/vuetify/overrides.scss +18 -0
  182. package/dist/templates/vuexy-portal/src/@core/scss/template/pages/misc.scss +20 -0
  183. package/dist/templates/vuexy-portal/src/@core/scss/template/pages/page-auth.scss +63 -0
  184. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_default-layout-horizontal-nav.scss +7 -0
  185. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_default-layout-vertical-nav.scss +8 -0
  186. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_horizontal-nav.scss +47 -0
  187. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_index.scss +6 -0
  188. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_misc.scss +3 -0
  189. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_nav.scss +27 -0
  190. package/dist/templates/vuexy-portal/src/@core/scss/template/placeholders/_vertical-nav.scss +35 -0
  191. package/dist/templates/vuexy-portal/src/@core/scss/template/skins/_bordered.scss +82 -0
  192. package/dist/templates/vuexy-portal/src/@core/scss/template/skins/_index.scss +1 -0
  193. package/dist/templates/vuexy-portal/src/@custom/assets/images/user-profile-header.png +0 -0
  194. package/dist/templates/vuexy-portal/src/@custom/components/ConfirmationDialog.vue +155 -0
  195. package/dist/templates/vuexy-portal/src/@layouts/components/HorizontalNav.vue +35 -0
  196. package/dist/templates/vuexy-portal/src/@layouts/components/HorizontalNavGroup.vue +110 -0
  197. package/dist/templates/vuexy-portal/src/@layouts/components/HorizontalNavLayout.vue +150 -0
  198. package/dist/templates/vuexy-portal/src/@layouts/components/HorizontalNavLink.vue +56 -0
  199. package/dist/templates/vuexy-portal/src/@layouts/components/HorizontalNavPopper.vue +175 -0
  200. package/dist/templates/vuexy-portal/src/@layouts/components/TransitionExpand.vue +92 -0
  201. package/dist/templates/vuexy-portal/src/@layouts/components/VNodeRenderer.tsx +17 -0
  202. package/dist/templates/vuexy-portal/src/@layouts/components/VerticalNav.vue +236 -0
  203. package/dist/templates/vuexy-portal/src/@layouts/components/VerticalNavGroup.vue +267 -0
  204. package/dist/templates/vuexy-portal/src/@layouts/components/VerticalNavLayout.vue +232 -0
  205. package/dist/templates/vuexy-portal/src/@layouts/components/VerticalNavLink.vue +68 -0
  206. package/dist/templates/vuexy-portal/src/@layouts/components/VerticalNavSectionTitle.vue +37 -0
  207. package/dist/templates/vuexy-portal/src/@layouts/styles/_classes.scss +3 -0
  208. package/dist/templates/vuexy-portal/src/@layouts/styles/_default-layout.scss +35 -0
  209. package/dist/templates/vuexy-portal/src/@layouts/styles/_global.scss +10 -0
  210. package/dist/templates/vuexy-portal/src/@layouts/styles/_mixins.scss +30 -0
  211. package/dist/templates/vuexy-portal/src/@layouts/styles/_placeholders.scss +53 -0
  212. package/dist/templates/vuexy-portal/src/@layouts/styles/_rtl.scss +7 -0
  213. package/dist/templates/vuexy-portal/src/@layouts/styles/_variables.scss +29 -0
  214. package/dist/templates/vuexy-portal/src/@layouts/styles/index.scss +3 -0
  215. package/dist/templates/vuexy-portal/src/App.vue +26 -0
  216. package/dist/templates/vuexy-portal/src/assets/images/avatars/avatar-1.png +0 -0
  217. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/border-light.svg +16 -0
  218. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/collapsed-light.svg +17 -0
  219. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/compact-light.svg +11 -0
  220. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/default-light.svg +17 -0
  221. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/horizontal-light.svg +12 -0
  222. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/ltr-light.svg +15 -0
  223. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/rtl-light.svg +15 -0
  224. package/dist/templates/vuexy-portal/src/assets/images/customizer-icons/wide-light.svg +11 -0
  225. package/dist/templates/vuexy-portal/src/assets/images/logo.svg +6 -0
  226. package/dist/templates/vuexy-portal/src/assets/images/misc/3d-safe-box-with-golden-dollar-coins.png +0 -0
  227. package/dist/templates/vuexy-portal/src/assets/images/misc/3d-space-rocket-with-smoke.png +0 -0
  228. package/dist/templates/vuexy-portal/src/assets/images/misc/dollar-coins-flying-pink-piggy-bank.png +0 -0
  229. package/dist/templates/vuexy-portal/src/assets/images/misc/fleet-car.png +0 -0
  230. package/dist/templates/vuexy-portal/src/assets/images/pages/misc-mask-dark.png +0 -0
  231. package/dist/templates/vuexy-portal/src/assets/images/pages/misc-mask-light.png +0 -0
  232. package/dist/templates/vuexy-portal/src/assets/images/svg/Card.svg +8 -0
  233. package/dist/templates/vuexy-portal/src/assets/images/svg/Check.svg +4 -0
  234. package/dist/templates/vuexy-portal/src/assets/images/svg/Diamond.svg +12 -0
  235. package/dist/templates/vuexy-portal/src/assets/images/svg/Suitcase.svg +4 -0
  236. package/dist/templates/vuexy-portal/src/assets/images/svg/Wallet.svg +10 -0
  237. package/dist/templates/vuexy-portal/src/assets/images/svg/address.svg +25 -0
  238. package/dist/templates/vuexy-portal/src/assets/images/svg/auth-v1-bottom-shape.svg +4 -0
  239. package/dist/templates/vuexy-portal/src/assets/images/svg/auth-v1-top-shape.svg +4 -0
  240. package/dist/templates/vuexy-portal/src/assets/images/svg/cart.svg +5 -0
  241. package/dist/templates/vuexy-portal/src/assets/images/svg/checkbox-checked.svg +4 -0
  242. package/dist/templates/vuexy-portal/src/assets/images/svg/checkbox-indeterminate.svg +4 -0
  243. package/dist/templates/vuexy-portal/src/assets/images/svg/checkbox-unchecked.svg +10 -0
  244. package/dist/templates/vuexy-portal/src/assets/images/svg/discord.svg +10 -0
  245. package/dist/templates/vuexy-portal/src/assets/images/svg/gift.svg +8 -0
  246. package/dist/templates/vuexy-portal/src/assets/images/svg/home.svg +5 -0
  247. package/dist/templates/vuexy-portal/src/assets/images/svg/keyboard.svg +4 -0
  248. package/dist/templates/vuexy-portal/src/assets/images/svg/laptop.svg +4 -0
  249. package/dist/templates/vuexy-portal/src/assets/images/svg/lightbulb.svg +8 -0
  250. package/dist/templates/vuexy-portal/src/assets/images/svg/office.svg +4 -0
  251. package/dist/templates/vuexy-portal/src/assets/images/svg/paper-send.svg +4 -0
  252. package/dist/templates/vuexy-portal/src/assets/images/svg/payment.svg +21 -0
  253. package/dist/templates/vuexy-portal/src/assets/images/svg/radio-checked.svg +3 -0
  254. package/dist/templates/vuexy-portal/src/assets/images/svg/radio-unchecked.svg +3 -0
  255. package/dist/templates/vuexy-portal/src/assets/images/svg/rocket.svg +4 -0
  256. package/dist/templates/vuexy-portal/src/assets/images/svg/trending.svg +14 -0
  257. package/dist/templates/vuexy-portal/src/assets/images/svg/user-info.svg +4 -0
  258. package/dist/templates/vuexy-portal/src/assets/images/svg/user.svg +6 -0
  259. package/dist/templates/vuexy-portal/src/assets/images/svg/wizard-account.svg +6 -0
  260. package/dist/templates/vuexy-portal/src/assets/images/svg/wizard-address.svg +18 -0
  261. package/dist/templates/vuexy-portal/src/assets/images/svg/wizard-personal.svg +6 -0
  262. package/dist/templates/vuexy-portal/src/assets/images/svg/wizard-social-link.svg +6 -0
  263. package/dist/templates/vuexy-portal/src/assets/images/svg/wizard-submit.svg +6 -0
  264. package/dist/templates/vuexy-portal/src/assets/styles/styles.scss +1 -0
  265. package/dist/templates/vuexy-portal/src/assets/styles/variables/_template.scss +6 -0
  266. package/dist/templates/vuexy-portal/src/assets/styles/variables/_vuetify.scss +7 -0
  267. package/dist/templates/vuexy-portal/src/components/AppLoadingIndicator.vue +63 -0
  268. package/dist/templates/vuexy-portal/src/components/AppPricing.vue +247 -0
  269. package/dist/templates/vuexy-portal/src/components/AppSearchHeader.vue +77 -0
  270. package/dist/templates/vuexy-portal/src/components/ErrorHeader.vue +40 -0
  271. package/dist/templates/vuexy-portal/src/components/dialogs/AddAuthenticatorAppDialog.vue +101 -0
  272. package/dist/templates/vuexy-portal/src/components/dialogs/AddEditAddressDialog.vue +238 -0
  273. package/dist/templates/vuexy-portal/src/components/dialogs/AddEditPermissionDialog.vue +93 -0
  274. package/dist/templates/vuexy-portal/src/components/dialogs/AddEditRoleDialog.vue +302 -0
  275. package/dist/templates/vuexy-portal/src/components/dialogs/AddPaymentMethodDialog.vue +120 -0
  276. package/dist/templates/vuexy-portal/src/components/dialogs/CardAddEditDialog.vue +153 -0
  277. package/dist/templates/vuexy-portal/src/components/dialogs/ConfirmDialog.vue +151 -0
  278. package/dist/templates/vuexy-portal/src/components/dialogs/CreateAppDialog.vue +459 -0
  279. package/dist/templates/vuexy-portal/src/components/dialogs/EnableOneTimePasswordDialog.vue +85 -0
  280. package/dist/templates/vuexy-portal/src/components/dialogs/PaymentProvidersDialog.vue +123 -0
  281. package/dist/templates/vuexy-portal/src/components/dialogs/PricingPlanDialog.vue +34 -0
  282. package/dist/templates/vuexy-portal/src/components/dialogs/ReferAndEarnDialog.vue +181 -0
  283. package/dist/templates/vuexy-portal/src/components/dialogs/ShareProjectDialog.vue +198 -0
  284. package/dist/templates/vuexy-portal/src/components/dialogs/TwoFactorAuthDialog.vue +120 -0
  285. package/dist/templates/vuexy-portal/src/components/dialogs/UserInfoEditDialog.vue +246 -0
  286. package/dist/templates/vuexy-portal/src/components/dialogs/UserUpgradePlanDialog.vue +101 -0
  287. package/dist/templates/vuexy-portal/src/layouts/blank.vue +42 -0
  288. package/dist/templates/vuexy-portal/src/layouts/components/DefaultLayoutWithHorizontalNav.vue +75 -0
  289. package/dist/templates/vuexy-portal/src/layouts/components/DefaultLayoutWithVerticalNav.vue +79 -0
  290. package/dist/templates/vuexy-portal/src/layouts/components/Footer.vue +17 -0
  291. package/dist/templates/vuexy-portal/src/layouts/components/NavSearchBar.vue +266 -0
  292. package/dist/templates/vuexy-portal/src/layouts/components/NavbarShortcuts.vue +45 -0
  293. package/dist/templates/vuexy-portal/src/layouts/components/NavbarThemeSwitcher.vue +22 -0
  294. package/dist/templates/vuexy-portal/src/layouts/components/UserProfile.vue +114 -0
  295. package/dist/templates/vuexy-portal/src/layouts/default.vue +30 -0
  296. package/dist/templates/vuexy-portal/src/pages/[...error].vue +46 -0
  297. package/dist/templates/vuexy-portal/src/pages/account-settings/[tab].vue +57 -0
  298. package/dist/templates/vuexy-portal/src/pages/index.vue +32 -0
  299. package/dist/templates/vuexy-portal/src/pages/login.vue +178 -0
  300. package/dist/templates/vuexy-portal/src/pages/not-authorized.vue +47 -0
  301. package/dist/templates/vuexy-portal/src/pages/second-page.vue +13 -0
  302. package/dist/templates/vuexy-portal/src/plugins/casl/shims-ability.d.ts +8 -0
  303. package/dist/templates/vuexy-portal/src/plugins/i18n/locales/en_US.json +88 -0
  304. package/dist/templates/vuexy-portal/src/plugins/i18n/locales/zh_CN.json +88 -0
  305. package/dist/templates/vuexy-portal/src/plugins/i18n/vue-i18n.d.ts +17 -0
  306. package/dist/templates/vuexy-portal/src/plugins/iconify/icons.css +21039 -0
  307. package/dist/templates/vuexy-portal/src/plugins/iconify/package.json +3 -0
  308. package/dist/templates/vuexy-portal/src/views/account-settings/AccountSettingsSecurity.vue +179 -0
  309. package/dist/templates/vuexy-portal/typed-router.d.ts +146 -0
  310. package/dist/utils/template.js +1 -0
  311. package/dist/utils/template.js.map +1 -1
  312. package/package.json +1 -1
  313. package/.gitlab-ci.yml +0 -145
  314. package/Makefile +0 -62
  315. package/dist/templates/db-schema/.gitlab-ci.yml +0 -139
  316. package/dist/templates/db-schema/Makefile +0 -885
  317. package/dist/templates/k8s-deployment/.gitlab-ci.yml +0 -128
  318. package/dist/templates/k8s-deployment/Makefile +0 -196
  319. package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/script/Makefile +0 -12
  320. package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/script/Makefile +0 -8
  321. package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/script/Makefile +0 -49
  322. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/Makefile +0 -9
  323. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/script/Makefile +0 -14
  324. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/_t-0100-readiness-liveness.ts +0 -84
  325. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/hub.ts +0 -372
  326. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-contact.ts +0 -158
  327. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-contract.ts +0 -328
  328. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-kyc.ts +0 -304
  329. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-onboard-app.ts +0 -823
  330. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-onboard-web.ts +0 -493
  331. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-profile.ts +0 -277
  332. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-whitelist.ts +0 -133
  333. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/t-0200-start.ts +0 -172
  334. package/dist/templates/mxw-base-api-express/.dockerignore +0 -2
  335. package/dist/templates/mxw-base-api-express/.env +0 -10
  336. package/dist/templates/mxw-base-api-express/.gitlab-ci.yml +0 -174
  337. package/dist/templates/mxw-base-api-express/.nvmrc +0 -1
  338. package/dist/templates/mxw-base-api-express/Makefile +0 -84
  339. package/dist/templates/mxw-base-api-express/src/app-service.test.ts +0 -94
  340. package/dist/templates/mxw-base-api-express/src/app-service.ts +0 -498
  341. package/dist/templates/mxw-base-api-express/src/auth/auth-user.test.ts +0 -215
  342. package/dist/templates/mxw-base-api-express/src/auth/auth-user.ts +0 -86
  343. package/dist/templates/mxw-base-api-express/src/auth/auth.ts +0 -81
  344. package/dist/templates/mxw-base-api-express/src/core-service.ts +0 -72
  345. package/dist/templates/mxw-base-api-express/src/crud.ts +0 -84
  346. package/dist/templates/mxw-base-api-express/src/http-handler.ts +0 -71
  347. package/dist/templates/mxw-base-api-express/src/server.ts +0 -54
  348. package/dist/templates/mxw-base-api-express/src/test.ts +0 -38
  349. package/dist/templates/mxw-base-api-express/src/utils/api-utilities.ts +0 -52
  350. package/dist/templates/mxw-base-api-express/src/utils/file-utilities.ts +0 -55
  351. package/dist/templates/mxw-base-api-express/tsconfig.json +0 -32
  352. package/dist/templates/nestjs-api/.dockerignore +0 -6
  353. package/dist/templates/nestjs-api/.gitlab-ci.yml +0 -174
  354. package/dist/templates/nestjs-api/.nvmrc +0 -1
  355. package/dist/templates/nestjs-api/.prettierrc +0 -4
  356. package/dist/templates/nestjs-api/Makefile +0 -95
  357. package/dist/templates/nestjs-api/nest-cli.json +0 -11
  358. package/dist/templates/nestjs-api/src/app.controller.spec.ts +0 -22
  359. package/dist/templates/nestjs-api/src/app.controller.ts +0 -27
  360. package/dist/templates/nestjs-api/src/app.module.ts +0 -32
  361. package/dist/templates/nestjs-api/src/app.service.ts +0 -27
  362. package/dist/templates/nestjs-api/src/main.ts +0 -26
  363. package/dist/templates/nestjs-api/test/app.e2e-spec.ts +0 -24
  364. package/dist/templates/nestjs-api/tsconfig.build.json +0 -4
  365. package/dist/templates/nestjs-api/tsconfig.json +0 -21
  366. package/dist/templates/nestjs-library/.eslintrc.js +0 -24
  367. package/dist/templates/nestjs-library/.gitlab-ci.yml +0 -138
  368. package/dist/templates/nestjs-library/.prettierrc +0 -6
  369. package/dist/templates/nestjs-library/Makefile +0 -60
  370. package/dist/templates/nestjs-library/index.ts +0 -1
  371. package/dist/templates/nestjs-library/lib/index.ts +0 -2
  372. package/dist/templates/nestjs-library/test/app/controller/hello.controller.ts +0 -7
  373. package/dist/templates/nestjs-library/tsconfig.build.json +0 -7
  374. package/dist/templates/nestjs-library/tsconfig.json +0 -18
  375. package/dist/templates/ts-library/.dockerignore +0 -2
  376. package/dist/templates/ts-library/.eslintrc.js +0 -24
  377. package/dist/templates/ts-library/.gitlab-ci.yml +0 -136
  378. package/dist/templates/ts-library/.prettierrc +0 -6
  379. package/dist/templates/ts-library/Makefile +0 -58
  380. package/dist/templates/ts-library/index.ts +0 -1
  381. package/dist/templates/ts-library/lib/index.ts +0 -1
  382. package/dist/templates/ts-library/lib/samples/index.ts +0 -5
  383. package/dist/templates/ts-library/lib/samples/samples-function.ts +0 -3
  384. package/dist/templates/ts-library/test/sample.e2e-spec.ts +0 -10
  385. package/dist/templates/ts-library/tsconfig.build.json +0 -4
  386. package/tsconfig.json +0 -24
  387. /package/dist/templates/{nestjs-api/.eslintrc.js → turbo-nestjs-vuexy/packages/eslint-config/nest.js} +0 -0
@@ -0,0 +1,151 @@
1
+ <script setup lang="ts">
2
+ interface Props {
3
+ confirmationQuestion: string
4
+ isDialogVisible: boolean
5
+ confirmTitle: string
6
+ confirmMsg: string
7
+ cancelTitle: string
8
+ cancelMsg: string
9
+ }
10
+
11
+ interface Emit {
12
+ (e: 'update:isDialogVisible', value: boolean): void
13
+ (e: 'confirm', value: boolean): void
14
+ }
15
+
16
+ const props = defineProps<Props>()
17
+
18
+ const emit = defineEmits<Emit>()
19
+
20
+ const unsubscribed = ref(false)
21
+ const cancelled = ref(false)
22
+
23
+ const updateModelValue = (val: boolean) => {
24
+ emit('update:isDialogVisible', val)
25
+ }
26
+
27
+ const onConfirmation = () => {
28
+ emit('confirm', true)
29
+ updateModelValue(false)
30
+ unsubscribed.value = true
31
+ }
32
+
33
+ const onCancel = () => {
34
+ emit('confirm', false)
35
+ emit('update:isDialogVisible', false)
36
+ cancelled.value = true
37
+ }
38
+ </script>
39
+
40
+ <template>
41
+ <!-- 👉 Confirm Dialog -->
42
+ <VDialog
43
+ max-width="500"
44
+ :model-value="props.isDialogVisible"
45
+ @update:model-value="updateModelValue"
46
+ >
47
+ <VCard class="text-center px-10 py-6">
48
+ <VCardText>
49
+ <VBtn
50
+ icon
51
+ variant="outlined"
52
+ color="warning"
53
+ class="my-4"
54
+ style=" block-size: 88px;inline-size: 88px; pointer-events: none;"
55
+ >
56
+ <span class="text-5xl">!</span>
57
+ </VBtn>
58
+
59
+ <h6 class="text-lg font-weight-medium">
60
+ {{ props.confirmationQuestion }}
61
+ </h6>
62
+ </VCardText>
63
+
64
+ <VCardText class="d-flex align-center justify-center gap-2">
65
+ <VBtn
66
+ variant="elevated"
67
+ @click="onConfirmation"
68
+ >
69
+ {{ $t('common.confirm') }}
70
+ </VBtn>
71
+
72
+ <VBtn
73
+ color="secondary"
74
+ variant="tonal"
75
+ @click="onCancel"
76
+ >
77
+ {{ $t('common.cancel') }}
78
+ </VBtn>
79
+ </VCardText>
80
+ </VCard>
81
+ </VDialog>
82
+
83
+ <!-- Unsubscribed -->
84
+ <VDialog
85
+ v-model="unsubscribed"
86
+ max-width="500"
87
+ >
88
+ <VCard>
89
+ <VCardText class="text-center px-10 py-6">
90
+ <VBtn
91
+ icon
92
+ variant="outlined"
93
+ color="success"
94
+ class="my-4"
95
+ style=" block-size: 88px;inline-size: 88px; pointer-events: none;"
96
+ >
97
+ <VIcon
98
+ icon="tabler-check"
99
+ size="38"
100
+ />
101
+ </VBtn>
102
+
103
+ <h1 class="text-h4 mb-4">
104
+ {{ props.confirmTitle }}
105
+ </h1>
106
+
107
+ <p>{{ props.confirmMsg }}</p>
108
+
109
+ <VBtn
110
+ color="success"
111
+ @click="unsubscribed = false"
112
+ >
113
+ Ok
114
+ </VBtn>
115
+ </VCardText>
116
+ </VCard>
117
+ </VDialog>
118
+
119
+ <!-- Cancelled -->
120
+ <VDialog
121
+ v-model="cancelled"
122
+ max-width="500"
123
+ >
124
+ <VCard>
125
+ <VCardText class="text-center px-10 py-6">
126
+ <VBtn
127
+ icon
128
+ variant="outlined"
129
+ color="error"
130
+ class="my-4"
131
+ style=" block-size: 88px;inline-size: 88px; pointer-events: none;"
132
+ >
133
+ <span class="text-5xl font-weight-light">X</span>
134
+ </VBtn>
135
+
136
+ <h1 class="text-h4 mb-4">
137
+ {{ props.cancelTitle }}
138
+ </h1>
139
+
140
+ <p>{{ props.cancelMsg }}</p>
141
+
142
+ <VBtn
143
+ color="success"
144
+ @click="cancelled = false"
145
+ >
146
+ Ok
147
+ </VBtn>
148
+ </VCardText>
149
+ </VCard>
150
+ </VDialog>
151
+ </template>
@@ -0,0 +1,459 @@
1
+ <script setup lang="ts">
2
+ import laptopGirl from '@images/illustrations/laptop-girl.png'
3
+
4
+ const props = defineProps<{
5
+ isDialogVisible: boolean
6
+ }>()
7
+
8
+ const emit = defineEmits<{
9
+ (e: 'update:isDialogVisible', val: boolean): void
10
+ (e: 'updatedData', val: unknown): void
11
+ }>()
12
+
13
+ const currentStep = ref(0)
14
+
15
+ const createApp = [
16
+ {
17
+ icon: 'tabler-file-text',
18
+ title: 'DETAILS',
19
+ subtitle: 'Enter Details',
20
+ },
21
+ {
22
+ icon: 'tabler-id',
23
+ title: 'FRAMEWORKS',
24
+ subtitle: 'Select Framework',
25
+ },
26
+ {
27
+ icon: 'tabler-database',
28
+ title: 'DATABASE',
29
+ subtitle: 'Select Database',
30
+ },
31
+ {
32
+ icon: 'tabler-credit-card',
33
+ title: 'BILLING',
34
+ subtitle: 'Payment Details',
35
+ },
36
+ {
37
+ icon: 'tabler-check',
38
+ title: 'SUBMIT',
39
+ subtitle: 'Submit',
40
+ },
41
+ ]
42
+
43
+ const categories = [
44
+ {
45
+ icon: 'tabler-file-text',
46
+ color: 'info',
47
+ title: 'CRM Application',
48
+ subtitle: 'Scales with any business',
49
+ slug: 'crm-application',
50
+ },
51
+ {
52
+ icon: 'tabler-shopping-cart',
53
+ color: 'success',
54
+ title: 'Ecommerce Platforms',
55
+ subtitle: 'Grow Your Business With App',
56
+ slug: 'ecommerce-application',
57
+ },
58
+ {
59
+ icon: 'tabler-device-laptop',
60
+ color: 'error',
61
+ title: 'Online Learning platform',
62
+ subtitle: 'Start learning today',
63
+ slug: 'online-learning-application',
64
+ },
65
+ ]
66
+
67
+ const frameworks = [
68
+ {
69
+ icon: 'tabler-brand-react-native',
70
+ color: 'info',
71
+ title: 'React Native',
72
+ subtitle: 'Create truly native apps',
73
+ slug: 'react-framework',
74
+ },
75
+ {
76
+ icon: 'tabler-brand-angular',
77
+ color: 'error',
78
+ title: 'Angular',
79
+ subtitle: 'Most suited for your application',
80
+ slug: 'angular-framework',
81
+ },
82
+ {
83
+ icon: 'tabler-brand-vue',
84
+ color: 'success',
85
+ title: 'Vue',
86
+ subtitle: 'JS web frameworks',
87
+ slug: 'js-framework',
88
+ },
89
+ {
90
+ icon: 'tabler-brand-html5',
91
+ color: 'warning',
92
+ title: 'HTML',
93
+ subtitle: 'Progressive Framework',
94
+ slug: 'html-framework',
95
+ },
96
+ ]
97
+
98
+ const databases = [
99
+ {
100
+ icon: 'tabler-brand-firebase',
101
+ color: 'error',
102
+ title: 'Firebase',
103
+ subtitle: 'Cloud Firestore',
104
+ slug: 'firebase-database',
105
+ },
106
+ {
107
+ icon: 'tabler-brand-amazon',
108
+ color: 'warning',
109
+ title: 'AWS',
110
+ subtitle: 'Amazon Fast NoSQL Database',
111
+ slug: 'aws-database',
112
+ },
113
+ {
114
+ icon: 'tabler-database',
115
+ color: 'info',
116
+ title: 'MySQL',
117
+ subtitle: 'Basic MySQL database',
118
+ slug: 'mysql-database',
119
+ },
120
+ ]
121
+
122
+ const createAppData = ref({
123
+ category: 'crm-application',
124
+ framework: 'js-framework',
125
+ database: 'firebase-database',
126
+ cardNumber: null,
127
+ cardName: '',
128
+ cardExpiry: '',
129
+ cardCvv: '',
130
+ isSave: true,
131
+ })
132
+
133
+ const dialogVisibleUpdate = (val: boolean) => {
134
+ emit('update:isDialogVisible', val)
135
+ currentStep.value = 0
136
+ }
137
+
138
+ watch(props, () => {
139
+ if (!props.isDialogVisible)
140
+ currentStep.value = 0
141
+ })
142
+
143
+ const onSubmit = () => {
144
+ // eslint-disable-next-line no-alert
145
+ alert('submitted...!!')
146
+ emit('updatedData', createAppData.value)
147
+ }
148
+ </script>
149
+
150
+ <template>
151
+ <VDialog
152
+ :model-value="props.isDialogVisible"
153
+ max-width="900"
154
+ min-height="590"
155
+ @update:model-value="dialogVisibleUpdate"
156
+ >
157
+ <!-- 👉 dialog close btn -->
158
+ <DialogCloseBtn
159
+ size="small"
160
+ @click="emit('update:isDialogVisible', false)"
161
+ />
162
+ <VCard
163
+ class="create-app-dialog"
164
+ min-height="590"
165
+ >
166
+ <VCardText class="pa-5 pa-sm-16">
167
+ <!-- 👉 Title -->
168
+ <h4 class="text-h4 text-center mb-2">
169
+ Create App
170
+ </h4>
171
+ <p class="text-body-1 text-center mb-6">
172
+ Provide data with this form to create your app.
173
+ </p>
174
+
175
+ <VRow>
176
+ <VCol
177
+ cols="12"
178
+ sm="5"
179
+ md="4"
180
+ lg="3"
181
+ >
182
+ <AppStepper
183
+ v-model:current-step="currentStep"
184
+ direction="vertical"
185
+ :items="createApp"
186
+ icon-size="22"
187
+ class="stepper-icon-step-bg"
188
+ />
189
+ </VCol>
190
+
191
+ <VCol
192
+ cols="12"
193
+ sm="7"
194
+ md="8"
195
+ lg="9"
196
+ >
197
+ <VWindow
198
+ v-model="currentStep"
199
+ class="disable-tab-transition stepper-content"
200
+ >
201
+ <!-- 👉 category -->
202
+ <VWindowItem>
203
+ <AppTextField
204
+ label="Application Name"
205
+ placeholder="Application Name"
206
+ />
207
+
208
+ <h5 class="text-h5 mt-6 mb-4">
209
+ Category
210
+ </h5>
211
+ <VRadioGroup v-model="createAppData.category">
212
+ <VList class="card-list">
213
+ <VListItem
214
+ v-for="category in categories"
215
+ :key="category.title"
216
+ @click="createAppData.category = category.slug"
217
+ >
218
+ <template #prepend>
219
+ <VAvatar
220
+ size="46"
221
+ rounded
222
+ variant="tonal"
223
+ :color="category.color"
224
+ >
225
+ <VIcon
226
+ :icon="category.icon"
227
+ size="30"
228
+ />
229
+ </VAvatar>
230
+ </template>
231
+
232
+ <VListItemTitle>
233
+ <h6 class="text-h6 mb-1">
234
+ {{ category.title }}
235
+ </h6>
236
+ </VListItemTitle>
237
+ <VListItemSubtitle>
238
+ {{ category.subtitle }}
239
+ </VListItemSubtitle>
240
+
241
+ <template #append>
242
+ <VRadio :value="category.slug" />
243
+ </template>
244
+ </VListItem>
245
+ </VList>
246
+ </VRadioGroup>
247
+ </VWindowItem>
248
+
249
+ <!-- 👉 Frameworks -->
250
+ <VWindowItem>
251
+ <h5 class="text-h5 mb-4">
252
+ Select Framework
253
+ </h5>
254
+ <VRadioGroup v-model="createAppData.framework">
255
+ <VList class="card-list">
256
+ <VListItem
257
+ v-for="framework in frameworks"
258
+ :key="framework.title"
259
+ @click="createAppData.framework = framework.slug"
260
+ >
261
+ <template #prepend>
262
+ <VAvatar
263
+ size="46"
264
+ rounded
265
+ variant="tonal"
266
+ :color="framework.color"
267
+ >
268
+ <VIcon
269
+ :icon="framework.icon"
270
+ size="30"
271
+ />
272
+ </VAvatar>
273
+ </template>
274
+ <VListItemTitle>
275
+ <h6 class="text-h6 mb-1">
276
+ {{ framework.title }}
277
+ </h6>
278
+ </VListItemTitle>
279
+ <VListItemSubtitle>
280
+ {{ framework.subtitle }}
281
+ </VListItemSubtitle>
282
+ <template #append>
283
+ <VRadio :value="framework.slug" />
284
+ </template>
285
+ </VListItem>
286
+ </VList>
287
+ </VRadioGroup>
288
+ </VWindowItem>
289
+
290
+ <!-- 👉 Database Engine -->
291
+ <VWindowItem>
292
+ <AppTextField
293
+ label="Database Name"
294
+ placeholder="UserDB"
295
+ />
296
+
297
+ <h5 class="text-h5 mt-6 mb-4">
298
+ Select Database Engine
299
+ </h5>
300
+ <VRadioGroup v-model="createAppData.database">
301
+ <VList class="card-list">
302
+ <VListItem
303
+ v-for="database in databases"
304
+ :key="database.title"
305
+ @click="createAppData.database = database.slug"
306
+ >
307
+ <template #prepend>
308
+ <VAvatar
309
+ size="46"
310
+ rounded
311
+ variant="tonal"
312
+ :color="database.color"
313
+ >
314
+ <VIcon
315
+ :icon="database.icon"
316
+ size="30"
317
+ />
318
+ </VAvatar>
319
+ </template>
320
+ <VListItemTitle>
321
+ <h6 class="text-h6 mb-1">
322
+ {{ database.title }}
323
+ </h6>
324
+ </VListItemTitle>
325
+ <VListItemSubtitle>
326
+ {{ database.subtitle }}
327
+ </VListItemSubtitle>
328
+ <template #append>
329
+ <VRadio :value="database.slug" />
330
+ </template>
331
+ </VListItem>
332
+ </VList>
333
+ </VRadioGroup>
334
+ </VWindowItem>
335
+
336
+ <!-- 👉 Billing form -->
337
+ <VWindowItem>
338
+ <h6 class="text-h6 mb-6">
339
+ Payment Details
340
+ </h6>
341
+
342
+ <VForm>
343
+ <VRow>
344
+ <VCol cols="12">
345
+ <AppTextField
346
+ v-model="createAppData.cardNumber"
347
+ label="Card Number"
348
+ placeholder="1234 1234 1234 1234"
349
+ type="number"
350
+ />
351
+ </VCol>
352
+
353
+ <VCol
354
+ cols="12"
355
+ md="6"
356
+ >
357
+ <AppTextField
358
+ v-model="createAppData.cardName"
359
+ label="Name on Card"
360
+ placeholder="John Doe"
361
+ />
362
+ </VCol>
363
+
364
+ <VCol
365
+ cols="6"
366
+ md="3"
367
+ >
368
+ <AppTextField
369
+ v-model="createAppData.cardExpiry"
370
+ label="Expiry"
371
+ placeholder="MM/YY"
372
+ />
373
+ </VCol>
374
+
375
+ <VCol
376
+ cols="6"
377
+ md="3"
378
+ >
379
+ <AppTextField
380
+ v-model="createAppData.cardCvv"
381
+ label="CVV"
382
+ placeholder="123"
383
+ />
384
+ </VCol>
385
+
386
+ <VCol cols="12">
387
+ <VSwitch
388
+ v-model="createAppData.isSave"
389
+ label="Save Card for future billing?"
390
+ />
391
+ </VCol>
392
+ </VRow>
393
+ </VForm>
394
+ </VWindowItem>
395
+
396
+ <VWindowItem class="text-center">
397
+ <h5 class="text-h5 mb-1">
398
+ Submit
399
+ </h5>
400
+ <p class="text-sm mb-4">
401
+ Submit to kickstart your project.
402
+ </p>
403
+
404
+ <VImg
405
+ :src="laptopGirl"
406
+ width="176"
407
+ class="mx-auto"
408
+ />
409
+ </VWindowItem>
410
+ </VWindow>
411
+
412
+ <div class="d-flex justify-space-between mt-6">
413
+ <VBtn
414
+ variant="tonal"
415
+ color="secondary"
416
+ :disabled="currentStep === 0"
417
+ @click="currentStep--"
418
+ >
419
+ <VIcon
420
+ icon="tabler-arrow-left"
421
+ start
422
+ class="flip-in-rtl"
423
+ />
424
+ Previous
425
+ </VBtn>
426
+
427
+ <VBtn
428
+ v-if="createApp.length - 1 === currentStep"
429
+ color="success"
430
+ @click="onSubmit"
431
+ >
432
+ submit
433
+ </VBtn>
434
+
435
+ <VBtn
436
+ v-else
437
+ @click="currentStep++"
438
+ >
439
+ Next
440
+
441
+ <VIcon
442
+ icon="tabler-arrow-right"
443
+ end
444
+ class="flip-in-rtl"
445
+ />
446
+ </VBtn>
447
+ </div>
448
+ </VCol>
449
+ </VRow>
450
+ </VCardText>
451
+ </VCard>
452
+ </VDialog>
453
+ </template>
454
+
455
+ <style lang="scss">
456
+ .stepper-content .card-list {
457
+ --v-card-list-gap: 16px;
458
+ }
459
+ </style>
@@ -0,0 +1,85 @@
1
+ <script setup lang="ts">
2
+ interface Emit {
3
+ (e: 'update:isDialogVisible', value: boolean): void
4
+ (e: 'submit', value: string): void
5
+ }
6
+ interface Props {
7
+ mobileNumber?: string
8
+ isDialogVisible: boolean
9
+ }
10
+ const props = defineProps<Props>()
11
+ const emit = defineEmits<Emit>()
12
+
13
+ const phoneNumber = ref(structuredClone(toRaw(props.mobileNumber)))
14
+
15
+ const formSubmit = () => {
16
+ if (phoneNumber.value) {
17
+ emit('submit', phoneNumber.value)
18
+ emit('update:isDialogVisible', false)
19
+ }
20
+ }
21
+
22
+ const resetPhoneNumber = () => {
23
+ phoneNumber.value = structuredClone(toRaw(props.mobileNumber))
24
+ emit('update:isDialogVisible', false)
25
+ }
26
+
27
+ const dialogModelValueUpdate = (val: boolean) => {
28
+ emit('update:isDialogVisible', val)
29
+ }
30
+ </script>
31
+
32
+ <template>
33
+ <VDialog
34
+ :width="$vuetify.display.smAndDown ? 'auto' : 900"
35
+ :model-value="props.isDialogVisible"
36
+ @update:model-value="dialogModelValueUpdate"
37
+ >
38
+ <!-- Dialog close btn -->
39
+ <DialogCloseBtn @click="dialogModelValueUpdate(false)" />
40
+
41
+ <VCard class="pa-2 pa-sm-10">
42
+ <VCardText>
43
+ <!-- 👉 Title -->
44
+ <h5 class="text-h5 mb-2">
45
+ Verify Your Mobile Number for SMS
46
+ </h5>
47
+ <p class="text-body-1 mb-6">
48
+ Enter your mobile phone number with country code and we will send you a verification code.
49
+ </p>
50
+
51
+ <VForm @submit.prevent="() => {}">
52
+ <AppTextField
53
+ v-model="phoneNumber"
54
+ name="mobile"
55
+ label="Phone Number"
56
+ placeholder="+1 123 456 7890"
57
+ type="number"
58
+ class="mb-6"
59
+ />
60
+
61
+ <div class="d-flex flex-wrap justify-end gap-4">
62
+ <VBtn
63
+ color="secondary"
64
+ variant="tonal"
65
+ @click="resetPhoneNumber"
66
+ >
67
+ Cancel
68
+ </VBtn>
69
+ <VBtn
70
+ type="submit"
71
+ @click="formSubmit"
72
+ >
73
+ continue
74
+ <VIcon
75
+ end
76
+ icon="tabler-arrow-right"
77
+ class="flip-in-rtl"
78
+ />
79
+ </VBtn>
80
+ </div>
81
+ </VForm>
82
+ </VCardText>
83
+ </VCard>
84
+ </VDialog>
85
+ </template>