@digilogiclabs/create-saas-app 2.11.0 → 2.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/cli/index.js +1 -1
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/generators/template-generator.d.ts +0 -2
  6. package/dist/generators/template-generator.d.ts.map +1 -1
  7. package/dist/generators/template-generator.js +18 -17
  8. package/dist/generators/template-generator.js.map +1 -1
  9. package/dist/templates/mobile/base/template/App.tsx +7 -4
  10. package/dist/templates/mobile/base/template/app/checkout.tsx +5 -2
  11. package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/_layout.tsx +6 -2
  12. package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/billing.tsx +7 -3
  13. package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/index.tsx +5 -2
  14. package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/profile.tsx +7 -2
  15. package/dist/templates/mobile/ui-auth-payments/template/app/_layout.tsx +2 -4
  16. package/dist/templates/mobile/ui-auth-payments/template/app/auth/login.tsx +6 -3
  17. package/dist/templates/mobile/ui-auth-payments/template/app/auth/signup.tsx +6 -3
  18. package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/_layout.tsx +6 -2
  19. package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/billing.tsx +7 -3
  20. package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/index.tsx +5 -2
  21. package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/profile.tsx +7 -2
  22. package/dist/templates/mobile/ui-auth-payments-ai/template/app/_layout.tsx +2 -4
  23. package/dist/templates/mobile/ui-auth-payments-ai/template/app/auth/login.tsx +6 -3
  24. package/dist/templates/mobile/ui-auth-payments-ai/template/app/auth/signup.tsx +6 -3
  25. package/dist/templates/shared/admin/web/src/components/admin-nav.tsx +3 -3
  26. package/dist/templates/shared/auth/supabase/web/src/lib/auth-session.ts +36 -16
  27. package/dist/templates/shared/auth/supabase/web/src/middleware.ts +6 -0
  28. package/dist/templates/shared/config/web/next.config.mjs +0 -1
  29. package/dist/templates/shared/cookie-consent/web/components/cookie-consent.tsx +5 -5
  30. package/dist/templates/shared/design/web/src/components/ui/button.tsx +56 -0
  31. package/dist/templates/shared/email/web/src/lib/email/client.ts +1 -1
  32. package/dist/templates/shared/error-pages/web/src/app/error.tsx +13 -11
  33. package/dist/templates/shared/error-pages/web/src/app/global-error.tsx +2 -0
  34. package/dist/templates/shared/error-pages/web/src/app/not-found.tsx +6 -6
  35. package/dist/templates/shared/legal/web/src/app/(legal)/privacy/page.tsx +4 -4
  36. package/dist/templates/shared/legal/web/src/app/(legal)/terms/page.tsx +4 -4
  37. package/dist/templates/shared/loading/web/components/skeleton.tsx +4 -4
  38. package/dist/templates/shared/mock/web/.env.local +55 -0
  39. package/dist/templates/shared/mock/web/src/components/mock-auth-provider.tsx +72 -0
  40. package/dist/templates/shared/mock/web/src/components/mock-banner.tsx +29 -0
  41. package/dist/templates/shared/mock/web/src/lib/mock.ts +147 -0
  42. package/dist/templates/shared/payments/web/src/app/api/webhooks/stripe/route.ts +10 -4
  43. package/dist/templates/shared/redis/web/src/lib/redis.ts +1 -1
  44. package/dist/templates/web/ai-platform/template/package.json +0 -1
  45. package/dist/templates/web/ai-platform/template/src/app/chat/page.tsx +5 -2
  46. package/dist/templates/web/ai-platform/template/src/app/playground/page.tsx +5 -2
  47. package/dist/templates/web/ai-platform/template/src/components/providers/app-providers.tsx +2 -5
  48. package/dist/templates/web/base/template/eslint.config.mjs +14 -0
  49. package/dist/templates/web/base/template/src/app/auth/callback/route.ts +1 -1
  50. package/dist/templates/web/base/template/src/app/checkout/page.tsx +76 -103
  51. package/dist/templates/web/base/template/src/app/dashboard/page.tsx +145 -329
  52. package/dist/templates/web/base/template/src/app/layout.tsx +40 -38
  53. package/dist/templates/web/base/template/src/app/login/page.tsx +116 -66
  54. package/dist/templates/web/base/template/src/app/page.tsx +97 -193
  55. package/dist/templates/web/base/template/src/app/settings/page.tsx +154 -0
  56. package/dist/templates/web/base/template/src/app/signup/page.tsx +117 -66
  57. package/dist/templates/web/base/template/src/components/providers/app-providers.tsx +8 -3
  58. package/dist/templates/web/base/template/src/components/shared/header.tsx +229 -63
  59. package/dist/templates/web/iot-dashboard/template/package.json +0 -1
  60. package/dist/templates/web/iot-dashboard/template/src/components/providers/app-providers.tsx +2 -5
  61. package/dist/templates/web/marketplace/template/package.json +0 -1
  62. package/dist/templates/web/marketplace/template/src/components/providers/app-providers.tsx +2 -5
  63. package/dist/templates/web/micro-saas/template/package.json +0 -1
  64. package/dist/templates/web/micro-saas/template/src/components/providers/app-providers.tsx +2 -5
  65. package/dist/templates/web/ui-auth/template/eslint.config.mjs +14 -0
  66. package/dist/templates/web/ui-auth/template/src/app/checkout/page.tsx +3 -3
  67. package/dist/templates/web/ui-auth/template/src/app/dev-setup/page.tsx +81 -91
  68. package/dist/templates/web/ui-auth/template/src/app/layout.tsx +38 -36
  69. package/dist/templates/web/ui-auth/template/src/app/login/page.tsx +22 -45
  70. package/dist/templates/web/ui-auth/template/src/app/page.tsx +106 -306
  71. package/dist/templates/web/ui-auth/template/src/app/setup/page.tsx +387 -402
  72. package/dist/templates/web/ui-auth/template/src/app/signup/page.tsx +24 -47
  73. package/dist/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +8 -3
  74. package/dist/templates/web/ui-auth/template/src/components/shared/header.tsx +229 -94
  75. package/dist/templates/web/ui-auth-ai/template/src/app/layout.tsx +38 -45
  76. package/dist/templates/web/ui-auth-ai/template/src/app/login/page.tsx +86 -0
  77. package/dist/templates/web/ui-auth-ai/template/src/app/page.tsx +107 -193
  78. package/dist/templates/web/ui-auth-ai/template/src/app/signup/page.tsx +105 -0
  79. package/dist/templates/web/ui-auth-ai/template/src/components/ai/audio-generator.tsx +144 -140
  80. package/dist/templates/web/ui-auth-ai/template/src/components/ai/video-generator.tsx +156 -157
  81. package/dist/templates/web/ui-auth-ai/template/src/components/auth/login-form.tsx +7 -3
  82. package/dist/templates/web/ui-auth-ai/template/src/components/providers/app-providers.tsx +25 -0
  83. package/dist/templates/web/ui-auth-ai/template/src/components/shared/footer.tsx +36 -0
  84. package/dist/templates/web/ui-auth-ai/template/src/components/shared/header.tsx +228 -0
  85. package/dist/templates/web/ui-auth-ai/template/src/components/ui/button.tsx +5 -5
  86. package/dist/templates/web/ui-auth-ai/template/src/components/ui/input.tsx +1 -1
  87. package/dist/templates/web/ui-auth-ai/template/src/components/ui/select.tsx +1 -1
  88. package/dist/templates/web/ui-auth-ai/template/src/components/ui/textarea.tsx +1 -1
  89. package/dist/templates/web/ui-auth-ai/template/src/components/ui/theme-toggle.tsx +34 -0
  90. package/dist/templates/web/ui-auth-ai/template/src/lib/supabase.ts +6 -4
  91. package/dist/templates/web/ui-auth-ai/template/src/providers/auth-provider.tsx +7 -5
  92. package/dist/templates/web/ui-auth-payments/template/src/app/billing/page.tsx +63 -192
  93. package/dist/templates/web/ui-auth-payments/template/src/app/checkout/page.tsx +104 -296
  94. package/dist/templates/web/ui-auth-payments/template/src/app/dashboard/page.tsx +27 -27
  95. package/dist/templates/web/ui-auth-payments/template/src/app/dev-setup/page.tsx +70 -81
  96. package/dist/templates/web/ui-auth-payments/template/src/app/layout.tsx +38 -36
  97. package/dist/templates/web/ui-auth-payments/template/src/app/login/loading.tsx +9 -9
  98. package/dist/templates/web/ui-auth-payments/template/src/app/login/page.tsx +4 -104
  99. package/dist/templates/web/ui-auth-payments/template/src/app/page.tsx +69 -337
  100. package/dist/templates/web/ui-auth-payments/template/src/app/setup/page.tsx +55 -68
  101. package/dist/templates/web/ui-auth-payments/template/src/app/signup/loading.tsx +13 -13
  102. package/dist/templates/web/ui-auth-payments/template/src/app/signup/page.tsx +4 -123
  103. package/dist/templates/web/ui-auth-payments/template/src/components/client/auth-status.tsx +37 -52
  104. package/dist/templates/web/ui-auth-payments/template/src/components/client/login-form.tsx +49 -103
  105. package/dist/templates/web/ui-auth-payments/template/src/components/client/newsletter-signup.tsx +4 -4
  106. package/dist/templates/web/ui-auth-payments/template/src/components/client/signup-form.tsx +60 -140
  107. package/dist/templates/web/ui-auth-payments/template/src/components/providers/app-providers.tsx +25 -28
  108. package/dist/templates/web/ui-auth-payments/template/src/components/shared/header.tsx +229 -230
  109. package/dist/templates/web/ui-auth-payments/template/src/lib/actions/auth.ts +245 -245
  110. package/dist/templates/web/ui-auth-payments/template/src/lib/actions/index.ts +339 -339
  111. package/dist/templates/web/ui-auth-payments-ai/template/src/app/ai/page.tsx +305 -309
  112. package/dist/templates/web/ui-auth-payments-ai/template/src/app/billing/page.tsx +62 -312
  113. package/dist/templates/web/ui-auth-payments-ai/template/src/app/checkout/page.tsx +109 -125
  114. package/dist/templates/web/ui-auth-payments-ai/template/src/app/dashboard/page.tsx +27 -27
  115. package/dist/templates/web/ui-auth-payments-ai/template/src/app/dev-setup/page.tsx +68 -83
  116. package/dist/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +40 -38
  117. package/dist/templates/web/ui-auth-payments-ai/template/src/app/onboarding/page.tsx +20 -20
  118. package/dist/templates/web/ui-auth-payments-ai/template/src/app/page.tsx +140 -394
  119. package/dist/templates/web/ui-auth-payments-ai/template/src/app/settings/page.tsx +28 -27
  120. package/dist/templates/web/ui-auth-payments-ai/template/src/app/setup/page.tsx +51 -66
  121. package/dist/templates/web/ui-auth-payments-ai/template/src/components/client/auth-status.tsx +37 -52
  122. package/dist/templates/web/ui-auth-payments-ai/template/src/components/client/login-form.tsx +50 -79
  123. package/dist/templates/web/ui-auth-payments-ai/template/src/components/client/signup-form.tsx +58 -111
  124. package/dist/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +8 -3
  125. package/dist/templates/web/ui-auth-payments-ai/template/src/components/shared/header.tsx +229 -252
  126. package/dist/templates/web/ui-auth-payments-ai/template/src/lib/actions/auth.ts +245 -245
  127. package/dist/templates/web/ui-auth-payments-audio/template/src/app/billing/page.tsx +63 -192
  128. package/dist/templates/web/ui-auth-payments-audio/template/src/app/checkout/page.tsx +109 -125
  129. package/dist/templates/web/ui-auth-payments-audio/template/src/app/dashboard/page.tsx +27 -27
  130. package/dist/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +40 -38
  131. package/dist/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +122 -385
  132. package/dist/templates/web/ui-auth-payments-audio/template/src/app/setup/page.tsx +340 -344
  133. package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/auth-status.tsx +37 -52
  134. package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/login-form.tsx +49 -103
  135. package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/signup-form.tsx +60 -140
  136. package/dist/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +8 -3
  137. package/dist/templates/web/ui-auth-payments-audio/template/src/components/shared/header.tsx +229 -252
  138. package/dist/templates/web/ui-auth-payments-audio/template/src/lib/actions/auth.ts +3 -3
  139. package/dist/templates/web/ui-auth-payments-video/template/src/app/billing/page.tsx +63 -192
  140. package/dist/templates/web/ui-auth-payments-video/template/src/app/checkout/page.tsx +109 -125
  141. package/dist/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +38 -36
  142. package/dist/templates/web/ui-auth-payments-video/template/src/app/login/page.tsx +9 -109
  143. package/dist/templates/web/ui-auth-payments-video/template/src/app/page.tsx +132 -392
  144. package/dist/templates/web/ui-auth-payments-video/template/src/app/setup/page.tsx +346 -350
  145. package/dist/templates/web/ui-auth-payments-video/template/src/app/signup/page.tsx +9 -128
  146. package/dist/templates/web/ui-auth-payments-video/template/src/components/client/login-form.tsx +90 -0
  147. package/dist/templates/web/ui-auth-payments-video/template/src/components/client/signup-form.tsx +105 -0
  148. package/dist/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +8 -3
  149. package/dist/templates/web/ui-auth-payments-video/template/src/components/shared/header.tsx +229 -246
  150. package/dist/templates/web/ui-only/template/eslint.config.mjs +14 -0
  151. package/dist/templates/web/ui-only/template/src/app/checkout/page.tsx +2 -2
  152. package/dist/templates/web/ui-only/template/src/app/login/page.tsx +69 -63
  153. package/dist/templates/web/ui-only/template/src/app/page.tsx +69 -91
  154. package/dist/templates/web/ui-only/template/src/app/signup/page.tsx +94 -79
  155. package/dist/templates/web/ui-only/template/src/components/providers/app-providers.tsx +1 -6
  156. package/dist/templates/web/ui-only/template/src/components/shared/header.tsx +90 -53
  157. package/dist/templates/web/ui-package-test/template/package.json +19 -23
  158. package/dist/templates/web/ui-package-test/template/postcss.config.mjs +8 -0
  159. package/dist/templates/web/ui-package-test/template/src/app/globals.css +88 -0
  160. package/dist/templates/web/ui-package-test/template/src/app/layout.tsx +27 -0
  161. package/dist/templates/web/ui-package-test/template/src/app/page.tsx +46 -106
  162. package/package.json +1 -1
  163. package/src/templates/mobile/base/template/App.tsx +7 -4
  164. package/src/templates/mobile/base/template/app/checkout.tsx +5 -2
  165. package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/_layout.tsx +6 -2
  166. package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/billing.tsx +7 -3
  167. package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/index.tsx +5 -2
  168. package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/profile.tsx +7 -2
  169. package/src/templates/mobile/ui-auth-payments/template/app/_layout.tsx +2 -4
  170. package/src/templates/mobile/ui-auth-payments/template/app/auth/login.tsx +6 -3
  171. package/src/templates/mobile/ui-auth-payments/template/app/auth/signup.tsx +6 -3
  172. package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/_layout.tsx +6 -2
  173. package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/billing.tsx +7 -3
  174. package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/index.tsx +5 -2
  175. package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/profile.tsx +7 -2
  176. package/src/templates/mobile/ui-auth-payments-ai/template/app/_layout.tsx +2 -4
  177. package/src/templates/mobile/ui-auth-payments-ai/template/app/auth/login.tsx +6 -3
  178. package/src/templates/mobile/ui-auth-payments-ai/template/app/auth/signup.tsx +6 -3
  179. package/src/templates/shared/admin/web/src/components/admin-nav.tsx +3 -3
  180. package/src/templates/shared/auth/supabase/web/src/lib/auth-session.ts +36 -16
  181. package/src/templates/shared/auth/supabase/web/src/middleware.ts +6 -0
  182. package/src/templates/shared/config/web/next.config.mjs +0 -1
  183. package/src/templates/shared/cookie-consent/web/components/cookie-consent.tsx +5 -5
  184. package/src/templates/shared/design/web/src/components/ui/button.tsx +56 -0
  185. package/src/templates/shared/email/web/src/lib/email/client.ts +1 -1
  186. package/src/templates/shared/error-pages/web/src/app/error.tsx +13 -11
  187. package/src/templates/shared/error-pages/web/src/app/global-error.tsx +2 -0
  188. package/src/templates/shared/error-pages/web/src/app/not-found.tsx +6 -6
  189. package/src/templates/shared/legal/web/src/app/(legal)/privacy/page.tsx +4 -4
  190. package/src/templates/shared/legal/web/src/app/(legal)/terms/page.tsx +4 -4
  191. package/src/templates/shared/loading/web/components/skeleton.tsx +4 -4
  192. package/src/templates/shared/mock/web/.env.local +55 -0
  193. package/src/templates/shared/mock/web/src/components/mock-auth-provider.tsx +72 -0
  194. package/src/templates/shared/mock/web/src/components/mock-banner.tsx +29 -0
  195. package/src/templates/shared/mock/web/src/lib/mock.ts +147 -0
  196. package/src/templates/shared/payments/web/src/app/api/webhooks/stripe/route.ts +10 -4
  197. package/src/templates/shared/redis/web/src/lib/redis.ts +1 -1
  198. package/src/templates/web/ai-platform/template/package.json +0 -1
  199. package/src/templates/web/ai-platform/template/src/app/chat/page.tsx +5 -2
  200. package/src/templates/web/ai-platform/template/src/app/playground/page.tsx +5 -2
  201. package/src/templates/web/ai-platform/template/src/components/providers/app-providers.tsx +2 -5
  202. package/src/templates/web/base/template/eslint.config.mjs +14 -0
  203. package/src/templates/web/base/template/src/app/auth/callback/route.ts +1 -1
  204. package/src/templates/web/base/template/src/app/checkout/page.tsx +76 -103
  205. package/src/templates/web/base/template/src/app/dashboard/page.tsx +145 -329
  206. package/src/templates/web/base/template/src/app/layout.tsx +40 -38
  207. package/src/templates/web/base/template/src/app/login/page.tsx +116 -66
  208. package/src/templates/web/base/template/src/app/page.tsx +97 -193
  209. package/src/templates/web/base/template/src/app/settings/page.tsx +154 -0
  210. package/src/templates/web/base/template/src/app/signup/page.tsx +117 -66
  211. package/src/templates/web/base/template/src/components/providers/app-providers.tsx +8 -3
  212. package/src/templates/web/base/template/src/components/shared/header.tsx +229 -63
  213. package/src/templates/web/iot-dashboard/template/package.json +0 -1
  214. package/src/templates/web/iot-dashboard/template/src/components/providers/app-providers.tsx +2 -5
  215. package/src/templates/web/marketplace/template/package.json +0 -1
  216. package/src/templates/web/marketplace/template/src/components/providers/app-providers.tsx +2 -5
  217. package/src/templates/web/micro-saas/template/package.json +0 -1
  218. package/src/templates/web/micro-saas/template/src/components/providers/app-providers.tsx +2 -5
  219. package/src/templates/web/ui-auth/template/eslint.config.mjs +14 -0
  220. package/src/templates/web/ui-auth/template/src/app/checkout/page.tsx +3 -3
  221. package/src/templates/web/ui-auth/template/src/app/dev-setup/page.tsx +81 -91
  222. package/src/templates/web/ui-auth/template/src/app/layout.tsx +38 -36
  223. package/src/templates/web/ui-auth/template/src/app/login/page.tsx +22 -45
  224. package/src/templates/web/ui-auth/template/src/app/page.tsx +106 -306
  225. package/src/templates/web/ui-auth/template/src/app/setup/page.tsx +387 -402
  226. package/src/templates/web/ui-auth/template/src/app/signup/page.tsx +24 -47
  227. package/src/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +8 -3
  228. package/src/templates/web/ui-auth/template/src/components/shared/header.tsx +229 -94
  229. package/src/templates/web/ui-auth-ai/template/src/app/layout.tsx +38 -45
  230. package/src/templates/web/ui-auth-ai/template/src/app/login/page.tsx +86 -0
  231. package/src/templates/web/ui-auth-ai/template/src/app/page.tsx +107 -193
  232. package/src/templates/web/ui-auth-ai/template/src/app/signup/page.tsx +105 -0
  233. package/src/templates/web/ui-auth-ai/template/src/components/ai/audio-generator.tsx +144 -140
  234. package/src/templates/web/ui-auth-ai/template/src/components/ai/video-generator.tsx +156 -157
  235. package/src/templates/web/ui-auth-ai/template/src/components/auth/login-form.tsx +7 -3
  236. package/src/templates/web/ui-auth-ai/template/src/components/providers/app-providers.tsx +25 -0
  237. package/src/templates/web/ui-auth-ai/template/src/components/shared/footer.tsx +36 -0
  238. package/src/templates/web/ui-auth-ai/template/src/components/shared/header.tsx +228 -0
  239. package/src/templates/web/ui-auth-ai/template/src/components/ui/button.tsx +5 -5
  240. package/src/templates/web/ui-auth-ai/template/src/components/ui/input.tsx +1 -1
  241. package/src/templates/web/ui-auth-ai/template/src/components/ui/select.tsx +1 -1
  242. package/src/templates/web/ui-auth-ai/template/src/components/ui/textarea.tsx +1 -1
  243. package/src/templates/web/ui-auth-ai/template/src/components/ui/theme-toggle.tsx +34 -0
  244. package/src/templates/web/ui-auth-ai/template/src/lib/supabase.ts +6 -4
  245. package/src/templates/web/ui-auth-ai/template/src/providers/auth-provider.tsx +7 -5
  246. package/src/templates/web/ui-auth-payments/template/src/app/billing/page.tsx +63 -192
  247. package/src/templates/web/ui-auth-payments/template/src/app/checkout/page.tsx +104 -296
  248. package/src/templates/web/ui-auth-payments/template/src/app/dashboard/page.tsx +27 -27
  249. package/src/templates/web/ui-auth-payments/template/src/app/dev-setup/page.tsx +70 -81
  250. package/src/templates/web/ui-auth-payments/template/src/app/layout.tsx +38 -36
  251. package/src/templates/web/ui-auth-payments/template/src/app/login/loading.tsx +9 -9
  252. package/src/templates/web/ui-auth-payments/template/src/app/login/page.tsx +4 -104
  253. package/src/templates/web/ui-auth-payments/template/src/app/page.tsx +69 -337
  254. package/src/templates/web/ui-auth-payments/template/src/app/setup/page.tsx +55 -68
  255. package/src/templates/web/ui-auth-payments/template/src/app/signup/loading.tsx +13 -13
  256. package/src/templates/web/ui-auth-payments/template/src/app/signup/page.tsx +4 -123
  257. package/src/templates/web/ui-auth-payments/template/src/components/client/auth-status.tsx +37 -52
  258. package/src/templates/web/ui-auth-payments/template/src/components/client/login-form.tsx +49 -103
  259. package/src/templates/web/ui-auth-payments/template/src/components/client/newsletter-signup.tsx +4 -4
  260. package/src/templates/web/ui-auth-payments/template/src/components/client/signup-form.tsx +60 -140
  261. package/src/templates/web/ui-auth-payments/template/src/components/providers/app-providers.tsx +25 -28
  262. package/src/templates/web/ui-auth-payments/template/src/components/shared/header.tsx +229 -230
  263. package/src/templates/web/ui-auth-payments/template/src/lib/actions/auth.ts +245 -245
  264. package/src/templates/web/ui-auth-payments/template/src/lib/actions/index.ts +339 -339
  265. package/src/templates/web/ui-auth-payments-ai/template/src/app/ai/page.tsx +305 -309
  266. package/src/templates/web/ui-auth-payments-ai/template/src/app/billing/page.tsx +62 -312
  267. package/src/templates/web/ui-auth-payments-ai/template/src/app/checkout/page.tsx +109 -125
  268. package/src/templates/web/ui-auth-payments-ai/template/src/app/dashboard/page.tsx +27 -27
  269. package/src/templates/web/ui-auth-payments-ai/template/src/app/dev-setup/page.tsx +68 -83
  270. package/src/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +40 -38
  271. package/src/templates/web/ui-auth-payments-ai/template/src/app/onboarding/page.tsx +20 -20
  272. package/src/templates/web/ui-auth-payments-ai/template/src/app/page.tsx +140 -394
  273. package/src/templates/web/ui-auth-payments-ai/template/src/app/settings/page.tsx +28 -27
  274. package/src/templates/web/ui-auth-payments-ai/template/src/app/setup/page.tsx +51 -66
  275. package/src/templates/web/ui-auth-payments-ai/template/src/components/client/auth-status.tsx +37 -52
  276. package/src/templates/web/ui-auth-payments-ai/template/src/components/client/login-form.tsx +50 -79
  277. package/src/templates/web/ui-auth-payments-ai/template/src/components/client/signup-form.tsx +58 -111
  278. package/src/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +8 -3
  279. package/src/templates/web/ui-auth-payments-ai/template/src/components/shared/header.tsx +229 -252
  280. package/src/templates/web/ui-auth-payments-ai/template/src/lib/actions/auth.ts +245 -245
  281. package/src/templates/web/ui-auth-payments-audio/template/src/app/billing/page.tsx +63 -192
  282. package/src/templates/web/ui-auth-payments-audio/template/src/app/checkout/page.tsx +109 -125
  283. package/src/templates/web/ui-auth-payments-audio/template/src/app/dashboard/page.tsx +27 -27
  284. package/src/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +40 -38
  285. package/src/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +122 -385
  286. package/src/templates/web/ui-auth-payments-audio/template/src/app/setup/page.tsx +340 -344
  287. package/src/templates/web/ui-auth-payments-audio/template/src/components/client/auth-status.tsx +37 -52
  288. package/src/templates/web/ui-auth-payments-audio/template/src/components/client/login-form.tsx +49 -103
  289. package/src/templates/web/ui-auth-payments-audio/template/src/components/client/signup-form.tsx +60 -140
  290. package/src/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +8 -3
  291. package/src/templates/web/ui-auth-payments-audio/template/src/components/shared/header.tsx +229 -252
  292. package/src/templates/web/ui-auth-payments-audio/template/src/lib/actions/auth.ts +3 -3
  293. package/src/templates/web/ui-auth-payments-video/template/src/app/billing/page.tsx +63 -192
  294. package/src/templates/web/ui-auth-payments-video/template/src/app/checkout/page.tsx +109 -125
  295. package/src/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +38 -36
  296. package/src/templates/web/ui-auth-payments-video/template/src/app/login/page.tsx +9 -109
  297. package/src/templates/web/ui-auth-payments-video/template/src/app/page.tsx +132 -392
  298. package/src/templates/web/ui-auth-payments-video/template/src/app/setup/page.tsx +346 -350
  299. package/src/templates/web/ui-auth-payments-video/template/src/app/signup/page.tsx +9 -128
  300. package/src/templates/web/ui-auth-payments-video/template/src/components/client/login-form.tsx +90 -0
  301. package/src/templates/web/ui-auth-payments-video/template/src/components/client/signup-form.tsx +105 -0
  302. package/src/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +8 -3
  303. package/src/templates/web/ui-auth-payments-video/template/src/components/shared/header.tsx +229 -246
  304. package/src/templates/web/ui-only/template/eslint.config.mjs +14 -0
  305. package/src/templates/web/ui-only/template/src/app/checkout/page.tsx +2 -2
  306. package/src/templates/web/ui-only/template/src/app/login/page.tsx +69 -63
  307. package/src/templates/web/ui-only/template/src/app/page.tsx +69 -91
  308. package/src/templates/web/ui-only/template/src/app/signup/page.tsx +94 -79
  309. package/src/templates/web/ui-only/template/src/components/providers/app-providers.tsx +1 -6
  310. package/src/templates/web/ui-only/template/src/components/shared/header.tsx +90 -53
  311. package/src/templates/web/ui-package-test/template/package.json +19 -23
  312. package/src/templates/web/ui-package-test/template/postcss.config.mjs +8 -0
  313. package/src/templates/web/ui-package-test/template/src/app/globals.css +88 -0
  314. package/src/templates/web/ui-package-test/template/src/app/layout.tsx +27 -0
  315. package/src/templates/web/ui-package-test/template/src/app/page.tsx +46 -106
  316. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/README.md +0 -655
  317. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app/(tabs)/ai.tsx +0 -683
  318. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app/_layout.tsx +0 -124
  319. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app.json +0 -74
  320. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/babel.config.js +0 -25
  321. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/docs/MOBILE-SETUP.md +0 -787
  322. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/eas.json +0 -25
  323. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/expo-env.d.ts +0 -3
  324. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -346
  325. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/jest-setup.ts +0 -37
  326. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -180
  327. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/metro.config.js +0 -11
  328. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/package.json +0 -122
  329. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -599
  330. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/tsconfig.json +0 -32
  331. package/dist/templates/web/base/template/.eslintrc.js +0 -8
  332. package/dist/templates/web/base/template/src/components/__tests__/example.test.tsx +0 -49
  333. package/dist/templates/web/base/template/src/test/setup.ts +0 -74
  334. package/dist/templates/web/base/template/vitest.config.ts +0 -17
  335. package/dist/templates/web/ui-auth/template/.eslintrc.js +0 -8
  336. package/dist/templates/web/ui-auth/template/src/components/__tests__/example.test.tsx +0 -49
  337. package/dist/templates/web/ui-auth/template/src/test/setup.ts +0 -74
  338. package/dist/templates/web/ui-auth/template/vitest.config.ts +0 -17
  339. package/dist/templates/web/ui-auth-payments/template/src/components/__tests__/example.test.tsx +0 -49
  340. package/dist/templates/web/ui-auth-payments/template/src/test/setup.ts +0 -74
  341. package/dist/templates/web/ui-auth-payments/template/vitest.config.ts +0 -17
  342. package/dist/templates/web/ui-auth-payments-ai/template/src/components/__tests__/example.test.tsx +0 -49
  343. package/dist/templates/web/ui-auth-payments-ai/template/src/test/setup.ts +0 -74
  344. package/dist/templates/web/ui-auth-payments-ai/template/vitest.config.ts +0 -17
  345. package/dist/templates/web/ui-auth-payments-ai-rag/template/README.md +0 -434
  346. package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/KnowledgeManager.tsx +0 -642
  347. package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGAnalytics.tsx +0 -466
  348. package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGChatInterface.tsx +0 -393
  349. package/dist/templates/web/ui-auth-payments-ai-rag/template/docs/GETTING-STARTED.md +0 -457
  350. package/dist/templates/web/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -478
  351. package/dist/templates/web/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -250
  352. package/dist/templates/web/ui-auth-payments-ai-rag/template/package.json +0 -73
  353. package/dist/templates/web/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -622
  354. package/dist/templates/web/ui-auth-payments-ai-rag/template/src/app/ai/page.tsx +0 -396
  355. package/dist/templates/web/ui-auth-payments-audio/template/src/components/__tests__/example.test.tsx +0 -49
  356. package/dist/templates/web/ui-auth-payments-audio/template/src/test/setup.ts +0 -74
  357. package/dist/templates/web/ui-auth-payments-audio/template/vitest.config.ts +0 -17
  358. package/dist/templates/web/ui-auth-payments-video/template/src/components/__tests__/example.test.tsx +0 -49
  359. package/dist/templates/web/ui-auth-payments-video/template/src/test/setup.ts +0 -74
  360. package/dist/templates/web/ui-auth-payments-video/template/vitest.config.ts +0 -17
  361. package/dist/templates/web/ui-only/template/.eslintrc.js +0 -8
  362. package/dist/templates/web/ui-only/template/src/components/__tests__/example.test.tsx +0 -49
  363. package/dist/templates/web/ui-only/template/src/test/setup.ts +0 -74
  364. package/dist/templates/web/ui-only/template/vitest.config.ts +0 -17
  365. package/src/templates/mobile/ui-auth-payments-ai-rag/template/README.md +0 -655
  366. package/src/templates/mobile/ui-auth-payments-ai-rag/template/app/(tabs)/ai.tsx +0 -683
  367. package/src/templates/mobile/ui-auth-payments-ai-rag/template/app/_layout.tsx +0 -124
  368. package/src/templates/mobile/ui-auth-payments-ai-rag/template/app.json +0 -74
  369. package/src/templates/mobile/ui-auth-payments-ai-rag/template/babel.config.js +0 -25
  370. package/src/templates/mobile/ui-auth-payments-ai-rag/template/docs/MOBILE-SETUP.md +0 -787
  371. package/src/templates/mobile/ui-auth-payments-ai-rag/template/eas.json +0 -25
  372. package/src/templates/mobile/ui-auth-payments-ai-rag/template/expo-env.d.ts +0 -3
  373. package/src/templates/mobile/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -346
  374. package/src/templates/mobile/ui-auth-payments-ai-rag/template/jest-setup.ts +0 -37
  375. package/src/templates/mobile/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -180
  376. package/src/templates/mobile/ui-auth-payments-ai-rag/template/metro.config.js +0 -11
  377. package/src/templates/mobile/ui-auth-payments-ai-rag/template/package.json +0 -122
  378. package/src/templates/mobile/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -599
  379. package/src/templates/mobile/ui-auth-payments-ai-rag/template/tsconfig.json +0 -32
  380. package/src/templates/web/base/template/.eslintrc.js +0 -8
  381. package/src/templates/web/base/template/src/components/__tests__/example.test.tsx +0 -49
  382. package/src/templates/web/base/template/src/test/setup.ts +0 -74
  383. package/src/templates/web/base/template/vitest.config.ts +0 -17
  384. package/src/templates/web/ui-auth/template/.eslintrc.js +0 -8
  385. package/src/templates/web/ui-auth/template/src/components/__tests__/example.test.tsx +0 -49
  386. package/src/templates/web/ui-auth/template/src/test/setup.ts +0 -74
  387. package/src/templates/web/ui-auth/template/vitest.config.ts +0 -17
  388. package/src/templates/web/ui-auth-payments/template/src/components/__tests__/example.test.tsx +0 -49
  389. package/src/templates/web/ui-auth-payments/template/src/test/setup.ts +0 -74
  390. package/src/templates/web/ui-auth-payments/template/vitest.config.ts +0 -17
  391. package/src/templates/web/ui-auth-payments-ai/template/src/components/__tests__/example.test.tsx +0 -49
  392. package/src/templates/web/ui-auth-payments-ai/template/src/test/setup.ts +0 -74
  393. package/src/templates/web/ui-auth-payments-ai/template/vitest.config.ts +0 -17
  394. package/src/templates/web/ui-auth-payments-ai-rag/template/README.md +0 -434
  395. package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/KnowledgeManager.tsx +0 -642
  396. package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGAnalytics.tsx +0 -466
  397. package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGChatInterface.tsx +0 -393
  398. package/src/templates/web/ui-auth-payments-ai-rag/template/docs/GETTING-STARTED.md +0 -457
  399. package/src/templates/web/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -478
  400. package/src/templates/web/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -250
  401. package/src/templates/web/ui-auth-payments-ai-rag/template/package.json +0 -73
  402. package/src/templates/web/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -622
  403. package/src/templates/web/ui-auth-payments-ai-rag/template/src/app/ai/page.tsx +0 -396
  404. package/src/templates/web/ui-auth-payments-audio/template/src/components/__tests__/example.test.tsx +0 -49
  405. package/src/templates/web/ui-auth-payments-audio/template/src/test/setup.ts +0 -74
  406. package/src/templates/web/ui-auth-payments-audio/template/vitest.config.ts +0 -17
  407. package/src/templates/web/ui-auth-payments-video/template/src/components/__tests__/example.test.tsx +0 -49
  408. package/src/templates/web/ui-auth-payments-video/template/src/test/setup.ts +0 -74
  409. package/src/templates/web/ui-auth-payments-video/template/vitest.config.ts +0 -17
  410. package/src/templates/web/ui-only/template/.eslintrc.js +0 -8
  411. package/src/templates/web/ui-only/template/src/components/__tests__/example.test.tsx +0 -49
  412. package/src/templates/web/ui-only/template/src/test/setup.ts +0 -74
  413. package/src/templates/web/ui-only/template/vitest.config.ts +0 -17
@@ -36,10 +36,10 @@ function StatsCard({ title, value, icon: Icon, href }: {
36
36
  <Card className="p-6 hover:shadow-lg transition-shadow">
37
37
  <div className="flex items-center justify-between">
38
38
  <div>
39
- <p className="text-sm font-medium text-gray-600 dark:text-gray-400">{title}</p>
40
- <p className="text-2xl font-bold text-gray-900 dark:text-white">{value}</p>
39
+ <p className="text-sm font-medium text-muted-foreground">{title}</p>
40
+ <p className="text-2xl font-bold text-foreground">{value}</p>
41
41
  </div>
42
- <Icon className="h-8 w-8 text-blue-600 dark:text-blue-400" />
42
+ <Icon className="h-8 w-8 text-primary" />
43
43
  </div>
44
44
  </Card>
45
45
  )
@@ -86,8 +86,8 @@ function UserStatsSkeleton() {
86
86
  {[...Array(4)].map((_, i) => (
87
87
  <Card key={i} className="p-6">
88
88
  <div className="animate-pulse">
89
- <div className="h-4 bg-gray-200 dark:bg-gray-700 rounded w-1/2 mb-2"></div>
90
- <div className="h-8 bg-gray-200 dark:bg-gray-700 rounded w-1/3"></div>
89
+ <div className="h-4 bg-muted rounded w-1/2 mb-2"></div>
90
+ <div className="h-8 bg-muted rounded w-1/3"></div>
91
91
  </div>
92
92
  </Card>
93
93
  ))}
@@ -101,14 +101,14 @@ export default async function DashboardPage() {
101
101
 
102
102
  return (
103
103
  <DashboardLayout>
104
- <div className="min-h-screen bg-gray-50 dark:bg-gray-900">
104
+ <div className="min-h-screen bg-muted">
105
105
  <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
106
106
  {/* Header */}
107
107
  <div className="mb-8" data-tour="overview">
108
- <h1 className="text-3xl font-bold text-gray-900 dark:text-white">
108
+ <h1 className="text-3xl font-bold text-foreground">
109
109
  Welcome back, {user.name || user.email}!
110
110
  </h1>
111
- <p className="text-gray-600 dark:text-gray-300 mt-2">
111
+ <p className="text-muted-foreground mt-2">
112
112
  Here's what's happening with your account today.
113
113
  </p>
114
114
  </div>
@@ -124,10 +124,10 @@ export default async function DashboardPage() {
124
124
  <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-8" data-tour="actions">
125
125
  <Card className="p-6">
126
126
  <div className="flex items-center mb-4">
127
- <User className="h-6 w-6 text-blue-600 dark:text-blue-400 mr-3" />
128
- <h3 className="text-lg font-semibold text-gray-900 dark:text-white">Profile</h3>
127
+ <User className="h-6 w-6 text-primary mr-3" />
128
+ <h3 className="text-lg font-semibold text-foreground">Profile</h3>
129
129
  </div>
130
- <p className="text-gray-600 dark:text-gray-300 mb-4">
130
+ <p className="text-muted-foreground mb-4">
131
131
  Update your personal information and preferences
132
132
  </p>
133
133
  <Link href="/profile">
@@ -137,10 +137,10 @@ export default async function DashboardPage() {
137
137
 
138
138
  <Card className="p-6">
139
139
  <div className="flex items-center mb-4">
140
- <Settings className="h-6 w-6 text-blue-600 dark:text-blue-400 mr-3" />
141
- <h3 className="text-lg font-semibold text-gray-900 dark:text-white">Settings</h3>
140
+ <Settings className="h-6 w-6 text-primary mr-3" />
141
+ <h3 className="text-lg font-semibold text-foreground">Settings</h3>
142
142
  </div>
143
- <p className="text-gray-600 dark:text-gray-300 mb-4">
143
+ <p className="text-muted-foreground mb-4">
144
144
  Configure your account settings and security options
145
145
  </p>
146
146
  <Link href="/settings">
@@ -150,10 +150,10 @@ export default async function DashboardPage() {
150
150
 
151
151
  <Card className="p-6">
152
152
  <div className="flex items-center mb-4">
153
- <CreditCard className="h-6 w-6 text-blue-600 dark:text-blue-400 mr-3" />
154
- <h3 className="text-lg font-semibold text-gray-900 dark:text-white">Billing</h3>
153
+ <CreditCard className="h-6 w-6 text-primary mr-3" />
154
+ <h3 className="text-lg font-semibold text-foreground">Billing</h3>
155
155
  </div>
156
- <p className="text-gray-600 dark:text-gray-300 mb-4">
156
+ <p className="text-muted-foreground mb-4">
157
157
  View your subscription and payment information
158
158
  </p>
159
159
  <Link href="/billing">
@@ -164,28 +164,28 @@ export default async function DashboardPage() {
164
164
 
165
165
  {/* Recent Activity */}
166
166
  <Card className="p-6">
167
- <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Recent Activity</h3>
167
+ <h3 className="text-lg font-semibold text-foreground mb-4">Recent Activity</h3>
168
168
  <div className="space-y-4">
169
- <div className="flex items-center justify-between py-3 border-b border-gray-200 dark:border-gray-700">
169
+ <div className="flex items-center justify-between py-3 border-b border-border">
170
170
  <div className="flex items-center">
171
171
  <div className="w-2 h-2 bg-green-500 rounded-full mr-3"></div>
172
- <span className="text-gray-900 dark:text-white">Account created</span>
172
+ <span className="text-foreground">Account created</span>
173
173
  </div>
174
- <span className="text-sm text-gray-500 dark:text-gray-400">2 days ago</span>
174
+ <span className="text-sm text-muted-foreground">2 days ago</span>
175
175
  </div>
176
- <div className="flex items-center justify-between py-3 border-b border-gray-200 dark:border-gray-700">
176
+ <div className="flex items-center justify-between py-3 border-b border-border">
177
177
  <div className="flex items-center">
178
- <div className="w-2 h-2 bg-blue-500 rounded-full mr-3"></div>
179
- <span className="text-gray-900 dark:text-white">Profile updated</span>
178
+ <div className="w-2 h-2 bg-primary rounded-full mr-3"></div>
179
+ <span className="text-foreground">Profile updated</span>
180
180
  </div>
181
- <span className="text-sm text-gray-500 dark:text-gray-400">1 week ago</span>
181
+ <span className="text-sm text-muted-foreground">1 week ago</span>
182
182
  </div>
183
183
  <div className="flex items-center justify-between py-3">
184
184
  <div className="flex items-center">
185
185
  <div className="w-2 h-2 bg-purple-500 rounded-full mr-3"></div>
186
- <span className="text-gray-900 dark:text-white">Subscription started</span>
186
+ <span className="text-foreground">Subscription started</span>
187
187
  </div>
188
- <span className="text-sm text-gray-500 dark:text-gray-400">2 weeks ago</span>
188
+ <span className="text-sm text-muted-foreground">2 weeks ago</span>
189
189
  </div>
190
190
  </div>
191
191
  </Card>
@@ -3,10 +3,6 @@
3
3
  import {
4
4
  Card,
5
5
  Button,
6
- PageTransition,
7
- MobileContainer,
8
- useAnimationTokens,
9
- useGlassmorphism
10
6
  } from '@digilogiclabs/saas-factory-ui'
11
7
  import {
12
8
  ArrowLeft,
@@ -46,8 +42,6 @@ interface DeploymentOption {
46
42
  }
47
43
 
48
44
  export default function DevSetupPage() {
49
- const animations = useAnimationTokens()
50
- const glass = useGlassmorphism()
51
45
  const [copiedItem, setCopiedItem] = useState<string | null>(null)
52
46
  const [activeTab, setActiveTab] = useState<'claude' | 'deployment'>('claude')
53
47
 
@@ -55,9 +49,9 @@ export default function DevSetupPage() {
55
49
  const templateName = "{{ai.enabled ? 'Full-Stack AI Platform' : 'SaaS Platform'}}"
56
50
  const hasAuth = true
57
51
  const hasPayments = true
58
- const hasAI = "{{ai.enabled}}" === "true"
59
- const hasAudio = "{{ai.hasAudio}}" === "true"
60
- const hasVideo = "{{ai.hasVideo}}" === "true"
52
+ const hasAI = String("{{ai.enabled}}") === "true"
53
+ const hasAudio = String("{{ai.hasAudio}}") === "true"
54
+ const hasVideo = String("{{ai.hasVideo}}") === "true"
61
55
 
62
56
  const copyToClipboard = async (text: string, itemName: string) => {
63
57
  await navigator.clipboard.writeText(text)
@@ -76,7 +70,7 @@ export default function DevSetupPage() {
76
70
  {
77
71
  name: "@digilogiclabs/saas-factory-ui",
78
72
  description: "Modern UI components with glassmorphism and responsive design",
79
- key_exports: ["Button", "Card", "MobileContainer", "PageTransition", "ResponsiveGrid"],
73
+ key_exports: ["Button", "Card", "CardContent", "CardHeader", "CardTitle", "Input", "Label"],
80
74
  docs_link: "https://docs.digilogiclabs.com/packages/ui"
81
75
  },
82
76
  ...(hasPayments ? [{
@@ -201,14 +195,12 @@ ${hasVideo ? '- **video_content**: Generated video files and metadata' : ''}
201
195
 
202
196
  ### Authentication Flow
203
197
  ${hasAuth ? `\`\`\`typescript
204
- import { useAuth } from '@digilogiclabs/app-sdk'
198
+
205
199
 
206
200
  export function ProtectedComponent() {
207
201
  const { user, loading } = useAuth()
208
-
209
202
  if (loading) return <LoadingSpinner />
210
203
  if (!user) return <LoginPrompt />
211
-
212
204
  return <UserContent user={user} />
213
205
  }
214
206
  \`\`\`` : 'Authentication not configured for this template'}
@@ -218,35 +210,29 @@ export function ProtectedComponent() {
218
210
  import {
219
211
  Card,
220
212
  Button,
221
- PageTransition,
222
- useGlassmorphism
223
213
  } from '@digilogiclabs/saas-factory-ui'
224
214
 
225
215
  export function ExampleComponent() {
226
- const glass = useGlassmorphism()
227
-
228
216
  return (
229
- <PageTransition type="fade">
230
- <Card className={\`\${glass.card} \${glass.border}\`}>
217
+ <div>
218
+ <Card className={\`\rounded-xl bg-card \border border-border\`}>
231
219
  <Button variant="default">Action</Button>
232
220
  </Card>
233
- </PageTransition>
221
+ </div>
234
222
  )
235
223
  }
236
224
  \`\`\`
237
225
 
238
226
  ${hasPayments ? `### Payment Integration
239
227
  \`\`\`typescript
240
- import { usePayments } from '@digilogiclabs/app-sdk'
228
+ import { usePayments } from '@/hooks/usePayments'
241
229
 
242
230
  export function CheckoutPage() {
243
231
  const { createCheckoutSession, loading } = usePayments()
244
-
245
232
  const handlePayment = async (priceId: string) => {
246
233
  const { url } = await createCheckoutSession({ priceId })
247
234
  window.location.href = url
248
235
  }
249
-
250
236
  return <PaymentForm onSubmit={handlePayment} />
251
237
  }
252
238
  \`\`\`` : ''}
@@ -261,7 +247,6 @@ export function AIDemo() {
261
247
  provider: 'openai',
262
248
  model: 'gpt-4'
263
249
  }
264
-
265
250
  return (
266
251
  <AIProvider config={aiConfig}>
267
252
  <AITextGenerator
@@ -439,35 +424,35 @@ CMD ["npm", "start"]`
439
424
  ]
440
425
 
441
426
  return (
442
- <PageTransition type="slide" direction="up" duration={300}>
443
- <main className={`min-h-screen ${glass.background.primary} relative overflow-hidden`}>
444
- <div className={`absolute inset-0 ${glass.background.accent} opacity-30`} />
427
+ <div>
428
+ <main className={`min-h-screen bg-background relative overflow-hidden`}>
429
+ <div className={`absolute inset-0 bg-muted opacity-30`} />
445
430
  <div className="relative z-10">
446
- <MobileContainer className="py-8">
431
+ <div className="max-w-4xl mx-auto px-4">
447
432
  {/* Header */}
448
433
  <div className="flex items-center justify-between mb-8">
449
434
  <div className="flex items-center gap-4">
450
- <Link href="/setup" className={`${glass.card} ${glass.border} p-2 rounded-xl ${animations.hover.scale}`}>
435
+ <Link href="/setup" className={`rounded-xl border border-border bg-card p-2 rounded-xl hover:scale-[1.02] transition-transform`}>
451
436
  <ArrowLeft className="w-5 h-5" />
452
437
  </Link>
453
438
  <div>
454
439
  <h1 className="text-2xl font-bold">Development & Deployment</h1>
455
- <p className="text-gray-600 dark:text-gray-300">Claude AI setup and hosting guides</p>
440
+ <p className="text-muted-foreground">Claude AI setup and hosting guides</p>
456
441
  </div>
457
442
  </div>
458
- <div className={`${glass.card} ${glass.border} px-4 py-2 rounded-xl`}>
443
+ <div className={`rounded-xl border border-border bg-card px-4 py-2 rounded-xl`}>
459
444
  <span className="text-sm font-medium">{projectName}</span>
460
445
  </div>
461
446
  </div>
462
447
 
463
448
  {/* Tab Navigation */}
464
- <div className={`${glass.card} ${glass.border} rounded-2xl p-1 mb-8 inline-flex`}>
449
+ <div className={`rounded-xl border border-border bg-card rounded-2xl p-1 mb-8 inline-flex`}>
465
450
  <button
466
451
  onClick={() => setActiveTab('claude')}
467
452
  className={`px-4 py-2 rounded-xl text-sm font-medium transition-all duration-200 ${
468
453
  activeTab === 'claude'
469
454
  ? 'bg-purple-500 text-white shadow-lg'
470
- : 'text-gray-600 dark:text-gray-300 hover:bg-white/10'
455
+ : 'text-muted-foreground hover:bg-white/10'
471
456
  }`}
472
457
  >
473
458
  <Bot className="w-4 h-4 inline mr-2" />
@@ -477,8 +462,8 @@ CMD ["npm", "start"]`
477
462
  onClick={() => setActiveTab('deployment')}
478
463
  className={`px-4 py-2 rounded-xl text-sm font-medium transition-all duration-200 ${
479
464
  activeTab === 'deployment'
480
- ? 'bg-blue-500 text-white shadow-lg'
481
- : 'text-gray-600 dark:text-gray-300 hover:bg-white/10'
465
+ ? 'bg-primary text-primary-foreground shadow-lg'
466
+ : 'text-muted-foreground hover:bg-white/10'
482
467
  }`}
483
468
  >
484
469
  <Rocket className="w-4 h-4 inline mr-2" />
@@ -489,14 +474,14 @@ CMD ["npm", "start"]`
489
474
  {activeTab === 'claude' && (
490
475
  <>
491
476
  {/* Claude AI Development Setup */}
492
- <div className={`${glass.card} ${glass.border} rounded-2xl p-6 mb-8`}>
477
+ <div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mb-8`}>
493
478
  <div className="flex items-center gap-4 mb-6">
494
479
  <div className={`w-12 h-12 rounded-xl bg-gradient-to-r from-purple-500 to-blue-500 flex items-center justify-center`}>
495
480
  <Bot className="w-6 h-6 text-white" />
496
481
  </div>
497
482
  <div>
498
483
  <h2 className="text-xl font-semibold">Claude AI Development Setup</h2>
499
- <p className="text-gray-600 dark:text-gray-300">Supercharge your development workflow with AI assistance</p>
484
+ <p className="text-muted-foreground">Supercharge your development workflow with AI assistance</p>
500
485
  </div>
501
486
  </div>
502
487
 
@@ -504,17 +489,17 @@ CMD ["npm", "start"]`
504
489
  <div className="text-center p-4 rounded-xl bg-purple-500/10">
505
490
  <Terminal className="w-8 h-8 text-purple-400 mx-auto mb-2" />
506
491
  <div className="font-medium">Claude CLI</div>
507
- <div className="text-sm text-gray-600 dark:text-gray-300">Command-line AI assistant</div>
492
+ <div className="text-sm text-muted-foreground">Command-line AI assistant</div>
508
493
  </div>
509
- <div className="text-center p-4 rounded-xl bg-blue-500/10">
510
- <FileText className="w-8 h-8 text-blue-400 mx-auto mb-2" />
494
+ <div className="text-center p-4 rounded-xl bg-primary/10">
495
+ <FileText className="w-8 h-8 text-primary mx-auto mb-2" />
511
496
  <div className="font-medium">Smart Context</div>
512
- <div className="text-sm text-gray-600 dark:text-gray-300">Project-aware assistance</div>
497
+ <div className="text-sm text-muted-foreground">Project-aware assistance</div>
513
498
  </div>
514
499
  <div className="text-center p-4 rounded-xl bg-green-500/10">
515
500
  <Zap className="w-8 h-8 text-green-400 mx-auto mb-2" />
516
501
  <div className="font-medium">Auto-Setup</div>
517
- <div className="text-sm text-gray-600 dark:text-gray-300">Generated configuration</div>
502
+ <div className="text-sm text-muted-foreground">Generated configuration</div>
518
503
  </div>
519
504
  </div>
520
505
 
@@ -526,14 +511,14 @@ CMD ["npm", "start"]`
526
511
  </div>
527
512
  <div className="flex-1">
528
513
  <h3 className="font-semibold mb-2">Install Claude CLI</h3>
529
- <p className="text-sm text-gray-600 dark:text-gray-300 mb-3">
514
+ <p className="text-sm text-muted-foreground mb-3">
530
515
  Install the Claude CLI to get AI assistance directly in your terminal
531
516
  </p>
532
- <div className="bg-gray-900 rounded-xl p-4">
517
+ <div className="bg-background rounded-xl p-4">
533
518
  <pre className="text-green-400 text-sm">npm install -g @anthropic-ai/claude-cli</pre>
534
519
  <button
535
520
  onClick={() => copyToClipboard('npm install -g @anthropic-ai/claude-cli', 'claude-install')}
536
- className="mt-2 flex items-center gap-2 text-xs text-gray-400 hover:text-white transition-colors"
521
+ className="mt-2 flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground transition-colors"
537
522
  >
538
523
  <Copy className="w-3 h-3" />
539
524
  {copiedItem === 'claude-install' ? 'Copied!' : 'Copy command'}
@@ -549,16 +534,16 @@ CMD ["npm", "start"]`
549
534
  </div>
550
535
  <div className="flex-1">
551
536
  <h3 className="font-semibold mb-2">Create .claude Configuration</h3>
552
- <p className="text-sm text-gray-600 dark:text-gray-300 mb-3">
537
+ <p className="text-sm text-muted-foreground mb-3">
553
538
  Create a .claude file in your project root with this optimized configuration
554
539
  </p>
555
- <div className="bg-gray-900 rounded-xl p-4 overflow-x-auto">
540
+ <div className="bg-background rounded-xl p-4 overflow-x-auto">
556
541
  <pre className="text-green-400 text-xs">
557
542
  {JSON.stringify(claudeConfig, null, 2)}
558
543
  </pre>
559
544
  <button
560
545
  onClick={() => copyToClipboard(JSON.stringify(claudeConfig, null, 2), 'claude-config')}
561
- className="mt-2 flex items-center gap-2 text-xs text-gray-400 hover:text-white transition-colors"
546
+ className="mt-2 flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground transition-colors"
562
547
  >
563
548
  <Copy className="w-3 h-3" />
564
549
  {copiedItem === 'claude-config' ? 'Copied!' : 'Copy .claude configuration'}
@@ -574,18 +559,18 @@ CMD ["npm", "start"]`
574
559
  </div>
575
560
  <div className="flex-1">
576
561
  <h3 className="font-semibold mb-2">Create Context Documentation</h3>
577
- <p className="text-sm text-gray-600 dark:text-gray-300 mb-3">
562
+ <p className="text-sm text-muted-foreground mb-3">
578
563
  Create a context.md file with comprehensive project documentation
579
564
  </p>
580
565
  <details className="mb-3">
581
- <summary className="text-sm text-blue-400 cursor-pointer hover:text-blue-300">
566
+ <summary className="text-sm text-primary cursor-pointer hover:text-primary/80">
582
567
  Show context.md content
583
568
  </summary>
584
- <div className="bg-gray-900 rounded-xl p-4 mt-2 overflow-x-auto max-h-64">
569
+ <div className="bg-background rounded-xl p-4 mt-2 overflow-x-auto max-h-64">
585
570
  <pre className="text-green-400 text-xs whitespace-pre-wrap">{contextContent}</pre>
586
571
  <button
587
572
  onClick={() => copyToClipboard(contextContent, 'context-content')}
588
- className="mt-2 flex items-center gap-2 text-xs text-gray-400 hover:text-white transition-colors"
573
+ className="mt-2 flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground transition-colors"
589
574
  >
590
575
  <Copy className="w-3 h-3" />
591
576
  {copiedItem === 'context-content' ? 'Copied!' : 'Copy context.md content'}
@@ -602,20 +587,20 @@ CMD ["npm", "start"]`
602
587
  </div>
603
588
  <div className="flex-1">
604
589
  <h3 className="font-semibold mb-2">Start Using Claude AI</h3>
605
- <p className="text-sm text-gray-600 dark:text-gray-300 mb-3">
590
+ <p className="text-sm text-muted-foreground mb-3">
606
591
  Common commands to supercharge your development workflow
607
592
  </p>
608
593
  <div className="space-y-3">
609
- <div className="bg-gray-900 rounded-lg p-3">
610
- <div className="text-blue-400 text-sm mb-1">Generate new component:</div>
594
+ <div className="bg-background rounded-lg p-3">
595
+ <div className="text-primary text-sm mb-1">Generate new component:</div>
611
596
  <code className="text-green-400 text-xs">claude &quot;Create a new user profile component with glassmorphism styling&quot;</code>
612
597
  </div>
613
- <div className="bg-gray-900 rounded-lg p-3">
614
- <div className="text-blue-400 text-sm mb-1">Debug issues:</div>
598
+ <div className="bg-background rounded-lg p-3">
599
+ <div className="text-primary text-sm mb-1">Debug issues:</div>
615
600
  <code className="text-green-400 text-xs">claude &quot;Help me debug this authentication error&quot;</code>
616
601
  </div>
617
- <div className="bg-gray-900 rounded-lg p-3">
618
- <div className="text-blue-400 text-sm mb-1">Add features:</div>
602
+ <div className="bg-background rounded-lg p-3">
603
+ <div className="text-primary text-sm mb-1">Add features:</div>
619
604
  <code className="text-green-400 text-xs">claude &quot;Add a dark mode toggle to the header component&quot;</code>
620
605
  </div>
621
606
  </div>
@@ -625,25 +610,25 @@ CMD ["npm", "start"]`
625
610
  </div>
626
611
 
627
612
  {/* Package Documentation Quick Reference */}
628
- <div className={`${glass.card} ${glass.border} rounded-2xl p-6 mb-8`}>
613
+ <div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mb-8`}>
629
614
  <h3 className="text-lg font-semibold mb-4 flex items-center gap-2">
630
- <Book className="w-5 h-5 text-blue-400" />
615
+ <Book className="w-5 h-5 text-primary" />
631
616
  Package Documentation Quick Reference
632
617
  </h3>
633
618
  <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
634
619
  {packageDocs.map((pkg, index) => (
635
- <div key={index} className={`${glass.card} ${glass.border} rounded-xl p-4`}>
620
+ <div key={index} className={`rounded-xl border border-border bg-card rounded-xl p-4`}>
636
621
  <h4 className="font-semibold text-sm mb-2">{pkg.name}</h4>
637
- <p className="text-xs text-gray-600 dark:text-gray-300 mb-3">{pkg.description}</p>
622
+ <p className="text-xs text-muted-foreground mb-3">{pkg.description}</p>
638
623
  <div className="text-xs">
639
- <div className="text-blue-400 mb-1">Key Exports:</div>
640
- <div className="text-gray-500">{pkg.key_exports.join(', ')}</div>
624
+ <div className="text-primary mb-1">Key Exports:</div>
625
+ <div className="text-muted-foreground">{pkg.key_exports.join(', ')}</div>
641
626
  </div>
642
627
  <a
643
628
  href={pkg.docs_link}
644
629
  target="_blank"
645
630
  rel="noopener noreferrer"
646
- className="inline-flex items-center gap-1 text-xs text-blue-400 hover:text-blue-300 mt-2"
631
+ className="inline-flex items-center gap-1 text-xs text-primary hover:text-primary/80 mt-2"
647
632
  >
648
633
  View Docs <ExternalLink className="w-3 h-3" />
649
634
  </a>
@@ -663,10 +648,10 @@ CMD ["npm", "start"]`
663
648
  {deploymentOptions.map((option, index) => {
664
649
  const OptionIcon = option.icon
665
650
  return (
666
- <div key={index} className={`${glass.card} ${glass.border} rounded-2xl p-6`}>
651
+ <div key={index} className={`rounded-xl border border-border bg-card rounded-2xl p-6`}>
667
652
  <div className="flex items-start justify-between mb-4">
668
653
  <div className="flex items-center gap-4">
669
- <div className={`w-12 h-12 rounded-xl bg-gray-800 flex items-center justify-center`}>
654
+ <div className={`w-12 h-12 rounded-xl bg-card flex items-center justify-center`}>
670
655
  <OptionIcon className="w-6 h-6 text-white" />
671
656
  </div>
672
657
  <div>
@@ -680,8 +665,8 @@ CMD ["npm", "start"]`
680
665
  {option.complexity}
681
666
  </span>
682
667
  </h3>
683
- <p className="text-sm text-gray-600 dark:text-gray-300">{option.description}</p>
684
- <div className="text-xs text-blue-400 mt-1">⏱️ {option.timeEstimate}</div>
668
+ <p className="text-sm text-muted-foreground">{option.description}</p>
669
+ <div className="text-xs text-primary mt-1">⏱️ {option.timeEstimate}</div>
685
670
  </div>
686
671
  </div>
687
672
  </div>
@@ -705,14 +690,14 @@ CMD ["npm", "start"]`
705
690
  <div className="space-y-3">
706
691
  {option.steps.map((step, stepIndex) => (
707
692
  <div key={stepIndex} className="flex gap-3">
708
- <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">
693
+ <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">
709
694
  {stepIndex + 1}
710
695
  </div>
711
696
  <div className="flex-1">
712
697
  <h5 className="font-medium">{step.title}</h5>
713
- <p className="text-sm text-gray-600 dark:text-gray-300 mb-2">{step.description}</p>
698
+ <p className="text-sm text-muted-foreground mb-2">{step.description}</p>
714
699
  {step.code && (
715
- <div className="bg-gray-900 rounded-lg p-3 mt-2">
700
+ <div className="bg-background rounded-lg p-3 mt-2">
716
701
  <pre className="text-green-400 text-xs whitespace-pre-wrap">{step.code}</pre>
717
702
  </div>
718
703
  )}
@@ -721,7 +706,7 @@ CMD ["npm", "start"]`
721
706
  href={step.link}
722
707
  target="_blank"
723
708
  rel="noopener noreferrer"
724
- className="inline-flex items-center gap-1 text-sm text-blue-400 hover:text-blue-300 mt-2"
709
+ className="inline-flex items-center gap-1 text-sm text-primary hover:text-primary/80 mt-2"
725
710
  >
726
711
  Learn More <ExternalLink className="w-3 h-3" />
727
712
  </a>
@@ -737,7 +722,7 @@ CMD ["npm", "start"]`
737
722
  </div>
738
723
 
739
724
  {/* Pre-Deployment Checklist */}
740
- <div className={`${glass.card} ${glass.border} rounded-2xl p-6 mt-8`}>
725
+ <div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mt-8`}>
741
726
  <h3 className="text-lg font-semibold mb-4 flex items-center gap-2">
742
727
  <CheckCircle className="w-5 h-5 text-green-400" />
743
728
  Pre-Deployment Checklist
@@ -759,11 +744,11 @@ CMD ["npm", "start"]`
759
744
  )}
760
745
  <div className="flex items-center gap-3">
761
746
  <CheckCircle className="w-5 h-5 text-green-400" />
762
- <span>Build succeeds locally: <code className="px-2 py-1 bg-gray-800 rounded">npm run build</code></span>
747
+ <span>Build succeeds locally: <code className="px-2 py-1 bg-card rounded">npm run build</code></span>
763
748
  </div>
764
749
  <div className="flex items-center gap-3">
765
750
  <CheckCircle className="w-5 h-5 text-green-400" />
766
- <span>Tests pass: <code className="px-2 py-1 bg-gray-800 rounded">npm run test</code></span>
751
+ <span>Tests pass: <code className="px-2 py-1 bg-card rounded">npm run test</code></span>
767
752
  </div>
768
753
  <div className="flex items-center gap-3">
769
754
  <CheckCircle className="w-5 h-5 text-green-400" />
@@ -775,27 +760,27 @@ CMD ["npm", "start"]`
775
760
  )}
776
761
 
777
762
  {/* Support Section */}
778
- <div className={`${glass.card} ${glass.border} rounded-2xl p-6 mt-8 text-center`}>
763
+ <div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mt-8 text-center`}>
779
764
  <h3 className="text-lg font-semibold mb-4">Need Help?</h3>
780
- <p className="text-gray-600 dark:text-gray-300 mb-4">
765
+ <p className="text-muted-foreground mb-4">
781
766
  Our community and support team are here to help with development and deployment.
782
767
  </p>
783
768
  <div className="flex justify-center gap-4">
784
- <Button variant="outline" size="sm" asChild>
769
+ <Button variant="outline" size="sm">
785
770
  <a href="https://discord.gg/digilogiclabs" target="_blank" rel="noopener noreferrer">
786
771
  Join Discord
787
772
  </a>
788
773
  </Button>
789
- <Button size="sm" asChild>
774
+ <Button size="sm">
790
775
  <a href="https://docs.digilogiclabs.com" target="_blank" rel="noopener noreferrer">
791
776
  View Docs
792
777
  </a>
793
778
  </Button>
794
779
  </div>
795
780
  </div>
796
- </MobileContainer>
781
+ </div>
797
782
  </div>
798
783
  </main>
799
- </PageTransition>
784
+ </div>
800
785
  )
801
786
  }
@@ -1,38 +1,40 @@
1
- import type { Metadata } from 'next'
2
- import { Inter } from 'next/font/google'
3
- import './globals.css'
4
- import { AppProviders } from '@/components/providers/app-providers'
5
- import { Header } from '@/components/shared/header'
6
- import { Footer } from '@/components/shared/footer'
7
-
8
- const inter = Inter({ subsets: ['latin'] })
9
-
10
- export const metadata: Metadata = {
11
- title: '{{titleCaseName}}',
12
- description: '{{description}}',
13
- }
14
-
15
- export default function RootLayout({
16
- children,
17
- }: {
18
- children: React.ReactNode
19
- }) {
20
- return (
21
- <html lang="en" suppressHydrationWarning>
22
- <body className={inter.className}>
23
- <AppProviders>
24
- <div className="min-h-screen flex flex-col">
25
- <a href="#main-content" className="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-[90] focus:px-4 focus:py-2 focus:bg-primary focus:text-primary-foreground focus:rounded-lg focus:outline-none">
26
- Skip to content
27
- </a>
28
- <Header />
29
- <main id="main-content" className="flex-1">
30
- {children}
31
- </main>
32
- <Footer />
33
- </div>
34
- </AppProviders>
35
- </body>
36
- </html>
37
- )
38
- }
1
+ import type { Metadata } from 'next'
2
+ import { Inter } from 'next/font/google'
3
+ import './globals.css'
4
+ import { AppProviders } from '@/components/providers/app-providers'
5
+ import { Header } from '@/components/shared/header'
6
+ import { MockBanner } from '@/components/mock-banner'
7
+ import { Footer } from '@/components/shared/footer'
8
+
9
+ const inter = Inter({ subsets: ['latin'] })
10
+
11
+ export const metadata: Metadata = {
12
+ title: '{{titleCaseName}}',
13
+ description: '{{description}}',
14
+ }
15
+
16
+ export default function RootLayout({
17
+ children,
18
+ }: {
19
+ children: React.ReactNode
20
+ }) {
21
+ return (
22
+ <html lang="en" suppressHydrationWarning>
23
+ <body className={inter.className}>
24
+ <AppProviders>
25
+ <MockBanner />
26
+ <div className="min-h-screen flex flex-col">
27
+ <a href="#main-content" className="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-[90] focus:px-4 focus:py-2 focus:bg-primary focus:text-primary-foreground focus:rounded-lg focus:outline-none">
28
+ Skip to content
29
+ </a>
30
+ <Header />
31
+ <main id="main-content" className="flex-1">
32
+ {children}
33
+ </main>
34
+ <Footer />
35
+ </div>
36
+ </AppProviders>
37
+ </body>
38
+ </html>
39
+ )
40
+ }