@digilogiclabs/create-saas-app 2.11.0 → 2.12.0

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 (358) hide show
  1. package/CHANGELOG.md +6 -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.map +1 -1
  6. package/dist/generators/template-generator.js +15 -8
  7. package/dist/generators/template-generator.js.map +1 -1
  8. package/dist/templates/shared/admin/web/src/components/admin-nav.tsx +3 -3
  9. package/dist/templates/shared/auth/supabase/web/src/lib/auth-session.ts +36 -16
  10. package/dist/templates/shared/auth/supabase/web/src/middleware.ts +6 -0
  11. package/dist/templates/shared/cookie-consent/web/components/cookie-consent.tsx +5 -5
  12. package/dist/templates/shared/design/web/src/components/ui/button.tsx +56 -0
  13. package/dist/templates/shared/email/web/src/lib/email/client.ts +1 -1
  14. package/dist/templates/shared/error-pages/web/src/app/error.tsx +13 -11
  15. package/dist/templates/shared/error-pages/web/src/app/global-error.tsx +2 -0
  16. package/dist/templates/shared/error-pages/web/src/app/not-found.tsx +6 -6
  17. package/dist/templates/shared/legal/web/src/app/(legal)/privacy/page.tsx +4 -4
  18. package/dist/templates/shared/legal/web/src/app/(legal)/terms/page.tsx +4 -4
  19. package/dist/templates/shared/loading/web/components/skeleton.tsx +4 -4
  20. package/dist/templates/shared/mock/web/.env.local +55 -0
  21. package/dist/templates/shared/mock/web/src/components/mock-auth-provider.tsx +72 -0
  22. package/dist/templates/shared/mock/web/src/components/mock-banner.tsx +29 -0
  23. package/dist/templates/shared/mock/web/src/lib/mock.ts +147 -0
  24. package/dist/templates/shared/payments/web/src/app/api/webhooks/stripe/route.ts +10 -4
  25. package/dist/templates/shared/redis/web/src/lib/redis.ts +1 -1
  26. package/dist/templates/web/base/template/eslint.config.mjs +14 -0
  27. package/dist/templates/web/base/template/src/app/auth/callback/route.ts +1 -1
  28. package/dist/templates/web/base/template/src/app/checkout/page.tsx +76 -103
  29. package/dist/templates/web/base/template/src/app/dashboard/page.tsx +145 -329
  30. package/dist/templates/web/base/template/src/app/layout.tsx +40 -38
  31. package/dist/templates/web/base/template/src/app/login/page.tsx +116 -66
  32. package/dist/templates/web/base/template/src/app/page.tsx +97 -193
  33. package/dist/templates/web/base/template/src/app/settings/page.tsx +154 -0
  34. package/dist/templates/web/base/template/src/app/signup/page.tsx +117 -66
  35. package/dist/templates/web/base/template/src/components/providers/app-providers.tsx +8 -3
  36. package/dist/templates/web/base/template/src/components/shared/header.tsx +229 -63
  37. package/dist/templates/web/ui-auth/template/eslint.config.mjs +14 -0
  38. package/dist/templates/web/ui-auth/template/src/app/checkout/page.tsx +3 -3
  39. package/dist/templates/web/ui-auth/template/src/app/dev-setup/page.tsx +81 -91
  40. package/dist/templates/web/ui-auth/template/src/app/layout.tsx +38 -36
  41. package/dist/templates/web/ui-auth/template/src/app/login/page.tsx +22 -45
  42. package/dist/templates/web/ui-auth/template/src/app/page.tsx +106 -306
  43. package/dist/templates/web/ui-auth/template/src/app/setup/page.tsx +387 -402
  44. package/dist/templates/web/ui-auth/template/src/app/signup/page.tsx +24 -47
  45. package/dist/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +8 -3
  46. package/dist/templates/web/ui-auth/template/src/components/shared/header.tsx +229 -94
  47. package/dist/templates/web/ui-auth-ai/template/src/app/layout.tsx +38 -45
  48. package/dist/templates/web/ui-auth-ai/template/src/app/login/page.tsx +86 -0
  49. package/dist/templates/web/ui-auth-ai/template/src/app/page.tsx +107 -193
  50. package/dist/templates/web/ui-auth-ai/template/src/app/signup/page.tsx +105 -0
  51. package/dist/templates/web/ui-auth-ai/template/src/components/ai/audio-generator.tsx +144 -140
  52. package/dist/templates/web/ui-auth-ai/template/src/components/ai/video-generator.tsx +156 -157
  53. package/dist/templates/web/ui-auth-ai/template/src/components/auth/login-form.tsx +7 -3
  54. package/dist/templates/web/ui-auth-ai/template/src/components/providers/app-providers.tsx +25 -0
  55. package/dist/templates/web/ui-auth-ai/template/src/components/shared/footer.tsx +36 -0
  56. package/dist/templates/web/ui-auth-ai/template/src/components/shared/header.tsx +228 -0
  57. package/dist/templates/web/ui-auth-ai/template/src/components/ui/button.tsx +5 -5
  58. package/dist/templates/web/ui-auth-ai/template/src/components/ui/input.tsx +1 -1
  59. package/dist/templates/web/ui-auth-ai/template/src/components/ui/select.tsx +1 -1
  60. package/dist/templates/web/ui-auth-ai/template/src/components/ui/textarea.tsx +1 -1
  61. package/dist/templates/web/ui-auth-ai/template/src/components/ui/theme-toggle.tsx +34 -0
  62. package/dist/templates/web/ui-auth-ai/template/src/lib/supabase.ts +6 -4
  63. package/dist/templates/web/ui-auth-ai/template/src/providers/auth-provider.tsx +7 -5
  64. package/dist/templates/web/ui-auth-payments/template/src/app/billing/page.tsx +63 -192
  65. package/dist/templates/web/ui-auth-payments/template/src/app/checkout/page.tsx +104 -296
  66. package/dist/templates/web/ui-auth-payments/template/src/app/dashboard/page.tsx +27 -27
  67. package/dist/templates/web/ui-auth-payments/template/src/app/dev-setup/page.tsx +70 -81
  68. package/dist/templates/web/ui-auth-payments/template/src/app/layout.tsx +38 -36
  69. package/dist/templates/web/ui-auth-payments/template/src/app/login/loading.tsx +9 -9
  70. package/dist/templates/web/ui-auth-payments/template/src/app/login/page.tsx +4 -104
  71. package/dist/templates/web/ui-auth-payments/template/src/app/page.tsx +69 -337
  72. package/dist/templates/web/ui-auth-payments/template/src/app/setup/page.tsx +55 -68
  73. package/dist/templates/web/ui-auth-payments/template/src/app/signup/loading.tsx +13 -13
  74. package/dist/templates/web/ui-auth-payments/template/src/app/signup/page.tsx +4 -123
  75. package/dist/templates/web/ui-auth-payments/template/src/components/client/auth-status.tsx +37 -52
  76. package/dist/templates/web/ui-auth-payments/template/src/components/client/login-form.tsx +49 -103
  77. package/dist/templates/web/ui-auth-payments/template/src/components/client/newsletter-signup.tsx +4 -4
  78. package/dist/templates/web/ui-auth-payments/template/src/components/client/signup-form.tsx +60 -140
  79. package/dist/templates/web/ui-auth-payments/template/src/components/providers/app-providers.tsx +25 -28
  80. package/dist/templates/web/ui-auth-payments/template/src/components/shared/header.tsx +229 -230
  81. package/dist/templates/web/ui-auth-payments/template/src/lib/actions/auth.ts +245 -245
  82. package/dist/templates/web/ui-auth-payments/template/src/lib/actions/index.ts +339 -339
  83. package/dist/templates/web/ui-auth-payments-ai/template/src/app/ai/page.tsx +305 -309
  84. package/dist/templates/web/ui-auth-payments-ai/template/src/app/billing/page.tsx +62 -312
  85. package/dist/templates/web/ui-auth-payments-ai/template/src/app/checkout/page.tsx +109 -125
  86. package/dist/templates/web/ui-auth-payments-ai/template/src/app/dashboard/page.tsx +27 -27
  87. package/dist/templates/web/ui-auth-payments-ai/template/src/app/dev-setup/page.tsx +68 -83
  88. package/dist/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +40 -38
  89. package/dist/templates/web/ui-auth-payments-ai/template/src/app/onboarding/page.tsx +20 -20
  90. package/dist/templates/web/ui-auth-payments-ai/template/src/app/page.tsx +140 -394
  91. package/dist/templates/web/ui-auth-payments-ai/template/src/app/settings/page.tsx +28 -27
  92. package/dist/templates/web/ui-auth-payments-ai/template/src/app/setup/page.tsx +51 -66
  93. package/dist/templates/web/ui-auth-payments-ai/template/src/components/client/auth-status.tsx +37 -52
  94. package/dist/templates/web/ui-auth-payments-ai/template/src/components/client/login-form.tsx +50 -79
  95. package/dist/templates/web/ui-auth-payments-ai/template/src/components/client/signup-form.tsx +58 -111
  96. package/dist/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +8 -3
  97. package/dist/templates/web/ui-auth-payments-ai/template/src/components/shared/header.tsx +229 -252
  98. package/dist/templates/web/ui-auth-payments-ai/template/src/lib/actions/auth.ts +245 -245
  99. package/dist/templates/web/ui-auth-payments-audio/template/src/app/billing/page.tsx +63 -192
  100. package/dist/templates/web/ui-auth-payments-audio/template/src/app/checkout/page.tsx +109 -125
  101. package/dist/templates/web/ui-auth-payments-audio/template/src/app/dashboard/page.tsx +27 -27
  102. package/dist/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +40 -38
  103. package/dist/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +122 -385
  104. package/dist/templates/web/ui-auth-payments-audio/template/src/app/setup/page.tsx +340 -344
  105. package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/auth-status.tsx +37 -52
  106. package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/login-form.tsx +49 -103
  107. package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/signup-form.tsx +60 -140
  108. package/dist/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +8 -3
  109. package/dist/templates/web/ui-auth-payments-audio/template/src/components/shared/header.tsx +229 -252
  110. package/dist/templates/web/ui-auth-payments-audio/template/src/lib/actions/auth.ts +3 -3
  111. package/dist/templates/web/ui-auth-payments-video/template/src/app/billing/page.tsx +63 -192
  112. package/dist/templates/web/ui-auth-payments-video/template/src/app/checkout/page.tsx +109 -125
  113. package/dist/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +38 -36
  114. package/dist/templates/web/ui-auth-payments-video/template/src/app/login/page.tsx +9 -109
  115. package/dist/templates/web/ui-auth-payments-video/template/src/app/page.tsx +132 -392
  116. package/dist/templates/web/ui-auth-payments-video/template/src/app/setup/page.tsx +346 -350
  117. package/dist/templates/web/ui-auth-payments-video/template/src/app/signup/page.tsx +9 -128
  118. package/dist/templates/web/ui-auth-payments-video/template/src/components/client/login-form.tsx +90 -0
  119. package/dist/templates/web/ui-auth-payments-video/template/src/components/client/signup-form.tsx +105 -0
  120. package/dist/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +8 -3
  121. package/dist/templates/web/ui-auth-payments-video/template/src/components/shared/header.tsx +229 -246
  122. package/dist/templates/web/ui-only/template/eslint.config.mjs +14 -0
  123. package/dist/templates/web/ui-only/template/src/app/checkout/page.tsx +2 -2
  124. package/dist/templates/web/ui-only/template/src/app/login/page.tsx +69 -63
  125. package/dist/templates/web/ui-only/template/src/app/page.tsx +69 -91
  126. package/dist/templates/web/ui-only/template/src/app/signup/page.tsx +94 -79
  127. package/dist/templates/web/ui-only/template/src/components/providers/app-providers.tsx +1 -6
  128. package/dist/templates/web/ui-only/template/src/components/shared/header.tsx +90 -53
  129. package/dist/templates/web/ui-package-test/template/package.json +19 -23
  130. package/dist/templates/web/ui-package-test/template/postcss.config.mjs +8 -0
  131. package/dist/templates/web/ui-package-test/template/src/app/globals.css +88 -0
  132. package/dist/templates/web/ui-package-test/template/src/app/layout.tsx +27 -0
  133. package/dist/templates/web/ui-package-test/template/src/app/page.tsx +46 -106
  134. package/package.json +1 -1
  135. package/src/templates/shared/admin/web/src/components/admin-nav.tsx +3 -3
  136. package/src/templates/shared/auth/supabase/web/src/lib/auth-session.ts +36 -16
  137. package/src/templates/shared/auth/supabase/web/src/middleware.ts +6 -0
  138. package/src/templates/shared/cookie-consent/web/components/cookie-consent.tsx +5 -5
  139. package/src/templates/shared/design/web/src/components/ui/button.tsx +56 -0
  140. package/src/templates/shared/email/web/src/lib/email/client.ts +1 -1
  141. package/src/templates/shared/error-pages/web/src/app/error.tsx +13 -11
  142. package/src/templates/shared/error-pages/web/src/app/global-error.tsx +2 -0
  143. package/src/templates/shared/error-pages/web/src/app/not-found.tsx +6 -6
  144. package/src/templates/shared/legal/web/src/app/(legal)/privacy/page.tsx +4 -4
  145. package/src/templates/shared/legal/web/src/app/(legal)/terms/page.tsx +4 -4
  146. package/src/templates/shared/loading/web/components/skeleton.tsx +4 -4
  147. package/src/templates/shared/mock/web/.env.local +55 -0
  148. package/src/templates/shared/mock/web/src/components/mock-auth-provider.tsx +72 -0
  149. package/src/templates/shared/mock/web/src/components/mock-banner.tsx +29 -0
  150. package/src/templates/shared/mock/web/src/lib/mock.ts +147 -0
  151. package/src/templates/shared/payments/web/src/app/api/webhooks/stripe/route.ts +10 -4
  152. package/src/templates/shared/redis/web/src/lib/redis.ts +1 -1
  153. package/src/templates/web/base/template/eslint.config.mjs +14 -0
  154. package/src/templates/web/base/template/src/app/auth/callback/route.ts +1 -1
  155. package/src/templates/web/base/template/src/app/checkout/page.tsx +76 -103
  156. package/src/templates/web/base/template/src/app/dashboard/page.tsx +145 -329
  157. package/src/templates/web/base/template/src/app/layout.tsx +40 -38
  158. package/src/templates/web/base/template/src/app/login/page.tsx +116 -66
  159. package/src/templates/web/base/template/src/app/page.tsx +97 -193
  160. package/src/templates/web/base/template/src/app/settings/page.tsx +154 -0
  161. package/src/templates/web/base/template/src/app/signup/page.tsx +117 -66
  162. package/src/templates/web/base/template/src/components/providers/app-providers.tsx +8 -3
  163. package/src/templates/web/base/template/src/components/shared/header.tsx +229 -63
  164. package/src/templates/web/ui-auth/template/eslint.config.mjs +14 -0
  165. package/src/templates/web/ui-auth/template/src/app/checkout/page.tsx +3 -3
  166. package/src/templates/web/ui-auth/template/src/app/dev-setup/page.tsx +81 -91
  167. package/src/templates/web/ui-auth/template/src/app/layout.tsx +38 -36
  168. package/src/templates/web/ui-auth/template/src/app/login/page.tsx +22 -45
  169. package/src/templates/web/ui-auth/template/src/app/page.tsx +106 -306
  170. package/src/templates/web/ui-auth/template/src/app/setup/page.tsx +387 -402
  171. package/src/templates/web/ui-auth/template/src/app/signup/page.tsx +24 -47
  172. package/src/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +8 -3
  173. package/src/templates/web/ui-auth/template/src/components/shared/header.tsx +229 -94
  174. package/src/templates/web/ui-auth-ai/template/src/app/layout.tsx +38 -45
  175. package/src/templates/web/ui-auth-ai/template/src/app/login/page.tsx +86 -0
  176. package/src/templates/web/ui-auth-ai/template/src/app/page.tsx +107 -193
  177. package/src/templates/web/ui-auth-ai/template/src/app/signup/page.tsx +105 -0
  178. package/src/templates/web/ui-auth-ai/template/src/components/ai/audio-generator.tsx +144 -140
  179. package/src/templates/web/ui-auth-ai/template/src/components/ai/video-generator.tsx +156 -157
  180. package/src/templates/web/ui-auth-ai/template/src/components/auth/login-form.tsx +7 -3
  181. package/src/templates/web/ui-auth-ai/template/src/components/providers/app-providers.tsx +25 -0
  182. package/src/templates/web/ui-auth-ai/template/src/components/shared/footer.tsx +36 -0
  183. package/src/templates/web/ui-auth-ai/template/src/components/shared/header.tsx +228 -0
  184. package/src/templates/web/ui-auth-ai/template/src/components/ui/button.tsx +5 -5
  185. package/src/templates/web/ui-auth-ai/template/src/components/ui/input.tsx +1 -1
  186. package/src/templates/web/ui-auth-ai/template/src/components/ui/select.tsx +1 -1
  187. package/src/templates/web/ui-auth-ai/template/src/components/ui/textarea.tsx +1 -1
  188. package/src/templates/web/ui-auth-ai/template/src/components/ui/theme-toggle.tsx +34 -0
  189. package/src/templates/web/ui-auth-ai/template/src/lib/supabase.ts +6 -4
  190. package/src/templates/web/ui-auth-ai/template/src/providers/auth-provider.tsx +7 -5
  191. package/src/templates/web/ui-auth-payments/template/src/app/billing/page.tsx +63 -192
  192. package/src/templates/web/ui-auth-payments/template/src/app/checkout/page.tsx +104 -296
  193. package/src/templates/web/ui-auth-payments/template/src/app/dashboard/page.tsx +27 -27
  194. package/src/templates/web/ui-auth-payments/template/src/app/dev-setup/page.tsx +70 -81
  195. package/src/templates/web/ui-auth-payments/template/src/app/layout.tsx +38 -36
  196. package/src/templates/web/ui-auth-payments/template/src/app/login/loading.tsx +9 -9
  197. package/src/templates/web/ui-auth-payments/template/src/app/login/page.tsx +4 -104
  198. package/src/templates/web/ui-auth-payments/template/src/app/page.tsx +69 -337
  199. package/src/templates/web/ui-auth-payments/template/src/app/setup/page.tsx +55 -68
  200. package/src/templates/web/ui-auth-payments/template/src/app/signup/loading.tsx +13 -13
  201. package/src/templates/web/ui-auth-payments/template/src/app/signup/page.tsx +4 -123
  202. package/src/templates/web/ui-auth-payments/template/src/components/client/auth-status.tsx +37 -52
  203. package/src/templates/web/ui-auth-payments/template/src/components/client/login-form.tsx +49 -103
  204. package/src/templates/web/ui-auth-payments/template/src/components/client/newsletter-signup.tsx +4 -4
  205. package/src/templates/web/ui-auth-payments/template/src/components/client/signup-form.tsx +60 -140
  206. package/src/templates/web/ui-auth-payments/template/src/components/providers/app-providers.tsx +25 -28
  207. package/src/templates/web/ui-auth-payments/template/src/components/shared/header.tsx +229 -230
  208. package/src/templates/web/ui-auth-payments/template/src/lib/actions/auth.ts +245 -245
  209. package/src/templates/web/ui-auth-payments/template/src/lib/actions/index.ts +339 -339
  210. package/src/templates/web/ui-auth-payments-ai/template/src/app/ai/page.tsx +305 -309
  211. package/src/templates/web/ui-auth-payments-ai/template/src/app/billing/page.tsx +62 -312
  212. package/src/templates/web/ui-auth-payments-ai/template/src/app/checkout/page.tsx +109 -125
  213. package/src/templates/web/ui-auth-payments-ai/template/src/app/dashboard/page.tsx +27 -27
  214. package/src/templates/web/ui-auth-payments-ai/template/src/app/dev-setup/page.tsx +68 -83
  215. package/src/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +40 -38
  216. package/src/templates/web/ui-auth-payments-ai/template/src/app/onboarding/page.tsx +20 -20
  217. package/src/templates/web/ui-auth-payments-ai/template/src/app/page.tsx +140 -394
  218. package/src/templates/web/ui-auth-payments-ai/template/src/app/settings/page.tsx +28 -27
  219. package/src/templates/web/ui-auth-payments-ai/template/src/app/setup/page.tsx +51 -66
  220. package/src/templates/web/ui-auth-payments-ai/template/src/components/client/auth-status.tsx +37 -52
  221. package/src/templates/web/ui-auth-payments-ai/template/src/components/client/login-form.tsx +50 -79
  222. package/src/templates/web/ui-auth-payments-ai/template/src/components/client/signup-form.tsx +58 -111
  223. package/src/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +8 -3
  224. package/src/templates/web/ui-auth-payments-ai/template/src/components/shared/header.tsx +229 -252
  225. package/src/templates/web/ui-auth-payments-ai/template/src/lib/actions/auth.ts +245 -245
  226. package/src/templates/web/ui-auth-payments-audio/template/src/app/billing/page.tsx +63 -192
  227. package/src/templates/web/ui-auth-payments-audio/template/src/app/checkout/page.tsx +109 -125
  228. package/src/templates/web/ui-auth-payments-audio/template/src/app/dashboard/page.tsx +27 -27
  229. package/src/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +40 -38
  230. package/src/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +122 -385
  231. package/src/templates/web/ui-auth-payments-audio/template/src/app/setup/page.tsx +340 -344
  232. package/src/templates/web/ui-auth-payments-audio/template/src/components/client/auth-status.tsx +37 -52
  233. package/src/templates/web/ui-auth-payments-audio/template/src/components/client/login-form.tsx +49 -103
  234. package/src/templates/web/ui-auth-payments-audio/template/src/components/client/signup-form.tsx +60 -140
  235. package/src/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +8 -3
  236. package/src/templates/web/ui-auth-payments-audio/template/src/components/shared/header.tsx +229 -252
  237. package/src/templates/web/ui-auth-payments-audio/template/src/lib/actions/auth.ts +3 -3
  238. package/src/templates/web/ui-auth-payments-video/template/src/app/billing/page.tsx +63 -192
  239. package/src/templates/web/ui-auth-payments-video/template/src/app/checkout/page.tsx +109 -125
  240. package/src/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +38 -36
  241. package/src/templates/web/ui-auth-payments-video/template/src/app/login/page.tsx +9 -109
  242. package/src/templates/web/ui-auth-payments-video/template/src/app/page.tsx +132 -392
  243. package/src/templates/web/ui-auth-payments-video/template/src/app/setup/page.tsx +346 -350
  244. package/src/templates/web/ui-auth-payments-video/template/src/app/signup/page.tsx +9 -128
  245. package/src/templates/web/ui-auth-payments-video/template/src/components/client/login-form.tsx +90 -0
  246. package/src/templates/web/ui-auth-payments-video/template/src/components/client/signup-form.tsx +105 -0
  247. package/src/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +8 -3
  248. package/src/templates/web/ui-auth-payments-video/template/src/components/shared/header.tsx +229 -246
  249. package/src/templates/web/ui-only/template/eslint.config.mjs +14 -0
  250. package/src/templates/web/ui-only/template/src/app/checkout/page.tsx +2 -2
  251. package/src/templates/web/ui-only/template/src/app/login/page.tsx +69 -63
  252. package/src/templates/web/ui-only/template/src/app/page.tsx +69 -91
  253. package/src/templates/web/ui-only/template/src/app/signup/page.tsx +94 -79
  254. package/src/templates/web/ui-only/template/src/components/providers/app-providers.tsx +1 -6
  255. package/src/templates/web/ui-only/template/src/components/shared/header.tsx +90 -53
  256. package/src/templates/web/ui-package-test/template/package.json +19 -23
  257. package/src/templates/web/ui-package-test/template/postcss.config.mjs +8 -0
  258. package/src/templates/web/ui-package-test/template/src/app/globals.css +88 -0
  259. package/src/templates/web/ui-package-test/template/src/app/layout.tsx +27 -0
  260. package/src/templates/web/ui-package-test/template/src/app/page.tsx +46 -106
  261. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/README.md +0 -655
  262. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app/(tabs)/ai.tsx +0 -683
  263. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app/_layout.tsx +0 -124
  264. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app.json +0 -74
  265. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/babel.config.js +0 -25
  266. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/docs/MOBILE-SETUP.md +0 -787
  267. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/eas.json +0 -25
  268. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/expo-env.d.ts +0 -3
  269. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -346
  270. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/jest-setup.ts +0 -37
  271. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -180
  272. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/metro.config.js +0 -11
  273. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/package.json +0 -122
  274. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -599
  275. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/tsconfig.json +0 -32
  276. package/dist/templates/web/base/template/.eslintrc.js +0 -8
  277. package/dist/templates/web/base/template/src/components/__tests__/example.test.tsx +0 -49
  278. package/dist/templates/web/base/template/src/test/setup.ts +0 -74
  279. package/dist/templates/web/base/template/vitest.config.ts +0 -17
  280. package/dist/templates/web/ui-auth/template/.eslintrc.js +0 -8
  281. package/dist/templates/web/ui-auth/template/src/components/__tests__/example.test.tsx +0 -49
  282. package/dist/templates/web/ui-auth/template/src/test/setup.ts +0 -74
  283. package/dist/templates/web/ui-auth/template/vitest.config.ts +0 -17
  284. package/dist/templates/web/ui-auth-payments/template/src/components/__tests__/example.test.tsx +0 -49
  285. package/dist/templates/web/ui-auth-payments/template/src/test/setup.ts +0 -74
  286. package/dist/templates/web/ui-auth-payments/template/vitest.config.ts +0 -17
  287. package/dist/templates/web/ui-auth-payments-ai/template/src/components/__tests__/example.test.tsx +0 -49
  288. package/dist/templates/web/ui-auth-payments-ai/template/src/test/setup.ts +0 -74
  289. package/dist/templates/web/ui-auth-payments-ai/template/vitest.config.ts +0 -17
  290. package/dist/templates/web/ui-auth-payments-ai-rag/template/README.md +0 -434
  291. package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/KnowledgeManager.tsx +0 -642
  292. package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGAnalytics.tsx +0 -466
  293. package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGChatInterface.tsx +0 -393
  294. package/dist/templates/web/ui-auth-payments-ai-rag/template/docs/GETTING-STARTED.md +0 -457
  295. package/dist/templates/web/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -478
  296. package/dist/templates/web/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -250
  297. package/dist/templates/web/ui-auth-payments-ai-rag/template/package.json +0 -73
  298. package/dist/templates/web/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -622
  299. package/dist/templates/web/ui-auth-payments-ai-rag/template/src/app/ai/page.tsx +0 -396
  300. package/dist/templates/web/ui-auth-payments-audio/template/src/components/__tests__/example.test.tsx +0 -49
  301. package/dist/templates/web/ui-auth-payments-audio/template/src/test/setup.ts +0 -74
  302. package/dist/templates/web/ui-auth-payments-audio/template/vitest.config.ts +0 -17
  303. package/dist/templates/web/ui-auth-payments-video/template/src/components/__tests__/example.test.tsx +0 -49
  304. package/dist/templates/web/ui-auth-payments-video/template/src/test/setup.ts +0 -74
  305. package/dist/templates/web/ui-auth-payments-video/template/vitest.config.ts +0 -17
  306. package/dist/templates/web/ui-only/template/.eslintrc.js +0 -8
  307. package/dist/templates/web/ui-only/template/src/components/__tests__/example.test.tsx +0 -49
  308. package/dist/templates/web/ui-only/template/src/test/setup.ts +0 -74
  309. package/dist/templates/web/ui-only/template/vitest.config.ts +0 -17
  310. package/src/templates/mobile/ui-auth-payments-ai-rag/template/README.md +0 -655
  311. package/src/templates/mobile/ui-auth-payments-ai-rag/template/app/(tabs)/ai.tsx +0 -683
  312. package/src/templates/mobile/ui-auth-payments-ai-rag/template/app/_layout.tsx +0 -124
  313. package/src/templates/mobile/ui-auth-payments-ai-rag/template/app.json +0 -74
  314. package/src/templates/mobile/ui-auth-payments-ai-rag/template/babel.config.js +0 -25
  315. package/src/templates/mobile/ui-auth-payments-ai-rag/template/docs/MOBILE-SETUP.md +0 -787
  316. package/src/templates/mobile/ui-auth-payments-ai-rag/template/eas.json +0 -25
  317. package/src/templates/mobile/ui-auth-payments-ai-rag/template/expo-env.d.ts +0 -3
  318. package/src/templates/mobile/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -346
  319. package/src/templates/mobile/ui-auth-payments-ai-rag/template/jest-setup.ts +0 -37
  320. package/src/templates/mobile/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -180
  321. package/src/templates/mobile/ui-auth-payments-ai-rag/template/metro.config.js +0 -11
  322. package/src/templates/mobile/ui-auth-payments-ai-rag/template/package.json +0 -122
  323. package/src/templates/mobile/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -599
  324. package/src/templates/mobile/ui-auth-payments-ai-rag/template/tsconfig.json +0 -32
  325. package/src/templates/web/base/template/.eslintrc.js +0 -8
  326. package/src/templates/web/base/template/src/components/__tests__/example.test.tsx +0 -49
  327. package/src/templates/web/base/template/src/test/setup.ts +0 -74
  328. package/src/templates/web/base/template/vitest.config.ts +0 -17
  329. package/src/templates/web/ui-auth/template/.eslintrc.js +0 -8
  330. package/src/templates/web/ui-auth/template/src/components/__tests__/example.test.tsx +0 -49
  331. package/src/templates/web/ui-auth/template/src/test/setup.ts +0 -74
  332. package/src/templates/web/ui-auth/template/vitest.config.ts +0 -17
  333. package/src/templates/web/ui-auth-payments/template/src/components/__tests__/example.test.tsx +0 -49
  334. package/src/templates/web/ui-auth-payments/template/src/test/setup.ts +0 -74
  335. package/src/templates/web/ui-auth-payments/template/vitest.config.ts +0 -17
  336. package/src/templates/web/ui-auth-payments-ai/template/src/components/__tests__/example.test.tsx +0 -49
  337. package/src/templates/web/ui-auth-payments-ai/template/src/test/setup.ts +0 -74
  338. package/src/templates/web/ui-auth-payments-ai/template/vitest.config.ts +0 -17
  339. package/src/templates/web/ui-auth-payments-ai-rag/template/README.md +0 -434
  340. package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/KnowledgeManager.tsx +0 -642
  341. package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGAnalytics.tsx +0 -466
  342. package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGChatInterface.tsx +0 -393
  343. package/src/templates/web/ui-auth-payments-ai-rag/template/docs/GETTING-STARTED.md +0 -457
  344. package/src/templates/web/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -478
  345. package/src/templates/web/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -250
  346. package/src/templates/web/ui-auth-payments-ai-rag/template/package.json +0 -73
  347. package/src/templates/web/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -622
  348. package/src/templates/web/ui-auth-payments-ai-rag/template/src/app/ai/page.tsx +0 -396
  349. package/src/templates/web/ui-auth-payments-audio/template/src/components/__tests__/example.test.tsx +0 -49
  350. package/src/templates/web/ui-auth-payments-audio/template/src/test/setup.ts +0 -74
  351. package/src/templates/web/ui-auth-payments-audio/template/vitest.config.ts +0 -17
  352. package/src/templates/web/ui-auth-payments-video/template/src/components/__tests__/example.test.tsx +0 -49
  353. package/src/templates/web/ui-auth-payments-video/template/src/test/setup.ts +0 -74
  354. package/src/templates/web/ui-auth-payments-video/template/vitest.config.ts +0 -17
  355. package/src/templates/web/ui-only/template/.eslintrc.js +0 -8
  356. package/src/templates/web/ui-only/template/src/components/__tests__/example.test.tsx +0 -49
  357. package/src/templates/web/ui-only/template/src/test/setup.ts +0 -74
  358. 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
+ }