@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
@@ -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,
@@ -48,8 +41,6 @@ interface ServiceConfig {
48
41
  }
49
42
 
50
43
  export default function SetupPage() {
51
- const animations = useAnimationTokens()
52
- const glass = useGlassmorphism()
53
44
  const [copiedVar, setCopiedVar] = useState<string | null>(null)
54
45
 
55
46
  const projectName = "{{projectName}}"
@@ -138,7 +129,7 @@ CREATE POLICY "Users can view own subscriptions" ON subscriptions FOR ALL USING
138
129
  {
139
130
  name: "Stripe (Payments)",
140
131
  status: 'required',
141
- icon: <CreditCard className="w-4 h-4" />,
132
+ icon: CreditCard,
142
133
  description: "Payment processing for subscriptions, one-time payments, and billing management.",
143
134
  setupSteps: [
144
135
  {
@@ -226,7 +217,7 @@ try {
226
217
  case 'required': return 'text-red-400'
227
218
  case 'optional': return 'text-yellow-400'
228
219
  case 'configured': return 'text-green-400'
229
- default: return 'text-gray-400'
220
+ default: return 'text-muted-foreground'
230
221
  }
231
222
  }
232
223
 
@@ -240,59 +231,59 @@ try {
240
231
  }
241
232
 
242
233
  return (
243
- <PageTransition type="slide" direction="up" duration={300}>
244
- <main className={`min-h-screen ${glass.background.primary} relative overflow-hidden`}>
245
- <div className={`absolute inset-0 ${glass.background.accent} opacity-30`} />
234
+ <div>
235
+ <main className={`min-h-screen bg-background relative overflow-hidden`}>
236
+ <div className={`absolute inset-0 bg-muted opacity-30`} />
246
237
  <div className="relative z-10">
247
- <MobileContainer className="py-8">
238
+ <div className="max-w-4xl mx-auto px-4">
248
239
  {/* Header */}
249
240
  <div className="flex items-center justify-between mb-8">
250
241
  <div className="flex items-center gap-4">
251
- <Link href="/" className={`${glass.card} ${glass.border} p-2 rounded-xl ${animations.hover.scale}`}>
242
+ <Link href="/" className={`rounded-xl border border-border bg-card p-2 rounded-xl hover:scale-[1.02] transition-transform`}>
252
243
  <ArrowLeft className="w-5 h-5" />
253
244
  </Link>
254
245
  <div>
255
246
  <h1 className="text-2xl font-bold">Setup Guide</h1>
256
- <p className="text-gray-600 dark:text-gray-300">{templateName}</p>
247
+ <p className="text-muted-foreground">{templateName}</p>
257
248
  </div>
258
249
  </div>
259
- <div className={`${glass.card} ${glass.border} px-4 py-2 rounded-xl`}>
250
+ <div className={`rounded-xl border border-border bg-card px-4 py-2 rounded-xl`}>
260
251
  <span className="text-sm font-medium">{projectName}</span>
261
252
  </div>
262
253
  </div>
263
254
 
264
255
  {/* Template Overview */}
265
- <div className={`${glass.card} ${glass.border} rounded-2xl p-6 mb-8`}>
256
+ <div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mb-8`}>
266
257
  <div className="flex items-center gap-4 mb-4">
267
258
  <div className={`w-12 h-12 rounded-xl bg-gradient-to-r from-green-500 to-blue-500 flex items-center justify-center`}>
268
259
  <CreditCard className="w-6 h-6 text-white" />
269
260
  </div>
270
261
  <div>
271
262
  <h2 className="text-xl font-semibold">{templateName}</h2>
272
- <p className="text-gray-600 dark:text-gray-300">{templateDescription}</p>
263
+ <p className="text-muted-foreground">{templateDescription}</p>
273
264
  </div>
274
265
  </div>
275
266
  <div className="grid grid-cols-1 md:grid-cols-3 gap-4 mt-6">
276
267
  <div className="text-center p-4 rounded-xl bg-blue-500/10">
277
268
  <Shield className="w-8 h-8 text-blue-400 mx-auto mb-2" />
278
269
  <div className="font-medium">Authentication</div>
279
- <div className="text-sm text-gray-600 dark:text-gray-300">Secure user management</div>
270
+ <div className="text-sm text-muted-foreground">Secure user management</div>
280
271
  </div>
281
272
  <div className="text-center p-4 rounded-xl bg-green-500/10">
282
273
  <CreditCard className="w-8 h-8 text-green-400 mx-auto mb-2" />
283
274
  <div className="font-medium">Payments</div>
284
- <div className="text-sm text-gray-600 dark:text-gray-300">Stripe integration</div>
275
+ <div className="text-sm text-muted-foreground">Stripe integration</div>
285
276
  </div>
286
277
  <div className="text-center p-4 rounded-xl bg-purple-500/10">
287
278
  <Code2 className="w-8 h-8 text-purple-400 mx-auto mb-2" />
288
279
  <div className="font-medium">Modern UI</div>
289
- <div className="text-sm text-gray-600 dark:text-gray-300">Beautiful components</div>
280
+ <div className="text-sm text-muted-foreground">Beautiful components</div>
290
281
  </div>
291
282
  </div>
292
283
  </div>
293
284
 
294
285
  {/* Quick Start */}
295
- <div className={`${glass.card} ${glass.border} rounded-2xl p-6 mb-8`}>
286
+ <div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mb-8`}>
296
287
  <h3 className="text-lg font-semibold mb-4 flex items-center gap-2">
297
288
  <Zap className="w-5 h-5 text-yellow-400" />
298
289
  Quick Start
@@ -312,21 +303,21 @@ try {
312
303
  </div>
313
304
  <div className="flex items-center gap-3">
314
305
  <CheckCircle className="w-5 h-5 text-green-400" />
315
- <span>4. Run <code className="px-2 py-1 bg-gray-800 rounded text-green-400">npm run dev</code> to start developing</span>
306
+ <span>4. Run <code className="px-2 py-1 bg-card rounded text-green-400">npm run dev</code> to start developing</span>
316
307
  </div>
317
308
  </div>
318
309
  </div>
319
310
 
320
311
  {/* Environment Variables */}
321
- <div className={`${glass.card} ${glass.border} rounded-2xl p-6 mb-8`}>
312
+ <div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mb-8`}>
322
313
  <h3 className="text-lg font-semibold mb-4 flex items-center gap-2">
323
- <Key className="w-5 h-5 text-blue-400" />
314
+ <Key className="w-5 h-5 text-primary" />
324
315
  Environment Variables
325
316
  </h3>
326
- <p className="text-sm text-gray-600 dark:text-gray-300 mb-4">
327
- Copy these to your <code className="px-2 py-1 bg-gray-800 rounded">.env.local</code> file:
317
+ <p className="text-sm text-muted-foreground mb-4">
318
+ Copy these to your <code className="px-2 py-1 bg-card rounded">.env.local</code> file:
328
319
  </p>
329
- <div className="bg-gray-900 rounded-xl p-4 overflow-x-auto">
320
+ <div className="bg-background rounded-xl p-4 overflow-x-auto">
330
321
  <pre className="text-sm text-green-400">
331
322
  {allEnvVars.map(envVar => (
332
323
  `${envVar.name}=${envVar.example}${envVar.required ? ' # Required' : ' # Optional'}`
@@ -337,7 +328,7 @@ try {
337
328
  allEnvVars.map(envVar => `${envVar.name}=${envVar.example}`).join('\n'),
338
329
  'all-env-vars'
339
330
  )}
340
- className="mt-3 flex items-center gap-2 text-xs text-gray-400 hover:text-white transition-colors"
331
+ className="mt-3 flex items-center gap-2 text-xs text-muted-foreground hover:text-white transition-colors"
341
332
  >
342
333
  <Copy className="w-4 h-4" />
343
334
  {copiedVar === 'all-env-vars' ? 'Copied!' : 'Copy all environment variables'}
@@ -348,7 +339,7 @@ try {
348
339
  {/* Services Configuration */}
349
340
  <div className="space-y-6">
350
341
  <h3 className="text-lg font-semibold flex items-center gap-2">
351
- <Settings className="w-5 h-5 text-gray-400" />
342
+ <Settings className="w-5 h-5 text-muted-foreground" />
352
343
  Service Configuration
353
344
  </h3>
354
345
 
@@ -357,10 +348,10 @@ try {
357
348
  const ServiceIcon = service.icon
358
349
 
359
350
  return (
360
- <div key={service.name} className={`${glass.card} ${glass.border} rounded-2xl p-6`}>
351
+ <div key={service.name} className={`rounded-xl border border-border bg-card rounded-2xl p-6`}>
361
352
  <div className="flex items-start justify-between mb-4">
362
353
  <div className="flex items-center gap-3">
363
- <div className={`w-10 h-10 rounded-xl bg-gray-800 flex items-center justify-center`}>
354
+ <div className={`w-10 h-10 rounded-xl bg-card flex items-center justify-center`}>
364
355
  <ServiceIcon className="w-5 h-5 text-white" />
365
356
  </div>
366
357
  <div>
@@ -368,7 +359,7 @@ try {
368
359
  {service.name}
369
360
  <StatusIcon className={`w-4 h-4 ${getStatusColor(service.status)}`} />
370
361
  </h4>
371
- <p className="text-sm text-gray-600 dark:text-gray-300">{service.description}</p>
362
+ <p className="text-sm text-muted-foreground">{service.description}</p>
372
363
  </div>
373
364
  </div>
374
365
  <span className={`px-3 py-1 rounded-full text-xs font-medium ${
@@ -386,28 +377,28 @@ try {
386
377
  <div className="space-y-3">
387
378
  {service.setupSteps.map((step, stepIndex) => (
388
379
  <div key={stepIndex} className="flex gap-3">
389
- <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">
380
+ <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">
390
381
  {stepIndex + 1}
391
382
  </div>
392
383
  <div className="flex-1">
393
384
  <h6 className="font-medium">{step.title}</h6>
394
- <p className="text-sm text-gray-600 dark:text-gray-300">{step.description}</p>
385
+ <p className="text-sm text-muted-foreground">{step.description}</p>
395
386
  {step.link && (
396
387
  <a
397
388
  href={step.link}
398
389
  target="_blank"
399
390
  rel="noopener noreferrer"
400
- className="inline-flex items-center gap-1 text-sm text-blue-400 hover:text-blue-300 mt-1"
391
+ className="inline-flex items-center gap-1 text-sm text-primary hover:text-primary/80 mt-1"
401
392
  >
402
393
  Open Dashboard <ExternalLink className="w-3 h-3" />
403
394
  </a>
404
395
  )}
405
396
  {step.code && (
406
397
  <details className="mt-2">
407
- <summary className="text-sm text-blue-400 cursor-pointer hover:text-blue-300">
398
+ <summary className="text-sm text-primary cursor-pointer hover:text-primary/80">
408
399
  Show code example
409
400
  </summary>
410
- <pre className="bg-gray-900 rounded-lg p-3 mt-2 text-xs overflow-x-auto">
401
+ <pre className="bg-background rounded-lg p-3 mt-2 text-xs overflow-x-auto">
411
402
  <code className="text-green-400">{step.code}</code>
412
403
  </pre>
413
404
  </details>
@@ -423,25 +414,25 @@ try {
423
414
  <h5 className="font-semibold mb-3">Environment Variables:</h5>
424
415
  <div className="space-y-2">
425
416
  {service.envVars.map((envVar, envIndex) => (
426
- <div key={envIndex} className="bg-gray-800/50 rounded-lg p-3">
417
+ <div key={envIndex} className="bg-card/50 rounded-lg p-3">
427
418
  <div className="flex items-center justify-between mb-1">
428
- <code className="text-blue-400 font-mono text-sm">{envVar.name}</code>
419
+ <code className="text-primary font-mono text-sm">{envVar.name}</code>
429
420
  <div className="flex items-center gap-2">
430
421
  <span className={`px-2 py-1 rounded text-xs ${
431
- envVar.required ? 'bg-red-500/20 text-red-400' : 'bg-gray-500/20 text-gray-400'
422
+ envVar.required ? 'bg-red-500/20 text-red-400' : 'bg-muted-foreground/20 text-muted-foreground'
432
423
  }`}>
433
424
  {envVar.required ? 'Required' : 'Optional'}
434
425
  </span>
435
426
  <button
436
427
  onClick={() => copyToClipboard(`${envVar.name}=${envVar.example}`, envVar.name)}
437
- className="p-1 hover:bg-gray-700 rounded transition-colors"
428
+ className="p-1 hover:bg-muted rounded transition-colors"
438
429
  >
439
430
  <Copy className="w-3 h-3" />
440
431
  </button>
441
432
  </div>
442
433
  </div>
443
- <p className="text-xs text-gray-400 mb-2">{envVar.description}</p>
444
- <code className="text-xs text-gray-500 font-mono">{envVar.example}</code>
434
+ <p className="text-xs text-muted-foreground mb-2">{envVar.description}</p>
435
+ <code className="text-xs text-muted-foreground font-mono">{envVar.example}</code>
445
436
  {copiedVar === envVar.name && (
446
437
  <span className="text-xs text-green-400 ml-2">Copied!</span>
447
438
  )}
@@ -455,7 +446,7 @@ try {
455
446
  </div>
456
447
 
457
448
  {/* Additional Resources */}
458
- <div className={`${glass.card} ${glass.border} rounded-2xl p-6 mt-8`}>
449
+ <div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mt-8`}>
459
450
  <h3 className="text-lg font-semibold mb-4 flex items-center gap-2">
460
451
  <BookOpen className="w-5 h-5 text-green-400" />
461
452
  Additional Resources
@@ -463,45 +454,41 @@ try {
463
454
  <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
464
455
  <a
465
456
  href="https://docs.digilogiclabs.com"
466
- className={`${glass.card} ${glass.border} p-4 rounded-xl ${animations.hover.scale} block`}
457
+ className={`rounded-xl border border-border bg-card p-4 rounded-xl hover:scale-[1.02] transition-transform block`}
467
458
  >
468
- <FileText className="w-8 h-8 text-blue-400 mb-2" />
459
+ <FileText className="w-8 h-8 text-primary mb-2" />
469
460
  <h4 className="font-medium">Documentation</h4>
470
- <p className="text-sm text-gray-600 dark:text-gray-300">Complete guides and API reference</p>
461
+ <p className="text-sm text-muted-foreground">Complete guides and API reference</p>
471
462
  </a>
472
463
  <a
473
464
  href="https://github.com/digilogiclabs/examples"
474
- className={`${glass.card} ${glass.border} p-4 rounded-xl ${animations.hover.scale} block`}
465
+ className={`rounded-xl border border-border bg-card p-4 rounded-xl hover:scale-[1.02] transition-transform block`}
475
466
  >
476
467
  <Code2 className="w-8 h-8 text-purple-400 mb-2" />
477
468
  <h4 className="font-medium">Examples</h4>
478
- <p className="text-sm text-gray-600 dark:text-gray-300">Sample projects and code snippets</p>
469
+ <p className="text-sm text-muted-foreground">Sample projects and code snippets</p>
479
470
  </a>
480
471
  </div>
481
472
  </div>
482
473
 
483
474
  {/* Support */}
484
- <div className={`${glass.card} ${glass.border} rounded-2xl p-6 mt-8 text-center`}>
475
+ <div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mt-8 text-center`}>
485
476
  <h3 className="text-lg font-semibold mb-4">Need Help?</h3>
486
- <p className="text-gray-600 dark:text-gray-300 mb-4">
477
+ <p className="text-muted-foreground mb-4">
487
478
  Our community and support team are here to help you get started.
488
479
  </p>
489
480
  <div className="flex justify-center gap-4">
490
- <Button variant="outline" size="sm" asChild>
491
- <a href="https://discord.gg/digilogiclabs" target="_blank" rel="noopener noreferrer">
492
- Join Discord
493
- </a>
494
- </Button>
495
- <Button size="sm" asChild>
496
- <a href="https://docs.digilogiclabs.com/support" target="_blank" rel="noopener noreferrer">
497
- Get Support
498
- </a>
499
- </Button>
481
+ <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">
482
+ Join Discord
483
+ </a>
484
+ <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">
485
+ Get Support
486
+ </a>
500
487
  </div>
501
488
  </div>
502
- </MobileContainer>
489
+ </div>
503
490
  </div>
504
491
  </main>
505
- </PageTransition>
492
+ </div>
506
493
  )
507
494
  }
@@ -2,47 +2,47 @@ import { Card } from '@digilogiclabs/saas-factory-ui'
2
2
 
3
3
  export default function SignupLoading() {
4
4
  return (
5
- <div className="flex items-center justify-center min-h-screen bg-gray-100 dark:bg-gray-900">
5
+ <div className="flex items-center justify-center min-h-screen bg-muted">
6
6
  <Card className="w-full max-w-md p-8">
7
7
  <div className="animate-pulse space-y-6">
8
8
  {/* Title skeleton */}
9
- <div className="h-8 bg-gray-200 dark:bg-gray-700 rounded-md mx-auto w-32"></div>
9
+ <div className="h-8 bg-muted rounded-md mx-auto w-32"></div>
10
10
 
11
11
  {/* Form skeleton */}
12
12
  <div className="space-y-4">
13
13
  {/* Name field */}
14
14
  <div>
15
- <div className="h-4 bg-gray-200 dark:bg-gray-700 rounded w-12 mb-2"></div>
16
- <div className="h-10 bg-gray-200 dark:bg-gray-700 rounded"></div>
15
+ <div className="h-4 bg-muted rounded w-12 mb-2"></div>
16
+ <div className="h-10 bg-muted rounded"></div>
17
17
  </div>
18
18
 
19
19
  {/* Email field */}
20
20
  <div>
21
- <div className="h-4 bg-gray-200 dark:bg-gray-700 rounded w-16 mb-2"></div>
22
- <div className="h-10 bg-gray-200 dark:bg-gray-700 rounded"></div>
21
+ <div className="h-4 bg-muted rounded w-16 mb-2"></div>
22
+ <div className="h-10 bg-muted rounded"></div>
23
23
  </div>
24
24
 
25
25
  {/* Password field */}
26
26
  <div>
27
- <div className="h-4 bg-gray-200 dark:bg-gray-700 rounded w-20 mb-2"></div>
28
- <div className="h-10 bg-gray-200 dark:bg-gray-700 rounded"></div>
27
+ <div className="h-4 bg-muted rounded w-20 mb-2"></div>
28
+ <div className="h-10 bg-muted rounded"></div>
29
29
  </div>
30
30
 
31
31
  {/* Confirm password field */}
32
32
  <div>
33
- <div className="h-4 bg-gray-200 dark:bg-gray-700 rounded w-32 mb-2"></div>
34
- <div className="h-10 bg-gray-200 dark:bg-gray-700 rounded"></div>
33
+ <div className="h-4 bg-muted rounded w-32 mb-2"></div>
34
+ <div className="h-10 bg-muted rounded"></div>
35
35
  </div>
36
36
 
37
37
  {/* Sign up button */}
38
- <div className="h-10 bg-blue-200 dark:bg-blue-800 rounded"></div>
38
+ <div className="h-10 bg-primary/50 rounded"></div>
39
39
 
40
40
  {/* OAuth button */}
41
- <div className="h-10 bg-gray-200 dark:bg-gray-700 rounded"></div>
41
+ <div className="h-10 bg-muted rounded"></div>
42
42
  </div>
43
43
 
44
44
  {/* Sign in link */}
45
- <div className="h-4 bg-gray-200 dark:bg-gray-700 rounded w-44 mx-auto"></div>
45
+ <div className="h-4 bg-muted rounded w-44 mx-auto"></div>
46
46
  </div>
47
47
  </Card>
48
48
  </div>
@@ -1,128 +1,9 @@
1
- 'use client';
2
-
3
- import React, { useState } from 'react';
4
- import { Button, Card, Input, Label } from '@digilogiclabs/saas-factory-ui';
5
- import { useAuth } from '@digilogiclabs/app-sdk';
6
- import { useRouter } from 'next/navigation';
1
+ import { SignupForm } from '@/components/client/signup-form'
7
2
 
8
3
  export default function SignupPage() {
9
- const [email, setEmail] = useState('');
10
- const [password, setPassword] = useState('');
11
- const [confirmPassword, setConfirmPassword] = useState('');
12
- const { signUp, signInWithOAuth, loading, error, user } = useAuth();
13
- const router = useRouter();
14
-
15
- // Redirect if already logged in
16
- React.useEffect(() => {
17
- if (user) {
18
- router.push('/');
19
- }
20
- }, [user, router]);
21
-
22
- const handleSignup = async (e: React.FormEvent) => {
23
- e.preventDefault();
24
-
25
- if (password !== confirmPassword) {
26
- alert('Passwords do not match');
27
- return;
28
- }
29
-
30
- try {
31
- await signUp(email, password);
32
- router.push('/');
33
- } catch (err) {
34
- console.error('Signup error:', err);
35
- }
36
- };
37
-
38
- const handleGoogleSignup = async () => {
39
- try {
40
- await signInWithOAuth('google');
41
- } catch (err) {
42
- console.error('Google signup error:', err);
43
- }
44
- };
45
-
46
- if (loading) {
47
- return (
48
- <div className="flex items-center justify-center min-h-screen bg-gray-100">
49
- <div>Loading...</div>
50
- </div>
51
- );
52
- }
53
-
54
4
  return (
55
- <div className="flex items-center justify-center min-h-screen bg-gray-100">
56
- <Card className="w-full max-w-md p-8">
57
- <h1 className="text-2xl font-bold text-center mb-6">Sign Up</h1>
58
-
59
- {error && (
60
- <div className="mb-4 p-3 bg-red-100 border border-red-400 text-red-700 rounded">
61
- {error.message}
62
- </div>
63
- )}
64
-
65
- <form onSubmit={handleSignup} className="space-y-4">
66
- <div>
67
- <Label htmlFor="email">Email</Label>
68
- <Input
69
- id="email"
70
- type="email"
71
- value={email}
72
- onChange={(e) => setEmail(e.target.value)}
73
- placeholder="Enter your email"
74
- required
75
- disabled={loading}
76
- />
77
- </div>
78
- <div>
79
- <Label htmlFor="password">Password</Label>
80
- <Input
81
- id="password"
82
- type="password"
83
- value={password}
84
- onChange={(e) => setPassword(e.target.value)}
85
- placeholder="Enter your password"
86
- required
87
- disabled={loading}
88
- />
89
- </div>
90
- <div>
91
- <Label htmlFor="confirmPassword">Confirm Password</Label>
92
- <Input
93
- id="confirmPassword"
94
- type="password"
95
- value={confirmPassword}
96
- onChange={(e) => setConfirmPassword(e.target.value)}
97
- placeholder="Confirm your password"
98
- required
99
- disabled={loading}
100
- />
101
- </div>
102
- <Button type="submit" className="w-full" disabled={loading}>
103
- {loading ? 'Signing Up...' : 'Sign Up'}
104
- </Button>
105
- <Button
106
- type="button"
107
- variant="outline"
108
- className="w-full"
109
- onClick={handleGoogleSignup}
110
- disabled={loading}
111
- >
112
- Sign up with Google
113
- </Button>
114
- </form>
115
-
116
- <div className="mt-4 text-center">
117
- <p className="text-sm text-gray-600">
118
- Already have an account?{' '}
119
- <a href="/login" className="text-blue-600 hover:underline">
120
- Sign in
121
- </a>
122
- </p>
123
- </div>
124
- </Card>
5
+ <div className="flex min-h-screen items-center justify-center bg-background px-4">
6
+ <SignupForm />
125
7
  </div>
126
- );
8
+ )
127
9
  }
128
-
@@ -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
+ }