@nathapp/na-cli 1.0.1-rc.6 → 1.0.2

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 (393) hide show
  1. package/README.md +88 -20
  2. package/dist/index.js +36 -2
  3. package/dist/index.js.map +1 -1
  4. package/dist/templates/k8s-cert-manager/README.md +60 -0
  5. package/dist/templates/k8s-cert-manager/cloudflare-cert-manager-issuer.yaml +26 -0
  6. package/dist/templates/k8s-deployment/templates/_deployment.tpl +1 -1
  7. package/dist/templates/k8s-deployment/templates/_endpointslice.tpl +42 -0
  8. package/dist/templates/k8s-deployment/templates/_gateway.tpl +94 -0
  9. package/dist/templates/k8s-deployment/templates/_grpcroute.tpl +186 -0
  10. package/dist/templates/k8s-deployment/templates/_httproute.tpl +209 -0
  11. package/dist/templates/k8s-deployment/templates/_ingressroute.tpl +178 -0
  12. package/dist/templates/k8s-deployment/templates/_middleware.tpl +553 -0
  13. package/dist/templates/k8s-deployment/templates/_serverstransport.tpl +73 -0
  14. package/dist/templates/k8s-deployment/templates/_service.tpl +4 -1
  15. package/dist/templates/k8s-helm-chart/templates/endpointslice.yaml +1 -0
  16. package/dist/templates/k8s-helm-chart/templates/gateway.yaml +1 -0
  17. package/dist/templates/k8s-helm-chart/templates/grpcroute.yaml +1 -0
  18. package/dist/templates/k8s-helm-chart/templates/httproute.yaml +1 -0
  19. package/dist/templates/k8s-helm-chart/templates/ingressroute.yaml +1 -0
  20. package/dist/templates/k8s-helm-chart/templates/middleware.yaml +1 -0
  21. package/dist/templates/k8s-helm-chart/templates/serverstransport.yaml +1 -0
  22. package/dist/templates/k8s-helm-chart/values.yaml +3 -5
  23. package/dist/templates/nestjs-api/{.env → .env.local} +5 -0
  24. package/dist/templates/nestjs-api/.gitignore-rename +2 -1
  25. package/dist/templates/nestjs-api/Dockerfile +33 -13
  26. package/dist/templates/nestjs-api/package.json +49 -39
  27. package/dist/templates/nestjs-api/src/i18n/en_US/date.json +7 -0
  28. package/dist/templates/nestjs-api/src/i18n/en_US/validation.json +16 -0
  29. package/dist/templates/nestjs-api/src/i18n/zh_CN/date.json +7 -0
  30. package/dist/templates/nestjs-api/src/i18n/zh_CN/validation.json +16 -0
  31. package/dist/templates/nestjs-api/src/i18n/zh_TW/date.json +7 -0
  32. package/dist/templates/nestjs-api/src/i18n/zh_TW/validation.json +16 -0
  33. package/dist/templates/nestjs-api/test/jest-test.json +26 -0
  34. package/dist/templates/nestjs-library/.npmignore-rename +4 -0
  35. package/dist/templates/nestjs-library/package.json +8 -8
  36. package/dist/templates/ts-library/.npmignore-rename +4 -0
  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 +122 -47
  311. package/dist/utils/template.js.map +1 -1
  312. package/package.json +1 -1
  313. package/.gitlab-ci.yml +0 -143
  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/.gitignore-rename +0 -3
  337. package/dist/templates/mxw-base-api-express/.gitlab-ci.yml +0 -174
  338. package/dist/templates/mxw-base-api-express/.nvmrc +0 -1
  339. package/dist/templates/mxw-base-api-express/Dockerfile +0 -14
  340. package/dist/templates/mxw-base-api-express/Makefile +0 -84
  341. package/dist/templates/mxw-base-api-express/README.md +0 -71
  342. package/dist/templates/mxw-base-api-express/package.json +0 -55
  343. package/dist/templates/mxw-base-api-express/src/app-service.test.ts +0 -94
  344. package/dist/templates/mxw-base-api-express/src/app-service.ts +0 -498
  345. package/dist/templates/mxw-base-api-express/src/auth/auth-user.test.ts +0 -215
  346. package/dist/templates/mxw-base-api-express/src/auth/auth-user.ts +0 -86
  347. package/dist/templates/mxw-base-api-express/src/auth/auth.ts +0 -81
  348. package/dist/templates/mxw-base-api-express/src/core-service.ts +0 -72
  349. package/dist/templates/mxw-base-api-express/src/crud.ts +0 -84
  350. package/dist/templates/mxw-base-api-express/src/http-handler.ts +0 -71
  351. package/dist/templates/mxw-base-api-express/src/server.ts +0 -54
  352. package/dist/templates/mxw-base-api-express/src/test.ts +0 -38
  353. package/dist/templates/mxw-base-api-express/src/utils/api-utilities.ts +0 -52
  354. package/dist/templates/mxw-base-api-express/src/utils/file-utilities.ts +0 -55
  355. package/dist/templates/mxw-base-api-express/tsconfig.json +0 -32
  356. package/dist/templates/nestjs-api/.dockerignore +0 -6
  357. package/dist/templates/nestjs-api/.gitlab-ci.yml +0 -174
  358. package/dist/templates/nestjs-api/.nvmrc +0 -1
  359. package/dist/templates/nestjs-api/.prettierrc +0 -4
  360. package/dist/templates/nestjs-api/Makefile +0 -95
  361. package/dist/templates/nestjs-api/nest-cli.json +0 -11
  362. package/dist/templates/nestjs-api/src/app.controller.spec.ts +0 -24
  363. package/dist/templates/nestjs-api/src/app.controller.ts +0 -27
  364. package/dist/templates/nestjs-api/src/app.module.ts +0 -49
  365. package/dist/templates/nestjs-api/src/app.service.ts +0 -27
  366. package/dist/templates/nestjs-api/src/main.ts +0 -26
  367. package/dist/templates/nestjs-api/test/app.e2e-spec.ts +0 -47
  368. package/dist/templates/nestjs-api/tsconfig.build.json +0 -4
  369. package/dist/templates/nestjs-api/tsconfig.json +0 -24
  370. package/dist/templates/nestjs-library/.eslintrc.js +0 -24
  371. package/dist/templates/nestjs-library/.gitlab-ci.yml +0 -138
  372. package/dist/templates/nestjs-library/.prettierrc +0 -6
  373. package/dist/templates/nestjs-library/Makefile +0 -60
  374. package/dist/templates/nestjs-library/index.ts +0 -1
  375. package/dist/templates/nestjs-library/lib/index.ts +0 -2
  376. package/dist/templates/nestjs-library/test/app/controller/hello.controller.ts +0 -7
  377. package/dist/templates/nestjs-library/tsconfig.build.json +0 -7
  378. package/dist/templates/nestjs-library/tsconfig.json +0 -18
  379. package/dist/templates/ts-library/.dockerignore +0 -2
  380. package/dist/templates/ts-library/.eslintrc.js +0 -24
  381. package/dist/templates/ts-library/.gitlab-ci.yml +0 -136
  382. package/dist/templates/ts-library/.prettierrc +0 -6
  383. package/dist/templates/ts-library/Makefile +0 -58
  384. package/dist/templates/ts-library/index.ts +0 -1
  385. package/dist/templates/ts-library/lib/index.ts +0 -1
  386. package/dist/templates/ts-library/lib/samples/index.ts +0 -5
  387. package/dist/templates/ts-library/lib/samples/samples-function.ts +0 -3
  388. package/dist/templates/ts-library/test/sample.e2e-spec.ts +0 -10
  389. package/dist/templates/ts-library/tsconfig.build.json +0 -4
  390. package/dist/utils/help.js +0 -8
  391. package/dist/utils/help.js.map +0 -1
  392. package/tsconfig.json +0 -24
  393. /package/dist/templates/{nestjs-api/.eslintrc.js → turbo-nestjs-vuexy/packages/eslint-config/nest.js} +0 -0
@@ -0,0 +1,247 @@
1
+ <script setup lang="ts">
2
+ import safeBoxWithGoldenCoin from '@images/misc/3d-safe-box-with-golden-dollar-coins.png'
3
+ import spaceRocket from '@images/misc/3d-space-rocket-with-smoke.png'
4
+ import dollarCoinPiggyBank from '@images/misc/dollar-coins-flying-pink-piggy-bank.png'
5
+
6
+ interface Pricing {
7
+ title?: string
8
+ xs?: number | string
9
+ sm?: number | string
10
+ md?: string | number
11
+ lg?: string | number
12
+ xl?: string | number
13
+ }
14
+
15
+ const props = defineProps<Pricing>()
16
+
17
+ const annualMonthlyPlanPriceToggler = ref(true)
18
+
19
+ const pricingPlans = [
20
+ {
21
+ name: 'Basic',
22
+ tagLine: 'A simple start for everyone',
23
+ logo: dollarCoinPiggyBank,
24
+ monthlyPrice: 0,
25
+ yearlyPrice: 0,
26
+ isPopular: false,
27
+ current: true,
28
+ features: [
29
+ '100 responses a month',
30
+ 'Unlimited forms and surveys',
31
+ 'Unlimited fields',
32
+ 'Basic form creation tools',
33
+ 'Up to 2 subdomains',
34
+ ],
35
+ },
36
+ {
37
+ name: 'Standard',
38
+ tagLine: 'For small to medium businesses',
39
+ logo: safeBoxWithGoldenCoin,
40
+ monthlyPrice: 49,
41
+ yearlyPrice: 499,
42
+ isPopular: true,
43
+ current: false,
44
+ features: [
45
+ 'Unlimited responses',
46
+ 'Unlimited forms and surveys',
47
+ 'Instagram profile page',
48
+ 'Google Docs integration',
49
+ 'Custom “Thank you” page',
50
+ ],
51
+ },
52
+ {
53
+ name: 'Enterprise',
54
+ tagLine: 'Solution for big organizations',
55
+ logo: spaceRocket,
56
+ monthlyPrice: 99,
57
+ yearlyPrice: 999,
58
+ isPopular: false,
59
+ current: false,
60
+ features: [
61
+ 'PayPal payments',
62
+ 'Logic Jumps',
63
+ 'File upload with 5GB storage',
64
+ 'Custom domain support',
65
+ 'Stripe integration',
66
+ ],
67
+ },
68
+ ]
69
+ </script>
70
+
71
+ <template>
72
+ <!-- 👉 Title and subtitle -->
73
+ <div class="text-center">
74
+ <h3 class="text-h3 pricing-title mb-2">
75
+ {{ props.title ? props.title : 'Pricing Plans' }}
76
+ </h3>
77
+ <p class="mb-0">
78
+ All plans include 40+ advanced tools and features to boost your product.
79
+ </p>
80
+ <p class="mb-2">
81
+ Choose the best plan to fit your needs.
82
+ </p>
83
+ </div>
84
+
85
+ <!-- 👉 Annual and monthly price toggler -->
86
+
87
+ <div class="d-flex font-weight-medium text-body-1 align-center justify-center mx-auto mt-12 mb-6">
88
+ <VLabel
89
+ for="pricing-plan-toggle"
90
+ class="me-3"
91
+ >
92
+ Monthly
93
+ </VLabel>
94
+
95
+ <div class="position-relative">
96
+ <VSwitch
97
+ id="pricing-plan-toggle"
98
+ v-model="annualMonthlyPlanPriceToggler"
99
+ >
100
+ <template #label>
101
+ <div class="text-body-1 font-weight-medium">
102
+ Annually
103
+ </div>
104
+ </template>
105
+ </VSwitch>
106
+
107
+ <div class="save-upto-chip position-absolute align-center d-none d-md-flex gap-1">
108
+ <VIcon
109
+ icon="tabler-corner-left-down"
110
+ size="24"
111
+ class="flip-in-rtl mt-2 text-disabled"
112
+ />
113
+ <VChip
114
+ label
115
+ color="primary"
116
+ size="small"
117
+ >
118
+ Save up to 10%
119
+ </VChip>
120
+ </div>
121
+ </div>
122
+ </div>
123
+
124
+ <!-- SECTION pricing plans -->
125
+ <VRow>
126
+ <VCol
127
+ v-for="plan in pricingPlans"
128
+ :key="plan.logo"
129
+ v-bind="props"
130
+ cols="12"
131
+ >
132
+ <!-- 👉 Card -->
133
+ <VCard
134
+ flat
135
+ border
136
+ :class="plan.isPopular ? 'border-primary border-opacity-100' : ''"
137
+ >
138
+ <VCardText
139
+ style="block-size: 3.75rem;"
140
+ class="text-end"
141
+ >
142
+ <!-- 👉 Popular -->
143
+ <VChip
144
+ v-show="plan.isPopular"
145
+ label
146
+ color="primary"
147
+ size="small"
148
+ >
149
+ Popular
150
+ </VChip>
151
+ </VCardText>
152
+
153
+ <!-- 👉 Plan logo -->
154
+ <VCardText>
155
+ <VImg
156
+ :height="120"
157
+ :width="120"
158
+ :src="plan.logo"
159
+ class="mx-auto mb-5"
160
+ />
161
+
162
+ <!-- 👉 Plan name -->
163
+ <h4 class="text-h4 mb-1 text-center">
164
+ {{ plan.name }}
165
+ </h4>
166
+ <p class="mb-0 text-body-1 text-center">
167
+ {{ plan.tagLine }}
168
+ </p>
169
+
170
+ <!-- 👉 Plan price -->
171
+
172
+ <div class="position-relative">
173
+ <div class="d-flex justify-center pt-5 pb-10">
174
+ <div class="text-body-1 align-self-start font-weight-medium">
175
+ $
176
+ </div>
177
+ <h1 class="text-h1 font-weight-medium text-primary">
178
+ {{ annualMonthlyPlanPriceToggler ? Math.floor(Number(plan.yearlyPrice) / 12) : plan.monthlyPrice }}
179
+ </h1>
180
+ <div class="text-body-1 font-weight-medium align-self-end">
181
+ /month
182
+ </div>
183
+ </div>
184
+
185
+ <!-- 👉 Annual Price -->
186
+ <span
187
+ v-show="annualMonthlyPlanPriceToggler"
188
+ class="annual-price-text position-absolute text-caption text-disabled pb-4"
189
+ >
190
+ {{ plan.yearlyPrice === 0 ? 'free' : `USD ${plan.yearlyPrice}/Year` }}
191
+ </span>
192
+ </div>
193
+
194
+ <!-- 👉 Plan features -->
195
+
196
+ <VList class="card-list mb-4">
197
+ <VListItem
198
+ v-for="feature in plan.features"
199
+ :key="feature"
200
+ >
201
+ <template #prepend>
202
+ <VIcon
203
+ size="8"
204
+ icon="tabler-circle-filled"
205
+ color="rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity))"
206
+ />
207
+ </template>
208
+
209
+ <VListItemTitle class="text-body-1">
210
+ {{ feature }}
211
+ </VListItemTitle>
212
+ </VListItem>
213
+ </VList>
214
+
215
+ <!-- 👉 Plan actions -->
216
+ <VBtn
217
+ block
218
+ :color="plan.current ? 'success' : 'primary'"
219
+ :variant="plan.isPopular ? 'elevated' : 'tonal'"
220
+ :to="{ name: 'front-pages-payment' }"
221
+ :active="false"
222
+ >
223
+ {{ plan.yearlyPrice === 0 ? 'Your Current Plan' : 'Upgrade' }}
224
+ </VBtn>
225
+ </VCardText>
226
+ </VCard>
227
+ </VCol>
228
+ </VRow>
229
+ <!-- !SECTION -->
230
+ </template>
231
+
232
+ <style lang="scss" scoped>
233
+ .card-list {
234
+ --v-card-list-gap: 1rem;
235
+ }
236
+
237
+ .save-upto-chip {
238
+ inset-block-start: -2.4rem;
239
+ inset-inline-end: -6rem;
240
+ }
241
+
242
+ .annual-price-text {
243
+ inset-block-end: 3%;
244
+ inset-inline-start: 50%;
245
+ transform: translateX(-50%);
246
+ }
247
+ </style>
@@ -0,0 +1,77 @@
1
+ <script setup lang="ts">
2
+ import AppSearchHeaderBg from '@images/pages/app-search-header-bg.png'
3
+
4
+ interface Props {
5
+ title?: string
6
+ subtitle?: string
7
+ customClass?: string
8
+ placeholder?: string
9
+ density?: 'comfortable' | 'compact' | 'default'
10
+ isReverse?: boolean
11
+ }
12
+
13
+ defineOptions({
14
+ inheritAttrs: false,
15
+ })
16
+
17
+ const props = withDefaults(defineProps<Props>(), {
18
+ density: 'comfortable',
19
+ isReverse: false,
20
+ })
21
+ </script>
22
+
23
+ <template>
24
+ <!-- 👉 Search Banner -->
25
+ <VCard
26
+ flat
27
+ class="text-center search-header"
28
+ :class="props.customClass"
29
+ :style="`background: url(${AppSearchHeaderBg});`"
30
+ >
31
+ <VCardText>
32
+ <slot name="title">
33
+ <h4 class="text-h4 mb-2 font-weight-medium">
34
+ {{ props.title }}
35
+ </h4>
36
+ </slot>
37
+ <div
38
+ class="d-flex"
39
+ :class="isReverse ? 'flex-column' : 'flex-column-reverse' "
40
+ >
41
+ <p class="mb-0">
42
+ {{ props.subtitle }}
43
+ </p>
44
+ <!-- 👉 Search Input -->
45
+ <div>
46
+ <AppTextField
47
+ v-bind="$attrs"
48
+ class="search-header-input mx-auto my-4"
49
+ :placeholder="props.placeholder"
50
+ :density="props.density"
51
+ prepend-inner-icon="tabler-search"
52
+ />
53
+ </div>
54
+ </div>
55
+ </VCardText>
56
+ </VCard>
57
+ </template>
58
+
59
+ <style lang="scss">
60
+ .search-header {
61
+ padding: 4rem !important;
62
+ background-size: cover !important;
63
+ }
64
+
65
+ // search input
66
+ .search-header-input {
67
+ border-radius: 0.375rem !important;
68
+ background-color: rgb(var(--v-theme-surface));
69
+ max-inline-size: 28.125rem !important;
70
+ }
71
+
72
+ @media (max-width: 37.5rem) {
73
+ .search-header {
74
+ padding: 1.5rem !important;
75
+ }
76
+ }
77
+ </style>
@@ -0,0 +1,40 @@
1
+ <script setup lang="ts">
2
+ interface Props {
3
+ statusCode?: string | number
4
+ title?: string
5
+ description?: string
6
+ }
7
+
8
+ const props = defineProps<Props>()
9
+ </script>
10
+
11
+ <template>
12
+ <div class="text-center">
13
+ <!-- 👉 Title and subtitle -->
14
+ <h1
15
+ v-if="props.statusCode"
16
+ class="header-title font-weight-medium mb-2"
17
+ >
18
+ {{ props.statusCode }}
19
+ </h1>
20
+ <h4
21
+ v-if="props.title"
22
+ class="text-h4 font-weight-medium mb-2"
23
+ >
24
+ {{ props.title }}
25
+ </h4>
26
+ <p
27
+ v-if="props.description"
28
+ class="text-body-1 mb-6"
29
+ >
30
+ {{ props.description }}
31
+ </p>
32
+ </div>
33
+ </template>
34
+
35
+ <style lang="scss" scoped>
36
+ .header-title {
37
+ font-size: clamp(3rem, 5vw, 6rem);
38
+ line-height: clamp(3rem, 5vw, 6rem);
39
+ }
40
+ </style>
@@ -0,0 +1,101 @@
1
+ <script setup lang="ts">
2
+ import themeselectionQr from '@images/pages/themeselection-qr.png'
3
+
4
+ interface Emit {
5
+ (e: 'update:isDialogVisible', value: boolean): void
6
+ (e: 'submit', value: string): void
7
+ }
8
+ interface Props {
9
+ authCode?: string
10
+ isDialogVisible: boolean
11
+ }
12
+ const props = defineProps<Props>()
13
+ const emit = defineEmits<Emit>()
14
+
15
+ const authCode = ref(structuredClone(toRaw(props.authCode)))
16
+
17
+ const formSubmit = () => {
18
+ if (authCode.value) {
19
+ emit('submit', authCode.value)
20
+ emit('update:isDialogVisible', false)
21
+ }
22
+ }
23
+
24
+ const resetAuthCode = () => {
25
+ authCode.value = structuredClone(toRaw(props.authCode))
26
+ emit('update:isDialogVisible', false)
27
+ }
28
+ </script>
29
+
30
+ <template>
31
+ <VDialog
32
+ :width="$vuetify.display.smAndDown ? 'auto' : 900"
33
+ :model-value="props.isDialogVisible"
34
+ @update:model-value="(val) => $emit('update:isDialogVisible', val)"
35
+ >
36
+ <!-- Dialog close btn -->
37
+ <DialogCloseBtn @click="$emit('update:isDialogVisible', false)" />
38
+
39
+ <VCard class="pa-2 pa-sm-10">
40
+ <VCardText>
41
+ <!-- 👉 Title -->
42
+ <h4 class="text-h4 text-center mb-6">
43
+ Add Authenticator App
44
+ </h4>
45
+ <h5 class="text-h5 mb-2">
46
+ Authenticator Apps
47
+ </h5>
48
+
49
+ <p class="text-body-1 mb-6">
50
+ Using an authenticator app like Google Authenticator, Microsoft Authenticator, Authy, or 1Password, scan the QR code. It will generate a 6 digit code for you to enter below.
51
+ </p>
52
+
53
+ <div class="mb-6">
54
+ <VImg
55
+ width="150"
56
+ :src="themeselectionQr"
57
+ class="mx-auto"
58
+ />
59
+ </div>
60
+
61
+ <VAlert
62
+ title="ASDLKNASDA9AHS678dGhASD78AB"
63
+ text="If you are unable to scan the QR code, you can manually enter the secret key below."
64
+ variant="tonal"
65
+ color="warning"
66
+ />
67
+ <VForm @submit.prevent="() => {}">
68
+ <AppTextField
69
+ v-model="authCode"
70
+ name="auth-code"
71
+ label="Enter Authentication Code"
72
+ placeholder="123 456"
73
+ class="mt-4 mb-6"
74
+ />
75
+
76
+ <div class="d-flex justify-end flex-wrap gap-4">
77
+ <VBtn
78
+ color="secondary"
79
+ variant="tonal"
80
+ @click="resetAuthCode"
81
+ >
82
+ Cancel
83
+ </VBtn>
84
+
85
+ <VBtn
86
+ type="submit"
87
+ @click="formSubmit"
88
+ >
89
+ Continue
90
+ <VIcon
91
+ end
92
+ icon="tabler-arrow-right"
93
+ class="flip-in-rtl"
94
+ />
95
+ </VBtn>
96
+ </div>
97
+ </VForm>
98
+ </VCardText>
99
+ </VCard>
100
+ </VDialog>
101
+ </template>
@@ -0,0 +1,238 @@
1
+ <script setup lang="ts">
2
+ import home from '@images/svg/home.svg'
3
+ import office from '@images/svg/office.svg'
4
+
5
+ interface BillingAddress {
6
+ firstName: string
7
+ lastName: string
8
+ selectedCountry: string | null
9
+ addressLine1: string
10
+ addressLine2: string
11
+ landmark: string
12
+ contact: string
13
+ country: string | null
14
+ city: string
15
+ state: string
16
+ zipCode: number | null
17
+ }
18
+ interface Props {
19
+ billingAddress?: BillingAddress
20
+ isDialogVisible: boolean
21
+ }
22
+ interface Emit {
23
+ (e: 'update:isDialogVisible', value: boolean): void
24
+ (e: 'submit', value: BillingAddress): void
25
+ }
26
+
27
+ const props = withDefaults(defineProps<Props>(), {
28
+ billingAddress: () => ({
29
+ firstName: '',
30
+ lastName: '',
31
+ selectedCountry: null,
32
+ addressLine1: '',
33
+ addressLine2: '',
34
+ landmark: '',
35
+ contact: '',
36
+ country: null,
37
+ city: '',
38
+ state: '',
39
+ zipCode: null,
40
+ }),
41
+ })
42
+
43
+ const emit = defineEmits<Emit>()
44
+
45
+ const billingAddress = ref<BillingAddress>(structuredClone(toRaw(props.billingAddress)))
46
+
47
+ const resetForm = () => {
48
+ emit('update:isDialogVisible', false)
49
+ billingAddress.value = structuredClone(toRaw(props.billingAddress))
50
+ }
51
+
52
+ const onFormSubmit = () => {
53
+ emit('update:isDialogVisible', false)
54
+ emit('submit', billingAddress.value)
55
+ }
56
+
57
+ const selectedAddress = ref('Home')
58
+
59
+ const addressTypes = [
60
+ {
61
+ icon: { icon: home, size: '28' },
62
+ title: 'Home',
63
+ desc: 'Delivery Time (9am - 9pm)',
64
+ value: 'Home',
65
+ },
66
+ {
67
+ icon: { icon: office, size: '28' },
68
+ title: 'Office',
69
+ desc: 'Delivery Time (9am - 5pm)',
70
+ value: 'Office',
71
+ },
72
+ ]
73
+ </script>
74
+
75
+ <template>
76
+ <VDialog
77
+ :width="$vuetify.display.smAndDown ? 'auto' : 900 "
78
+ :model-value="props.isDialogVisible"
79
+ @update:model-value="val => $emit('update:isDialogVisible', val)"
80
+ >
81
+ <!-- 👉 Dialog close btn -->
82
+ <DialogCloseBtn @click="$emit('update:isDialogVisible', false)" />
83
+
84
+ <VCard
85
+ v-if="props.billingAddress"
86
+ class="pa-sm-10 pa-2"
87
+ >
88
+ <VCardText>
89
+ <!-- 👉 Title -->
90
+ <h4 class="text-h4 text-center mb-2">
91
+ {{ (props.billingAddress.addressLine1 || props.billingAddress.addressLine2) ? 'Edit' : 'Add New' }} Address
92
+ </h4>
93
+ <p class="text-body-1 text-center mb-6">
94
+ Add new address for express delivery
95
+ </p>
96
+
97
+ <div class="d-flex mb-6">
98
+ <CustomRadiosWithIcon
99
+ v-model:selected-radio="selectedAddress"
100
+ :radio-content="addressTypes"
101
+ :grid-column="{ sm: '6', cols: '12' }"
102
+ />
103
+ </div>
104
+
105
+ <!-- 👉 Form -->
106
+ <VForm @submit.prevent="onFormSubmit">
107
+ <VRow>
108
+ <!-- 👉 First Name -->
109
+ <VCol
110
+ cols="12"
111
+ md="6"
112
+ >
113
+ <AppTextField
114
+ v-model="billingAddress.firstName"
115
+ label="First Name"
116
+ placeholder="John"
117
+ />
118
+ </VCol>
119
+
120
+ <!-- 👉 Last Name -->
121
+ <VCol
122
+ cols="12"
123
+ md="6"
124
+ >
125
+ <AppTextField
126
+ v-model="billingAddress.lastName"
127
+ label="Last Name"
128
+ placeholder="Doe"
129
+ />
130
+ </VCol>
131
+
132
+ <!-- 👉 Select Country -->
133
+ <VCol cols="12">
134
+ <AppSelect
135
+ v-model="billingAddress.selectedCountry"
136
+ label="Select Country"
137
+ placeholder="Select Country"
138
+ :items="['USA', 'Aus', 'Canada', 'NZ']"
139
+ />
140
+ </VCol>
141
+
142
+ <!-- 👉 Address Line 1 -->
143
+ <VCol cols="12">
144
+ <AppTextField
145
+ v-model="billingAddress.addressLine1"
146
+ label="Address Line 1"
147
+ placeholder="12, Business Park"
148
+ />
149
+ </VCol>
150
+
151
+ <!-- 👉 Address Line 2 -->
152
+ <VCol cols="12">
153
+ <AppTextField
154
+ v-model="billingAddress.addressLine2"
155
+ label="Address Line 2"
156
+ placeholder="Mall Road"
157
+ />
158
+ </VCol>
159
+
160
+ <!-- 👉 Landmark -->
161
+ <VCol
162
+ cols="12"
163
+ md="6"
164
+ >
165
+ <AppTextField
166
+ v-model="billingAddress.landmark"
167
+ label="Landmark"
168
+ placeholder="Nr. Hard Rock Cafe"
169
+ />
170
+ </VCol>
171
+
172
+ <!-- 👉 City -->
173
+ <VCol
174
+ cols="12"
175
+ md="6"
176
+ >
177
+ <AppTextField
178
+ v-model="billingAddress.city"
179
+ label="City"
180
+ placeholder="Los Angeles"
181
+ />
182
+ </VCol>
183
+
184
+ <!-- 👉 State -->
185
+ <VCol
186
+ cols="12"
187
+ md="6"
188
+ >
189
+ <AppTextField
190
+ v-model="billingAddress.state"
191
+ label="State"
192
+ placeholder="California"
193
+ />
194
+ </VCol>
195
+
196
+ <!-- 👉 Zip Code -->
197
+ <VCol
198
+ cols="12"
199
+ md="6"
200
+ >
201
+ <AppTextField
202
+ v-model="billingAddress.zipCode"
203
+ label="Zip Code"
204
+ placeholder="99950"
205
+ type="number"
206
+ />
207
+ </VCol>
208
+
209
+ <VCol cols="12">
210
+ <VSwitch label="Use as a billing address?" />
211
+ </VCol>
212
+
213
+ <!-- 👉 Submit and Cancel button -->
214
+ <VCol
215
+ cols="12"
216
+ class="text-center"
217
+ >
218
+ <VBtn
219
+ type="submit"
220
+ class="me-3"
221
+ >
222
+ submit
223
+ </VBtn>
224
+
225
+ <VBtn
226
+ variant="tonal"
227
+ color="secondary"
228
+ @click="resetForm"
229
+ >
230
+ Cancel
231
+ </VBtn>
232
+ </VCol>
233
+ </VRow>
234
+ </VForm>
235
+ </VCardText>
236
+ </VCard>
237
+ </VDialog>
238
+ </template>