@digilogiclabs/create-saas-app 2.11.0 → 2.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/cli/index.js +1 -1
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/generators/template-generator.d.ts +0 -2
  6. package/dist/generators/template-generator.d.ts.map +1 -1
  7. package/dist/generators/template-generator.js +18 -17
  8. package/dist/generators/template-generator.js.map +1 -1
  9. package/dist/templates/mobile/base/template/App.tsx +7 -4
  10. package/dist/templates/mobile/base/template/app/checkout.tsx +5 -2
  11. package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/_layout.tsx +6 -2
  12. package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/billing.tsx +7 -3
  13. package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/index.tsx +5 -2
  14. package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/profile.tsx +7 -2
  15. package/dist/templates/mobile/ui-auth-payments/template/app/_layout.tsx +2 -4
  16. package/dist/templates/mobile/ui-auth-payments/template/app/auth/login.tsx +6 -3
  17. package/dist/templates/mobile/ui-auth-payments/template/app/auth/signup.tsx +6 -3
  18. package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/_layout.tsx +6 -2
  19. package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/billing.tsx +7 -3
  20. package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/index.tsx +5 -2
  21. package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/profile.tsx +7 -2
  22. package/dist/templates/mobile/ui-auth-payments-ai/template/app/_layout.tsx +2 -4
  23. package/dist/templates/mobile/ui-auth-payments-ai/template/app/auth/login.tsx +6 -3
  24. package/dist/templates/mobile/ui-auth-payments-ai/template/app/auth/signup.tsx +6 -3
  25. package/dist/templates/shared/admin/web/src/components/admin-nav.tsx +3 -3
  26. package/dist/templates/shared/auth/supabase/web/src/lib/auth-session.ts +36 -16
  27. package/dist/templates/shared/auth/supabase/web/src/middleware.ts +6 -0
  28. package/dist/templates/shared/config/web/next.config.mjs +0 -1
  29. package/dist/templates/shared/cookie-consent/web/components/cookie-consent.tsx +5 -5
  30. package/dist/templates/shared/design/web/src/components/ui/button.tsx +56 -0
  31. package/dist/templates/shared/email/web/src/lib/email/client.ts +1 -1
  32. package/dist/templates/shared/error-pages/web/src/app/error.tsx +13 -11
  33. package/dist/templates/shared/error-pages/web/src/app/global-error.tsx +2 -0
  34. package/dist/templates/shared/error-pages/web/src/app/not-found.tsx +6 -6
  35. package/dist/templates/shared/legal/web/src/app/(legal)/privacy/page.tsx +4 -4
  36. package/dist/templates/shared/legal/web/src/app/(legal)/terms/page.tsx +4 -4
  37. package/dist/templates/shared/loading/web/components/skeleton.tsx +4 -4
  38. package/dist/templates/shared/mock/web/.env.local +55 -0
  39. package/dist/templates/shared/mock/web/src/components/mock-auth-provider.tsx +72 -0
  40. package/dist/templates/shared/mock/web/src/components/mock-banner.tsx +29 -0
  41. package/dist/templates/shared/mock/web/src/lib/mock.ts +147 -0
  42. package/dist/templates/shared/payments/web/src/app/api/webhooks/stripe/route.ts +10 -4
  43. package/dist/templates/shared/redis/web/src/lib/redis.ts +1 -1
  44. package/dist/templates/web/ai-platform/template/package.json +0 -1
  45. package/dist/templates/web/ai-platform/template/src/app/chat/page.tsx +5 -2
  46. package/dist/templates/web/ai-platform/template/src/app/playground/page.tsx +5 -2
  47. package/dist/templates/web/ai-platform/template/src/components/providers/app-providers.tsx +2 -5
  48. package/dist/templates/web/base/template/eslint.config.mjs +14 -0
  49. package/dist/templates/web/base/template/src/app/auth/callback/route.ts +1 -1
  50. package/dist/templates/web/base/template/src/app/checkout/page.tsx +76 -103
  51. package/dist/templates/web/base/template/src/app/dashboard/page.tsx +145 -329
  52. package/dist/templates/web/base/template/src/app/layout.tsx +40 -38
  53. package/dist/templates/web/base/template/src/app/login/page.tsx +116 -66
  54. package/dist/templates/web/base/template/src/app/page.tsx +97 -193
  55. package/dist/templates/web/base/template/src/app/settings/page.tsx +154 -0
  56. package/dist/templates/web/base/template/src/app/signup/page.tsx +117 -66
  57. package/dist/templates/web/base/template/src/components/providers/app-providers.tsx +8 -3
  58. package/dist/templates/web/base/template/src/components/shared/header.tsx +229 -63
  59. package/dist/templates/web/iot-dashboard/template/package.json +0 -1
  60. package/dist/templates/web/iot-dashboard/template/src/components/providers/app-providers.tsx +2 -5
  61. package/dist/templates/web/marketplace/template/package.json +0 -1
  62. package/dist/templates/web/marketplace/template/src/components/providers/app-providers.tsx +2 -5
  63. package/dist/templates/web/micro-saas/template/package.json +0 -1
  64. package/dist/templates/web/micro-saas/template/src/components/providers/app-providers.tsx +2 -5
  65. package/dist/templates/web/ui-auth/template/eslint.config.mjs +14 -0
  66. package/dist/templates/web/ui-auth/template/src/app/checkout/page.tsx +3 -3
  67. package/dist/templates/web/ui-auth/template/src/app/dev-setup/page.tsx +81 -91
  68. package/dist/templates/web/ui-auth/template/src/app/layout.tsx +38 -36
  69. package/dist/templates/web/ui-auth/template/src/app/login/page.tsx +22 -45
  70. package/dist/templates/web/ui-auth/template/src/app/page.tsx +106 -306
  71. package/dist/templates/web/ui-auth/template/src/app/setup/page.tsx +387 -402
  72. package/dist/templates/web/ui-auth/template/src/app/signup/page.tsx +24 -47
  73. package/dist/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +8 -3
  74. package/dist/templates/web/ui-auth/template/src/components/shared/header.tsx +229 -94
  75. package/dist/templates/web/ui-auth-ai/template/src/app/layout.tsx +38 -45
  76. package/dist/templates/web/ui-auth-ai/template/src/app/login/page.tsx +86 -0
  77. package/dist/templates/web/ui-auth-ai/template/src/app/page.tsx +107 -193
  78. package/dist/templates/web/ui-auth-ai/template/src/app/signup/page.tsx +105 -0
  79. package/dist/templates/web/ui-auth-ai/template/src/components/ai/audio-generator.tsx +144 -140
  80. package/dist/templates/web/ui-auth-ai/template/src/components/ai/video-generator.tsx +156 -157
  81. package/dist/templates/web/ui-auth-ai/template/src/components/auth/login-form.tsx +7 -3
  82. package/dist/templates/web/ui-auth-ai/template/src/components/providers/app-providers.tsx +25 -0
  83. package/dist/templates/web/ui-auth-ai/template/src/components/shared/footer.tsx +36 -0
  84. package/dist/templates/web/ui-auth-ai/template/src/components/shared/header.tsx +228 -0
  85. package/dist/templates/web/ui-auth-ai/template/src/components/ui/button.tsx +5 -5
  86. package/dist/templates/web/ui-auth-ai/template/src/components/ui/input.tsx +1 -1
  87. package/dist/templates/web/ui-auth-ai/template/src/components/ui/select.tsx +1 -1
  88. package/dist/templates/web/ui-auth-ai/template/src/components/ui/textarea.tsx +1 -1
  89. package/dist/templates/web/ui-auth-ai/template/src/components/ui/theme-toggle.tsx +34 -0
  90. package/dist/templates/web/ui-auth-ai/template/src/lib/supabase.ts +6 -4
  91. package/dist/templates/web/ui-auth-ai/template/src/providers/auth-provider.tsx +7 -5
  92. package/dist/templates/web/ui-auth-payments/template/src/app/billing/page.tsx +63 -192
  93. package/dist/templates/web/ui-auth-payments/template/src/app/checkout/page.tsx +104 -296
  94. package/dist/templates/web/ui-auth-payments/template/src/app/dashboard/page.tsx +27 -27
  95. package/dist/templates/web/ui-auth-payments/template/src/app/dev-setup/page.tsx +70 -81
  96. package/dist/templates/web/ui-auth-payments/template/src/app/layout.tsx +38 -36
  97. package/dist/templates/web/ui-auth-payments/template/src/app/login/loading.tsx +9 -9
  98. package/dist/templates/web/ui-auth-payments/template/src/app/login/page.tsx +4 -104
  99. package/dist/templates/web/ui-auth-payments/template/src/app/page.tsx +69 -337
  100. package/dist/templates/web/ui-auth-payments/template/src/app/setup/page.tsx +55 -68
  101. package/dist/templates/web/ui-auth-payments/template/src/app/signup/loading.tsx +13 -13
  102. package/dist/templates/web/ui-auth-payments/template/src/app/signup/page.tsx +4 -123
  103. package/dist/templates/web/ui-auth-payments/template/src/components/client/auth-status.tsx +37 -52
  104. package/dist/templates/web/ui-auth-payments/template/src/components/client/login-form.tsx +49 -103
  105. package/dist/templates/web/ui-auth-payments/template/src/components/client/newsletter-signup.tsx +4 -4
  106. package/dist/templates/web/ui-auth-payments/template/src/components/client/signup-form.tsx +60 -140
  107. package/dist/templates/web/ui-auth-payments/template/src/components/providers/app-providers.tsx +25 -28
  108. package/dist/templates/web/ui-auth-payments/template/src/components/shared/header.tsx +229 -230
  109. package/dist/templates/web/ui-auth-payments/template/src/lib/actions/auth.ts +245 -245
  110. package/dist/templates/web/ui-auth-payments/template/src/lib/actions/index.ts +339 -339
  111. package/dist/templates/web/ui-auth-payments-ai/template/src/app/ai/page.tsx +305 -309
  112. package/dist/templates/web/ui-auth-payments-ai/template/src/app/billing/page.tsx +62 -312
  113. package/dist/templates/web/ui-auth-payments-ai/template/src/app/checkout/page.tsx +109 -125
  114. package/dist/templates/web/ui-auth-payments-ai/template/src/app/dashboard/page.tsx +27 -27
  115. package/dist/templates/web/ui-auth-payments-ai/template/src/app/dev-setup/page.tsx +68 -83
  116. package/dist/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +40 -38
  117. package/dist/templates/web/ui-auth-payments-ai/template/src/app/onboarding/page.tsx +20 -20
  118. package/dist/templates/web/ui-auth-payments-ai/template/src/app/page.tsx +140 -394
  119. package/dist/templates/web/ui-auth-payments-ai/template/src/app/settings/page.tsx +28 -27
  120. package/dist/templates/web/ui-auth-payments-ai/template/src/app/setup/page.tsx +51 -66
  121. package/dist/templates/web/ui-auth-payments-ai/template/src/components/client/auth-status.tsx +37 -52
  122. package/dist/templates/web/ui-auth-payments-ai/template/src/components/client/login-form.tsx +50 -79
  123. package/dist/templates/web/ui-auth-payments-ai/template/src/components/client/signup-form.tsx +58 -111
  124. package/dist/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +8 -3
  125. package/dist/templates/web/ui-auth-payments-ai/template/src/components/shared/header.tsx +229 -252
  126. package/dist/templates/web/ui-auth-payments-ai/template/src/lib/actions/auth.ts +245 -245
  127. package/dist/templates/web/ui-auth-payments-audio/template/src/app/billing/page.tsx +63 -192
  128. package/dist/templates/web/ui-auth-payments-audio/template/src/app/checkout/page.tsx +109 -125
  129. package/dist/templates/web/ui-auth-payments-audio/template/src/app/dashboard/page.tsx +27 -27
  130. package/dist/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +40 -38
  131. package/dist/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +122 -385
  132. package/dist/templates/web/ui-auth-payments-audio/template/src/app/setup/page.tsx +340 -344
  133. package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/auth-status.tsx +37 -52
  134. package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/login-form.tsx +49 -103
  135. package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/signup-form.tsx +60 -140
  136. package/dist/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +8 -3
  137. package/dist/templates/web/ui-auth-payments-audio/template/src/components/shared/header.tsx +229 -252
  138. package/dist/templates/web/ui-auth-payments-audio/template/src/lib/actions/auth.ts +3 -3
  139. package/dist/templates/web/ui-auth-payments-video/template/src/app/billing/page.tsx +63 -192
  140. package/dist/templates/web/ui-auth-payments-video/template/src/app/checkout/page.tsx +109 -125
  141. package/dist/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +38 -36
  142. package/dist/templates/web/ui-auth-payments-video/template/src/app/login/page.tsx +9 -109
  143. package/dist/templates/web/ui-auth-payments-video/template/src/app/page.tsx +132 -392
  144. package/dist/templates/web/ui-auth-payments-video/template/src/app/setup/page.tsx +346 -350
  145. package/dist/templates/web/ui-auth-payments-video/template/src/app/signup/page.tsx +9 -128
  146. package/dist/templates/web/ui-auth-payments-video/template/src/components/client/login-form.tsx +90 -0
  147. package/dist/templates/web/ui-auth-payments-video/template/src/components/client/signup-form.tsx +105 -0
  148. package/dist/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +8 -3
  149. package/dist/templates/web/ui-auth-payments-video/template/src/components/shared/header.tsx +229 -246
  150. package/dist/templates/web/ui-only/template/eslint.config.mjs +14 -0
  151. package/dist/templates/web/ui-only/template/src/app/checkout/page.tsx +2 -2
  152. package/dist/templates/web/ui-only/template/src/app/login/page.tsx +69 -63
  153. package/dist/templates/web/ui-only/template/src/app/page.tsx +69 -91
  154. package/dist/templates/web/ui-only/template/src/app/signup/page.tsx +94 -79
  155. package/dist/templates/web/ui-only/template/src/components/providers/app-providers.tsx +1 -6
  156. package/dist/templates/web/ui-only/template/src/components/shared/header.tsx +90 -53
  157. package/dist/templates/web/ui-package-test/template/package.json +19 -23
  158. package/dist/templates/web/ui-package-test/template/postcss.config.mjs +8 -0
  159. package/dist/templates/web/ui-package-test/template/src/app/globals.css +88 -0
  160. package/dist/templates/web/ui-package-test/template/src/app/layout.tsx +27 -0
  161. package/dist/templates/web/ui-package-test/template/src/app/page.tsx +46 -106
  162. package/package.json +1 -1
  163. package/src/templates/mobile/base/template/App.tsx +7 -4
  164. package/src/templates/mobile/base/template/app/checkout.tsx +5 -2
  165. package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/_layout.tsx +6 -2
  166. package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/billing.tsx +7 -3
  167. package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/index.tsx +5 -2
  168. package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/profile.tsx +7 -2
  169. package/src/templates/mobile/ui-auth-payments/template/app/_layout.tsx +2 -4
  170. package/src/templates/mobile/ui-auth-payments/template/app/auth/login.tsx +6 -3
  171. package/src/templates/mobile/ui-auth-payments/template/app/auth/signup.tsx +6 -3
  172. package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/_layout.tsx +6 -2
  173. package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/billing.tsx +7 -3
  174. package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/index.tsx +5 -2
  175. package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/profile.tsx +7 -2
  176. package/src/templates/mobile/ui-auth-payments-ai/template/app/_layout.tsx +2 -4
  177. package/src/templates/mobile/ui-auth-payments-ai/template/app/auth/login.tsx +6 -3
  178. package/src/templates/mobile/ui-auth-payments-ai/template/app/auth/signup.tsx +6 -3
  179. package/src/templates/shared/admin/web/src/components/admin-nav.tsx +3 -3
  180. package/src/templates/shared/auth/supabase/web/src/lib/auth-session.ts +36 -16
  181. package/src/templates/shared/auth/supabase/web/src/middleware.ts +6 -0
  182. package/src/templates/shared/config/web/next.config.mjs +0 -1
  183. package/src/templates/shared/cookie-consent/web/components/cookie-consent.tsx +5 -5
  184. package/src/templates/shared/design/web/src/components/ui/button.tsx +56 -0
  185. package/src/templates/shared/email/web/src/lib/email/client.ts +1 -1
  186. package/src/templates/shared/error-pages/web/src/app/error.tsx +13 -11
  187. package/src/templates/shared/error-pages/web/src/app/global-error.tsx +2 -0
  188. package/src/templates/shared/error-pages/web/src/app/not-found.tsx +6 -6
  189. package/src/templates/shared/legal/web/src/app/(legal)/privacy/page.tsx +4 -4
  190. package/src/templates/shared/legal/web/src/app/(legal)/terms/page.tsx +4 -4
  191. package/src/templates/shared/loading/web/components/skeleton.tsx +4 -4
  192. package/src/templates/shared/mock/web/.env.local +55 -0
  193. package/src/templates/shared/mock/web/src/components/mock-auth-provider.tsx +72 -0
  194. package/src/templates/shared/mock/web/src/components/mock-banner.tsx +29 -0
  195. package/src/templates/shared/mock/web/src/lib/mock.ts +147 -0
  196. package/src/templates/shared/payments/web/src/app/api/webhooks/stripe/route.ts +10 -4
  197. package/src/templates/shared/redis/web/src/lib/redis.ts +1 -1
  198. package/src/templates/web/ai-platform/template/package.json +0 -1
  199. package/src/templates/web/ai-platform/template/src/app/chat/page.tsx +5 -2
  200. package/src/templates/web/ai-platform/template/src/app/playground/page.tsx +5 -2
  201. package/src/templates/web/ai-platform/template/src/components/providers/app-providers.tsx +2 -5
  202. package/src/templates/web/base/template/eslint.config.mjs +14 -0
  203. package/src/templates/web/base/template/src/app/auth/callback/route.ts +1 -1
  204. package/src/templates/web/base/template/src/app/checkout/page.tsx +76 -103
  205. package/src/templates/web/base/template/src/app/dashboard/page.tsx +145 -329
  206. package/src/templates/web/base/template/src/app/layout.tsx +40 -38
  207. package/src/templates/web/base/template/src/app/login/page.tsx +116 -66
  208. package/src/templates/web/base/template/src/app/page.tsx +97 -193
  209. package/src/templates/web/base/template/src/app/settings/page.tsx +154 -0
  210. package/src/templates/web/base/template/src/app/signup/page.tsx +117 -66
  211. package/src/templates/web/base/template/src/components/providers/app-providers.tsx +8 -3
  212. package/src/templates/web/base/template/src/components/shared/header.tsx +229 -63
  213. package/src/templates/web/iot-dashboard/template/package.json +0 -1
  214. package/src/templates/web/iot-dashboard/template/src/components/providers/app-providers.tsx +2 -5
  215. package/src/templates/web/marketplace/template/package.json +0 -1
  216. package/src/templates/web/marketplace/template/src/components/providers/app-providers.tsx +2 -5
  217. package/src/templates/web/micro-saas/template/package.json +0 -1
  218. package/src/templates/web/micro-saas/template/src/components/providers/app-providers.tsx +2 -5
  219. package/src/templates/web/ui-auth/template/eslint.config.mjs +14 -0
  220. package/src/templates/web/ui-auth/template/src/app/checkout/page.tsx +3 -3
  221. package/src/templates/web/ui-auth/template/src/app/dev-setup/page.tsx +81 -91
  222. package/src/templates/web/ui-auth/template/src/app/layout.tsx +38 -36
  223. package/src/templates/web/ui-auth/template/src/app/login/page.tsx +22 -45
  224. package/src/templates/web/ui-auth/template/src/app/page.tsx +106 -306
  225. package/src/templates/web/ui-auth/template/src/app/setup/page.tsx +387 -402
  226. package/src/templates/web/ui-auth/template/src/app/signup/page.tsx +24 -47
  227. package/src/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +8 -3
  228. package/src/templates/web/ui-auth/template/src/components/shared/header.tsx +229 -94
  229. package/src/templates/web/ui-auth-ai/template/src/app/layout.tsx +38 -45
  230. package/src/templates/web/ui-auth-ai/template/src/app/login/page.tsx +86 -0
  231. package/src/templates/web/ui-auth-ai/template/src/app/page.tsx +107 -193
  232. package/src/templates/web/ui-auth-ai/template/src/app/signup/page.tsx +105 -0
  233. package/src/templates/web/ui-auth-ai/template/src/components/ai/audio-generator.tsx +144 -140
  234. package/src/templates/web/ui-auth-ai/template/src/components/ai/video-generator.tsx +156 -157
  235. package/src/templates/web/ui-auth-ai/template/src/components/auth/login-form.tsx +7 -3
  236. package/src/templates/web/ui-auth-ai/template/src/components/providers/app-providers.tsx +25 -0
  237. package/src/templates/web/ui-auth-ai/template/src/components/shared/footer.tsx +36 -0
  238. package/src/templates/web/ui-auth-ai/template/src/components/shared/header.tsx +228 -0
  239. package/src/templates/web/ui-auth-ai/template/src/components/ui/button.tsx +5 -5
  240. package/src/templates/web/ui-auth-ai/template/src/components/ui/input.tsx +1 -1
  241. package/src/templates/web/ui-auth-ai/template/src/components/ui/select.tsx +1 -1
  242. package/src/templates/web/ui-auth-ai/template/src/components/ui/textarea.tsx +1 -1
  243. package/src/templates/web/ui-auth-ai/template/src/components/ui/theme-toggle.tsx +34 -0
  244. package/src/templates/web/ui-auth-ai/template/src/lib/supabase.ts +6 -4
  245. package/src/templates/web/ui-auth-ai/template/src/providers/auth-provider.tsx +7 -5
  246. package/src/templates/web/ui-auth-payments/template/src/app/billing/page.tsx +63 -192
  247. package/src/templates/web/ui-auth-payments/template/src/app/checkout/page.tsx +104 -296
  248. package/src/templates/web/ui-auth-payments/template/src/app/dashboard/page.tsx +27 -27
  249. package/src/templates/web/ui-auth-payments/template/src/app/dev-setup/page.tsx +70 -81
  250. package/src/templates/web/ui-auth-payments/template/src/app/layout.tsx +38 -36
  251. package/src/templates/web/ui-auth-payments/template/src/app/login/loading.tsx +9 -9
  252. package/src/templates/web/ui-auth-payments/template/src/app/login/page.tsx +4 -104
  253. package/src/templates/web/ui-auth-payments/template/src/app/page.tsx +69 -337
  254. package/src/templates/web/ui-auth-payments/template/src/app/setup/page.tsx +55 -68
  255. package/src/templates/web/ui-auth-payments/template/src/app/signup/loading.tsx +13 -13
  256. package/src/templates/web/ui-auth-payments/template/src/app/signup/page.tsx +4 -123
  257. package/src/templates/web/ui-auth-payments/template/src/components/client/auth-status.tsx +37 -52
  258. package/src/templates/web/ui-auth-payments/template/src/components/client/login-form.tsx +49 -103
  259. package/src/templates/web/ui-auth-payments/template/src/components/client/newsletter-signup.tsx +4 -4
  260. package/src/templates/web/ui-auth-payments/template/src/components/client/signup-form.tsx +60 -140
  261. package/src/templates/web/ui-auth-payments/template/src/components/providers/app-providers.tsx +25 -28
  262. package/src/templates/web/ui-auth-payments/template/src/components/shared/header.tsx +229 -230
  263. package/src/templates/web/ui-auth-payments/template/src/lib/actions/auth.ts +245 -245
  264. package/src/templates/web/ui-auth-payments/template/src/lib/actions/index.ts +339 -339
  265. package/src/templates/web/ui-auth-payments-ai/template/src/app/ai/page.tsx +305 -309
  266. package/src/templates/web/ui-auth-payments-ai/template/src/app/billing/page.tsx +62 -312
  267. package/src/templates/web/ui-auth-payments-ai/template/src/app/checkout/page.tsx +109 -125
  268. package/src/templates/web/ui-auth-payments-ai/template/src/app/dashboard/page.tsx +27 -27
  269. package/src/templates/web/ui-auth-payments-ai/template/src/app/dev-setup/page.tsx +68 -83
  270. package/src/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +40 -38
  271. package/src/templates/web/ui-auth-payments-ai/template/src/app/onboarding/page.tsx +20 -20
  272. package/src/templates/web/ui-auth-payments-ai/template/src/app/page.tsx +140 -394
  273. package/src/templates/web/ui-auth-payments-ai/template/src/app/settings/page.tsx +28 -27
  274. package/src/templates/web/ui-auth-payments-ai/template/src/app/setup/page.tsx +51 -66
  275. package/src/templates/web/ui-auth-payments-ai/template/src/components/client/auth-status.tsx +37 -52
  276. package/src/templates/web/ui-auth-payments-ai/template/src/components/client/login-form.tsx +50 -79
  277. package/src/templates/web/ui-auth-payments-ai/template/src/components/client/signup-form.tsx +58 -111
  278. package/src/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +8 -3
  279. package/src/templates/web/ui-auth-payments-ai/template/src/components/shared/header.tsx +229 -252
  280. package/src/templates/web/ui-auth-payments-ai/template/src/lib/actions/auth.ts +245 -245
  281. package/src/templates/web/ui-auth-payments-audio/template/src/app/billing/page.tsx +63 -192
  282. package/src/templates/web/ui-auth-payments-audio/template/src/app/checkout/page.tsx +109 -125
  283. package/src/templates/web/ui-auth-payments-audio/template/src/app/dashboard/page.tsx +27 -27
  284. package/src/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +40 -38
  285. package/src/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +122 -385
  286. package/src/templates/web/ui-auth-payments-audio/template/src/app/setup/page.tsx +340 -344
  287. package/src/templates/web/ui-auth-payments-audio/template/src/components/client/auth-status.tsx +37 -52
  288. package/src/templates/web/ui-auth-payments-audio/template/src/components/client/login-form.tsx +49 -103
  289. package/src/templates/web/ui-auth-payments-audio/template/src/components/client/signup-form.tsx +60 -140
  290. package/src/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +8 -3
  291. package/src/templates/web/ui-auth-payments-audio/template/src/components/shared/header.tsx +229 -252
  292. package/src/templates/web/ui-auth-payments-audio/template/src/lib/actions/auth.ts +3 -3
  293. package/src/templates/web/ui-auth-payments-video/template/src/app/billing/page.tsx +63 -192
  294. package/src/templates/web/ui-auth-payments-video/template/src/app/checkout/page.tsx +109 -125
  295. package/src/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +38 -36
  296. package/src/templates/web/ui-auth-payments-video/template/src/app/login/page.tsx +9 -109
  297. package/src/templates/web/ui-auth-payments-video/template/src/app/page.tsx +132 -392
  298. package/src/templates/web/ui-auth-payments-video/template/src/app/setup/page.tsx +346 -350
  299. package/src/templates/web/ui-auth-payments-video/template/src/app/signup/page.tsx +9 -128
  300. package/src/templates/web/ui-auth-payments-video/template/src/components/client/login-form.tsx +90 -0
  301. package/src/templates/web/ui-auth-payments-video/template/src/components/client/signup-form.tsx +105 -0
  302. package/src/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +8 -3
  303. package/src/templates/web/ui-auth-payments-video/template/src/components/shared/header.tsx +229 -246
  304. package/src/templates/web/ui-only/template/eslint.config.mjs +14 -0
  305. package/src/templates/web/ui-only/template/src/app/checkout/page.tsx +2 -2
  306. package/src/templates/web/ui-only/template/src/app/login/page.tsx +69 -63
  307. package/src/templates/web/ui-only/template/src/app/page.tsx +69 -91
  308. package/src/templates/web/ui-only/template/src/app/signup/page.tsx +94 -79
  309. package/src/templates/web/ui-only/template/src/components/providers/app-providers.tsx +1 -6
  310. package/src/templates/web/ui-only/template/src/components/shared/header.tsx +90 -53
  311. package/src/templates/web/ui-package-test/template/package.json +19 -23
  312. package/src/templates/web/ui-package-test/template/postcss.config.mjs +8 -0
  313. package/src/templates/web/ui-package-test/template/src/app/globals.css +88 -0
  314. package/src/templates/web/ui-package-test/template/src/app/layout.tsx +27 -0
  315. package/src/templates/web/ui-package-test/template/src/app/page.tsx +46 -106
  316. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/README.md +0 -655
  317. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app/(tabs)/ai.tsx +0 -683
  318. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app/_layout.tsx +0 -124
  319. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app.json +0 -74
  320. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/babel.config.js +0 -25
  321. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/docs/MOBILE-SETUP.md +0 -787
  322. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/eas.json +0 -25
  323. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/expo-env.d.ts +0 -3
  324. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -346
  325. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/jest-setup.ts +0 -37
  326. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -180
  327. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/metro.config.js +0 -11
  328. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/package.json +0 -122
  329. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -599
  330. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/tsconfig.json +0 -32
  331. package/dist/templates/web/base/template/.eslintrc.js +0 -8
  332. package/dist/templates/web/base/template/src/components/__tests__/example.test.tsx +0 -49
  333. package/dist/templates/web/base/template/src/test/setup.ts +0 -74
  334. package/dist/templates/web/base/template/vitest.config.ts +0 -17
  335. package/dist/templates/web/ui-auth/template/.eslintrc.js +0 -8
  336. package/dist/templates/web/ui-auth/template/src/components/__tests__/example.test.tsx +0 -49
  337. package/dist/templates/web/ui-auth/template/src/test/setup.ts +0 -74
  338. package/dist/templates/web/ui-auth/template/vitest.config.ts +0 -17
  339. package/dist/templates/web/ui-auth-payments/template/src/components/__tests__/example.test.tsx +0 -49
  340. package/dist/templates/web/ui-auth-payments/template/src/test/setup.ts +0 -74
  341. package/dist/templates/web/ui-auth-payments/template/vitest.config.ts +0 -17
  342. package/dist/templates/web/ui-auth-payments-ai/template/src/components/__tests__/example.test.tsx +0 -49
  343. package/dist/templates/web/ui-auth-payments-ai/template/src/test/setup.ts +0 -74
  344. package/dist/templates/web/ui-auth-payments-ai/template/vitest.config.ts +0 -17
  345. package/dist/templates/web/ui-auth-payments-ai-rag/template/README.md +0 -434
  346. package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/KnowledgeManager.tsx +0 -642
  347. package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGAnalytics.tsx +0 -466
  348. package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGChatInterface.tsx +0 -393
  349. package/dist/templates/web/ui-auth-payments-ai-rag/template/docs/GETTING-STARTED.md +0 -457
  350. package/dist/templates/web/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -478
  351. package/dist/templates/web/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -250
  352. package/dist/templates/web/ui-auth-payments-ai-rag/template/package.json +0 -73
  353. package/dist/templates/web/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -622
  354. package/dist/templates/web/ui-auth-payments-ai-rag/template/src/app/ai/page.tsx +0 -396
  355. package/dist/templates/web/ui-auth-payments-audio/template/src/components/__tests__/example.test.tsx +0 -49
  356. package/dist/templates/web/ui-auth-payments-audio/template/src/test/setup.ts +0 -74
  357. package/dist/templates/web/ui-auth-payments-audio/template/vitest.config.ts +0 -17
  358. package/dist/templates/web/ui-auth-payments-video/template/src/components/__tests__/example.test.tsx +0 -49
  359. package/dist/templates/web/ui-auth-payments-video/template/src/test/setup.ts +0 -74
  360. package/dist/templates/web/ui-auth-payments-video/template/vitest.config.ts +0 -17
  361. package/dist/templates/web/ui-only/template/.eslintrc.js +0 -8
  362. package/dist/templates/web/ui-only/template/src/components/__tests__/example.test.tsx +0 -49
  363. package/dist/templates/web/ui-only/template/src/test/setup.ts +0 -74
  364. package/dist/templates/web/ui-only/template/vitest.config.ts +0 -17
  365. package/src/templates/mobile/ui-auth-payments-ai-rag/template/README.md +0 -655
  366. package/src/templates/mobile/ui-auth-payments-ai-rag/template/app/(tabs)/ai.tsx +0 -683
  367. package/src/templates/mobile/ui-auth-payments-ai-rag/template/app/_layout.tsx +0 -124
  368. package/src/templates/mobile/ui-auth-payments-ai-rag/template/app.json +0 -74
  369. package/src/templates/mobile/ui-auth-payments-ai-rag/template/babel.config.js +0 -25
  370. package/src/templates/mobile/ui-auth-payments-ai-rag/template/docs/MOBILE-SETUP.md +0 -787
  371. package/src/templates/mobile/ui-auth-payments-ai-rag/template/eas.json +0 -25
  372. package/src/templates/mobile/ui-auth-payments-ai-rag/template/expo-env.d.ts +0 -3
  373. package/src/templates/mobile/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -346
  374. package/src/templates/mobile/ui-auth-payments-ai-rag/template/jest-setup.ts +0 -37
  375. package/src/templates/mobile/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -180
  376. package/src/templates/mobile/ui-auth-payments-ai-rag/template/metro.config.js +0 -11
  377. package/src/templates/mobile/ui-auth-payments-ai-rag/template/package.json +0 -122
  378. package/src/templates/mobile/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -599
  379. package/src/templates/mobile/ui-auth-payments-ai-rag/template/tsconfig.json +0 -32
  380. package/src/templates/web/base/template/.eslintrc.js +0 -8
  381. package/src/templates/web/base/template/src/components/__tests__/example.test.tsx +0 -49
  382. package/src/templates/web/base/template/src/test/setup.ts +0 -74
  383. package/src/templates/web/base/template/vitest.config.ts +0 -17
  384. package/src/templates/web/ui-auth/template/.eslintrc.js +0 -8
  385. package/src/templates/web/ui-auth/template/src/components/__tests__/example.test.tsx +0 -49
  386. package/src/templates/web/ui-auth/template/src/test/setup.ts +0 -74
  387. package/src/templates/web/ui-auth/template/vitest.config.ts +0 -17
  388. package/src/templates/web/ui-auth-payments/template/src/components/__tests__/example.test.tsx +0 -49
  389. package/src/templates/web/ui-auth-payments/template/src/test/setup.ts +0 -74
  390. package/src/templates/web/ui-auth-payments/template/vitest.config.ts +0 -17
  391. package/src/templates/web/ui-auth-payments-ai/template/src/components/__tests__/example.test.tsx +0 -49
  392. package/src/templates/web/ui-auth-payments-ai/template/src/test/setup.ts +0 -74
  393. package/src/templates/web/ui-auth-payments-ai/template/vitest.config.ts +0 -17
  394. package/src/templates/web/ui-auth-payments-ai-rag/template/README.md +0 -434
  395. package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/KnowledgeManager.tsx +0 -642
  396. package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGAnalytics.tsx +0 -466
  397. package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGChatInterface.tsx +0 -393
  398. package/src/templates/web/ui-auth-payments-ai-rag/template/docs/GETTING-STARTED.md +0 -457
  399. package/src/templates/web/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -478
  400. package/src/templates/web/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -250
  401. package/src/templates/web/ui-auth-payments-ai-rag/template/package.json +0 -73
  402. package/src/templates/web/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -622
  403. package/src/templates/web/ui-auth-payments-ai-rag/template/src/app/ai/page.tsx +0 -396
  404. package/src/templates/web/ui-auth-payments-audio/template/src/components/__tests__/example.test.tsx +0 -49
  405. package/src/templates/web/ui-auth-payments-audio/template/src/test/setup.ts +0 -74
  406. package/src/templates/web/ui-auth-payments-audio/template/vitest.config.ts +0 -17
  407. package/src/templates/web/ui-auth-payments-video/template/src/components/__tests__/example.test.tsx +0 -49
  408. package/src/templates/web/ui-auth-payments-video/template/src/test/setup.ts +0 -74
  409. package/src/templates/web/ui-auth-payments-video/template/vitest.config.ts +0 -17
  410. package/src/templates/web/ui-only/template/.eslintrc.js +0 -8
  411. package/src/templates/web/ui-only/template/src/components/__tests__/example.test.tsx +0 -49
  412. package/src/templates/web/ui-only/template/src/test/setup.ts +0 -74
  413. package/src/templates/web/ui-only/template/vitest.config.ts +0 -17
@@ -6,14 +6,14 @@ import {
6
6
  Card,
7
7
  Input,
8
8
  Label,
9
- MobileContainer,
10
- PageTransition,
9
+
10
+
11
11
  Tabs,
12
12
  TabsList,
13
13
  TabsTrigger,
14
14
  TabsContent
15
15
  } from '@digilogiclabs/saas-factory-ui'
16
- import { useAuth } from '@digilogiclabs/app-sdk'
16
+
17
17
  import { useRouter } from 'next/navigation'
18
18
  import {
19
19
  User,
@@ -28,12 +28,13 @@ import {
28
28
  import Link from 'next/link'
29
29
 
30
30
  export default function SettingsPage() {
31
- const { user } = useAuth()
31
+
32
32
  const router = useRouter()
33
33
  const [activeTab, setActiveTab] = useState('profile')
34
34
  const [isLoading, setIsLoading] = useState(false)
35
35
 
36
- if (!user) {
36
+ // TODO: Add auth check
37
+ if (false) {
37
38
  router.push('/login')
38
39
  return null
39
40
  }
@@ -48,9 +49,9 @@ export default function SettingsPage() {
48
49
  }
49
50
 
50
51
  return (
51
- <PageTransition type="slide" direction="up" duration={300}>
52
+ <div>
52
53
  <main className="min-h-screen bg-gradient-to-br from-primary/5 via-background to-secondary/5">
53
- <MobileContainer className="py-8">
54
+ <div className="max-w-4xl mx-auto px-4">
54
55
  {/* Header */}
55
56
  <div className="flex items-center justify-between mb-8">
56
57
  <div className="flex items-center gap-4">
@@ -59,7 +60,7 @@ export default function SettingsPage() {
59
60
  </Link>
60
61
  <div>
61
62
  <h1 className="text-2xl font-bold">Settings</h1>
62
- <p className="text-gray-600 dark:text-gray-300">Manage your account and preferences</p>
63
+ <p className="text-muted-foreground">Manage your account and preferences</p>
63
64
  </div>
64
65
  </div>
65
66
  </div>
@@ -98,7 +99,7 @@ export default function SettingsPage() {
98
99
  <form onSubmit={(e) => handleSaveSettings(e, 'profile')} className="space-y-6">
99
100
  <div>
100
101
  <h3 className="text-lg font-semibold mb-1">Personal Information</h3>
101
- <p className="text-sm text-gray-600 dark:text-gray-400 mb-4">Update your basic profile information</p>
102
+ <p className="text-sm text-muted-foreground mb-4">Update your basic profile information</p>
102
103
  <div className="space-y-4">
103
104
  <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
104
105
  <div>
@@ -112,8 +113,8 @@ export default function SettingsPage() {
112
113
  </div>
113
114
  <div>
114
115
  <Label htmlFor="email">Email Address</Label>
115
- <Input id="email" name="email" type="email" placeholder="Enter your email" defaultValue={user.email || ''} required />
116
- <p className="text-xs text-gray-500 mt-1">Changing your email will require verification</p>
116
+ <Input id="email" name="email" type="email" placeholder="Enter your email" defaultValue="" required />
117
+ <p className="text-xs text-muted-foreground mt-1">Changing your email will require verification</p>
117
118
  </div>
118
119
  <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
119
120
  <div>
@@ -134,7 +135,7 @@ export default function SettingsPage() {
134
135
 
135
136
  <div>
136
137
  <h3 className="text-lg font-semibold mb-1">Contact Information</h3>
137
- <p className="text-sm text-gray-600 dark:text-gray-400 mb-4">How we can reach you</p>
138
+ <p className="text-sm text-muted-foreground mb-4">How we can reach you</p>
138
139
  <div className="space-y-4">
139
140
  <div>
140
141
  <Label htmlFor="phone">Phone Number</Label>
@@ -170,7 +171,7 @@ export default function SettingsPage() {
170
171
  <form onSubmit={(e) => handleSaveSettings(e, 'security')} className="space-y-6">
171
172
  <div>
172
173
  <h3 className="text-lg font-semibold mb-1">Password &amp; Authentication</h3>
173
- <p className="text-sm text-gray-600 dark:text-gray-400 mb-4">Manage your login credentials</p>
174
+ <p className="text-sm text-muted-foreground mb-4">Manage your login credentials</p>
174
175
  <div className="space-y-4">
175
176
  <div>
176
177
  <Label htmlFor="currentPassword">Current Password</Label>
@@ -179,7 +180,7 @@ export default function SettingsPage() {
179
180
  <div>
180
181
  <Label htmlFor="newPassword">New Password</Label>
181
182
  <Input id="newPassword" name="newPassword" type="password" placeholder="Enter a new password" />
182
- <p className="text-xs text-gray-500 mt-1">Password must be at least 8 characters with uppercase, lowercase, and number</p>
183
+ <p className="text-xs text-muted-foreground mt-1">Password must be at least 8 characters with uppercase, lowercase, and number</p>
183
184
  </div>
184
185
  <div>
185
186
  <Label htmlFor="confirmNewPassword">Confirm New Password</Label>
@@ -190,7 +191,7 @@ export default function SettingsPage() {
190
191
 
191
192
  <div>
192
193
  <h3 className="text-lg font-semibold mb-1">Two-Factor Authentication</h3>
193
- <p className="text-sm text-gray-600 dark:text-gray-400 mb-4">Add an extra layer of security</p>
194
+ <p className="text-sm text-muted-foreground mb-4">Add an extra layer of security</p>
194
195
  <div className="space-y-3">
195
196
  <label className="flex items-center gap-2">
196
197
  <input type="checkbox" name="enableTwoFactor" className="rounded" />
@@ -215,12 +216,12 @@ export default function SettingsPage() {
215
216
 
216
217
  <div>
217
218
  <h3 className="text-lg font-semibold mb-1">Login Sessions</h3>
218
- <p className="text-sm text-gray-600 dark:text-gray-400 mb-4">Manage your active sessions</p>
219
+ <p className="text-sm text-muted-foreground mb-4">Manage your active sessions</p>
219
220
  <div className="p-4 border rounded-lg mb-4">
220
221
  <div className="flex justify-between items-start">
221
222
  <div>
222
223
  <div className="font-medium">Current Session</div>
223
- <div className="text-sm text-gray-600 dark:text-gray-300">
224
+ <div className="text-sm text-muted-foreground">
224
225
  Chrome on Mac &bull; Active now
225
226
  </div>
226
227
  </div>
@@ -246,7 +247,7 @@ export default function SettingsPage() {
246
247
  <form onSubmit={(e) => handleSaveSettings(e, 'ai')} className="space-y-6">
247
248
  <div>
248
249
  <h3 className="text-lg font-semibold mb-1">AI Model Preferences</h3>
249
- <p className="text-sm text-gray-600 dark:text-gray-400 mb-4">Configure your preferred AI models and behavior</p>
250
+ <p className="text-sm text-muted-foreground mb-4">Configure your preferred AI models and behavior</p>
250
251
  <div className="space-y-4">
251
252
  <div>
252
253
  <Label htmlFor="defaultTextModel">Default Text Model</Label>
@@ -260,7 +261,7 @@ export default function SettingsPage() {
260
261
  <div>
261
262
  <Label htmlFor="creativityLevel">Creativity Level</Label>
262
263
  <input type="range" id="creativityLevel" name="creativityLevel" min={0} max={100} defaultValue={70} className="w-full" />
263
- <p className="text-xs text-gray-500 mt-1">Lower values are more conservative, higher values are more creative</p>
264
+ <p className="text-xs text-muted-foreground mt-1">Lower values are more conservative, higher values are more creative</p>
264
265
  </div>
265
266
  <div>
266
267
  <Label htmlFor="responseLength">Default Response Length</Label>
@@ -276,12 +277,12 @@ export default function SettingsPage() {
276
277
 
277
278
  <div>
278
279
  <h3 className="text-lg font-semibold mb-1">Usage &amp; Limits</h3>
279
- <p className="text-sm text-gray-600 dark:text-gray-400 mb-4">Manage your AI usage preferences</p>
280
+ <p className="text-sm text-muted-foreground mb-4">Manage your AI usage preferences</p>
280
281
  <div className="space-y-4">
281
282
  <div>
282
283
  <Label htmlFor="monthlyLimit">Monthly Request Limit</Label>
283
284
  <Input id="monthlyLimit" name="monthlyLimit" type="number" min={0} defaultValue={0} placeholder="Enter limit (0 for unlimited)" />
284
- <p className="text-xs text-gray-500 mt-1">Set a limit to control your usage and costs</p>
285
+ <p className="text-xs text-muted-foreground mt-1">Set a limit to control your usage and costs</p>
285
286
  </div>
286
287
  <label className="flex items-center gap-2">
287
288
  <input type="checkbox" name="lowUsageAlerts" defaultChecked className="rounded" />
@@ -304,7 +305,7 @@ export default function SettingsPage() {
304
305
  <form onSubmit={(e) => handleSaveSettings(e, 'notifications')} className="space-y-6">
305
306
  <div>
306
307
  <h3 className="text-lg font-semibold mb-1">Email Notifications</h3>
307
- <p className="text-sm text-gray-600 dark:text-gray-400 mb-4">Choose what emails you want to receive</p>
308
+ <p className="text-sm text-muted-foreground mb-4">Choose what emails you want to receive</p>
308
309
  <div className="space-y-3">
309
310
  {[
310
311
  { value: 'account', label: 'Account & Security Updates', checked: true },
@@ -332,7 +333,7 @@ export default function SettingsPage() {
332
333
 
333
334
  <div>
334
335
  <h3 className="text-lg font-semibold mb-1">Push Notifications</h3>
335
- <p className="text-sm text-gray-600 dark:text-gray-400 mb-4">Browser and mobile push notifications</p>
336
+ <p className="text-sm text-muted-foreground mb-4">Browser and mobile push notifications</p>
336
337
  <div className="space-y-3">
337
338
  <label className="flex items-center gap-2">
338
339
  <input type="checkbox" name="pushNotifications" defaultChecked className="rounded" />
@@ -365,7 +366,7 @@ export default function SettingsPage() {
365
366
 
366
367
  {/* Appearance placeholder */}
367
368
  <TabsContent value="appearance" className="p-6">
368
- <div className="text-center py-12 text-gray-500">
369
+ <div className="text-center py-12 text-muted-foreground">
369
370
  <Palette className="w-12 h-12 mx-auto mb-4 opacity-50" />
370
371
  <h3 className="text-lg font-semibold mb-2">Appearance Settings</h3>
371
372
  <p>Theme and display preferences coming soon.</p>
@@ -374,7 +375,7 @@ export default function SettingsPage() {
374
375
 
375
376
  {/* Team placeholder */}
376
377
  <TabsContent value="team" className="p-6">
377
- <div className="text-center py-12 text-gray-500">
378
+ <div className="text-center py-12 text-muted-foreground">
378
379
  <Users className="w-12 h-12 mx-auto mb-4 opacity-50" />
379
380
  <h3 className="text-lg font-semibold mb-2">Team Settings</h3>
380
381
  <p>Team management and collaboration settings coming soon.</p>
@@ -382,8 +383,8 @@ export default function SettingsPage() {
382
383
  </TabsContent>
383
384
  </Tabs>
384
385
  </Card>
385
- </MobileContainer>
386
+ </div>
386
387
  </main>
387
- </PageTransition>
388
+ </div>
388
389
  )
389
390
  }
@@ -1,14 +1,7 @@
1
1
  'use client'
2
2
 
3
- import {
4
- Card,
5
- Button,
6
- PageTransition,
7
- MobileContainer,
8
- ResponsiveGrid,
9
- useAnimationTokens,
10
- useGlassmorphism
11
- } from '@digilogiclabs/saas-factory-ui'
3
+
4
+ // UI components from saas-factory-ui available: Button, Card, Input, Label, etc.
12
5
  import {
13
6
  ArrowLeft,
14
7
  CheckCircle,
@@ -51,9 +44,6 @@ interface ServiceConfig {
51
44
  }
52
45
 
53
46
  export default function SetupPage() {
54
- const animations = useAnimationTokens()
55
- const glass = useGlassmorphism()
56
-
57
47
  // Static glassmorphism classes to avoid template literal corruption
58
48
  const glassCard = "bg-white/10 backdrop-blur-lg border border-white/20"
59
49
  const glassCardRounded = "bg-white/10 backdrop-blur-lg border border-white/20 rounded-2xl"
@@ -141,7 +131,7 @@ CREATE POLICY "Users can view own conversations" ON ai_conversations FOR ALL USI
141
131
  {
142
132
  name: "Stripe (Payments)",
143
133
  status: 'required',
144
- icon: <CreditCard className="w-4 h-4" />,
134
+ icon: CreditCard,
145
135
  description: "Payment processing for subscriptions, one-time payments, and billing management.",
146
136
  setupSteps: [
147
137
  {
@@ -168,7 +158,6 @@ const payload = await request.text()
168
158
 
169
159
  try {
170
160
  const event = stripe.webhooks.constructEvent(payload, sig, endpointSecret)
171
-
172
161
  switch (event.type) {
173
162
  case 'customer.subscription.created':
174
163
  case 'customer.subscription.updated':
@@ -209,7 +198,7 @@ try {
209
198
  {
210
199
  name: "OpenAI (AI Provider)",
211
200
  status: 'required',
212
- icon: <Brain className="w-4 h-4" />,
201
+ icon: Brain,
213
202
  description: "Primary AI provider for text generation, chat, and other AI capabilities.",
214
203
  setupSteps: [
215
204
  {
@@ -330,7 +319,7 @@ const response = await openai.chat.completions.create({
330
319
  case 'required': return 'text-red-400'
331
320
  case 'optional': return 'text-yellow-400'
332
321
  case 'configured': return 'text-green-400'
333
- default: return 'text-gray-400'
322
+ default: return 'text-muted-foreground'
334
323
  }
335
324
  }
336
325
 
@@ -344,20 +333,20 @@ const response = await openai.chat.completions.create({
344
333
  }
345
334
 
346
335
  return (
347
- <PageTransition type="slide" direction="up" duration={300}>
336
+ <div>
348
337
  <main className={`min-h-screen ${glassBackground} relative overflow-hidden`}>
349
338
  <div className="absolute inset-0 bg-gradient-to-tr from-purple-500/10 to-blue-500/10 opacity-30" />
350
339
  <div className="relative z-10">
351
- <MobileContainer className="py-8">
340
+ <div className="max-w-4xl mx-auto px-4">
352
341
  {/* Header */}
353
342
  <div className="flex items-center justify-between mb-8">
354
343
  <div className="flex items-center gap-4">
355
- <Link href="/" className={`${glassCard} p-2 rounded-xl ${animations.hover.scale}`}>
344
+ <Link href="/" className={`${glassCard} p-2 rounded-xl hover:scale-[1.02] transition-transform`}>
356
345
  <ArrowLeft className="w-5 h-5" />
357
346
  </Link>
358
347
  <div>
359
348
  <h1 className="text-2xl font-bold">Setup Guide</h1>
360
- <p className="text-gray-600 dark:text-gray-300">{templateName}</p>
349
+ <p className="text-muted-foreground">{templateName}</p>
361
350
  </div>
362
351
  </div>
363
352
  <div className={`${glassCard} px-4 py-2 rounded-xl`}>
@@ -373,7 +362,7 @@ const response = await openai.chat.completions.create({
373
362
  </div>
374
363
  <div>
375
364
  <h2 className="text-xl font-semibold">{templateName}</h2>
376
- <p className="text-gray-600 dark:text-gray-300">{templateDescription}</p>
365
+ <p className="text-muted-foreground">{templateDescription}</p>
377
366
  </div>
378
367
  </div>
379
368
  <div className="grid grid-cols-2 md:grid-cols-4 gap-4 mt-6">
@@ -421,7 +410,7 @@ const response = await openai.chat.completions.create({
421
410
  </div>
422
411
  <div className="flex items-center gap-3">
423
412
  <CheckCircle className="w-5 h-5 text-green-400" />
424
- <span>5. Run <code className="px-2 py-1 bg-gray-800 rounded text-green-400">npm run dev</code> to start developing</span>
413
+ <span>5. Run <code className="px-2 py-1 bg-card rounded text-green-400">npm run dev</code> to start developing</span>
425
414
  </div>
426
415
  </div>
427
416
  </div>
@@ -429,13 +418,13 @@ const response = await openai.chat.completions.create({
429
418
  {/* Environment Variables */}
430
419
  <div className={`${glassCardRounded} p-6 mb-8`}>
431
420
  <h3 className="text-lg font-semibold mb-4 flex items-center gap-2">
432
- <Key className="w-5 h-5 text-blue-400" />
421
+ <Key className="w-5 h-5 text-primary" />
433
422
  Environment Variables
434
423
  </h3>
435
- <p className="text-sm text-gray-600 dark:text-gray-300 mb-4">
436
- Copy these to your <code className="px-2 py-1 bg-gray-800 rounded">.env.local</code> file:
424
+ <p className="text-sm text-muted-foreground mb-4">
425
+ Copy these to your <code className="px-2 py-1 bg-card rounded">.env.local</code> file:
437
426
  </p>
438
- <div className="bg-gray-900 rounded-xl p-4 overflow-x-auto">
427
+ <div className="bg-background rounded-xl p-4 overflow-x-auto">
439
428
  <pre className="text-sm text-green-400">
440
429
  {allEnvVars.map(envVar => (
441
430
  `${envVar.name}=${envVar.example}${envVar.required ? ' # Required' : ' # Optional'}`
@@ -446,7 +435,7 @@ const response = await openai.chat.completions.create({
446
435
  allEnvVars.map(envVar => `${envVar.name}=${envVar.example}`).join('\n'),
447
436
  'all-env-vars'
448
437
  )}
449
- className="mt-3 flex items-center gap-2 text-xs text-gray-400 hover:text-white transition-colors"
438
+ className="mt-3 flex items-center gap-2 text-xs text-muted-foreground hover:text-white transition-colors"
450
439
  >
451
440
  <Copy className="w-4 h-4" />
452
441
  {copiedVar === 'all-env-vars' ? 'Copied!' : 'Copy all environment variables'}
@@ -457,7 +446,7 @@ const response = await openai.chat.completions.create({
457
446
  {/* Services Configuration */}
458
447
  <div className="space-y-6">
459
448
  <h3 className="text-lg font-semibold flex items-center gap-2">
460
- <Settings className="w-5 h-5 text-gray-400" />
449
+ <Settings className="w-5 h-5 text-muted-foreground" />
461
450
  Service Configuration
462
451
  </h3>
463
452
 
@@ -469,7 +458,7 @@ const response = await openai.chat.completions.create({
469
458
  <div key={service.name} className={`${glassCardRounded} p-6`}>
470
459
  <div className="flex items-start justify-between mb-4">
471
460
  <div className="flex items-center gap-3">
472
- <div className={`w-10 h-10 rounded-xl bg-gray-800 flex items-center justify-center`}>
461
+ <div className={`w-10 h-10 rounded-xl bg-card flex items-center justify-center`}>
473
462
  <ServiceIcon className="w-5 h-5 text-white" />
474
463
  </div>
475
464
  <div>
@@ -477,7 +466,7 @@ const response = await openai.chat.completions.create({
477
466
  {service.name}
478
467
  <StatusIcon className={`w-4 h-4 ${getStatusColor(service.status)}`} />
479
468
  </h4>
480
- <p className="text-sm text-gray-600 dark:text-gray-300">{service.description}</p>
469
+ <p className="text-sm text-muted-foreground">{service.description}</p>
481
470
  </div>
482
471
  </div>
483
472
  <span className={`px-3 py-1 rounded-full text-xs font-medium ${
@@ -495,28 +484,28 @@ const response = await openai.chat.completions.create({
495
484
  <div className="space-y-3">
496
485
  {service.setupSteps.map((step, stepIndex) => (
497
486
  <div key={stepIndex} className="flex gap-3">
498
- <div className="w-6 h-6 rounded-full bg-blue-500 text-white text-xs flex items-center justify-center flex-shrink-0 mt-0.5">
487
+ <div className="w-6 h-6 rounded-full bg-primary text-primary-foreground text-xs flex items-center justify-center flex-shrink-0 mt-0.5">
499
488
  {stepIndex + 1}
500
489
  </div>
501
490
  <div className="flex-1">
502
491
  <h6 className="font-medium">{step.title}</h6>
503
- <p className="text-sm text-gray-600 dark:text-gray-300">{step.description}</p>
492
+ <p className="text-sm text-muted-foreground">{step.description}</p>
504
493
  {step.link && (
505
494
  <a
506
495
  href={step.link}
507
496
  target="_blank"
508
497
  rel="noopener noreferrer"
509
- className="inline-flex items-center gap-1 text-sm text-blue-400 hover:text-blue-300 mt-1"
498
+ className="inline-flex items-center gap-1 text-sm text-primary hover:text-primary/80 mt-1"
510
499
  >
511
500
  Open Dashboard <ExternalLink className="w-3 h-3" />
512
501
  </a>
513
502
  )}
514
503
  {step.code && (
515
504
  <details className="mt-2">
516
- <summary className="text-sm text-blue-400 cursor-pointer hover:text-blue-300">
505
+ <summary className="text-sm text-primary cursor-pointer hover:text-primary/80">
517
506
  Show code example
518
507
  </summary>
519
- <pre className="bg-gray-900 rounded-lg p-3 mt-2 text-xs overflow-x-auto">
508
+ <pre className="bg-background rounded-lg p-3 mt-2 text-xs overflow-x-auto">
520
509
  <code className="text-green-400">{step.code}</code>
521
510
  </pre>
522
511
  </details>
@@ -532,25 +521,25 @@ const response = await openai.chat.completions.create({
532
521
  <h5 className="font-semibold mb-3">Environment Variables:</h5>
533
522
  <div className="space-y-2">
534
523
  {service.envVars.map((envVar, envIndex) => (
535
- <div key={envIndex} className="bg-gray-800/50 rounded-lg p-3">
524
+ <div key={envIndex} className="bg-card/50 rounded-lg p-3">
536
525
  <div className="flex items-center justify-between mb-1">
537
- <code className="text-blue-400 font-mono text-sm">{envVar.name}</code>
526
+ <code className="text-primary font-mono text-sm">{envVar.name}</code>
538
527
  <div className="flex items-center gap-2">
539
528
  <span className={`px-2 py-1 rounded text-xs ${
540
- envVar.required ? 'bg-red-500/20 text-red-400' : 'bg-gray-500/20 text-gray-400'
529
+ envVar.required ? 'bg-red-500/20 text-red-400' : 'bg-muted-foreground/20 text-muted-foreground'
541
530
  }`}>
542
531
  {envVar.required ? 'Required' : 'Optional'}
543
532
  </span>
544
533
  <button
545
534
  onClick={() => copyToClipboard(`${envVar.name}=${envVar.example}`, envVar.name)}
546
- className="p-1 hover:bg-gray-700 rounded transition-colors"
535
+ className="p-1 hover:bg-muted rounded transition-colors"
547
536
  >
548
537
  <Copy className="w-3 h-3" />
549
538
  </button>
550
539
  </div>
551
540
  </div>
552
- <p className="text-xs text-gray-400 mb-2">{envVar.description}</p>
553
- <code className="text-xs text-gray-500 font-mono">{envVar.example}</code>
541
+ <p className="text-xs text-muted-foreground mb-2">{envVar.description}</p>
542
+ <code className="text-xs text-muted-foreground font-mono">{envVar.example}</code>
554
543
  {copiedVar === envVar.name && (
555
544
  <span className="text-xs text-green-400 ml-2">Copied!</span>
556
545
  )}
@@ -569,25 +558,25 @@ const response = await openai.chat.completions.create({
569
558
  <Zap className="w-5 h-5 text-yellow-400" />
570
559
  Next Steps
571
560
  </h3>
572
- <p className="text-gray-600 dark:text-gray-300 mb-6">
561
+ <p className="text-muted-foreground mb-6">
573
562
  Once you've configured your services, set up your development workflow and deploy your application.
574
563
  </p>
575
564
  <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
576
565
  <Link
577
566
  href="/dev-setup"
578
- className={`${glassCard} p-4 rounded-xl ${animations.hover.scale} block`}
567
+ className={`${glassCard} p-4 rounded-xl hover:scale-[1.02] transition-transform block`}
579
568
  >
580
569
  <Code2 className="w-8 h-8 text-purple-400 mb-2" />
581
570
  <h4 className="font-medium">Development & Deployment</h4>
582
- <p className="text-sm text-gray-600 dark:text-gray-300">Claude AI setup and hosting guides</p>
571
+ <p className="text-sm text-muted-foreground">Claude AI setup and hosting guides</p>
583
572
  </Link>
584
573
  <Link
585
574
  href="/"
586
- className={`${glassCard} p-4 rounded-xl ${animations.hover.scale} block`}
575
+ className={`${glassCard} p-4 rounded-xl hover:scale-[1.02] transition-transform block`}
587
576
  >
588
- <Zap className="w-8 h-8 text-blue-400 mb-2" />
577
+ <Zap className="w-8 h-8 text-primary mb-2" />
589
578
  <h4 className="font-medium">Start Building</h4>
590
- <p className="text-sm text-gray-600 dark:text-gray-300">Go to your application and start coding</p>
579
+ <p className="text-sm text-muted-foreground">Go to your application and start coding</p>
591
580
  </Link>
592
581
  </div>
593
582
  </div>
@@ -601,45 +590,41 @@ const response = await openai.chat.completions.create({
601
590
  <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
602
591
  <a
603
592
  href="https://docs.digilogiclabs.com"
604
- className={`${glassCard} p-4 rounded-xl ${animations.hover.scale} block`}
593
+ className={`${glassCard} p-4 rounded-xl hover:scale-[1.02] transition-transform block`}
605
594
  >
606
- <FileText className="w-8 h-8 text-blue-400 mb-2" />
595
+ <FileText className="w-8 h-8 text-primary mb-2" />
607
596
  <h4 className="font-medium">Documentation</h4>
608
- <p className="text-sm text-gray-600 dark:text-gray-300">Complete guides and API reference</p>
597
+ <p className="text-sm text-muted-foreground">Complete guides and API reference</p>
609
598
  </a>
610
599
  <a
611
600
  href="https://github.com/digilogiclabs/examples"
612
- className={`${glassCard} p-4 rounded-xl ${animations.hover.scale} block`}
601
+ className={`${glassCard} p-4 rounded-xl hover:scale-[1.02] transition-transform block`}
613
602
  >
614
603
  <Code2 className="w-8 h-8 text-purple-400 mb-2" />
615
604
  <h4 className="font-medium">Examples</h4>
616
- <p className="text-sm text-gray-600 dark:text-gray-300">Sample projects and code snippets</p>
605
+ <p className="text-sm text-muted-foreground">Sample projects and code snippets</p>
617
606
  </a>
618
607
  </div>
619
608
  </div>
620
609
 
621
610
  {/* Support */}
622
- <div className={`${glass.card} ${glass.border} rounded-2xl p-6 mt-8 text-center`}>
611
+ <div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mt-8 text-center`}>
623
612
  <h3 className="text-lg font-semibold mb-4">Need Help?</h3>
624
- <p className="text-gray-600 dark:text-gray-300 mb-4">
613
+ <p className="text-muted-foreground mb-4">
625
614
  Our community and support team are here to help you get started.
626
615
  </p>
627
616
  <div className="flex justify-center gap-4">
628
- <Button variant="outline" size="sm" asChild>
629
- <a href="https://discord.gg/digilogiclabs" target="_blank" rel="noopener noreferrer">
630
- Join Discord
631
- </a>
632
- </Button>
633
- <Button size="sm" asChild>
634
- <a href="https://docs.digilogiclabs.com/support" target="_blank" rel="noopener noreferrer">
635
- Get Support
636
- </a>
637
- </Button>
617
+ <a href="https://discord.gg/digilogiclabs" target="_blank" rel="noopener noreferrer" className="inline-flex items-center justify-center rounded-md border border-input bg-background px-3 py-1.5 text-sm font-medium text-foreground hover:bg-accent transition-colors">
618
+ Join Discord
619
+ </a>
620
+ <a href="https://docs.digilogiclabs.com/support" target="_blank" rel="noopener noreferrer" className="inline-flex items-center justify-center rounded-md bg-primary px-3 py-1.5 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors">
621
+ Get Support
622
+ </a>
638
623
  </div>
639
624
  </div>
640
- </MobileContainer>
625
+ </div>
641
626
  </div>
642
627
  </main>
643
- </PageTransition>
628
+ </div>
644
629
  )
645
630
  }
@@ -1,52 +1,37 @@
1
- 'use client'
2
-
3
- import { Button } from '@digilogiclabs/saas-factory-ui'
4
- import { LogOut, User } from 'lucide-react'
5
- import { useAuth } from '@digilogiclabs/app-sdk'
6
- import Link from 'next/link'
7
-
8
- export function AuthStatus() {
9
- const { user, signOut, loading } = useAuth()
10
-
11
- const handleSignOut = async () => {
12
- try {
13
- await signOut()
14
- } catch (err) {
15
- console.error('Sign out error:', err)
16
- }
17
- }
18
-
19
- if (loading) {
20
- return (
21
- <div className="text-sm text-gray-600 dark:text-gray-300">
22
- Loading...
23
- </div>
24
- )
25
- }
26
-
27
- if (user) {
28
- return (
29
- <div className="flex items-center gap-4">
30
- <div className="flex items-center gap-2 text-sm text-gray-600 dark:text-gray-300">
31
- <User className="w-4 h-4" />
32
- Welcome, {user.email}
33
- </div>
34
- <Button variant="outline" size="sm" onClick={handleSignOut}>
35
- <LogOut className="w-4 h-4 mr-2" />
36
- Sign Out
37
- </Button>
38
- </div>
39
- )
40
- }
41
-
42
- return (
43
- <div className="flex gap-2">
44
- <Link href="/login">
45
- <Button variant="outline" size="sm">Sign In</Button>
46
- </Link>
47
- <Link href="/signup">
48
- <Button size="sm">Sign Up</Button>
49
- </Link>
50
- </div>
51
- )
52
- }
1
+ 'use client'
2
+
3
+ import { Button } from '@digilogiclabs/saas-factory-ui'
4
+ import { LogOut, User } from 'lucide-react'
5
+ import Link from 'next/link'
6
+
7
+ export function AuthStatus() {
8
+ // TODO: Replace with your auth hook or server session check
9
+ const user = null as { email?: string } | null
10
+
11
+ if (!user) {
12
+ return (
13
+ <div className="flex items-center gap-2">
14
+ <Button variant="ghost" size="sm">
15
+ <Link href="/login">Sign In</Link>
16
+ </Button>
17
+ <Button size="sm">
18
+ <Link href="/signup">Sign Up</Link>
19
+ </Button>
20
+ </div>
21
+ )
22
+ }
23
+
24
+ return (
25
+ <div className="flex items-center gap-3">
26
+ <div className="flex items-center gap-2 text-sm text-muted-foreground">
27
+ <User className="h-4 w-4" />
28
+ <span>{user.email}</span>
29
+ </div>
30
+ <Button variant="ghost" size="sm">
31
+ <Link href="/api/auth/signout">
32
+ <LogOut className="h-4 w-4" />
33
+ </Link>
34
+ </Button>
35
+ </div>
36
+ )
37
+ }