@imksh/create 1.0.27 → 1.0.30

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 (1145) hide show
  1. package/package.json +6 -3
  2. package/src/commands/create.js +2 -1
  3. package/src/index.js +1 -1
  4. package/src/utils/askTemplate.js +1 -0
  5. package/src/utils/composeTemplate.js +158 -0
  6. package/src/utils/copyTemplate.js +17 -39
  7. package/templates/{node → layers/node/javascript}/package.json +2 -1
  8. package/templates/{mern/server → layers/node/javascript}/src/controllers/auth.controller.js +14 -0
  9. package/templates/layers/node/javascript/src/controllers/push.controller.js +72 -0
  10. package/templates/{mern/server → layers/node/javascript}/src/models/pushSubscription.model.js +17 -4
  11. package/templates/{node → layers/node/javascript}/src/models/user.model.js +6 -0
  12. package/templates/{mern/server → layers/node/javascript}/src/services/auth.service.js +17 -0
  13. package/templates/layers/node/javascript/src/utils/pushHelper.js +68 -0
  14. package/templates/layers/node/typescript/package-lock.json +3795 -0
  15. package/templates/{mern-ts/server → layers/node/typescript}/package.json +2 -1
  16. package/templates/{mern-ts/server → layers/node/typescript}/src/controllers/auth.controller.ts +14 -0
  17. package/templates/layers/node/typescript/src/controllers/push.controller.ts +73 -0
  18. package/templates/{mern-ts/server → layers/node/typescript}/src/models/pushSubscription.model.ts +21 -6
  19. package/templates/{mern-react-native/server → layers/node/typescript}/src/models/user.model.ts +1 -1
  20. package/templates/{mern-ts/server → layers/node/typescript}/src/routes/auth.route.ts +2 -0
  21. package/templates/{mern-ts/server → layers/node/typescript}/src/services/auth.service.ts +20 -3
  22. package/templates/layers/node/typescript/src/utils/pushHelper.ts +75 -0
  23. package/templates/{mern/server → layers/node-prisma/javascript}/package.json +10 -4
  24. package/templates/layers/node-prisma/javascript/prisma/schema.prisma +52 -0
  25. package/templates/layers/node-prisma/javascript/prisma.config.js +12 -0
  26. package/templates/layers/node-prisma/javascript/src/config/prisma.js +24 -0
  27. package/templates/layers/node-prisma/javascript/src/controllers/push.controller.js +93 -0
  28. package/templates/layers/node-prisma/javascript/src/utils/pushHelper.js +70 -0
  29. package/templates/layers/node-prisma/typescript/package-lock.json +4808 -0
  30. package/templates/{mern-react-native/server → layers/node-prisma/typescript}/package.json +13 -9
  31. package/templates/layers/node-prisma/typescript/prisma/schema.prisma +52 -0
  32. package/templates/layers/node-prisma/typescript/prisma.config.ts +12 -0
  33. package/templates/layers/node-prisma/typescript/src/config/prisma.ts +24 -0
  34. package/templates/layers/node-prisma/typescript/src/controllers/push.controller.ts +100 -0
  35. package/templates/{node-ts → layers/node-prisma/typescript}/src/index.ts +1 -1
  36. package/templates/{node/src/middleware/auth.middleware.js → layers/node-prisma/typescript/src/middleware/auth.middleware.ts} +20 -8
  37. package/templates/layers/node-prisma/typescript/src/services/auth.service.ts +161 -0
  38. package/templates/layers/node-prisma/typescript/src/utils/pushHelper.ts +77 -0
  39. package/templates/layers/prisma/javascript/README.md +71 -0
  40. package/templates/{node → layers/prisma/javascript}/src/controllers/auth.controller.js +7 -14
  41. package/templates/{node-prisma-ts/src/middleware/auth.middleware.ts → layers/prisma/javascript/src/middleware/auth.middleware.js} +6 -7
  42. package/templates/{node-prisma-ts/src/services/auth.service.ts → layers/prisma/javascript/src/services/auth.service.js} +15 -15
  43. package/templates/{react/src/config → layers/react/javascript/src/assets/data}/navigation.js +10 -0
  44. package/templates/layers/react/javascript/src/components/common/Breadcrumbs.jsx +60 -0
  45. package/templates/layers/react/javascript/src/components/common/CircularProgress.jsx +65 -0
  46. package/templates/layers/react/javascript/src/components/common/Modal.jsx +108 -0
  47. package/templates/{mern/client → layers/react/javascript}/src/components/common/NotFound.jsx +1 -1
  48. package/templates/layers/react/javascript/src/components/common/PageTransition.jsx +34 -0
  49. package/templates/layers/react/javascript/src/components/common/Pagination.jsx +81 -0
  50. package/templates/{react → layers/react/javascript}/src/components/common/SEO.jsx +3 -11
  51. package/templates/{react → layers/react/javascript}/src/components/common/Scroll.jsx +1 -1
  52. package/templates/layers/react/javascript/src/components/common/Table.jsx +143 -0
  53. package/templates/layers/react/javascript/src/components/common/Tabs.jsx +134 -0
  54. package/templates/layers/react/javascript/src/components/common/modals/ConfirmModal.jsx +119 -0
  55. package/templates/layers/react/javascript/src/components/common/modals/DocViewerModal.jsx +31 -0
  56. package/templates/{next → layers/react/javascript}/src/components/modals/ConfirmModal.jsx +2 -11
  57. package/templates/{next → layers/react/javascript}/src/components/modals/Modal.jsx +4 -9
  58. package/templates/{next → layers/react/javascript}/src/components/skeletons/common/CardSkeleton.jsx +1 -3
  59. package/templates/{next → layers/react/javascript}/src/components/skeletons/common/DashboardSkeleton.jsx +1 -3
  60. package/templates/{next → layers/react/javascript}/src/components/skeletons/common/ListSkeleton.jsx +2 -5
  61. package/templates/{next → layers/react/javascript}/src/components/skeletons/common/PageSkeleton.jsx +2 -9
  62. package/templates/{next → layers/react/javascript}/src/components/skeletons/common/ProfileSkeleton.jsx +1 -5
  63. package/templates/{next → layers/react/javascript}/src/components/skeletons/common/Skeleton.jsx +1 -1
  64. package/templates/{next → layers/react/javascript}/src/components/skeletons/common/TableSkeleton.jsx +1 -1
  65. package/templates/{mern/client → layers/react/javascript}/src/components/ui/Header.jsx +19 -11
  66. package/templates/layers/react/javascript/src/components/ui/SidebarHeader.jsx +36 -0
  67. package/templates/layers/react/javascript/src/components/ui/sidebar.jsx +169 -0
  68. package/templates/{mern/client → layers/react/javascript}/src/config/api.js +1 -1
  69. package/templates/{react → layers/react/javascript}/src/config/appConfig.js +1 -1
  70. package/templates/{react → layers/react/javascript}/src/hooks/useLenis.js +1 -1
  71. package/templates/{react → layers/react/javascript}/src/hooks/usePwaInstall.js +4 -1
  72. package/templates/{next → layers/react/javascript}/src/hooks/useWindowSize.js +1 -2
  73. package/templates/{react → layers/react/javascript}/src/pages/Home.jsx +1 -1
  74. package/templates/{react → layers/react/javascript}/src/pages/Login.jsx +8 -2
  75. package/templates/layers/react/javascript/src/pages/Profile.jsx +7 -0
  76. package/templates/{react → layers/react/javascript}/src/services/authService.js +3 -6
  77. package/templates/{next → layers/react/javascript}/src/store/useAuthStore.js +7 -1
  78. package/templates/{mern/client → layers/react/javascript}/src/store/useUiStore.js +11 -14
  79. package/templates/{next → layers/react/javascript}/src/utils/getInitials.js +1 -1
  80. package/templates/layers/react/typescript/src/components/common/Breadcrumbs.tsx +49 -0
  81. package/templates/layers/react/typescript/src/components/common/CircularProgress.tsx +68 -0
  82. package/templates/{production-fullstack/client/src/components/ui → layers/react/typescript/src/components/common}/Modal.tsx +53 -18
  83. package/templates/layers/react/typescript/src/components/common/PageTransition.tsx +45 -0
  84. package/templates/layers/react/typescript/src/components/common/Pagination.tsx +91 -0
  85. package/templates/{mern-ts/client → layers/react/typescript}/src/components/common/Table.tsx +4 -2
  86. package/templates/layers/react/typescript/src/components/common/Tabs.tsx +145 -0
  87. package/templates/layers/react/typescript/src/components/common/modals/ConfirmModal.tsx +114 -0
  88. package/templates/layers/react/typescript/src/components/common/modals/DocViewerModal.tsx +41 -0
  89. package/templates/{mern-react-native/client → layers/react/typescript}/src/components/layout/SidebarLayout.tsx +1 -1
  90. package/templates/{mern/client/src/components/ui/sidebar.jsx → layers/react/typescript/src/components/ui/Sidebar.tsx} +4 -4
  91. package/templates/{mern-react-native/client → layers/react/typescript}/src/components/ui/SidebarHeader.tsx +15 -4
  92. package/templates/{react-ts → layers/react/typescript}/src/store/useUiStore.ts +17 -0
  93. package/templates/layers/react-native/base/package-lock.json +15108 -0
  94. package/templates/{mern-react-native/mobile → layers/react-native/base}/package.json +8 -0
  95. package/templates/{react-native → layers/react-native/base}/src/app/(tabs)/profile.tsx +20 -1
  96. package/templates/{react-native → layers/react-native/base}/src/app/_layout.tsx +20 -12
  97. package/templates/layers/react-native/base/src/app/doc-viewer.tsx +193 -0
  98. package/templates/{react-native → layers/react-native/base}/src/components/common/Typography.tsx +37 -10
  99. package/templates/layers/react-native/base/src/components/ui/BiometricLock.tsx +114 -0
  100. package/templates/{react-native → layers/react-native/base}/src/components/ui/BottomModal.tsx +20 -3
  101. package/templates/{production-fullstack/mobile → layers/react-native/base}/src/components/ui/ClassicTabBar.tsx +10 -27
  102. package/templates/{mern-ts/client → layers/react-native/base}/src/config/appConfig.ts +5 -5
  103. package/templates/layers/react-native/base/src/services/biometric.service.ts +24 -0
  104. package/templates/{mern-react-native/mobile → layers/react-native/base}/src/store/useAuthStore.ts +53 -12
  105. package/templates/presets/fullstack-prisma/overrides/package.json +15 -0
  106. package/templates/presets/fullstack-prisma/preset.json +22 -0
  107. package/templates/presets/mern/overrides/_gitignore +2 -0
  108. package/templates/presets/mern/preset.json +18 -0
  109. package/templates/presets/mern-react-native/preset.json +22 -0
  110. package/templates/presets/mern-ts/preset.json +18 -0
  111. package/templates/presets/next/preset.json +7 -0
  112. package/templates/presets/next-ts/preset.json +7 -0
  113. package/templates/presets/node/preset.json +6 -0
  114. package/templates/presets/node-prisma/preset.json +6 -0
  115. package/templates/presets/node-prisma-ts/preset.json +6 -0
  116. package/templates/presets/node-ts/preset.json +6 -0
  117. package/templates/presets/production-fullstack/overrides/client/package-lock.json +6065 -0
  118. package/templates/{mern → presets/production-fullstack/overrides}/server/.env.example +3 -2
  119. package/templates/presets/production-fullstack/preset.json +5 -0
  120. package/templates/presets/react/preset.json +8 -0
  121. package/templates/presets/react-native/preset.json +6 -0
  122. package/templates/presets/react-ts/preset.json +7 -0
  123. package/templates/mern/client/src/components/common/Breadcrumbs.jsx +0 -27
  124. package/templates/mern/client/src/components/common/SEO.jsx +0 -67
  125. package/templates/mern/client/src/components/common/Scroll.jsx +0 -25
  126. package/templates/mern/client/src/config/appConfig.js +0 -44
  127. package/templates/mern/client/src/hooks/useLenis.js +0 -28
  128. package/templates/mern/client/src/pages/Home.jsx +0 -154
  129. package/templates/mern/client/src/pages/Login.jsx +0 -233
  130. package/templates/mern/client/src/pages/Profile.jsx +0 -9
  131. package/templates/mern/client/src/services/authService.js +0 -19
  132. package/templates/mern/server/src/models/user.model.js +0 -43
  133. package/templates/mern/server/src/routes/auth.route.js +0 -24
  134. package/templates/mern-react-native/client/src/components/ui/sidebar.tsx +0 -152
  135. package/templates/mern-react-native/mobile/src/app/(tabs)/profile.tsx +0 -78
  136. package/templates/mern-react-native/mobile/src/app/_layout.tsx +0 -98
  137. package/templates/mern-react-native/server/src/controllers/auth.controller.ts +0 -207
  138. package/templates/mern-react-native/server/src/models/pushSubscription.model.ts +0 -45
  139. package/templates/mern-react-native/server/src/services/auth.service.ts +0 -167
  140. package/templates/mern-ts/client/package.json +0 -41
  141. package/templates/mern-ts/client/src/App.tsx +0 -68
  142. package/templates/mern-ts/client/src/components/common/Breadcrumbs.tsx +0 -27
  143. package/templates/mern-ts/client/src/components/common/Loading.tsx +0 -19
  144. package/templates/mern-ts/client/src/components/common/PwaInstallPrompt.tsx +0 -72
  145. package/templates/mern-ts/client/src/components/layout/ProtectedRoute.tsx +0 -23
  146. package/templates/mern-ts/client/src/components/layout/SidebarLayout.tsx +0 -37
  147. package/templates/mern-ts/client/src/components/modals/Modal.tsx +0 -106
  148. package/templates/mern-ts/client/src/components/ui/Header.tsx +0 -230
  149. package/templates/mern-ts/client/src/components/ui/SidebarHeader.tsx +0 -27
  150. package/templates/mern-ts/client/src/components/ui/sidebar.tsx +0 -152
  151. package/templates/mern-ts/client/src/config/api.ts +0 -22
  152. package/templates/mern-ts/client/src/main.tsx +0 -24
  153. package/templates/mern-ts/client/src/pages/Home.tsx +0 -154
  154. package/templates/mern-ts/client/src/pages/Login.tsx +0 -233
  155. package/templates/mern-ts/client/src/services/authService.ts +0 -19
  156. package/templates/mern-ts/client/src/store/useUiStore.ts +0 -74
  157. package/templates/mern-ts/server/README.md +0 -71
  158. package/templates/mern-ts/server/src/config/db.ts +0 -15
  159. package/templates/mern-ts/server/src/index.ts +0 -17
  160. package/templates/mern-ts/server/src/middleware/auth.middleware.ts +0 -38
  161. package/templates/mern-ts/server/src/models/otp.model.ts +0 -27
  162. package/templates/mern-ts/server/src/models/user.model.ts +0 -57
  163. package/templates/mern-ts/server/src/routes/index.ts +0 -10
  164. package/templates/next/next.config.mjs +0 -23
  165. package/templates/next/public/manifest.json +0 -21
  166. package/templates/next/src/assets/data/navigation.js +0 -29
  167. package/templates/next/src/components/common/Table.jsx +0 -110
  168. package/templates/next/src/components/ui/SidebarHeader.jsx +0 -27
  169. package/templates/next/src/hooks/usePwaInstall.js +0 -45
  170. package/templates/next-ts/AGENTS.md +0 -37
  171. package/templates/next-ts/CLAUDE.md +0 -1
  172. package/templates/next-ts/src/components/common/Table.tsx +0 -118
  173. package/templates/next-ts/src/components/modals/ConfirmModal.tsx +0 -152
  174. package/templates/next-ts/src/store/useAuthStore.ts +0 -143
  175. package/templates/node/.env.example +0 -62
  176. package/templates/node/README.md +0 -67
  177. package/templates/node/_gitignore +0 -24
  178. package/templates/node/src/app.js +0 -42
  179. package/templates/node/src/config/cloudinary.js +0 -9
  180. package/templates/node/src/config/db.js +0 -14
  181. package/templates/node/src/config/dotenv.js +0 -2
  182. package/templates/node/src/config/email.js +0 -30
  183. package/templates/node/src/config/socket.js +0 -54
  184. package/templates/node/src/config/webPush.js +0 -9
  185. package/templates/node/src/controllers/push.controller.js +0 -51
  186. package/templates/node/src/controllers/upload.controller.js +0 -26
  187. package/templates/node/src/index.js +0 -24
  188. package/templates/node/src/middleware/errorHandler.js +0 -22
  189. package/templates/node/src/middleware/multer.js +0 -21
  190. package/templates/node/src/middleware/rateLimiter.js +0 -57
  191. package/templates/node/src/models/otp.model.js +0 -21
  192. package/templates/node/src/models/pushSubscription.model.js +0 -32
  193. package/templates/node/src/routes/auth.route.js +0 -22
  194. package/templates/node/src/routes/index.js +0 -12
  195. package/templates/node/src/routes/upload.route.js +0 -12
  196. package/templates/node/src/services/auth.service.js +0 -155
  197. package/templates/node/src/utils/authToken.js +0 -26
  198. package/templates/node/src/utils/cloudinary.js +0 -27
  199. package/templates/node/src/utils/cloudinaryUpload.js +0 -87
  200. package/templates/node/src/utils/emailOtp.js +0 -190
  201. package/templates/node/src/utils/genOtpToken.js +0 -20
  202. package/templates/node/src/utils/generateVapidKeys.js +0 -12
  203. package/templates/node/src/utils/jwt.js +0 -25
  204. package/templates/node/src/utils/logger.js +0 -25
  205. package/templates/node/src/utils/pushHelper.js +0 -21
  206. package/templates/node-prisma-ts/src/app.ts +0 -36
  207. package/templates/node-prisma-ts/src/config/cloudinary.ts +0 -9
  208. package/templates/node-prisma-ts/src/config/dotenv.ts +0 -2
  209. package/templates/node-prisma-ts/src/config/email.ts +0 -28
  210. package/templates/node-prisma-ts/src/config/socket.ts +0 -54
  211. package/templates/node-prisma-ts/src/config/webPush.ts +0 -9
  212. package/templates/node-prisma-ts/src/controllers/push.controller.ts +0 -55
  213. package/templates/node-prisma-ts/src/controllers/upload.controller.ts +0 -22
  214. package/templates/node-prisma-ts/src/index.ts +0 -17
  215. package/templates/node-prisma-ts/src/routes/upload.route.ts +0 -11
  216. package/templates/node-prisma-ts/src/utils/cloudinaryUpload.ts +0 -44
  217. package/templates/node-prisma-ts/src/utils/emailOtp.ts +0 -30
  218. package/templates/node-prisma-ts/src/utils/generateVapidKeys.ts +0 -12
  219. package/templates/node-prisma-ts/src/utils/logger.ts +0 -27
  220. package/templates/node-prisma-ts/src/utils/pushHelper.ts +0 -22
  221. package/templates/node-ts/.env.example +0 -62
  222. package/templates/node-ts/README.md +0 -71
  223. package/templates/node-ts/_gitignore +0 -24
  224. package/templates/node-ts/package.json +0 -47
  225. package/templates/node-ts/src/app.ts +0 -36
  226. package/templates/node-ts/src/config/cloudinary.ts +0 -9
  227. package/templates/node-ts/src/config/db.ts +0 -15
  228. package/templates/node-ts/src/config/dotenv.ts +0 -2
  229. package/templates/node-ts/src/config/email.ts +0 -28
  230. package/templates/node-ts/src/config/socket.ts +0 -54
  231. package/templates/node-ts/src/config/webPush.ts +0 -9
  232. package/templates/node-ts/src/controllers/auth.controller.ts +0 -126
  233. package/templates/node-ts/src/controllers/push.controller.ts +0 -52
  234. package/templates/node-ts/src/controllers/upload.controller.ts +0 -22
  235. package/templates/node-ts/src/middleware/auth.middleware.ts +0 -38
  236. package/templates/node-ts/src/middleware/errorHandler.ts +0 -16
  237. package/templates/node-ts/src/middleware/multer.ts +0 -20
  238. package/templates/node-ts/src/middleware/rateLimiter.ts +0 -53
  239. package/templates/node-ts/src/models/otp.model.ts +0 -27
  240. package/templates/node-ts/src/models/pushSubscription.model.ts +0 -45
  241. package/templates/node-ts/src/models/user.model.ts +0 -57
  242. package/templates/node-ts/src/routes/auth.route.ts +0 -22
  243. package/templates/node-ts/src/routes/index.ts +0 -12
  244. package/templates/node-ts/src/routes/upload.route.ts +0 -11
  245. package/templates/node-ts/src/services/auth.service.ts +0 -107
  246. package/templates/node-ts/src/types/express.d.ts +0 -10
  247. package/templates/node-ts/src/utils/cloudinaryUpload.ts +0 -44
  248. package/templates/node-ts/src/utils/emailOtp.ts +0 -30
  249. package/templates/node-ts/src/utils/genOtpToken.ts +0 -22
  250. package/templates/node-ts/src/utils/generateVapidKeys.ts +0 -12
  251. package/templates/node-ts/src/utils/jwt.ts +0 -27
  252. package/templates/node-ts/src/utils/logger.ts +0 -27
  253. package/templates/node-ts/src/utils/pushHelper.ts +0 -21
  254. package/templates/node-ts/tsconfig.json +0 -18
  255. package/templates/production-fullstack/client/_gitignore +0 -24
  256. package/templates/production-fullstack/client/index.html +0 -14
  257. package/templates/production-fullstack/client/public/_redirects +0 -1
  258. package/templates/production-fullstack/client/public/favicon.ico +0 -0
  259. package/templates/production-fullstack/client/public/favicon.svg +0 -1
  260. package/templates/production-fullstack/client/public/manifest.json +0 -24
  261. package/templates/production-fullstack/client/public/sw.js +0 -56
  262. package/templates/production-fullstack/client/src/assets/data/navigation.ts +0 -29
  263. package/templates/production-fullstack/client/src/assets/images/logo.png +0 -0
  264. package/templates/production-fullstack/client/src/components/layout/PublicLayout.tsx +0 -13
  265. package/templates/production-fullstack/client/src/components/shared/Breadcrumbs.tsx +0 -27
  266. package/templates/production-fullstack/client/src/components/shared/LottieIcon.tsx +0 -36
  267. package/templates/production-fullstack/client/src/components/shared/NotFound.tsx +0 -78
  268. package/templates/production-fullstack/client/src/components/shared/SEO.tsx +0 -67
  269. package/templates/production-fullstack/client/src/components/shared/Scroll.tsx +0 -25
  270. package/templates/production-fullstack/client/src/components/shared/Unauthorized.tsx +0 -76
  271. package/templates/production-fullstack/client/src/components/shared/skeletons/common/CardSkeleton.tsx +0 -23
  272. package/templates/production-fullstack/client/src/components/shared/skeletons/common/DashboardSkeleton.tsx +0 -19
  273. package/templates/production-fullstack/client/src/components/shared/skeletons/common/ListSkeleton.tsx +0 -24
  274. package/templates/production-fullstack/client/src/components/shared/skeletons/common/PageSkeleton.tsx +0 -26
  275. package/templates/production-fullstack/client/src/components/shared/skeletons/common/ProfileSkeleton.tsx +0 -23
  276. package/templates/production-fullstack/client/src/components/shared/skeletons/common/Skeleton.tsx +0 -18
  277. package/templates/production-fullstack/client/src/components/shared/skeletons/common/TableSkeleton.tsx +0 -33
  278. package/templates/production-fullstack/client/src/components/ui/ConfirmModal.tsx +0 -152
  279. package/templates/production-fullstack/client/src/components/ui/ToggleSwitch.tsx +0 -38
  280. package/templates/production-fullstack/client/src/constants/navigation.ts +0 -14
  281. package/templates/production-fullstack/client/src/features/core/pages/Profile.tsx +0 -9
  282. package/templates/production-fullstack/client/src/hooks/useLenis.ts +0 -28
  283. package/templates/production-fullstack/client/src/hooks/usePwaInstall.ts +0 -45
  284. package/templates/production-fullstack/client/src/hooks/useWindowSize.ts +0 -25
  285. package/templates/production-fullstack/client/src/index.css +0 -158
  286. package/templates/production-fullstack/client/src/store/useUiStore.ts +0 -74
  287. package/templates/production-fullstack/client/src/utils/formatDate.ts +0 -19
  288. package/templates/production-fullstack/client/src/utils/getInitials.ts +0 -10
  289. package/templates/production-fullstack/client/src/vite-env.d.ts +0 -1
  290. package/templates/production-fullstack/client/tsconfig.json +0 -25
  291. package/templates/production-fullstack/client/tsconfig.node.json +0 -10
  292. package/templates/production-fullstack/client/vite.config.ts +0 -8
  293. package/templates/production-fullstack/mobile/assets/animations/loading.json +0 -1
  294. package/templates/production-fullstack/mobile/assets/images/logo/logo.png +0 -0
  295. package/templates/production-fullstack/mobile/src/components/common/Typography.tsx +0 -113
  296. package/templates/production-fullstack/mobile/src/components/ui/BottomModal.tsx +0 -159
  297. package/templates/production-fullstack/server/_gitignore +0 -24
  298. package/templates/production-fullstack/server/src/common/middlewares/errorHandler.ts +0 -16
  299. package/templates/production-fullstack/server/src/common/middlewares/multer.ts +0 -20
  300. package/templates/production-fullstack/server/src/common/middlewares/rateLimiter.ts +0 -53
  301. package/templates/production-fullstack/server/src/common/types/express.d.ts +0 -10
  302. package/templates/production-fullstack/server/src/common/utils/genOtpToken.ts +0 -22
  303. package/templates/production-fullstack/server/src/common/utils/jwt.ts +0 -27
  304. package/templates/production-fullstack/server/tsconfig.json +0 -14
  305. package/templates/react/_gitignore +0 -24
  306. package/templates/react/index.html +0 -14
  307. package/templates/react/package.json +0 -38
  308. package/templates/react/public/_redirects +0 -1
  309. package/templates/react/public/favicon.ico +0 -0
  310. package/templates/react/public/favicon.svg +0 -1
  311. package/templates/react/public/logo.png +0 -0
  312. package/templates/react/public/manifest.json +0 -24
  313. package/templates/react/public/sw.js +0 -56
  314. package/templates/react/src/App.jsx +0 -68
  315. package/templates/react/src/assets/animations/loading.json +0 -1
  316. package/templates/react/src/assets/data/navigation.js +0 -29
  317. package/templates/react/src/assets/images/logo.png +0 -0
  318. package/templates/react/src/components/common/Breadcrumbs.jsx +0 -27
  319. package/templates/react/src/components/common/Loading.jsx +0 -19
  320. package/templates/react/src/components/common/LottieIcon.jsx +0 -36
  321. package/templates/react/src/components/common/NotFound.jsx +0 -78
  322. package/templates/react/src/components/common/PwaInstallPrompt.jsx +0 -72
  323. package/templates/react/src/components/common/Table.jsx +0 -110
  324. package/templates/react/src/components/common/ToggleSwitch.jsx +0 -38
  325. package/templates/react/src/components/common/Unauthorized.jsx +0 -76
  326. package/templates/react/src/components/layout/ProtectedRoute.jsx +0 -17
  327. package/templates/react/src/components/layout/PublicLayout.jsx +0 -13
  328. package/templates/react/src/components/layout/SidebarLayout.jsx +0 -37
  329. package/templates/react/src/components/modals/ConfirmModal.jsx +0 -135
  330. package/templates/react/src/components/modals/Modal.jsx +0 -94
  331. package/templates/react/src/components/skeletons/common/CardSkeleton.jsx +0 -23
  332. package/templates/react/src/components/skeletons/common/DashboardSkeleton.jsx +0 -19
  333. package/templates/react/src/components/skeletons/common/ListSkeleton.jsx +0 -24
  334. package/templates/react/src/components/skeletons/common/PageSkeleton.jsx +0 -26
  335. package/templates/react/src/components/skeletons/common/ProfileSkeleton.jsx +0 -23
  336. package/templates/react/src/components/skeletons/common/Skeleton.jsx +0 -18
  337. package/templates/react/src/components/skeletons/common/TableSkeleton.jsx +0 -33
  338. package/templates/react/src/components/ui/Header.jsx +0 -230
  339. package/templates/react/src/components/ui/SidebarHeader.jsx +0 -27
  340. package/templates/react/src/components/ui/sidebar.jsx +0 -152
  341. package/templates/react/src/config/api.js +0 -22
  342. package/templates/react/src/hooks/useWindowSize.js +0 -25
  343. package/templates/react/src/index.css +0 -158
  344. package/templates/react/src/main.jsx +0 -24
  345. package/templates/react/src/pages/Profile.jsx +0 -9
  346. package/templates/react/src/store/useAuthStore.js +0 -115
  347. package/templates/react/src/store/useUiStore.js +0 -54
  348. package/templates/react/src/utils/formatDate.js +0 -15
  349. package/templates/react/src/utils/getInitials.js +0 -10
  350. package/templates/react/vite.config.js +0 -8
  351. package/templates/react-native/LICENSE +0 -21
  352. package/templates/react-native/_gitignore +0 -43
  353. package/templates/react-native/app.json +0 -84
  354. package/templates/react-native/assets/animations/celebrate.json +0 -1
  355. package/templates/react-native/assets/animations/infinity.json +0 -1
  356. package/templates/react-native/assets/animations/loading.json +0 -1
  357. package/templates/react-native/assets/fonts/Inter_Bold.ttf +0 -0
  358. package/templates/react-native/assets/fonts/Inter_ExtraBold.ttf +0 -0
  359. package/templates/react-native/assets/fonts/Inter_Medium.ttf +0 -0
  360. package/templates/react-native/assets/fonts/Inter_Regular.ttf +0 -0
  361. package/templates/react-native/assets/fonts/Inter_SemiBold.ttf +0 -0
  362. package/templates/react-native/assets/images/logo/logo.png +0 -0
  363. package/templates/react-native/assets/images/logo/logo.svg +0 -1
  364. package/templates/react-native/assets/images/logo/logoWithBg.png +0 -0
  365. package/templates/react-native/babel.config.js +0 -13
  366. package/templates/react-native/drizzle.config.ts +0 -8
  367. package/templates/react-native/eas.json +0 -24
  368. package/templates/react-native/eslint.config.js +0 -10
  369. package/templates/react-native/expo-env.d.ts +0 -3
  370. package/templates/react-native/metro.config.js +0 -6
  371. package/templates/react-native/nativewind-env.d.ts +0 -3
  372. package/templates/react-native/package.json +0 -84
  373. package/templates/react-native/src/app/(auth)/_layout.tsx +0 -12
  374. package/templates/react-native/src/app/(auth)/change-password.tsx +0 -112
  375. package/templates/react-native/src/app/(auth)/edit-profile.tsx +0 -156
  376. package/templates/react-native/src/app/(auth)/forgot-password.tsx +0 -191
  377. package/templates/react-native/src/app/(auth)/login.tsx +0 -253
  378. package/templates/react-native/src/app/(tabs)/_layout.tsx +0 -38
  379. package/templates/react-native/src/app/(tabs)/dashboard.tsx +0 -13
  380. package/templates/react-native/src/app/(tabs)/index.tsx +0 -464
  381. package/templates/react-native/src/app/(tabs)/search.tsx +0 -12
  382. package/templates/react-native/src/app/global.css +0 -82
  383. package/templates/react-native/src/components/common/AnimatedHeader.tsx +0 -328
  384. package/templates/react-native/src/components/common/ConfirmationToast.tsx +0 -67
  385. package/templates/react-native/src/components/common/Loading.tsx +0 -26
  386. package/templates/react-native/src/components/common/LocationLoader.tsx +0 -591
  387. package/templates/react-native/src/components/common/ScreenHeader.tsx +0 -68
  388. package/templates/react-native/src/components/common/TabHeader.tsx +0 -58
  389. package/templates/react-native/src/components/common/Welcome.tsx +0 -55
  390. package/templates/react-native/src/components/ui/ClassicTabBar.tsx +0 -129
  391. package/templates/react-native/src/components/ui/CustomTabBar.tsx +0 -238
  392. package/templates/react-native/src/components/ui/Sidebar.tsx +0 -258
  393. package/templates/react-native/src/components/ui/buttons/Button.tsx +0 -180
  394. package/templates/react-native/src/components/ui/buttons/ButtonGroup.tsx +0 -32
  395. package/templates/react-native/src/components/ui/buttons/FloatingActionButton.tsx +0 -72
  396. package/templates/react-native/src/components/ui/buttons/IconButton.tsx +0 -84
  397. package/templates/react-native/src/components/ui/data-display/Accordion.tsx +0 -82
  398. package/templates/react-native/src/components/ui/data-display/Avatar.tsx +0 -47
  399. package/templates/react-native/src/components/ui/data-display/Badge.tsx +0 -104
  400. package/templates/react-native/src/components/ui/data-display/Card.tsx +0 -36
  401. package/templates/react-native/src/components/ui/data-display/Image.tsx +0 -43
  402. package/templates/react-native/src/components/ui/data-display/ImageViewer.tsx +0 -33
  403. package/templates/react-native/src/components/ui/data-display/SwipeableRow.tsx +0 -94
  404. package/templates/react-native/src/components/ui/feedback/CircularProgress.tsx +0 -38
  405. package/templates/react-native/src/components/ui/feedback/GestureWrapper.tsx +0 -114
  406. package/templates/react-native/src/components/ui/feedback/ProgressBar.tsx +0 -51
  407. package/templates/react-native/src/components/ui/feedback/Skeleton.tsx +0 -84
  408. package/templates/react-native/src/components/ui/feedback/Spinner.tsx +0 -50
  409. package/templates/react-native/src/components/ui/inputs/Checkbox.tsx +0 -54
  410. package/templates/react-native/src/components/ui/inputs/DatePicker.tsx +0 -186
  411. package/templates/react-native/src/components/ui/inputs/ImagePickerModal.tsx +0 -129
  412. package/templates/react-native/src/components/ui/inputs/Input.tsx +0 -158
  413. package/templates/react-native/src/components/ui/inputs/LocationPicker.tsx +0 -211
  414. package/templates/react-native/src/components/ui/inputs/OTPInput.tsx +0 -83
  415. package/templates/react-native/src/components/ui/inputs/PasswordInput.tsx +0 -16
  416. package/templates/react-native/src/components/ui/inputs/Radio.tsx +0 -54
  417. package/templates/react-native/src/components/ui/inputs/SearchBar.tsx +0 -53
  418. package/templates/react-native/src/components/ui/inputs/Slider.tsx +0 -49
  419. package/templates/react-native/src/components/ui/inputs/Switch.tsx +0 -75
  420. package/templates/react-native/src/components/ui/inputs/TextArea.tsx +0 -15
  421. package/templates/react-native/src/components/ui/inputs/WebLocationPicker.tsx +0 -321
  422. package/templates/react-native/src/components/ui/layout/Container.tsx +0 -23
  423. package/templates/react-native/src/components/ui/layout/Divider.tsx +0 -20
  424. package/templates/react-native/src/components/ui/layout/Grid.tsx +0 -62
  425. package/templates/react-native/src/components/ui/layout/KeyboardAvoidingViewWrapper.tsx +0 -16
  426. package/templates/react-native/src/components/ui/layout/ScrollContainer.tsx +0 -21
  427. package/templates/react-native/src/components/ui/layout/Section.tsx +0 -51
  428. package/templates/react-native/src/components/ui/layout/Spacer.tsx +0 -6
  429. package/templates/react-native/src/components/ui/layout/Stack.tsx +0 -34
  430. package/templates/react-native/src/components/ui/navigation/Pagination.tsx +0 -61
  431. package/templates/react-native/src/components/ui/navigation/ProgressStepper.tsx +0 -66
  432. package/templates/react-native/src/components/ui/navigation/Tabs.tsx +0 -173
  433. package/templates/react-native/src/config/api.ts +0 -27
  434. package/templates/react-native/src/config/sidebar.config.ts +0 -12
  435. package/templates/react-native/src/config/tabNavigation.ts +0 -34
  436. package/templates/react-native/src/constants/Colors.ts +0 -71
  437. package/templates/react-native/src/db/index.ts +0 -9
  438. package/templates/react-native/src/db/schema.ts +0 -14
  439. package/templates/react-native/src/hooks/useDebounce.ts +0 -17
  440. package/templates/react-native/src/services/auth.service.ts +0 -24
  441. package/templates/react-native/src/services/notification.service.ts +0 -22
  442. package/templates/react-native/src/services/permission.service.ts +0 -214
  443. package/templates/react-native/src/services/socket.service.ts +0 -36
  444. package/templates/react-native/src/store/localStore.ts +0 -7
  445. package/templates/react-native/src/store/useAuthStore.ts +0 -273
  446. package/templates/react-native/src/store/useNotificationStore.ts +0 -178
  447. package/templates/react-native/src/types/auth.type.ts +0 -14
  448. package/templates/react-native/src/types/images.d.ts +0 -24
  449. package/templates/react-native/src/utils/storage.ts +0 -55
  450. package/templates/react-native/src/utils/toast.ts +0 -26
  451. package/templates/react-native/tailwind.config.js +0 -71
  452. package/templates/react-native/tsconfig.json +0 -23
  453. package/templates/react-ts/_gitignore +0 -24
  454. package/templates/react-ts/index.html +0 -14
  455. package/templates/react-ts/package.json +0 -41
  456. package/templates/react-ts/public/_redirects +0 -1
  457. package/templates/react-ts/public/favicon.ico +0 -0
  458. package/templates/react-ts/public/favicon.svg +0 -1
  459. package/templates/react-ts/public/logo.png +0 -0
  460. package/templates/react-ts/public/manifest.json +0 -24
  461. package/templates/react-ts/public/sw.js +0 -56
  462. package/templates/react-ts/src/App.tsx +0 -68
  463. package/templates/react-ts/src/assets/animations/loading.json +0 -1
  464. package/templates/react-ts/src/assets/data/navigation.ts +0 -29
  465. package/templates/react-ts/src/assets/images/logo.png +0 -0
  466. package/templates/react-ts/src/components/common/Breadcrumbs.tsx +0 -27
  467. package/templates/react-ts/src/components/common/Loading.tsx +0 -19
  468. package/templates/react-ts/src/components/common/LottieIcon.tsx +0 -36
  469. package/templates/react-ts/src/components/common/NotFound.tsx +0 -78
  470. package/templates/react-ts/src/components/common/PwaInstallPrompt.tsx +0 -72
  471. package/templates/react-ts/src/components/common/SEO.tsx +0 -67
  472. package/templates/react-ts/src/components/common/Scroll.tsx +0 -25
  473. package/templates/react-ts/src/components/common/Table.tsx +0 -118
  474. package/templates/react-ts/src/components/common/ToggleSwitch.tsx +0 -38
  475. package/templates/react-ts/src/components/common/Unauthorized.tsx +0 -76
  476. package/templates/react-ts/src/components/layout/ProtectedRoute.tsx +0 -23
  477. package/templates/react-ts/src/components/layout/PublicLayout.tsx +0 -13
  478. package/templates/react-ts/src/components/layout/SidebarLayout.tsx +0 -37
  479. package/templates/react-ts/src/components/modals/ConfirmModal.tsx +0 -152
  480. package/templates/react-ts/src/components/modals/Modal.tsx +0 -106
  481. package/templates/react-ts/src/components/skeletons/common/CardSkeleton.tsx +0 -23
  482. package/templates/react-ts/src/components/skeletons/common/DashboardSkeleton.tsx +0 -19
  483. package/templates/react-ts/src/components/skeletons/common/ListSkeleton.tsx +0 -24
  484. package/templates/react-ts/src/components/skeletons/common/PageSkeleton.tsx +0 -26
  485. package/templates/react-ts/src/components/skeletons/common/ProfileSkeleton.tsx +0 -23
  486. package/templates/react-ts/src/components/skeletons/common/Skeleton.tsx +0 -18
  487. package/templates/react-ts/src/components/skeletons/common/TableSkeleton.tsx +0 -33
  488. package/templates/react-ts/src/components/ui/Header.tsx +0 -230
  489. package/templates/react-ts/src/components/ui/SidebarHeader.tsx +0 -27
  490. package/templates/react-ts/src/components/ui/sidebar.tsx +0 -152
  491. package/templates/react-ts/src/config/api.ts +0 -22
  492. package/templates/react-ts/src/config/appConfig.ts +0 -44
  493. package/templates/react-ts/src/config/navigation.ts +0 -14
  494. package/templates/react-ts/src/hooks/useLenis.ts +0 -28
  495. package/templates/react-ts/src/hooks/usePwaInstall.ts +0 -45
  496. package/templates/react-ts/src/hooks/useWindowSize.ts +0 -25
  497. package/templates/react-ts/src/index.css +0 -158
  498. package/templates/react-ts/src/main.tsx +0 -24
  499. package/templates/react-ts/src/pages/Home.tsx +0 -154
  500. package/templates/react-ts/src/pages/Login.tsx +0 -233
  501. package/templates/react-ts/src/pages/Profile.tsx +0 -9
  502. package/templates/react-ts/src/services/authService.ts +0 -19
  503. package/templates/react-ts/src/store/useAuthStore.ts +0 -143
  504. package/templates/react-ts/src/utils/formatDate.ts +0 -19
  505. package/templates/react-ts/src/utils/getInitials.ts +0 -10
  506. package/templates/react-ts/src/vite-env.d.ts +0 -1
  507. package/templates/react-ts/tsconfig.json +0 -25
  508. package/templates/react-ts/tsconfig.node.json +0 -10
  509. package/templates/react-ts/vite.config.ts +0 -8
  510. /package/templates/{next-ts → layers/next/base}/next.config.mjs +0 -0
  511. /package/templates/{next → layers/next/base}/postcss.config.js +0 -0
  512. /package/templates/{next-ts → layers/next/base}/public/manifest.json +0 -0
  513. /package/templates/{next → layers/next/javascript}/README.md +0 -0
  514. /package/templates/{mern-react-native/client → layers/next/javascript}/_gitignore +0 -0
  515. /package/templates/{next → layers/next/javascript}/package.json +0 -0
  516. /package/templates/{next → layers/next/javascript}/src/app/(protected)/layout.js +0 -0
  517. /package/templates/{next → layers/next/javascript}/src/app/(protected)/profile/page.js +0 -0
  518. /package/templates/{next → layers/next/javascript}/src/app/api/hello/route.js +0 -0
  519. /package/templates/{next → layers/next/javascript}/src/app/layout.js +0 -0
  520. /package/templates/{next → layers/next/javascript}/src/app/login/page.js +0 -0
  521. /package/templates/{next → layers/next/javascript}/src/app/page.js +0 -0
  522. /package/templates/{mern-react-native/client → layers/next/javascript}/src/assets/animations/loading.json +0 -0
  523. /package/templates/{mern/client → layers/next/javascript}/src/assets/data/navigation.js +0 -0
  524. /package/templates/{mern-react-native/client/public → layers/next/javascript/src/assets/images}/logo.png +0 -0
  525. /package/templates/{next → layers/next/javascript}/src/components/common/Breadcrumbs.jsx +0 -0
  526. /package/templates/{mern/client → layers/next/javascript}/src/components/common/Loading.jsx +0 -0
  527. /package/templates/{mern/client → layers/next/javascript}/src/components/common/LottieIcon.jsx +0 -0
  528. /package/templates/{next → layers/next/javascript}/src/components/common/NotFound.jsx +0 -0
  529. /package/templates/{next → layers/next/javascript}/src/components/common/PwaInstallPrompt.jsx +0 -0
  530. /package/templates/{next → layers/next/javascript}/src/components/common/SEO.jsx +0 -0
  531. /package/templates/{next → layers/next/javascript}/src/components/common/Scroll.jsx +0 -0
  532. /package/templates/{mern/client → layers/next/javascript}/src/components/common/Table.jsx +0 -0
  533. /package/templates/{mern/client → layers/next/javascript}/src/components/common/ToggleSwitch.jsx +0 -0
  534. /package/templates/{next → layers/next/javascript}/src/components/common/Unauthorized.jsx +0 -0
  535. /package/templates/{next → layers/next/javascript}/src/components/layout/ProtectedRoute.jsx +0 -0
  536. /package/templates/{next → layers/next/javascript}/src/components/layout/PublicLayout.jsx +0 -0
  537. /package/templates/{next → layers/next/javascript}/src/components/layout/SidebarLayout.jsx +0 -0
  538. /package/templates/{mern/client → layers/next/javascript}/src/components/modals/ConfirmModal.jsx +0 -0
  539. /package/templates/{mern/client → layers/next/javascript}/src/components/modals/Modal.jsx +0 -0
  540. /package/templates/{mern/client → layers/next/javascript}/src/components/skeletons/common/CardSkeleton.jsx +0 -0
  541. /package/templates/{mern/client → layers/next/javascript}/src/components/skeletons/common/DashboardSkeleton.jsx +0 -0
  542. /package/templates/{mern/client → layers/next/javascript}/src/components/skeletons/common/ListSkeleton.jsx +0 -0
  543. /package/templates/{mern/client → layers/next/javascript}/src/components/skeletons/common/PageSkeleton.jsx +0 -0
  544. /package/templates/{mern/client → layers/next/javascript}/src/components/skeletons/common/ProfileSkeleton.jsx +0 -0
  545. /package/templates/{mern/client → layers/next/javascript}/src/components/skeletons/common/Skeleton.jsx +0 -0
  546. /package/templates/{mern/client → layers/next/javascript}/src/components/skeletons/common/TableSkeleton.jsx +0 -0
  547. /package/templates/{next → layers/next/javascript}/src/components/ui/Header.jsx +0 -0
  548. /package/templates/{mern/client → layers/next/javascript}/src/components/ui/SidebarHeader.jsx +0 -0
  549. /package/templates/{next → layers/next/javascript}/src/components/ui/sidebar.jsx +0 -0
  550. /package/templates/{next → layers/next/javascript}/src/config/api.js +0 -0
  551. /package/templates/{next → layers/next/javascript}/src/config/appConfig.js +0 -0
  552. /package/templates/{mern/client → layers/next/javascript}/src/config/navigation.js +0 -0
  553. /package/templates/{next → layers/next/javascript}/src/hooks/useLenis.js +0 -0
  554. /package/templates/{mern/client → layers/next/javascript}/src/hooks/usePwaInstall.js +0 -0
  555. /package/templates/{mern/client → layers/next/javascript}/src/hooks/useWindowSize.js +0 -0
  556. /package/templates/{next-ts → layers/next/javascript}/src/index.css +0 -0
  557. /package/templates/{next → layers/next/javascript}/src/services/authService.js +0 -0
  558. /package/templates/{mern/client → layers/next/javascript}/src/store/useAuthStore.js +0 -0
  559. /package/templates/{next → layers/next/javascript}/src/store/useUiStore.js +0 -0
  560. /package/templates/{mern/client → layers/next/javascript}/src/utils/formatDate.js +0 -0
  561. /package/templates/{mern/client → layers/next/javascript}/src/utils/getInitials.js +0 -0
  562. /package/templates/{next-ts → layers/next/typescript}/.env.example +0 -0
  563. /package/templates/{next-ts → layers/next/typescript}/README.md +0 -0
  564. /package/templates/{mern-react-native/server → layers/next/typescript}/_gitignore +0 -0
  565. /package/templates/{next-ts → layers/next/typescript}/next-env.d.ts +0 -0
  566. /package/templates/{next-ts → layers/next/typescript}/package.json +0 -0
  567. /package/templates/{next-ts → layers/next/typescript}/postcss.config.js +0 -0
  568. /package/templates/{mern-react-native/client/src/assets/images → layers/next/typescript/public}/logo.png +0 -0
  569. /package/templates/{next-ts → layers/next/typescript}/public/sw.js +0 -0
  570. /package/templates/{next-ts → layers/next/typescript}/public/workbox-f1770938.js +0 -0
  571. /package/templates/{next-ts → layers/next/typescript}/src/app/(protected)/layout.tsx +0 -0
  572. /package/templates/{next-ts → layers/next/typescript}/src/app/(protected)/profile/page.tsx +0 -0
  573. /package/templates/{next-ts → layers/next/typescript}/src/app/api/hello/route.ts +0 -0
  574. /package/templates/{next-ts → layers/next/typescript}/src/app/error.tsx +0 -0
  575. /package/templates/{next-ts → layers/next/typescript}/src/app/layout.tsx +0 -0
  576. /package/templates/{next-ts → layers/next/typescript}/src/app/login/page.tsx +0 -0
  577. /package/templates/{next-ts → layers/next/typescript}/src/app/not-found.tsx +0 -0
  578. /package/templates/{next-ts → layers/next/typescript}/src/app/page.tsx +0 -0
  579. /package/templates/{mern-react-native/mobile → layers/next/typescript/src}/assets/animations/loading.json +0 -0
  580. /package/templates/{mern-react-native/client → layers/next/typescript}/src/assets/data/navigation.ts +0 -0
  581. /package/templates/{mern-react-native/mobile/assets/images/logo → layers/next/typescript/src/assets/images}/logo.png +0 -0
  582. /package/templates/{next-ts → layers/next/typescript}/src/components/common/Breadcrumbs.tsx +0 -0
  583. /package/templates/{next-ts → layers/next/typescript}/src/components/common/Loading.tsx +0 -0
  584. /package/templates/{next-ts → layers/next/typescript}/src/components/common/LottieIcon.tsx +0 -0
  585. /package/templates/{next-ts → layers/next/typescript}/src/components/common/NotFound.tsx +0 -0
  586. /package/templates/{next-ts → layers/next/typescript}/src/components/common/PwaInstallPrompt.tsx +0 -0
  587. /package/templates/{next-ts → layers/next/typescript}/src/components/common/SEO.tsx +0 -0
  588. /package/templates/{next-ts → layers/next/typescript}/src/components/common/Scroll.tsx +0 -0
  589. /package/templates/{mern-react-native/client → layers/next/typescript}/src/components/common/Table.tsx +0 -0
  590. /package/templates/{next-ts → layers/next/typescript}/src/components/common/ToggleSwitch.tsx +0 -0
  591. /package/templates/{next-ts → layers/next/typescript}/src/components/common/Unauthorized.tsx +0 -0
  592. /package/templates/{next-ts → layers/next/typescript}/src/components/layout/ProtectedRoute.tsx +0 -0
  593. /package/templates/{next-ts → layers/next/typescript}/src/components/layout/PublicLayout.tsx +0 -0
  594. /package/templates/{next-ts → layers/next/typescript}/src/components/layout/SidebarLayout.tsx +0 -0
  595. /package/templates/{mern-react-native/client → layers/next/typescript}/src/components/modals/ConfirmModal.tsx +0 -0
  596. /package/templates/{next-ts → layers/next/typescript}/src/components/modals/Modal.tsx +0 -0
  597. /package/templates/{mern-react-native/client → layers/next/typescript}/src/components/skeletons/common/CardSkeleton.tsx +0 -0
  598. /package/templates/{mern-react-native/client → layers/next/typescript}/src/components/skeletons/common/DashboardSkeleton.tsx +0 -0
  599. /package/templates/{mern-react-native/client → layers/next/typescript}/src/components/skeletons/common/ListSkeleton.tsx +0 -0
  600. /package/templates/{mern-react-native/client → layers/next/typescript}/src/components/skeletons/common/PageSkeleton.tsx +0 -0
  601. /package/templates/{mern-react-native/client → layers/next/typescript}/src/components/skeletons/common/ProfileSkeleton.tsx +0 -0
  602. /package/templates/{mern-react-native/client → layers/next/typescript}/src/components/skeletons/common/Skeleton.tsx +0 -0
  603. /package/templates/{mern-react-native/client → layers/next/typescript}/src/components/skeletons/common/TableSkeleton.tsx +0 -0
  604. /package/templates/{next-ts → layers/next/typescript}/src/components/ui/Button.tsx +0 -0
  605. /package/templates/{next-ts → layers/next/typescript}/src/components/ui/Header.tsx +0 -0
  606. /package/templates/{next-ts → layers/next/typescript}/src/components/ui/Input.tsx +0 -0
  607. /package/templates/{next-ts → layers/next/typescript}/src/components/ui/SidebarHeader.tsx +0 -0
  608. /package/templates/{next-ts → layers/next/typescript}/src/components/ui/sidebar.tsx +0 -0
  609. /package/templates/{next-ts → layers/next/typescript}/src/config/api.ts +0 -0
  610. /package/templates/{next-ts → layers/next/typescript}/src/config/appConfig.ts +0 -0
  611. /package/templates/{mern-react-native/client → layers/next/typescript}/src/config/navigation.ts +0 -0
  612. /package/templates/{next-ts → layers/next/typescript}/src/hooks/useLenis.ts +0 -0
  613. /package/templates/{next-ts → layers/next/typescript}/src/hooks/usePwaInstall.ts +0 -0
  614. /package/templates/{mern-react-native/client → layers/next/typescript}/src/hooks/useWindowSize.ts +0 -0
  615. /package/templates/{next → layers/next/typescript}/src/index.css +0 -0
  616. /package/templates/{next-ts → layers/next/typescript}/src/services/authService.ts +0 -0
  617. /package/templates/{mern-react-native/client → layers/next/typescript}/src/store/useAuthStore.ts +0 -0
  618. /package/templates/{next-ts → layers/next/typescript}/src/store/useUiStore.ts +0 -0
  619. /package/templates/{mern-react-native/client → layers/next/typescript}/src/utils/formatDate.ts +0 -0
  620. /package/templates/{mern-react-native/client → layers/next/typescript}/src/utils/getInitials.ts +0 -0
  621. /package/templates/{next-ts → layers/next/typescript}/tsconfig.json +0 -0
  622. /package/templates/{mern-react-native/server → layers/node/javascript}/.env.example +0 -0
  623. /package/templates/{mern/server → layers/node/javascript}/README.md +0 -0
  624. /package/templates/{mern/client → layers/node/javascript}/_gitignore +0 -0
  625. /package/templates/{node-prisma → layers/node/javascript}/src/app.js +0 -0
  626. /package/templates/{node-prisma → layers/node/javascript}/src/config/cloudinary.js +0 -0
  627. /package/templates/{mern/server → layers/node/javascript}/src/config/db.js +0 -0
  628. /package/templates/{node-prisma → layers/node/javascript}/src/config/dotenv.js +0 -0
  629. /package/templates/{node-prisma → layers/node/javascript}/src/config/email.js +0 -0
  630. /package/templates/{node-prisma → layers/node/javascript}/src/config/socket.js +0 -0
  631. /package/templates/{node-prisma → layers/node/javascript}/src/config/webPush.js +0 -0
  632. /package/templates/{node-prisma → layers/node/javascript}/src/controllers/upload.controller.js +0 -0
  633. /package/templates/{mern/server → layers/node/javascript}/src/index.js +0 -0
  634. /package/templates/{mern/server → layers/node/javascript}/src/middleware/auth.middleware.js +0 -0
  635. /package/templates/{node-prisma → layers/node/javascript}/src/middleware/errorHandler.js +0 -0
  636. /package/templates/{node-prisma → layers/node/javascript}/src/middleware/multer.js +0 -0
  637. /package/templates/{node-prisma → layers/node/javascript}/src/middleware/rateLimiter.js +0 -0
  638. /package/templates/{mern/server → layers/node/javascript}/src/models/otp.model.js +0 -0
  639. /package/templates/{mern-react-native/server/src/routes/auth.route.ts → layers/node/javascript/src/routes/auth.route.js} +0 -0
  640. /package/templates/{mern/server → layers/node/javascript}/src/routes/index.js +0 -0
  641. /package/templates/{node → layers/node/javascript}/src/routes/push.route.js +0 -0
  642. /package/templates/{node-prisma → layers/node/javascript}/src/routes/upload.route.js +0 -0
  643. /package/templates/{node-prisma → layers/node/javascript}/src/utils/authToken.js +0 -0
  644. /package/templates/{node-prisma → layers/node/javascript}/src/utils/cloudinary.js +0 -0
  645. /package/templates/{node-prisma → layers/node/javascript}/src/utils/cloudinaryUpload.js +0 -0
  646. /package/templates/{node-prisma → layers/node/javascript}/src/utils/emailOtp.js +0 -0
  647. /package/templates/{node-prisma → layers/node/javascript}/src/utils/genOtpToken.js +0 -0
  648. /package/templates/{node-prisma → layers/node/javascript}/src/utils/generateVapidKeys.js +0 -0
  649. /package/templates/{node-prisma → layers/node/javascript}/src/utils/jwt.js +0 -0
  650. /package/templates/{node-prisma → layers/node/javascript}/src/utils/logger.js +0 -0
  651. /package/templates/{mern-ts/server → layers/node/typescript}/.env.example +0 -0
  652. /package/templates/{mern-react-native/server → layers/node/typescript}/README.md +0 -0
  653. /package/templates/{mern/server → layers/node/typescript}/_gitignore +0 -0
  654. /package/templates/{mern-ts/server → layers/node/typescript}/src/app.ts +0 -0
  655. /package/templates/{mern-ts/server → layers/node/typescript}/src/config/cloudinary.ts +0 -0
  656. /package/templates/{mern-react-native/server → layers/node/typescript}/src/config/db.ts +0 -0
  657. /package/templates/{mern-ts/server → layers/node/typescript}/src/config/dotenv.ts +0 -0
  658. /package/templates/{mern-ts/server → layers/node/typescript}/src/config/email.ts +0 -0
  659. /package/templates/{mern-ts/server → layers/node/typescript}/src/config/socket.ts +0 -0
  660. /package/templates/{mern-ts/server → layers/node/typescript}/src/config/webPush.ts +0 -0
  661. /package/templates/{mern-ts/server → layers/node/typescript}/src/controllers/upload.controller.ts +0 -0
  662. /package/templates/{mern-react-native/server → layers/node/typescript}/src/index.ts +0 -0
  663. /package/templates/{mern-react-native/server → layers/node/typescript}/src/middleware/auth.middleware.ts +0 -0
  664. /package/templates/{mern-ts/server → layers/node/typescript}/src/middleware/errorHandler.ts +0 -0
  665. /package/templates/{mern-ts/server → layers/node/typescript}/src/middleware/multer.ts +0 -0
  666. /package/templates/{mern-ts/server → layers/node/typescript}/src/middleware/rateLimiter.ts +0 -0
  667. /package/templates/{mern-react-native/server → layers/node/typescript}/src/models/otp.model.ts +0 -0
  668. /package/templates/{mern-react-native/server → layers/node/typescript}/src/routes/index.ts +0 -0
  669. /package/templates/{node-ts → layers/node/typescript}/src/routes/push.route.ts +0 -0
  670. /package/templates/{mern-ts/server → layers/node/typescript}/src/routes/upload.route.ts +0 -0
  671. /package/templates/{mern-ts/server → layers/node/typescript}/src/types/express.d.ts +0 -0
  672. /package/templates/{mern-ts/server → layers/node/typescript}/src/utils/cloudinaryUpload.ts +0 -0
  673. /package/templates/{mern-ts/server → layers/node/typescript}/src/utils/emailOtp.ts +0 -0
  674. /package/templates/{mern-react-native/server → layers/node/typescript}/src/utils/expoNotification.ts +0 -0
  675. /package/templates/{mern-ts/server → layers/node/typescript}/src/utils/genOtpToken.ts +0 -0
  676. /package/templates/{mern-ts/server → layers/node/typescript}/src/utils/generateVapidKeys.ts +0 -0
  677. /package/templates/{mern-ts/server → layers/node/typescript}/src/utils/jwt.ts +0 -0
  678. /package/templates/{mern-ts/server → layers/node/typescript}/src/utils/logger.ts +0 -0
  679. /package/templates/{mern-ts/server → layers/node/typescript}/tsconfig.json +0 -0
  680. /package/templates/{node-prisma-ts → layers/node-prisma/javascript}/.env.example +0 -0
  681. /package/templates/{node-prisma → layers/node-prisma/javascript}/README.md +0 -0
  682. /package/templates/{mern-ts/client → layers/node-prisma/javascript}/_gitignore +0 -0
  683. /package/templates/{mern/server → layers/node-prisma/javascript}/src/app.js +0 -0
  684. /package/templates/{mern/server → layers/node-prisma/javascript}/src/config/cloudinary.js +0 -0
  685. /package/templates/{mern/server → layers/node-prisma/javascript}/src/config/dotenv.js +0 -0
  686. /package/templates/{mern/server → layers/node-prisma/javascript}/src/config/email.js +0 -0
  687. /package/templates/{mern/server → layers/node-prisma/javascript}/src/config/socket.js +0 -0
  688. /package/templates/{mern/server → layers/node-prisma/javascript}/src/config/webPush.js +0 -0
  689. /package/templates/{node-prisma → layers/node-prisma/javascript}/src/controllers/auth.controller.js +0 -0
  690. /package/templates/{mern/server → layers/node-prisma/javascript}/src/controllers/upload.controller.js +0 -0
  691. /package/templates/{node-prisma → layers/node-prisma/javascript}/src/index.js +0 -0
  692. /package/templates/{node-prisma → layers/node-prisma/javascript}/src/middleware/auth.middleware.js +0 -0
  693. /package/templates/{mern/server → layers/node-prisma/javascript}/src/middleware/errorHandler.js +0 -0
  694. /package/templates/{mern/server → layers/node-prisma/javascript}/src/middleware/multer.js +0 -0
  695. /package/templates/{mern/server → layers/node-prisma/javascript}/src/middleware/rateLimiter.js +0 -0
  696. /package/templates/{node-prisma → layers/node-prisma/javascript}/src/routes/auth.route.js +0 -0
  697. /package/templates/{node-prisma → layers/node-prisma/javascript}/src/routes/index.js +0 -0
  698. /package/templates/{node-prisma → layers/node-prisma/javascript}/src/routes/push.route.js +0 -0
  699. /package/templates/{mern/server → layers/node-prisma/javascript}/src/routes/upload.route.js +0 -0
  700. /package/templates/{node-prisma → layers/node-prisma/javascript}/src/services/auth.service.js +0 -0
  701. /package/templates/{mern/server → layers/node-prisma/javascript}/src/utils/authToken.js +0 -0
  702. /package/templates/{mern/server → layers/node-prisma/javascript}/src/utils/cloudinary.js +0 -0
  703. /package/templates/{mern/server → layers/node-prisma/javascript}/src/utils/cloudinaryUpload.js +0 -0
  704. /package/templates/{mern/server → layers/node-prisma/javascript}/src/utils/emailOtp.js +0 -0
  705. /package/templates/{mern/server → layers/node-prisma/javascript}/src/utils/genOtpToken.js +0 -0
  706. /package/templates/{mern/server → layers/node-prisma/javascript}/src/utils/generateVapidKeys.js +0 -0
  707. /package/templates/{mern/server → layers/node-prisma/javascript}/src/utils/jwt.js +0 -0
  708. /package/templates/{mern/server → layers/node-prisma/javascript}/src/utils/logger.js +0 -0
  709. /package/templates/{node-prisma → layers/node-prisma/typescript}/.env.example +0 -0
  710. /package/templates/{node-prisma-ts → layers/node-prisma/typescript}/README.md +0 -0
  711. /package/templates/{mern-ts/server → layers/node-prisma/typescript}/_gitignore +0 -0
  712. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/app.ts +0 -0
  713. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/config/cloudinary.ts +0 -0
  714. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/config/dotenv.ts +0 -0
  715. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/config/email.ts +0 -0
  716. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/config/socket.ts +0 -0
  717. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/config/webPush.ts +0 -0
  718. /package/templates/{node-prisma-ts → layers/node-prisma/typescript}/src/controllers/auth.controller.ts +0 -0
  719. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/controllers/upload.controller.ts +0 -0
  720. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/middleware/errorHandler.ts +0 -0
  721. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/middleware/multer.ts +0 -0
  722. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/middleware/rateLimiter.ts +0 -0
  723. /package/templates/{node-prisma-ts → layers/node-prisma/typescript}/src/routes/auth.route.ts +0 -0
  724. /package/templates/{node-prisma-ts → layers/node-prisma/typescript}/src/routes/index.ts +0 -0
  725. /package/templates/{node-prisma-ts → layers/node-prisma/typescript}/src/routes/push.route.ts +0 -0
  726. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/routes/upload.route.ts +0 -0
  727. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/types/express.d.ts +0 -0
  728. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/utils/cloudinaryUpload.ts +0 -0
  729. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/utils/emailOtp.ts +0 -0
  730. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/utils/genOtpToken.ts +0 -0
  731. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/utils/generateVapidKeys.ts +0 -0
  732. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/utils/jwt.ts +0 -0
  733. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/src/utils/logger.ts +0 -0
  734. /package/templates/{mern-react-native/server → layers/node-prisma/typescript}/tsconfig.json +0 -0
  735. /package/templates/{production-fullstack/server → layers/prisma/javascript}/.env.example +0 -0
  736. /package/templates/{node-prisma → layers/prisma/javascript}/package.json +0 -0
  737. /package/templates/{node-prisma-ts → layers/prisma/javascript}/prisma/schema.prisma +0 -0
  738. /package/templates/{node-prisma → layers/prisma/javascript}/src/config/db.js +0 -0
  739. /package/templates/{node-prisma → layers/prisma/javascript}/src/controllers/push.controller.js +0 -0
  740. /package/templates/{node-prisma → layers/prisma/javascript}/src/utils/pushHelper.js +0 -0
  741. /package/templates/{node-prisma-ts → layers/prisma/typescript}/package.json +0 -0
  742. /package/templates/{node-prisma → layers/prisma/typescript}/prisma/schema.prisma +0 -0
  743. /package/templates/{node-prisma-ts → layers/prisma/typescript}/src/config/db.ts +0 -0
  744. /package/templates/{mern/client → layers/react/base}/index.html +0 -0
  745. /package/templates/{mern-react-native/client → layers/react/base}/public/_redirects +0 -0
  746. /package/templates/{mern-react-native/client → layers/react/base}/public/favicon.ico +0 -0
  747. /package/templates/{mern-react-native/client → layers/react/base}/public/favicon.svg +0 -0
  748. /package/templates/{mern-ts/client/src/assets/images → layers/react/base/public}/logo.png +0 -0
  749. /package/templates/{mern-react-native/client → layers/react/base}/public/manifest.json +0 -0
  750. /package/templates/{mern-react-native/client → layers/react/base}/public/sw.js +0 -0
  751. /package/templates/{mern/client → layers/react/base}/src/assets/animations/loading.json +0 -0
  752. /package/templates/{mern/client/public → layers/react/base/src/assets/images}/logo.png +0 -0
  753. /package/templates/{mern-react-native/client → layers/react/base}/src/index.css +0 -0
  754. /package/templates/{next-ts → layers/react/javascript}/_gitignore +0 -0
  755. /package/templates/{mern/client → layers/react/javascript}/package.json +0 -0
  756. /package/templates/{mern/client → layers/react/javascript}/src/App.jsx +0 -0
  757. /package/templates/{next → layers/react/javascript}/src/components/common/Loading.jsx +0 -0
  758. /package/templates/{next → layers/react/javascript}/src/components/common/LottieIcon.jsx +0 -0
  759. /package/templates/{mern/client → layers/react/javascript}/src/components/common/PwaInstallPrompt.jsx +0 -0
  760. /package/templates/{next → layers/react/javascript}/src/components/common/ToggleSwitch.jsx +0 -0
  761. /package/templates/{mern/client → layers/react/javascript}/src/components/common/Unauthorized.jsx +0 -0
  762. /package/templates/{mern/client → layers/react/javascript}/src/components/layout/ProtectedRoute.jsx +0 -0
  763. /package/templates/{mern/client → layers/react/javascript}/src/components/layout/PublicLayout.jsx +0 -0
  764. /package/templates/{mern/client → layers/react/javascript}/src/components/layout/SidebarLayout.jsx +0 -0
  765. /package/templates/{next → layers/react/javascript}/src/config/navigation.js +0 -0
  766. /package/templates/{mern/client → layers/react/javascript}/src/main.jsx +0 -0
  767. /package/templates/{next → layers/react/javascript}/src/utils/formatDate.js +0 -0
  768. /package/templates/{mern/client → layers/react/javascript}/vite.config.js +0 -0
  769. /package/templates/{next → layers/react/typescript}/_gitignore +0 -0
  770. /package/templates/{mern-react-native/client → layers/react/typescript}/index.html +0 -0
  771. /package/templates/{mern-react-native/client → layers/react/typescript}/package.json +0 -0
  772. /package/templates/{mern-ts/client → layers/react/typescript}/public/_redirects +0 -0
  773. /package/templates/{mern-ts/client → layers/react/typescript}/public/favicon.ico +0 -0
  774. /package/templates/{mern-ts/client → layers/react/typescript}/public/favicon.svg +0 -0
  775. /package/templates/{mern/client/src/assets/images → layers/react/typescript/public}/logo.png +0 -0
  776. /package/templates/{mern-ts/client → layers/react/typescript}/public/manifest.json +0 -0
  777. /package/templates/{mern-ts/client → layers/react/typescript}/public/sw.js +0 -0
  778. /package/templates/{mern-react-native/client → layers/react/typescript}/src/App.tsx +0 -0
  779. /package/templates/{next-ts → layers/react/typescript}/src/assets/animations/loading.json +0 -0
  780. /package/templates/{mern-ts/client → layers/react/typescript}/src/assets/data/navigation.ts +0 -0
  781. /package/templates/{next-ts/public → layers/react/typescript/src/assets/images}/logo.png +0 -0
  782. /package/templates/{mern-react-native/client → layers/react/typescript}/src/components/common/Loading.tsx +0 -0
  783. /package/templates/{mern-react-native/client → layers/react/typescript}/src/components/common/LottieIcon.tsx +0 -0
  784. /package/templates/{mern-react-native/client → layers/react/typescript}/src/components/common/NotFound.tsx +0 -0
  785. /package/templates/{mern-react-native/client → layers/react/typescript}/src/components/common/PwaInstallPrompt.tsx +0 -0
  786. /package/templates/{mern-react-native/client → layers/react/typescript}/src/components/common/SEO.tsx +0 -0
  787. /package/templates/{mern-react-native/client → layers/react/typescript}/src/components/common/Scroll.tsx +0 -0
  788. /package/templates/{mern-react-native/client → layers/react/typescript}/src/components/common/ToggleSwitch.tsx +0 -0
  789. /package/templates/{mern-react-native/client → layers/react/typescript}/src/components/common/Unauthorized.tsx +0 -0
  790. /package/templates/{mern-react-native/client → layers/react/typescript}/src/components/layout/ProtectedRoute.tsx +0 -0
  791. /package/templates/{mern-react-native/client → layers/react/typescript}/src/components/layout/PublicLayout.tsx +0 -0
  792. /package/templates/{mern-ts/client → layers/react/typescript}/src/components/skeletons/common/CardSkeleton.tsx +0 -0
  793. /package/templates/{mern-ts/client → layers/react/typescript}/src/components/skeletons/common/DashboardSkeleton.tsx +0 -0
  794. /package/templates/{mern-ts/client → layers/react/typescript}/src/components/skeletons/common/ListSkeleton.tsx +0 -0
  795. /package/templates/{mern-ts/client → layers/react/typescript}/src/components/skeletons/common/PageSkeleton.tsx +0 -0
  796. /package/templates/{mern-ts/client → layers/react/typescript}/src/components/skeletons/common/ProfileSkeleton.tsx +0 -0
  797. /package/templates/{mern-ts/client → layers/react/typescript}/src/components/skeletons/common/Skeleton.tsx +0 -0
  798. /package/templates/{mern-ts/client → layers/react/typescript}/src/components/skeletons/common/TableSkeleton.tsx +0 -0
  799. /package/templates/{mern-react-native/client → layers/react/typescript}/src/components/ui/Header.tsx +0 -0
  800. /package/templates/{mern-react-native/client → layers/react/typescript}/src/config/api.ts +0 -0
  801. /package/templates/{mern-react-native/client → layers/react/typescript}/src/config/appConfig.ts +0 -0
  802. /package/templates/{mern-ts/client → layers/react/typescript}/src/config/navigation.ts +0 -0
  803. /package/templates/{mern-react-native/client → layers/react/typescript}/src/hooks/useLenis.ts +0 -0
  804. /package/templates/{mern-react-native/client → layers/react/typescript}/src/hooks/usePwaInstall.ts +0 -0
  805. /package/templates/{mern-ts/client → layers/react/typescript}/src/hooks/useWindowSize.ts +0 -0
  806. /package/templates/{mern-ts/client → layers/react/typescript}/src/index.css +0 -0
  807. /package/templates/{mern-react-native/client → layers/react/typescript}/src/main.tsx +0 -0
  808. /package/templates/{mern-react-native/client → layers/react/typescript}/src/pages/Home.tsx +0 -0
  809. /package/templates/{mern-react-native/client → layers/react/typescript}/src/pages/Login.tsx +0 -0
  810. /package/templates/{mern-react-native/client → layers/react/typescript}/src/pages/Profile.tsx +0 -0
  811. /package/templates/{mern-react-native/client → layers/react/typescript}/src/services/authService.ts +0 -0
  812. /package/templates/{mern-ts/client → layers/react/typescript}/src/store/useAuthStore.ts +0 -0
  813. /package/templates/{mern-ts/client → layers/react/typescript}/src/utils/formatDate.ts +0 -0
  814. /package/templates/{mern-ts/client → layers/react/typescript}/src/utils/getInitials.ts +0 -0
  815. /package/templates/{mern-react-native/client → layers/react/typescript}/src/vite-env.d.ts +0 -0
  816. /package/templates/{mern-react-native/client → layers/react/typescript}/tsconfig.json +0 -0
  817. /package/templates/{mern-react-native/client → layers/react/typescript}/tsconfig.node.json +0 -0
  818. /package/templates/{mern-react-native/client → layers/react/typescript}/vite.config.ts +0 -0
  819. /package/templates/{mern-react-native/mobile → layers/react-native/base}/LICENSE +0 -0
  820. /package/templates/{mern-react-native/mobile → layers/react-native/base}/_gitignore +0 -0
  821. /package/templates/{mern-react-native/mobile → layers/react-native/base}/app.json +0 -0
  822. /package/templates/{mern-react-native/mobile → layers/react-native/base}/assets/animations/celebrate.json +0 -0
  823. /package/templates/{mern-react-native/mobile → layers/react-native/base}/assets/animations/infinity.json +0 -0
  824. /package/templates/{mern-ts/client/src → layers/react-native/base}/assets/animations/loading.json +0 -0
  825. /package/templates/{mern-react-native/mobile → layers/react-native/base}/assets/fonts/Inter_Bold.ttf +0 -0
  826. /package/templates/{mern-react-native/mobile → layers/react-native/base}/assets/fonts/Inter_ExtraBold.ttf +0 -0
  827. /package/templates/{mern-react-native/mobile → layers/react-native/base}/assets/fonts/Inter_Medium.ttf +0 -0
  828. /package/templates/{mern-react-native/mobile → layers/react-native/base}/assets/fonts/Inter_Regular.ttf +0 -0
  829. /package/templates/{mern-react-native/mobile → layers/react-native/base}/assets/fonts/Inter_SemiBold.ttf +0 -0
  830. /package/templates/{mern-ts/client/public → layers/react-native/base/assets/images/logo}/logo.png +0 -0
  831. /package/templates/{mern-react-native/mobile → layers/react-native/base}/assets/images/logo/logo.svg +0 -0
  832. /package/templates/{mern-react-native/mobile → layers/react-native/base}/assets/images/logo/logoWithBg.png +0 -0
  833. /package/templates/{mern-react-native/mobile → layers/react-native/base}/babel.config.js +0 -0
  834. /package/templates/{mern-react-native/mobile → layers/react-native/base}/drizzle.config.ts +0 -0
  835. /package/templates/{mern-react-native/mobile → layers/react-native/base}/eas.json +0 -0
  836. /package/templates/{mern-react-native/mobile → layers/react-native/base}/eslint.config.js +0 -0
  837. /package/templates/{mern-react-native/mobile → layers/react-native/base}/expo-env.d.ts +0 -0
  838. /package/templates/{mern-react-native/mobile → layers/react-native/base}/metro.config.js +0 -0
  839. /package/templates/{mern-react-native/mobile → layers/react-native/base}/nativewind-env.d.ts +0 -0
  840. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/app/(auth)/_layout.tsx +0 -0
  841. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/app/(auth)/change-password.tsx +0 -0
  842. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/app/(auth)/edit-profile.tsx +0 -0
  843. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/app/(auth)/forgot-password.tsx +0 -0
  844. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/app/(auth)/login.tsx +0 -0
  845. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/app/(tabs)/_layout.tsx +0 -0
  846. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/app/(tabs)/dashboard.tsx +0 -0
  847. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/app/(tabs)/index.tsx +0 -0
  848. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/app/(tabs)/search.tsx +0 -0
  849. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/app/global.css +0 -0
  850. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/common/AnimatedHeader.tsx +0 -0
  851. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/common/ConfirmationToast.tsx +0 -0
  852. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/common/Loading.tsx +0 -0
  853. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/common/LocationLoader.tsx +0 -0
  854. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/common/ScreenHeader.tsx +0 -0
  855. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/common/TabHeader.tsx +0 -0
  856. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/common/Welcome.tsx +0 -0
  857. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/CustomTabBar.tsx +0 -0
  858. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/Sidebar.tsx +0 -0
  859. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/buttons/Button.tsx +0 -0
  860. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/buttons/ButtonGroup.tsx +0 -0
  861. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/buttons/FloatingActionButton.tsx +0 -0
  862. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/buttons/IconButton.tsx +0 -0
  863. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/data-display/Accordion.tsx +0 -0
  864. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/data-display/Avatar.tsx +0 -0
  865. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/data-display/Badge.tsx +0 -0
  866. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/data-display/Card.tsx +0 -0
  867. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/data-display/Image.tsx +0 -0
  868. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/data-display/ImageViewer.tsx +0 -0
  869. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/data-display/SwipeableRow.tsx +0 -0
  870. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/feedback/CircularProgress.tsx +0 -0
  871. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/feedback/GestureWrapper.tsx +0 -0
  872. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/feedback/ProgressBar.tsx +0 -0
  873. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/feedback/Skeleton.tsx +0 -0
  874. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/feedback/Spinner.tsx +0 -0
  875. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/inputs/Checkbox.tsx +0 -0
  876. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/inputs/DatePicker.tsx +0 -0
  877. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/inputs/ImagePickerModal.tsx +0 -0
  878. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/inputs/Input.tsx +0 -0
  879. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/inputs/LocationPicker.tsx +0 -0
  880. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/inputs/OTPInput.tsx +0 -0
  881. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/inputs/PasswordInput.tsx +0 -0
  882. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/inputs/Radio.tsx +0 -0
  883. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/inputs/SearchBar.tsx +0 -0
  884. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/inputs/Slider.tsx +0 -0
  885. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/inputs/Switch.tsx +0 -0
  886. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/inputs/TextArea.tsx +0 -0
  887. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/inputs/WebLocationPicker.tsx +0 -0
  888. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/layout/Container.tsx +0 -0
  889. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/layout/Divider.tsx +0 -0
  890. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/layout/Grid.tsx +0 -0
  891. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/layout/KeyboardAvoidingViewWrapper.tsx +0 -0
  892. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/layout/ScrollContainer.tsx +0 -0
  893. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/layout/Section.tsx +0 -0
  894. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/layout/Spacer.tsx +0 -0
  895. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/layout/Stack.tsx +0 -0
  896. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/navigation/Pagination.tsx +0 -0
  897. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/navigation/ProgressStepper.tsx +0 -0
  898. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/components/ui/navigation/Tabs.tsx +0 -0
  899. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/config/api.ts +0 -0
  900. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/config/sidebar.config.ts +0 -0
  901. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/config/tabNavigation.ts +0 -0
  902. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/constants/Colors.ts +0 -0
  903. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/db/index.ts +0 -0
  904. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/db/schema.ts +0 -0
  905. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/hooks/useDebounce.ts +0 -0
  906. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/services/auth.service.ts +0 -0
  907. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/services/notification.service.ts +0 -0
  908. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/services/permission.service.ts +0 -0
  909. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/services/socket.service.ts +0 -0
  910. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/store/localStore.ts +0 -0
  911. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/store/useNotificationStore.ts +0 -0
  912. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/types/auth.type.ts +0 -0
  913. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/types/images.d.ts +0 -0
  914. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/utils/storage.ts +0 -0
  915. /package/templates/{mern-react-native/mobile → layers/react-native/base}/src/utils/toast.ts +0 -0
  916. /package/templates/{mern-react-native/mobile → layers/react-native/base}/tailwind.config.js +0 -0
  917. /package/templates/{mern-react-native/mobile → layers/react-native/base}/tsconfig.json +0 -0
  918. /package/templates/{mern-react-native → presets/fullstack-prisma/overrides}/_gitignore +0 -0
  919. /package/templates/{mern → presets/mern/overrides}/package.json +0 -0
  920. /package/templates/{mern-ts → presets/mern-react-native/overrides}/_gitignore +0 -0
  921. /package/templates/{mern-react-native → presets/mern-react-native/overrides}/package.json +0 -0
  922. /package/templates/{mern → presets/mern-ts/overrides}/_gitignore +0 -0
  923. /package/templates/{mern-ts → presets/mern-ts/overrides}/package.json +0 -0
  924. /package/templates/{node-prisma-ts → presets/production-fullstack/overrides/client}/_gitignore +0 -0
  925. /package/templates/{mern-ts → presets/production-fullstack/overrides}/client/index.html +0 -0
  926. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/package.json +0 -0
  927. /package/templates/{mern → presets/production-fullstack/overrides}/client/public/_redirects +0 -0
  928. /package/templates/{mern → presets/production-fullstack/overrides}/client/public/favicon.ico +0 -0
  929. /package/templates/{mern → presets/production-fullstack/overrides}/client/public/favicon.svg +0 -0
  930. /package/templates/{next-ts/src/assets/images → presets/production-fullstack/overrides/client/public}/logo.png +0 -0
  931. /package/templates/{mern → presets/production-fullstack/overrides}/client/public/manifest.json +0 -0
  932. /package/templates/{mern → presets/production-fullstack/overrides}/client/public/sw.js +0 -0
  933. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/App.tsx +0 -0
  934. /package/templates/{next → presets/production-fullstack/overrides/client}/src/assets/animations/loading.json +0 -0
  935. /package/templates/{next-ts → presets/production-fullstack/overrides/client}/src/assets/data/navigation.ts +0 -0
  936. /package/templates/{next → presets/production-fullstack/overrides/client}/src/assets/images/logo.png +0 -0
  937. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/components/layout/ProtectedRoute.tsx +0 -0
  938. /package/templates/{mern-ts → presets/production-fullstack/overrides}/client/src/components/layout/PublicLayout.tsx +0 -0
  939. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/components/layout/SidebarLayout.tsx +0 -0
  940. /package/templates/{mern-react-native/client/src/components/common → presets/production-fullstack/overrides/client/src/components/shared}/Breadcrumbs.tsx +0 -0
  941. /package/templates/{mern-ts/client/src/components/common → presets/production-fullstack/overrides/client/src/components/shared}/LottieIcon.tsx +0 -0
  942. /package/templates/{mern-ts/client/src/components/common → presets/production-fullstack/overrides/client/src/components/shared}/NotFound.tsx +0 -0
  943. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/components/shared/PwaInstallPrompt.tsx +0 -0
  944. /package/templates/{mern-ts/client/src/components/common → presets/production-fullstack/overrides/client/src/components/shared}/SEO.tsx +0 -0
  945. /package/templates/{mern-ts/client/src/components/common → presets/production-fullstack/overrides/client/src/components/shared}/Scroll.tsx +0 -0
  946. /package/templates/{mern-ts/client/src/components/common → presets/production-fullstack/overrides/client/src/components/shared}/Unauthorized.tsx +0 -0
  947. /package/templates/{next-ts/src/components → presets/production-fullstack/overrides/client/src/components/shared}/skeletons/common/CardSkeleton.tsx +0 -0
  948. /package/templates/{next-ts/src/components → presets/production-fullstack/overrides/client/src/components/shared}/skeletons/common/DashboardSkeleton.tsx +0 -0
  949. /package/templates/{next-ts/src/components → presets/production-fullstack/overrides/client/src/components/shared}/skeletons/common/ListSkeleton.tsx +0 -0
  950. /package/templates/{next-ts/src/components → presets/production-fullstack/overrides/client/src/components/shared}/skeletons/common/PageSkeleton.tsx +0 -0
  951. /package/templates/{next-ts/src/components → presets/production-fullstack/overrides/client/src/components/shared}/skeletons/common/ProfileSkeleton.tsx +0 -0
  952. /package/templates/{next-ts/src/components → presets/production-fullstack/overrides/client/src/components/shared}/skeletons/common/Skeleton.tsx +0 -0
  953. /package/templates/{next-ts/src/components → presets/production-fullstack/overrides/client/src/components/shared}/skeletons/common/TableSkeleton.tsx +0 -0
  954. /package/templates/{mern-ts/client/src/components/modals → presets/production-fullstack/overrides/client/src/components/ui}/ConfirmModal.tsx +0 -0
  955. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/components/ui/Header.tsx +0 -0
  956. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/components/ui/Loading.tsx +0 -0
  957. /package/templates/{mern-react-native/client/src/components/modals → presets/production-fullstack/overrides/client/src/components/ui}/Modal.tsx +0 -0
  958. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/components/ui/SidebarHeader.tsx +0 -0
  959. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/components/ui/Table.tsx +0 -0
  960. /package/templates/{mern-ts/client/src/components/common → presets/production-fullstack/overrides/client/src/components/ui}/ToggleSwitch.tsx +0 -0
  961. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/components/ui/sidebar.tsx +0 -0
  962. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/config/index.ts +0 -0
  963. /package/templates/{next-ts/src/config → presets/production-fullstack/overrides/client/src/constants}/navigation.ts +0 -0
  964. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/features/auth/api/authService.ts +0 -0
  965. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/features/auth/pages/Login.tsx +0 -0
  966. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/features/auth/store/useAuthStore.ts +0 -0
  967. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/features/core/pages/Home.tsx +0 -0
  968. /package/templates/{mern-ts/client/src → presets/production-fullstack/overrides/client/src/features/core}/pages/Profile.tsx +0 -0
  969. /package/templates/{mern-ts → presets/production-fullstack/overrides}/client/src/hooks/useLenis.ts +0 -0
  970. /package/templates/{mern-ts → presets/production-fullstack/overrides}/client/src/hooks/usePwaInstall.ts +0 -0
  971. /package/templates/{next-ts → presets/production-fullstack/overrides/client}/src/hooks/useWindowSize.ts +0 -0
  972. /package/templates/{mern → presets/production-fullstack/overrides}/client/src/index.css +0 -0
  973. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/lib/axios.ts +0 -0
  974. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/lib/dayjs.ts +0 -0
  975. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/lib/query-client.ts +0 -0
  976. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/lib/socket.ts +0 -0
  977. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/client/src/main.tsx +0 -0
  978. /package/templates/{mern-react-native → presets/production-fullstack/overrides}/client/src/store/useUiStore.ts +0 -0
  979. /package/templates/{next-ts → presets/production-fullstack/overrides/client}/src/utils/formatDate.ts +0 -0
  980. /package/templates/{next-ts → presets/production-fullstack/overrides/client}/src/utils/getInitials.ts +0 -0
  981. /package/templates/{mern-ts → presets/production-fullstack/overrides}/client/src/vite-env.d.ts +0 -0
  982. /package/templates/{mern-ts → presets/production-fullstack/overrides}/client/tsconfig.json +0 -0
  983. /package/templates/{mern-ts → presets/production-fullstack/overrides}/client/tsconfig.node.json +0 -0
  984. /package/templates/{mern-ts → presets/production-fullstack/overrides}/client/vite.config.ts +0 -0
  985. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/LICENSE +0 -0
  986. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/_gitignore +0 -0
  987. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/app.json +0 -0
  988. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/assets/animations/celebrate.json +0 -0
  989. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/assets/animations/infinity.json +0 -0
  990. /package/templates/{production-fullstack/client/src → presets/production-fullstack/overrides/mobile}/assets/animations/loading.json +0 -0
  991. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/assets/fonts/Inter_Bold.ttf +0 -0
  992. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/assets/fonts/Inter_ExtraBold.ttf +0 -0
  993. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/assets/fonts/Inter_Medium.ttf +0 -0
  994. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/assets/fonts/Inter_Regular.ttf +0 -0
  995. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/assets/fonts/Inter_SemiBold.ttf +0 -0
  996. /package/templates/{production-fullstack/client/public → presets/production-fullstack/overrides/mobile/assets/images/logo}/logo.png +0 -0
  997. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/assets/images/logo/logo.svg +0 -0
  998. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/assets/images/logo/logoWithBg.png +0 -0
  999. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/babel.config.js +0 -0
  1000. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/drizzle.config.ts +0 -0
  1001. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/eas.json +0 -0
  1002. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/eslint.config.js +0 -0
  1003. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/expo-env.d.ts +0 -0
  1004. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/metro.config.js +0 -0
  1005. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/nativewind-env.d.ts +0 -0
  1006. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/package.json +0 -0
  1007. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/app/(auth)/_layout.tsx +0 -0
  1008. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/app/(auth)/change-password.tsx +0 -0
  1009. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/app/(auth)/edit-profile.tsx +0 -0
  1010. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/app/(auth)/forgot-password.tsx +0 -0
  1011. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/app/(auth)/login.tsx +0 -0
  1012. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/app/_layout.tsx +0 -0
  1013. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/app/global.css +0 -0
  1014. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/common/AnimatedHeader.tsx +0 -0
  1015. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/common/ConfirmationToast.tsx +0 -0
  1016. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/common/Loading.tsx +0 -0
  1017. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/common/LocationLoader.tsx +0 -0
  1018. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/common/ScreenHeader.tsx +0 -0
  1019. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/common/TabHeader.tsx +0 -0
  1020. /package/templates/{mern-react-native → presets/production-fullstack/overrides}/mobile/src/components/common/Typography.tsx +0 -0
  1021. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/common/Welcome.tsx +0 -0
  1022. /package/templates/{mern-react-native → presets/production-fullstack/overrides}/mobile/src/components/ui/BottomModal.tsx +0 -0
  1023. /package/templates/{mern-react-native → presets/production-fullstack/overrides}/mobile/src/components/ui/ClassicTabBar.tsx +0 -0
  1024. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/CustomTabBar.tsx +0 -0
  1025. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/Sidebar.tsx +0 -0
  1026. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/buttons/Button.tsx +0 -0
  1027. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/buttons/ButtonGroup.tsx +0 -0
  1028. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/buttons/FloatingActionButton.tsx +0 -0
  1029. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/buttons/IconButton.tsx +0 -0
  1030. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/data-display/Accordion.tsx +0 -0
  1031. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/data-display/Avatar.tsx +0 -0
  1032. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/data-display/Badge.tsx +0 -0
  1033. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/data-display/Card.tsx +0 -0
  1034. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/data-display/Image.tsx +0 -0
  1035. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/data-display/ImageViewer.tsx +0 -0
  1036. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/data-display/SwipeableRow.tsx +0 -0
  1037. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/feedback/CircularProgress.tsx +0 -0
  1038. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/feedback/GestureWrapper.tsx +0 -0
  1039. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/feedback/ProgressBar.tsx +0 -0
  1040. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/feedback/Skeleton.tsx +0 -0
  1041. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/feedback/Spinner.tsx +0 -0
  1042. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/inputs/Checkbox.tsx +0 -0
  1043. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/inputs/DatePicker.tsx +0 -0
  1044. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/inputs/ImagePickerModal.tsx +0 -0
  1045. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/inputs/Input.tsx +0 -0
  1046. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/inputs/LocationPicker.tsx +0 -0
  1047. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/inputs/OTPInput.tsx +0 -0
  1048. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/inputs/PasswordInput.tsx +0 -0
  1049. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/inputs/Radio.tsx +0 -0
  1050. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/inputs/SearchBar.tsx +0 -0
  1051. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/inputs/Slider.tsx +0 -0
  1052. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/inputs/Switch.tsx +0 -0
  1053. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/inputs/TextArea.tsx +0 -0
  1054. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/inputs/WebLocationPicker.tsx +0 -0
  1055. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/layout/Container.tsx +0 -0
  1056. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/layout/Divider.tsx +0 -0
  1057. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/layout/Grid.tsx +0 -0
  1058. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/layout/KeyboardAvoidingViewWrapper.tsx +0 -0
  1059. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/layout/ScrollContainer.tsx +0 -0
  1060. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/layout/Section.tsx +0 -0
  1061. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/layout/Spacer.tsx +0 -0
  1062. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/layout/Stack.tsx +0 -0
  1063. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/navigation/Pagination.tsx +0 -0
  1064. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/navigation/ProgressStepper.tsx +0 -0
  1065. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/components/ui/navigation/Tabs.tsx +0 -0
  1066. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/config/sidebar.config.ts +0 -0
  1067. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/config/tabNavigation.ts +0 -0
  1068. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/constants/Colors.ts +0 -0
  1069. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/db/index.ts +0 -0
  1070. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/db/schema.ts +0 -0
  1071. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/features/auth/api/auth.service.ts +0 -0
  1072. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/features/auth/store/useAuthStore.ts +0 -0
  1073. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/features/auth/types/auth.type.ts +0 -0
  1074. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/hooks/useDebounce.ts +0 -0
  1075. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/lib/axios.ts +0 -0
  1076. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/lib/query-client.ts +0 -0
  1077. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/lib/socket.ts +0 -0
  1078. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/lib/storage.ts +0 -0
  1079. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/services/permission.service.ts +0 -0
  1080. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/store/localStore.ts +0 -0
  1081. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/store/useNotificationStore.ts +0 -0
  1082. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/types/common.type.ts +0 -0
  1083. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/types/images.d.ts +0 -0
  1084. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/src/utils/toast.ts +0 -0
  1085. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/tailwind.config.js +0 -0
  1086. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/mobile/tsconfig.json +0 -0
  1087. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/README.md +0 -0
  1088. /package/templates/{node-prisma → presets/production-fullstack/overrides/server}/_gitignore +0 -0
  1089. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/eslint.config.js +0 -0
  1090. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/package.json +0 -0
  1091. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/prisma/schema/core/attachment.prisma +0 -0
  1092. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/prisma/schema/core/notification.prisma +0 -0
  1093. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/prisma/schema/core/permission.prisma +0 -0
  1094. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/prisma/schema/core/role.prisma +0 -0
  1095. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/prisma/schema/core/user.prisma +0 -0
  1096. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/prisma/schema/enums/common.prisma +0 -0
  1097. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/prisma/schema/enums/notification.prisma +0 -0
  1098. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/prisma/schema/enums/user.prisma +0 -0
  1099. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/prisma/schema/schema.prisma +0 -0
  1100. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/prisma.config.ts +0 -0
  1101. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/app.ts +0 -0
  1102. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/common/middlewares/auth.middleware.ts +0 -0
  1103. /package/templates/{node-prisma-ts/src/middleware → presets/production-fullstack/overrides/server/src/common/middlewares}/errorHandler.ts +0 -0
  1104. /package/templates/{node-prisma-ts/src/middleware → presets/production-fullstack/overrides/server/src/common/middlewares}/multer.ts +0 -0
  1105. /package/templates/{node-prisma-ts/src/middleware → presets/production-fullstack/overrides/server/src/common/middlewares}/rateLimiter.ts +0 -0
  1106. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/common/services/email.service.ts +0 -0
  1107. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/common/services/push.service.ts +0 -0
  1108. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/common/services/storage.service.ts +0 -0
  1109. /package/templates/{node-prisma-ts/src → presets/production-fullstack/overrides/server/src/common}/types/express.d.ts +0 -0
  1110. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/common/utils/cloudinaryUpload.ts +0 -0
  1111. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/common/utils/emailOtp.ts +0 -0
  1112. /package/templates/{node-prisma-ts/src → presets/production-fullstack/overrides/server/src/common}/utils/genOtpToken.ts +0 -0
  1113. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/common/utils/generateVapidKeys.ts +0 -0
  1114. /package/templates/{node-prisma-ts/src → presets/production-fullstack/overrides/server/src/common}/utils/jwt.ts +0 -0
  1115. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/common/utils/pushHelper.ts +0 -0
  1116. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/config/env.ts +0 -0
  1117. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/config/logger.ts +0 -0
  1118. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/config/prisma.ts +0 -0
  1119. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/features/attachments/upload.controller.ts +0 -0
  1120. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/features/attachments/upload.routes.ts +0 -0
  1121. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/features/auth/auth.controller.ts +0 -0
  1122. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/features/auth/auth.routes.ts +0 -0
  1123. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/features/auth/auth.service.ts +0 -0
  1124. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/features/notifications/push.controller.ts +0 -0
  1125. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/features/notifications/push.routes.ts +0 -0
  1126. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/index.ts +0 -0
  1127. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/routes/index.ts +0 -0
  1128. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/auth.ts +0 -0
  1129. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/connection.ts +0 -0
  1130. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/emitters/assignment.emitter.ts +0 -0
  1131. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/emitters/attendance.emitter.ts +0 -0
  1132. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/emitters/exam.emitter.ts +0 -0
  1133. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/emitters/notification.emitter.ts +0 -0
  1134. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/events.ts +0 -0
  1135. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/handlers/attendance.handler.ts +0 -0
  1136. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/handlers/chat.handler.ts +0 -0
  1137. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/handlers/index.ts +0 -0
  1138. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/handlers/lms.handler.ts +0 -0
  1139. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/handlers/notification.handler.ts +0 -0
  1140. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/index.ts +0 -0
  1141. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/middleware.ts +0 -0
  1142. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/rooms.ts +0 -0
  1143. /package/templates/{production-fullstack → presets/production-fullstack/overrides}/server/src/sockets/types.ts +0 -0
  1144. /package/templates/{node-prisma-ts → presets/production-fullstack/overrides/server}/tsconfig.json +0 -0
  1145. /package/templates/{react → presets/react/overrides}/.env.example +0 -0
@@ -16,13 +16,17 @@
16
16
  "expo-blur": "~57.0.2",
17
17
  "expo-constants": "~57.0.6",
18
18
  "expo-device": "~57.0.1",
19
+ "expo-file-system": "~18.0.7",
19
20
  "expo-font": "~57.0.1",
20
21
  "expo-glass-effect": "~57.0.1",
21
22
  "expo-image": "~57.0.1",
22
23
  "expo-image-picker": "^57.0.6",
23
24
  "expo-linear-gradient": "^57.0.1",
24
25
  "expo-linking": "~57.0.3",
26
+ "expo-local-authentication": "~15.0.2",
27
+ "expo-location": "~18.0.5",
25
28
  "expo-notifications": "~57.0.6",
29
+ "dayjs": "^1.11.13",
26
30
  "expo-router": "~57.0.7",
27
31
  "expo-splash-screen": "~57.0.4",
28
32
  "expo-sqlite": "^57.0.1",
@@ -39,15 +43,19 @@
39
43
  "react-native": "0.86.0",
40
44
  "react-native-gesture-handler": "~2.32.0",
41
45
  "react-native-image-viewing": "^0.2.2",
46
+ "react-native-maps": "^1.18.0",
42
47
  "react-native-keyboard-aware-scroll-view": "^0.9.5",
43
48
  "react-native-otp-entry": "^1.8.6",
44
49
  "react-native-paper": "^5.15.3",
50
+ "react-native-pdf": "^6.7.5",
51
+ "react-native-blob-util": "^0.19.11",
45
52
  "react-native-permissions": "^5.6.0",
46
53
  "react-native-reanimated": "^4.5.2",
47
54
  "react-native-safe-area-context": "^5.8.0",
48
55
  "react-native-screens": "4.25.2",
49
56
  "react-native-toast-message": "^2.4.0",
50
57
  "react-native-web": "~0.21.0",
58
+ "react-native-webview": "^13.12.5",
51
59
  "react-native-worklets": "0.10.0",
52
60
  "socket.io-client": "^4.8.3",
53
61
  "tailwindcss": "^3.4.19",
@@ -49,7 +49,7 @@ const Profile = () => {
49
49
 
50
50
  <ScrollView className="flex-1 px-6 pt-6">
51
51
  <View className="bg-base-200 rounded-2xl p-4 mb-6">
52
- <View className="flex-row items-center justify-between py-2">
52
+ <View className="flex-row items-center justify-between py-2 border-b border-base-300">
53
53
  <View className="flex-row items-center">
54
54
  <Ionicons
55
55
  name={colorScheme === "dark" ? "moon" : "sunny"}
@@ -60,8 +60,27 @@ const Profile = () => {
60
60
  </View>
61
61
  <Switch checked={colorScheme === "dark"} onChange={handleToggleTheme} />
62
62
  </View>
63
+
64
+ <View className="flex-row items-center justify-between py-3">
65
+ <View className="flex-row items-center">
66
+ <Ionicons
67
+ name="finger-print-outline"
68
+ size={22}
69
+ color={colorScheme === "dark" ? "#fff" : "#000"}
70
+ />
71
+ <Txt variant="base" className="ml-3 font-semibold">App Lock (Biometrics)</Txt>
72
+ </View>
73
+ <Switch
74
+ checked={useAuthStore(state => state.isBiometricEnabled)}
75
+ onChange={async () => {
76
+ const store = useAuthStore.getState();
77
+ await store.setBiometricEnabled(!store.isBiometricEnabled);
78
+ }}
79
+ />
80
+ </View>
63
81
  </View>
64
82
 
83
+
65
84
  <Button
66
85
  label="Logout"
67
86
  variant="error"
@@ -6,8 +6,10 @@ import { useColorScheme } from "nativewind";
6
6
  import { Colors } from "../constants/Colors";
7
7
  import "./global.css";
8
8
  import Loading from "@/components/common/Loading";
9
+ import BiometricLock from "@/components/ui/BiometricLock";
9
10
 
10
11
  import { PaperProvider } from "react-native-paper";
12
+
11
13
  import AsyncStorage from "@react-native-async-storage/async-storage";
12
14
  import { useFonts } from "expo-font";
13
15
  import { GestureHandlerRootView } from "react-native-gesture-handler";
@@ -79,18 +81,24 @@ export default function RootLayout() {
79
81
  <GestureHandlerRootView style={{ flex: 1 }}>
80
82
  <PaperProvider>
81
83
  <StatusBar style={colorScheme === "dark" ? "light" : "dark"} />
82
- <Stack
83
- screenOptions={{
84
- headerShown: false,
85
- contentStyle: { backgroundColor: colors.base100 },
86
- }}
87
- >
88
- <Stack.Screen name="(tabs)" options={{ headerShown: false }} />
89
- <Stack.Screen
90
- name="(auth)"
91
- options={{ headerShown: false, animation: "fade" }}
92
- />
93
- </Stack>
84
+ <BiometricLock>
85
+ <Stack
86
+ screenOptions={{
87
+ headerShown: false,
88
+ contentStyle: { backgroundColor: colors.base100 },
89
+ }}
90
+ >
91
+ <Stack.Screen name="(tabs)" options={{ headerShown: false }} />
92
+ <Stack.Screen
93
+ name="(auth)"
94
+ options={{ headerShown: false, animation: "fade" }}
95
+ />
96
+ <Stack.Screen
97
+ name="doc-viewer"
98
+ options={{ presentation: "fullScreenModal" }}
99
+ />
100
+ </Stack>
101
+ </BiometricLock>
94
102
  <Toast />
95
103
  </PaperProvider>
96
104
  </GestureHandlerRootView>
@@ -0,0 +1,193 @@
1
+ import React, { useState, useEffect } from "react";
2
+ import {
3
+ View,
4
+ StyleSheet,
5
+ Dimensions,
6
+ } from "react-native";
7
+ import { useLocalSearchParams, useRouter } from "expo-router";
8
+ import { useSafeAreaInsets } from "react-native-safe-area-context";
9
+ import Pdf from "react-native-pdf";
10
+ import { useColorScheme } from "nativewind";
11
+ import { Colors } from "../constants/Colors";
12
+ import ScreenHeader from "../components/common/ScreenHeader";
13
+ import { Txt } from "../components/common/Typography";
14
+ import Input from "../components/ui/inputs/Input";
15
+ import Button from "../components/ui/buttons/Button";
16
+ import Container from "../components/ui/layout/Container";
17
+ import { Ionicons } from "@expo/vector-icons";
18
+ import ProgressBar from "../components/ui/feedback/ProgressBar";
19
+ import * as FileSystem from "expo-file-system/legacy";
20
+
21
+ export default function DocViewerScreen() {
22
+ const router = useRouter();
23
+ const { url, name } = useLocalSearchParams<{
24
+ url: string;
25
+ name?: string;
26
+ }>();
27
+
28
+ const insets = useSafeAreaInsets();
29
+ const { colorScheme } = useColorScheme();
30
+ const isDark = colorScheme === "dark";
31
+ const colors = Colors[isDark ? "dark" : "light"];
32
+
33
+ const [totalPages, setTotalPages] = useState(0);
34
+ const [currentPage, setCurrentPage] = useState(1);
35
+
36
+ const [password, setPassword] = useState("");
37
+ const [isPasswordRequired, setIsPasswordRequired] = useState(false);
38
+ const [inputPassword, setInputPassword] = useState("");
39
+ const [errorMsg, setErrorMsg] = useState("");
40
+
41
+ const [localUri, setLocalUri] = useState<string | null>(null);
42
+ const [downloadProgress, setDownloadProgress] = useState(0);
43
+ const [downloadError, setDownloadError] = useState<string | null>(null);
44
+
45
+ useEffect(() => {
46
+ if (!url) return;
47
+
48
+ if (url.startsWith('http')) {
49
+ const downloadFile = async () => {
50
+ try {
51
+ const filename = `doc_${Date.now()}.pdf`;
52
+ const fileUri = FileSystem.documentDirectory + filename;
53
+
54
+ const downloadResumable = FileSystem.createDownloadResumable(
55
+ url,
56
+ fileUri,
57
+ {},
58
+ (progressEvent) => {
59
+ const progress = progressEvent.totalBytesWritten / progressEvent.totalBytesExpectedToWrite;
60
+ setDownloadProgress(progress);
61
+ }
62
+ );
63
+
64
+ const result = await downloadResumable.downloadAsync();
65
+ if (result && result.uri) {
66
+ setLocalUri(result.uri);
67
+ } else {
68
+ setDownloadError('Failed to download document');
69
+ }
70
+ } catch (error) {
71
+ console.error('Download error:', error);
72
+ setDownloadError('Error downloading document');
73
+ }
74
+ };
75
+ downloadFile();
76
+ } else {
77
+ setLocalUri(url);
78
+ }
79
+ }, [url]);
80
+
81
+ if (!url) {
82
+ return (
83
+ <View style={{ flex: 1, backgroundColor: colors.base100 }}>
84
+ <ScreenHeader title="Document Viewer" onBack={() => router.back()} />
85
+ <View className="flex-1 items-center justify-center p-4">
86
+ <Ionicons name="alert-circle-outline" size={48} color={colors.baseContent} style={{ opacity: 0.5 }} />
87
+ <Txt variant="base" className="mt-4 text-center opacity-70">
88
+ No document URL provided.
89
+ </Txt>
90
+ </View>
91
+ </View>
92
+ );
93
+ }
94
+
95
+ const handlePasswordSubmit = () => {
96
+ setPassword(inputPassword);
97
+ setIsPasswordRequired(false);
98
+ setErrorMsg("");
99
+ };
100
+
101
+ return (
102
+ <View style={{ flex: 1, backgroundColor: colors.base100 }}>
103
+ <ScreenHeader
104
+ title={name || 'Document Viewer'}
105
+ subtitle={totalPages > 0 ? `Page ${currentPage} of ${totalPages}` : 'Loading...'}
106
+ onBack={() => router.back()}
107
+ />
108
+
109
+ {isPasswordRequired ? (
110
+ <Container className="flex-1 justify-center items-center px-6">
111
+ <View className="p-6 rounded-3xl w-full" style={{ backgroundColor: colors.base200 }}>
112
+ <Txt variant="xl" className="font-bold text-center mb-2">Password Protected</Txt>
113
+ <Txt variant="base" className="text-center text-base-content/70 mb-6">
114
+ This document requires a password to open.
115
+ </Txt>
116
+ <Input
117
+ placeholder="Enter password"
118
+ value={inputPassword}
119
+ onChangeText={setInputPassword}
120
+ secureTextEntry
121
+ className="mb-4"
122
+ />
123
+ {errorMsg ? (
124
+ <Txt variant="caption" className="text-error text-center mb-4">{errorMsg}</Txt>
125
+ ) : null}
126
+ <Button
127
+ label="Unlock Document"
128
+ variant="primary"
129
+ isFullWidth
130
+ onPress={handlePasswordSubmit}
131
+ />
132
+ </View>
133
+ </Container>
134
+ ) : (
135
+ <View style={styles.pdfContainer}>
136
+ {!localUri && !downloadError ? (
137
+ <View className="flex-1 items-center justify-center w-full relative">
138
+ <View className="w-3/4 max-w-sm absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-base-100 p-6 rounded-2xl shadow-lg border border-base-300">
139
+ <ProgressBar progress={downloadProgress * 100} label="Downloading Document" />
140
+ </View>
141
+ </View>
142
+ ) : downloadError ? (
143
+ <View className="flex-1 items-center justify-center p-4">
144
+ <Ionicons name="close-circle-outline" size={48} color={colors.error} style={{ opacity: 0.8 }} />
145
+ <Txt variant="base" className="mt-4 text-center text-error font-semibold">
146
+ {downloadError}
147
+ </Txt>
148
+ <Button
149
+ label="Go Back"
150
+ variant="outline"
151
+ style={{ marginTop: 20 }}
152
+ onPress={() => router.back()}
153
+ />
154
+ </View>
155
+ ) : (
156
+ <Pdf
157
+ source={{ uri: localUri!, cache: false }}
158
+ password={password}
159
+ onLoadComplete={(numberOfPages) => {
160
+ setTotalPages(numberOfPages);
161
+ }}
162
+ onPageChanged={(page) => {
163
+ setCurrentPage(page);
164
+ }}
165
+ onError={(error: any) => {
166
+
167
+ if (error?.message?.toLowerCase().includes('password')) {
168
+ setIsPasswordRequired(true);
169
+ setErrorMsg('Incorrect password. Please try again.');
170
+ }
171
+ }}
172
+ trustAllCerts={false}
173
+ style={[styles.pdf, { backgroundColor: colors.base200 }]}
174
+ />
175
+ )}
176
+ </View>
177
+ )}
178
+ </View>
179
+ );
180
+ }
181
+
182
+ const styles = StyleSheet.create({
183
+ pdfContainer: {
184
+ flex: 1,
185
+ justifyContent: "flex-start",
186
+ alignItems: "center",
187
+ },
188
+ pdf: {
189
+ flex: 1,
190
+ width: Dimensions.get("window").width,
191
+ height: Dimensions.get("window").height,
192
+ },
193
+ });
@@ -83,27 +83,54 @@ export const Txt = ({
83
83
  const isSize = ["xxs", "xs", "sm", "base", "md", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "7xl", "caption"].includes(val);
84
84
  return !isSize;
85
85
  });
86
- const defaultColorClass = hasColorClass
86
+ const defaultColorClass = hasColorClass || color
87
87
  ? ""
88
88
  : variant === "xs"
89
89
  ? "text-secondary"
90
90
  : "text-base-content";
91
-
92
- // Override specific properties if provided
91
+
93
92
  const customStyles: any = {};
94
93
  if (color) customStyles.color = color;
95
94
  if (align) customStyles.textAlign = align;
96
- if (weight) {
97
- if (weight === "bold" || weight === "black")
98
- customStyles.fontFamily = FontFamily.bold;
99
- if (weight === "semibold") customStyles.fontFamily = FontFamily.semibold;
100
- if (weight === "medium") customStyles.fontFamily = FontFamily.medium;
101
- if (weight === "normal") customStyles.fontFamily = FontFamily.regular;
95
+
96
+ // Intercept font weight classes from Nativewind or weight prop
97
+ let finalClassName = className;
98
+
99
+ const resolvedWeight = weight || (
100
+ finalClassName.includes("font-black") || finalClassName.includes("font-extrabold") ? "black" :
101
+ finalClassName.includes("font-bold") ? "bold" :
102
+ finalClassName.includes("font-semibold") ? "semibold" :
103
+ finalClassName.includes("font-medium") ? "medium" : null
104
+ );
105
+
106
+ if (resolvedWeight === "black" || resolvedWeight === "extrabold") {
107
+ customStyles.fontFamily = FontFamily.extrabold;
108
+ customStyles.fontWeight = "normal"; // Prevent Android fallback
109
+ } else if (resolvedWeight === "bold") {
110
+ customStyles.fontFamily = FontFamily.bold;
111
+ customStyles.fontWeight = "normal";
112
+ } else if (resolvedWeight === "semibold") {
113
+ customStyles.fontFamily = FontFamily.semibold;
114
+ customStyles.fontWeight = "normal";
115
+ } else if (resolvedWeight === "medium") {
116
+ customStyles.fontFamily = FontFamily.medium;
117
+ customStyles.fontWeight = "normal";
118
+ } else if (resolvedWeight === "normal") {
119
+ customStyles.fontFamily = FontFamily.regular;
120
+ customStyles.fontWeight = "normal";
102
121
  }
103
122
 
123
+ // Strip weight classes since we handle them manually
124
+ finalClassName = finalClassName
125
+ .replace(/font-black/g, "")
126
+ .replace(/font-extrabold/g, "")
127
+ .replace(/font-bold/g, "")
128
+ .replace(/font-semibold/g, "")
129
+ .replace(/font-medium/g, "");
130
+
104
131
  return (
105
132
  <Text
106
- className={`${defaultColorClass} ${className}`}
133
+ className={`${defaultColorClass} ${finalClassName}`}
107
134
  style={[baseStyle, customStyles, style]}
108
135
  {...props}
109
136
  >
@@ -0,0 +1,114 @@
1
+ import React, { useEffect, useState, useRef } from "react";
2
+ import { View, AppState, AppStateStatus, StyleSheet } from "react-native";
3
+ import { useAuthStore } from "@/store/useAuthStore";
4
+ import { authenticateAsync } from "@/services/biometric.service";
5
+ import { Ionicons } from "@expo/vector-icons";
6
+ import { Colors } from "@/constants/Colors";
7
+ import { useColorScheme } from "nativewind";
8
+ import { Txt } from "./common/Typography";
9
+ import Button from "./ui/buttons/Button";
10
+ import appConfig from "@/config/appConfig";
11
+
12
+ export default function BiometricLock({ children }: { children: React.ReactNode }) {
13
+ const { isBiometricEnabled, isAppLocked, setIsAppLocked, lockDuration } = useAuthStore();
14
+ const { colorScheme } = useColorScheme();
15
+ const theme = Colors[colorScheme ?? "light"];
16
+
17
+ const appState = useRef(AppState.currentState);
18
+ const backgroundTime = useRef<number | null>(null);
19
+
20
+ const [isAuthenticating, setIsAuthenticating] = useState(false);
21
+
22
+ useEffect(() => {
23
+ if (!isBiometricEnabled) return;
24
+
25
+ // Trigger initial lock if enabled and locked on startup
26
+ if (isAppLocked) {
27
+ handleAuthentication();
28
+ }
29
+
30
+ const subscription = AppState.addEventListener("change", (nextAppState: AppStateStatus) => {
31
+ // App went to background
32
+ if (appState.current.match(/active/) && nextAppState.match(/inactive|background/)) {
33
+ backgroundTime.current = Date.now();
34
+ }
35
+
36
+ // App came to foreground
37
+ if (appState.current.match(/inactive|background/) && nextAppState === "active") {
38
+ if (isBiometricEnabled && !isAppLocked && backgroundTime.current) {
39
+ const timeInBackground = Date.now() - backgroundTime.current;
40
+ // lockDuration is in minutes, so multiply by 60000. Give a 10s grace period for 'Immediately' (0) to allow for permission/native modals.
41
+ const threshold = lockDuration === 0 ? 10000 : lockDuration * 60000;
42
+ if (timeInBackground > threshold) {
43
+ setIsAppLocked(true);
44
+ handleAuthentication();
45
+ }
46
+ } else if (isAppLocked) {
47
+ handleAuthentication();
48
+ }
49
+ }
50
+
51
+ appState.current = nextAppState;
52
+ });
53
+
54
+ return () => {
55
+ subscription.remove();
56
+ };
57
+ }, [isBiometricEnabled, isAppLocked, lockDuration]);
58
+
59
+ const handleAuthentication = async () => {
60
+ if (isAuthenticating) return;
61
+ setIsAuthenticating(true);
62
+
63
+ const success = await authenticateAsync("Unlock HireMe");
64
+
65
+ if (success) {
66
+ setIsAppLocked(false);
67
+ backgroundTime.current = null;
68
+ }
69
+
70
+ setIsAuthenticating(false);
71
+ };
72
+
73
+ return (
74
+ <>
75
+ {children}
76
+ {isAppLocked && (
77
+ <View style={[styles.container, { backgroundColor: theme.base100 }]}>
78
+ <View className="items-center justify-center mb-10">
79
+ <View className="w-24 h-24 rounded-full items-center justify-center mb-6" style={{ backgroundColor: theme.primary + '15' }}>
80
+ <Ionicons name="lock-closed" size={48} color={theme.primary} />
81
+ </View>
82
+ <Txt variant="3xl" className="font-extrabold tracking-tight mb-2">App Locked</Txt>
83
+ <Txt variant="base" className="opacity-70 text-center px-8">
84
+ Please authenticate to continue using {appConfig.app.name}
85
+ </Txt>
86
+ </View>
87
+
88
+ <Button
89
+ label="Unlock App"
90
+ variant="primary"
91
+ leftIcon="finger-print"
92
+ onPress={handleAuthentication}
93
+ isLoading={isAuthenticating}
94
+ style={{ width: '80%', maxWidth: 300 }}
95
+ />
96
+ </View>
97
+ )}
98
+ </>
99
+ );
100
+ }
101
+
102
+ const styles = StyleSheet.create({
103
+ container: {
104
+ flex: 1,
105
+ justifyContent: "center",
106
+ alignItems: "center",
107
+ position: "absolute",
108
+ top: 0,
109
+ left: 0,
110
+ right: 0,
111
+ bottom: 0,
112
+ zIndex: 99999, // Ensure it covers everything
113
+ },
114
+ });
@@ -6,6 +6,7 @@ import {
6
6
  StyleSheet,
7
7
  KeyboardAvoidingView,
8
8
  Platform,
9
+ BackHandler,
9
10
  } from "react-native";
10
11
  import Animated, {
11
12
  useSharedValue,
@@ -67,12 +68,28 @@ export default function BottomModal({
67
68
  });
68
69
  }
69
70
 
70
- }, [isOpen]);
71
+ }, [isOpen, MODAL_HEIGHT]);
72
+
73
+ useEffect(() => {
74
+ if (!isOpen) return;
75
+
76
+ const backAction = () => {
77
+ onClose();
78
+ return true;
79
+ };
80
+
81
+ const backHandler = BackHandler.addEventListener(
82
+ "hardwareBackPress",
83
+ backAction
84
+ );
85
+
86
+ return () => backHandler.remove();
87
+ }, [isOpen, onClose]);
71
88
 
72
89
  const panGesture = Gesture.Pan()
73
90
  .onUpdate((event) => {
74
91
  if (event.translationY > 0) {
75
- // eslint-disable-next-line react-hooks/immutability
92
+
76
93
  translateY.value = event.translationY;
77
94
  }
78
95
  })
@@ -80,7 +97,7 @@ export default function BottomModal({
80
97
  if (event.translationY > MODAL_HEIGHT * 0.3 || event.velocityY > 500) {
81
98
  runOnJS(onClose)();
82
99
  } else {
83
- // eslint-disable-next-line react-hooks/immutability
100
+
84
101
  translateY.value = withTiming(0, {
85
102
  duration: 300,
86
103
  easing: Easing.out(Easing.ease),
@@ -1,4 +1,3 @@
1
- import { Txt } from "../common/Typography";
2
1
  import React from 'react';
3
2
  import { View, TouchableOpacity, StyleSheet } from 'react-native';
4
3
  import { Ionicons } from '@expo/vector-icons';
@@ -7,7 +6,7 @@ import { useColorScheme } from 'nativewind';
7
6
  import { Colors } from '../../constants/Colors';
8
7
  import { getTabConfig } from '../../config/tabNavigation';
9
8
 
10
- const TabItem = ({ isFocused, onPress, onLongPress, iconName, label, colors }: any) => {
9
+ const TabItem = ({ isFocused, onPress, onLongPress, iconName, colors }: any) => {
11
10
  return (
12
11
  <TouchableOpacity
13
12
  accessibilityRole="button"
@@ -20,19 +19,9 @@ const TabItem = ({ isFocused, onPress, onLongPress, iconName, label, colors }: a
20
19
  <View style={styles.tabItem}>
21
20
  <Ionicons
22
21
  name={iconName as any}
23
- size={24}
24
- color={isFocused ? colors.primary : colors.secondary}
25
- style={{ marginBottom: 4 }}
22
+ size={28}
23
+ color={isFocused ? colors.primary : colors.baseContent + '60'}
26
24
  />
27
- <Txt
28
- style={{
29
- color: isFocused ? colors.primary : colors.secondary,
30
- fontWeight: isFocused ? '600' : '500',
31
- fontSize: 11
32
- }}
33
- >
34
- {label}
35
- </Txt>
36
25
  </View>
37
26
  </TouchableOpacity>
38
27
  );
@@ -47,10 +36,11 @@ export default function ClassicTabBar({ state, descriptors, navigation }: any) {
47
36
  <View style={[
48
37
  styles.container,
49
38
  {
50
- backgroundColor: colors.base100,
51
- borderTopColor: colors.base300,
52
- height: 60 + insets.bottom,
53
- paddingBottom: insets.bottom > 0 ? insets.bottom : 8,
39
+ backgroundColor: colors.base100,
40
+ borderTopColor: colors.base300 + '80',
41
+ height: 72 + insets.bottom,
42
+ paddingBottom: insets.bottom > 0 ? insets.bottom : 20,
43
+ elevation:1
54
44
  }
55
45
  ]}>
56
46
  {state.routes.map((route: any, index: number) => {
@@ -93,7 +83,6 @@ export default function ClassicTabBar({ state, descriptors, navigation }: any) {
93
83
  onPress={onPress}
94
84
  onLongPress={onLongPress}
95
85
  iconName={iconName}
96
- label={label as string}
97
86
  colors={colors}
98
87
  />
99
88
  );
@@ -107,13 +96,8 @@ const styles = StyleSheet.create({
107
96
  flexDirection: 'row',
108
97
  justifyContent: 'space-between',
109
98
  alignItems: 'center',
110
- paddingVertical: 8,
111
- borderTopWidth: 1,
112
- elevation: 8,
113
- shadowColor: '#000',
114
- shadowOffset: { width: 0, height: -2 },
115
- shadowOpacity: 0.05,
116
- shadowRadius: 5,
99
+ paddingVertical: 12,
100
+ borderTopWidth: StyleSheet.hairlineWidth,
117
101
  },
118
102
  tabButton: {
119
103
  flex: 1,
@@ -124,6 +108,5 @@ const styles = StyleSheet.create({
124
108
  tabItem: {
125
109
  alignItems: 'center',
126
110
  justifyContent: 'center',
127
- height: 50,
128
111
  },
129
112
  });
@@ -1,15 +1,15 @@
1
1
  const appConfig = {
2
2
  app: {
3
- name: "React App",
4
- logo: "./logo.png",
5
- shortName: "React",
6
- description: "A React application built with @imksh/create",
3
+ name: "Mobile App",
4
+ logo: "@assets/images/logo/logo.png",
5
+ shortName: "Mobile App",
6
+ description: "A mobile application built with @imksh/create",
7
7
  version: "1.0.0",
8
8
  author: "Karan Sharma",
9
9
  },
10
10
 
11
11
  api: {
12
- baseURL: import.meta.env.VITE_API_URL,
12
+ baseURL: process.env.EXPO_PUBLIC_API_URL,
13
13
  timeout: 30000,
14
14
  },
15
15
 
@@ -0,0 +1,24 @@
1
+ import * as LocalAuthentication from 'expo-local-authentication';
2
+
3
+ export const isBiometricSupported = async () => {
4
+ const compatible = await LocalAuthentication.hasHardwareAsync();
5
+ if (!compatible) return false;
6
+
7
+ const enrolled = await LocalAuthentication.isEnrolledAsync();
8
+ return enrolled;
9
+ };
10
+
11
+ export const authenticateAsync = async (promptMessage = "Authenticate to continue") => {
12
+ try {
13
+ const result = await LocalAuthentication.authenticateAsync({
14
+ promptMessage,
15
+ fallbackLabel: "Use Passcode",
16
+ disableDeviceFallback: false,
17
+ cancelLabel: "Cancel"
18
+ });
19
+ return result.success;
20
+ } catch (error) {
21
+ console.error("Biometric authentication error:", error);
22
+ return false;
23
+ }
24
+ };