@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
@@ -1,53 +1,90 @@
1
- 'use client';
2
-
3
- import React from 'react';
4
- import Link from 'next/link';
5
- import { LogOut } from 'lucide-react';
6
- import { ThemeToggle } from '../ui/theme-toggle';
7
-
8
- export function Header() {
9
- const user = null; // Placeholder for auth state
10
-
11
- const handleSignOut = () => {
12
- alert('Sign out functionality requires @digilogiclabs/saas-factory-auth package');
13
- };
14
-
15
- return (
16
- <header className="bg-white dark:bg-gray-800 shadow-md">
17
- <div className="container mx-auto px-4 py-4 flex justify-between items-center">
18
- <Link href="/" className="text-2xl font-bold text-gray-900 dark:text-white">
19
- {{titleCaseName}}
20
- </Link>
21
- <nav className="flex items-center gap-4">
22
- <ThemeToggle />
23
- {user ? (
24
- <>
25
- <Link href="/dashboard" className="text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white">
26
- Dashboard
27
- </Link>
28
- <button
29
- onClick={handleSignOut}
30
- className="p-2 text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white"
31
- >
32
- <LogOut className="h-5 w-5" />
33
- </button>
34
- </>
35
- ) : (
36
- <>
37
- <Link href="/login" className="text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white">
38
- Login
39
- </Link>
40
- <Link
41
- href="/signup"
42
- className="px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700"
43
- >
44
- Sign Up
45
- </Link>
46
- </>
47
- )}
48
- </nav>
49
- </div>
50
- </header>
51
- );
52
- }
53
-
1
+ 'use client';
2
+
3
+ import { useState } from 'react';
4
+ import Link from 'next/link';
5
+ import { usePathname } from 'next/navigation';
6
+ import { ThemeToggle } from '../ui/theme-toggle';
7
+ import { Menu, X } from 'lucide-react';
8
+
9
+ const NAV_LINKS = [
10
+ { href: '/login', label: 'Sign In' },
11
+ { href: '/signup', label: 'Sign Up', primary: true },
12
+ ];
13
+
14
+ export function Header() {
15
+ const [mobileOpen, setMobileOpen] = useState(false);
16
+ const pathname = usePathname();
17
+
18
+ const isActive = (href: string) =>
19
+ pathname === href || (href !== '/' && pathname.startsWith(href));
20
+
21
+ return (
22
+ <header className="sticky top-0 z-50 border-b border-border bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60">
23
+ <div className="mx-auto flex h-14 max-w-6xl items-center px-4">
24
+ {/* Logo */}
25
+ <Link href="/" className="mr-auto text-lg font-bold text-foreground">
26
+ {'{{titleCaseName}}'}
27
+ </Link>
28
+
29
+ {/* Desktop nav */}
30
+ <div className="hidden items-center gap-2 md:flex">
31
+ <ThemeToggle />
32
+ {NAV_LINKS.map((link) => (
33
+ <Link
34
+ key={link.href}
35
+ href={link.href}
36
+ className={
37
+ link.primary
38
+ ? 'rounded-md bg-primary px-3 py-1.5 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors'
39
+ : `rounded-md px-3 py-1.5 text-sm transition-colors ${
40
+ isActive(link.href)
41
+ ? 'text-primary font-medium'
42
+ : 'text-foreground hover:bg-muted'
43
+ }`
44
+ }
45
+ >
46
+ {link.label}
47
+ </Link>
48
+ ))}
49
+ </div>
50
+
51
+ {/* Mobile */}
52
+ <div className="flex items-center gap-2 md:hidden">
53
+ <ThemeToggle />
54
+ <button
55
+ className="inline-flex items-center justify-center rounded-md p-2 text-muted-foreground hover:text-foreground hover:bg-muted"
56
+ onClick={() => setMobileOpen(!mobileOpen)}
57
+ aria-label="Toggle menu"
58
+ >
59
+ {mobileOpen ? <X className="h-5 w-5" /> : <Menu className="h-5 w-5" />}
60
+ </button>
61
+ </div>
62
+ </div>
63
+
64
+ {/* Mobile overlay */}
65
+ {mobileOpen && (
66
+ <>
67
+ <div className="fixed inset-0 top-14 z-40 bg-background/80 backdrop-blur-sm md:hidden" onClick={() => setMobileOpen(false)} />
68
+ <div className="fixed inset-x-0 top-14 z-50 border-b border-border bg-background shadow-lg md:hidden">
69
+ <div className="flex flex-col gap-1 px-4 py-3">
70
+ {NAV_LINKS.map((link) => (
71
+ <Link
72
+ key={link.href}
73
+ href={link.href}
74
+ onClick={() => setMobileOpen(false)}
75
+ className={`rounded-md px-3 py-2.5 text-sm transition-colors ${
76
+ isActive(link.href)
77
+ ? 'bg-primary/10 text-primary font-medium'
78
+ : 'text-muted-foreground hover:bg-muted hover:text-foreground'
79
+ }`}
80
+ >
81
+ {link.label}
82
+ </Link>
83
+ ))}
84
+ </div>
85
+ </div>
86
+ </>
87
+ )}
88
+ </header>
89
+ );
90
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "{{packageName}}",
3
3
  "version": "0.1.0",
4
- "description": "{{description}} (with UI Package v0.18.0)",
4
+ "description": "{{description}} UI package test app",
5
5
  "private": true,
6
6
  "scripts": {
7
7
  "dev": "next dev",
@@ -11,32 +11,28 @@
11
11
  "type-check": "tsc --noEmit"
12
12
  },
13
13
  "dependencies": {
14
- "next": "15.4.5",
15
- "react": "19.1.0",
16
- "react-dom": "19.1.0",
17
- "@digilogiclabs/saas-factory-ui": "^1.4.0",
18
- "tailwindcss": "^3.4.0",
19
- "autoprefixer": "^10.4.16",
20
- "postcss": "^8.4.31",
21
- "clsx": "^2.0.0",
14
+ "next": "^15.5.0",
15
+ "react": "^19.0.0",
16
+ "react-dom": "^19.0.0",
17
+ "@digilogiclabs/saas-factory-ui": "^1.8.1",
18
+ "tailwindcss": "^4.1.0",
19
+ "@tailwindcss/postcss": "^4.1.0",
20
+ "clsx": "^2.1.0",
22
21
  "class-variance-authority": "^0.7.0",
23
- "tailwind-merge": "^2.0.0",
24
- "next-themes": "^0.2.1",
25
- "lucide-react": "^0.292.0"
22
+ "tailwind-merge": "^2.6.0",
23
+ "next-themes": "^0.4.0",
24
+ "lucide-react": "^0.460.0"
26
25
  },
27
26
  "devDependencies": {
28
- "typescript": "^5.3.0",
29
- "@types/node": "^20.10.0",
30
- "@types/react": "^18.2.45",
31
- "@types/react-dom": "^18.2.18",
32
- "eslint": "^8.55.0",
33
- "eslint-config-next": "15.4.5",
34
- "prettier": "^3.1.0",
35
- "prettier-plugin-tailwindcss": "^0.5.7",
36
- "@typescript-eslint/eslint-plugin": "^6.14.0",
37
- "@typescript-eslint/parser": "^6.14.0"
27
+ "typescript": "^5.7.0",
28
+ "@types/node": "^22.0.0",
29
+ "@types/react": "^19.0.0",
30
+ "@types/react-dom": "^19.0.0",
31
+ "eslint": "^9.0.0",
32
+ "eslint-config-next": "^15.0.0",
33
+ "prettier": "^3.4.0"
38
34
  },
39
35
  "engines": {
40
- "node": ">=18.0.0"
36
+ "node": ">=20.0.0"
41
37
  }
42
38
  }
@@ -0,0 +1,8 @@
1
+ /** @type {import('postcss-load-config').Config} */
2
+ const config = {
3
+ plugins: {
4
+ '@tailwindcss/postcss': {},
5
+ },
6
+ };
7
+
8
+ export default config;
@@ -0,0 +1,88 @@
1
+ @import "tailwindcss";
2
+
3
+ @theme {
4
+ --font-sans: 'Inter', system-ui, sans-serif;
5
+
6
+ --radius: 0.5rem;
7
+ --radius-sm: calc(var(--radius) - 4px);
8
+ --radius-md: calc(var(--radius) - 2px);
9
+ --radius-lg: var(--radius);
10
+ --radius-xl: calc(var(--radius) + 4px);
11
+
12
+ --color-background: hsl(var(--background));
13
+ --color-foreground: hsl(var(--foreground));
14
+ --color-card: hsl(var(--card));
15
+ --color-card-foreground: hsl(var(--card-foreground));
16
+ --color-popover: hsl(var(--popover));
17
+ --color-popover-foreground: hsl(var(--popover-foreground));
18
+ --color-primary: hsl(var(--primary));
19
+ --color-primary-foreground: hsl(var(--primary-foreground));
20
+ --color-secondary: hsl(var(--secondary));
21
+ --color-secondary-foreground: hsl(var(--secondary-foreground));
22
+ --color-muted: hsl(var(--muted));
23
+ --color-muted-foreground: hsl(var(--muted-foreground));
24
+ --color-accent: hsl(var(--accent));
25
+ --color-accent-foreground: hsl(var(--accent-foreground));
26
+ --color-destructive: hsl(var(--destructive));
27
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
28
+ --color-border: hsl(var(--border));
29
+ --color-input: hsl(var(--input));
30
+ --color-ring: hsl(var(--ring));
31
+ }
32
+
33
+ :root {
34
+ --background: 0 0% 100%;
35
+ --foreground: 222.2 84% 4.9%;
36
+ --card: 0 0% 100%;
37
+ --card-foreground: 222.2 84% 4.9%;
38
+ --popover: 0 0% 100%;
39
+ --popover-foreground: 222.2 84% 4.9%;
40
+ --primary: 221.2 83.2% 53.3%;
41
+ --primary-foreground: 210 40% 98%;
42
+ --secondary: 210 40% 96%;
43
+ --secondary-foreground: 222.2 47.4% 11.2%;
44
+ --muted: 210 40% 96%;
45
+ --muted-foreground: 215.4 16.3% 46.9%;
46
+ --accent: 210 40% 96%;
47
+ --accent-foreground: 222.2 47.4% 11.2%;
48
+ --destructive: 0 84.2% 60.2%;
49
+ --destructive-foreground: 210 40% 98%;
50
+ --border: 214.3 31.8% 91.4%;
51
+ --input: 214.3 31.8% 91.4%;
52
+ --ring: 221.2 83.2% 53.3%;
53
+ }
54
+
55
+ .dark {
56
+ --background: 222.2 84% 4.9%;
57
+ --foreground: 210 40% 98%;
58
+ --card: 222.2 84% 4.9%;
59
+ --card-foreground: 210 40% 98%;
60
+ --popover: 222.2 84% 4.9%;
61
+ --popover-foreground: 210 40% 98%;
62
+ --primary: 217.2 91.2% 59.8%;
63
+ --primary-foreground: 222.2 84% 4.9%;
64
+ --secondary: 217.2 32.6% 17.5%;
65
+ --secondary-foreground: 210 40% 98%;
66
+ --muted: 217.2 32.6% 17.5%;
67
+ --muted-foreground: 215 20.2% 65.1%;
68
+ --accent: 217.2 32.6% 17.5%;
69
+ --accent-foreground: 210 40% 98%;
70
+ --destructive: 0 62.8% 30.6%;
71
+ --destructive-foreground: 210 40% 98%;
72
+ --border: 217.2 32.6% 17.5%;
73
+ --input: 217.2 32.6% 17.5%;
74
+ --ring: 224.3 76.3% 48%;
75
+ }
76
+
77
+ @layer base {
78
+ * {
79
+ border-color: hsl(var(--border));
80
+ }
81
+ body {
82
+ font-family: var(--font-sans);
83
+ background-color: hsl(var(--background));
84
+ color: hsl(var(--foreground));
85
+ -webkit-font-smoothing: antialiased;
86
+ -moz-osx-font-smoothing: grayscale;
87
+ }
88
+ }
@@ -0,0 +1,27 @@
1
+ import type { Metadata } from 'next'
2
+ import { Inter } from 'next/font/google'
3
+ import { ThemeProvider } from 'next-themes'
4
+ import './globals.css'
5
+
6
+ const inter = Inter({ subsets: ['latin'] })
7
+
8
+ export const metadata: Metadata = {
9
+ title: '{{titleCaseName}}',
10
+ description: '{{description}}',
11
+ }
12
+
13
+ export default function RootLayout({
14
+ children,
15
+ }: {
16
+ children: React.ReactNode
17
+ }) {
18
+ return (
19
+ <html lang="en" suppressHydrationWarning>
20
+ <body className={inter.className}>
21
+ <ThemeProvider attribute="class" defaultTheme="system" enableSystem>
22
+ {children}
23
+ </ThemeProvider>
24
+ </body>
25
+ </html>
26
+ )
27
+ }
@@ -1,106 +1,46 @@
1
- import React from 'react';
2
- import { Button } from '@digilogiclabs/saas-factory-ui';
3
-
4
- export default function Home() {
5
- return (
6
- <main className="flex min-h-screen flex-col items-center justify-between p-24">
7
- <div className="z-10 max-w-5xl w-full items-center justify-between font-mono text-sm lg:flex">
8
- <p className="fixed left-0 top-0 flex w-full justify-center border-b border-gray-300 bg-gradient-to-b from-zinc-200 pb-6 pt-8 backdrop-blur-2xl dark:border-neutral-800 dark:bg-zinc-800/30 dark:from-inherit lg:static lg:w-auto lg:rounded-xl lg:border lg:bg-gray-200 lg:p-4 lg:dark:bg-zinc-800/30">
9
- Get started by editing&nbsp;
10
- <code className="font-mono font-bold">src/app/page.tsx</code>
11
- </p>
12
- <div className="fixed bottom-0 left-0 flex h-48 w-full items-end justify-center bg-gradient-to-t from-white via-white dark:from-black dark:via-black lg:static lg:h-auto lg:w-auto lg:bg-none">
13
- <a
14
- className="pointer-events-none flex place-items-center gap-2 p-8 lg:pointer-events-auto lg:p-0"
15
- href="https://vercel.com?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
16
- target="_blank"
17
- rel="noopener noreferrer"
18
- >
19
- By{' '}
20
- <img src="/vercel.svg" alt="Vercel Logo" className="dark:invert" width={100} height={24} />
21
- </a>
22
- </div>
23
- </div>
24
-
25
- <div className="relative flex place-items-center before:absolute before:h-[300px] before:w-full sm:before:w-[480px] before:-translate-x-1/2 before:rounded-full before:bg-gradient-radial before:from-white before:to-transparent before:blur-2xl before:content-[''] after:absolute after:-z-20 after:h-[180px] after:w-full sm:after:w-[240px] after:translate-x-1/3 after:bg-gradient-conic after:from-sky-200 after:via-blue-200 after:blur-2xl after:content-[''] before:dark:bg-gradient-to-br before:dark:from-transparent before:dark:to-blue-700 before:dark:opacity-10 after:dark:from-sky-900 after:dark:via-[#0141ff] after:dark:opacity-40 before:lg:h-[360px] z-[-1]">
26
- <img
27
- className="relative dark:drop-shadow-[0_0_0.3rem_#ffffff70] dark:invert"
28
- src="/next.svg"
29
- alt="Next.js Logo"
30
- width={180}
31
- height={37}
32
- />
33
- </div>
34
-
35
- <div className="mb-32 grid text-center lg:max-w-5xl lg:w-full lg:mb-0 lg:grid-cols-4 lg:text-left">
36
- <a
37
- href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
38
- className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
39
- target="_blank"
40
- rel="noopener noreferrer"
41
- >
42
- <h2 className={`mb-3 text-2xl font-semibold`}>
43
- Docs{' '}
44
- <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
45
- ->
46
- </span>
47
- </h2>
48
- <p className={`m-0 max-w-[30ch] text-sm opacity-50`}>
49
- Find in-depth information about Next.js features and API.
50
- </p>
51
- </a>
52
-
53
- <a
54
- href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
55
- className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800 hover:dark:bg-opacity-30"
56
- target="_blank"
57
- rel="noopener noreferrer"
58
- >
59
- <h2 className={`mb-3 text-2xl font-semibold`}>
60
- Learn{' '}
61
- <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
62
- ->
63
- </span>
64
- </h2>
65
- <p className={`m-0 max-w-[30ch] text-sm opacity-50`}>
66
- Learn about Next.js in an interactive course with&nbsp;quizzes!
67
- </p>
68
- </a>
69
-
70
- <a
71
- href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
72
- className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
73
- target="_blank"
74
- rel="noopener noreferrer"
75
- >
76
- <h2 className={`mb-3 text-2xl font-semibold`}>
77
- Templates{' '}
78
- <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
79
- ->
80
- </span>
81
- </h2>
82
- <p className={`m-0 max-w-[30ch] text-sm opacity-50`}>
83
- Explore starter templates for Next.js.
84
- </p>
85
- </a>
86
-
87
- <a
88
- href="https://vercel.com/new?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
89
- className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
90
- target="_blank"
91
- rel="noopener noreferrer"
92
- >
93
- <h2 className={`mb-3 text-2xl font-semibold`}>
94
- Deploy{' '}
95
- <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
96
- ->
97
- </span>
98
- </h2>
99
- <p className={`m-0 max-w-[30ch] text-sm opacity-50 text-balance`}>
100
- Instantly deploy your Next.js site to a shareable URL with Vercel.
101
- </p>
102
- </a>
103
- </div>
104
- </main>
105
- );
106
- }
1
+ import { Button } from '@digilogiclabs/saas-factory-ui';
2
+
3
+ export default function Home() {
4
+ return (
5
+ <main className="flex min-h-screen flex-col items-center justify-center gap-8 p-8 bg-background">
6
+ <div className="text-center">
7
+ <h1 className="text-4xl font-bold text-foreground mb-2">
8
+ UI Package Test
9
+ </h1>
10
+ <p className="text-muted-foreground">
11
+ Testing @digilogiclabs/saas-factory-ui components
12
+ </p>
13
+ </div>
14
+
15
+ <div className="flex flex-col gap-4 items-center">
16
+ <div className="flex gap-3">
17
+ <Button variant="default">Primary</Button>
18
+ <Button variant="secondary">Secondary</Button>
19
+ <Button variant="outline">Outline</Button>
20
+ <Button variant="ghost">Ghost</Button>
21
+ <Button variant="destructive">Destructive</Button>
22
+ </div>
23
+
24
+ <div className="flex gap-3">
25
+ <Button size="sm">Small</Button>
26
+ <Button size="default">Default</Button>
27
+ <Button size="lg">Large</Button>
28
+ </div>
29
+ </div>
30
+
31
+ <div className="mt-8 rounded-lg border border-border bg-card p-6 max-w-md w-full">
32
+ <h2 className="text-lg font-semibold text-card-foreground mb-2">
33
+ Card Component
34
+ </h2>
35
+ <p className="text-muted-foreground text-sm">
36
+ This card uses semantic design tokens for background, border, and text
37
+ colors. It adapts automatically to light and dark themes.
38
+ </p>
39
+ </div>
40
+
41
+ <p className="text-sm text-muted-foreground">
42
+ Get started by editing <code className="font-mono font-bold text-primary">src/app/page.tsx</code>
43
+ </p>
44
+ </main>
45
+ );
46
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digilogiclabs/create-saas-app",
3
- "version": "2.11.0",
3
+ "version": "2.12.1",
4
4
  "description": "Create modern SaaS applications with DLL Platform - tier-aware scaffolding with platform-core and app-sdk",
5
5
  "main": "dist/cli/index.js",
6
6
  "bin": {
@@ -2,7 +2,8 @@ import React from 'react';
2
2
  import { StatusBar } from 'expo-status-bar';
3
3
  import { StyleSheet, Text, View, Button } from 'react-native';
4
4
  import { SafeAreaProvider } from 'react-native-safe-area-context';
5
- import { DLLProvider, useAuth } from '@digilogiclabs/app-sdk';
5
+ // TODO: Replace with direct @digilogiclabs/saas-factory-auth usage
6
+ // import { DLLProvider, useAuth } from '@digilogiclabs/app-sdk';
6
7
  import { StripeProvider } from '@stripe/stripe-react-native';
7
8
  import { Link, Slot } from 'expo-router';
8
9
  import {
@@ -17,7 +18,10 @@ import {
17
18
  } from '@digilogiclabs/saas-factory-ui/native';
18
19
 
19
20
  function AppContent() {
20
- const { user, signOut } = useAuth();
21
+ // TODO: Replace with direct auth provider hook
22
+ // const { user, signOut } = useAuth();
23
+ const user = null as any; // placeholder — wire up your auth provider
24
+ const signOut = async () => { throw new Error('Wire up auth provider'); };
21
25
  const networkInfo = useNetworkInfo();
22
26
  const isOnline = useOfflineState();
23
27
 
@@ -99,14 +103,13 @@ function AppContent() {
99
103
  export default function App() {
100
104
  return (
101
105
  <SafeAreaProvider>
102
- <DLLProvider>
106
+ {/* TODO: Replace DLLProvider with direct auth/payments provider setup */}
103
107
  <StripeProvider
104
108
  publishableKey={process.env.EXPO_PUBLIC_STRIPE_PUBLISHABLE_KEY!}
105
109
  merchantIdentifier="merchant.com.{{packageName}}.app"
106
110
  >
107
111
  <AppContent />
108
112
  </StripeProvider>
109
- </DLLProvider>
110
113
  </SafeAreaProvider>
111
114
  );
112
115
  }
@@ -1,9 +1,12 @@
1
1
  import React from 'react';
2
2
  import { View, Button } from 'react-native';
3
- import { usePayments } from '@digilogiclabs/app-sdk';
3
+ // TODO: Replace with direct @digilogiclabs/saas-factory-payments usage
4
+ // import { usePayments } from '@digilogiclabs/app-sdk';
4
5
 
5
6
  export default function CheckoutScreen() {
6
- const { handleCheckout } = usePayments();
7
+ // TODO: Replace with direct payments provider hook
8
+ // const { handleCheckout } = usePayments();
9
+ const handleCheckout = async (_opts: any) => { throw new Error('Wire up payments provider'); };
7
10
 
8
11
  const onCheckout = async () => {
9
12
  await handleCheckout({
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
2
  import { View } from 'react-native';
3
3
  import { Tabs } from 'expo-router';
4
- import { useAuth } from '@digilogiclabs/app-sdk';
4
+ // TODO: Replace with direct @digilogiclabs/saas-factory-auth usage
5
+ // import { useAuth } from '@digilogiclabs/app-sdk';
5
6
  import { Redirect } from 'expo-router';
6
7
 
7
8
  // UI Components - Updated for v0.22.0
@@ -69,7 +70,10 @@ const tabConfig = [
69
70
  ];
70
71
 
71
72
  export default function TabLayout() {
72
- const { user, loading } = useAuth();
73
+ // TODO: Replace with direct auth provider hook
74
+ // const { user, loading } = useAuth();
75
+ const user = null as any; // placeholder — wire up your auth provider
76
+ const loading = false;
73
77
  const { colors } = useTheme();
74
78
 
75
79
  // Show loading state while checking authentication
@@ -19,8 +19,8 @@ import {
19
19
  useTheme
20
20
  } from '@digilogiclabs/saas-factory-ui/native';
21
21
 
22
- // Payments Hook
23
- import { usePayments } from '@digilogiclabs/app-sdk';
22
+ // TODO: Replace with direct @digilogiclabs/saas-factory-payments usage
23
+ // import { usePayments } from '@digilogiclabs/app-sdk';
24
24
 
25
25
  // Icons
26
26
  import {
@@ -129,7 +129,11 @@ const mockInvoices: Invoice[] = [
129
129
 
130
130
  export default function BillingScreen() {
131
131
  const { initPaymentSheet, presentPaymentSheet } = useStripe();
132
- const { createPaymentMethod, deletePaymentMethod, updateSubscription } = usePayments();
132
+ // TODO: Replace with direct payments provider hook
133
+ // const { createPaymentMethod, deletePaymentMethod, updateSubscription } = usePayments();
134
+ const createPaymentMethod = async (_data: any) => { throw new Error('Wire up payments provider'); };
135
+ const deletePaymentMethod = async (_id: string) => { throw new Error('Wire up payments provider'); };
136
+ const updateSubscription = async (_data: any) => { throw new Error('Wire up payments provider'); };
133
137
  const { theme, isDark } = useTheme();
134
138
 
135
139
  const [paymentMethods, setPaymentMethods] = useState<PaymentMethod[]>(mockPaymentMethods);
@@ -1,6 +1,7 @@
1
1
  import React, { useState, useEffect } from 'react';
2
2
  import { View, Text, StyleSheet, ScrollView, RefreshControl, Dimensions, Animated } from 'react-native';
3
- import { useAuth } from '@digilogiclabs/app-sdk';
3
+ // TODO: Replace with direct @digilogiclabs/saas-factory-auth usage
4
+ // import { useAuth } from '@digilogiclabs/app-sdk';
4
5
  import { LinearGradient } from 'expo-linear-gradient';
5
6
  import { BlurView } from 'expo-blur';
6
7
  import * as Haptics from 'expo-haptics';
@@ -65,7 +66,9 @@ interface DashboardData {
65
66
  }
66
67
 
67
68
  export default function HomeScreen() {
68
- const { user } = useAuth();
69
+ // TODO: Replace with direct auth provider hook
70
+ // const { user } = useAuth();
71
+ const user = null as any; // placeholder — wire up your auth provider
69
72
  const { colors, isDark } = useTheme();
70
73
  const [data, setData] = useState<DashboardData | null>(null);
71
74
  const [loading, setLoading] = useState(true);
@@ -1,7 +1,8 @@
1
1
  import React, { useState } from 'react';
2
2
  import { View, Text, StyleSheet, ScrollView, Alert, RefreshControl, Animated } from 'react-native';
3
3
  import { router } from 'expo-router';
4
- import { useAuth } from '@digilogiclabs/app-sdk';
4
+ // TODO: Replace with direct @digilogiclabs/saas-factory-auth usage
5
+ // import { useAuth } from '@digilogiclabs/app-sdk';
5
6
  import { LinearGradient } from 'expo-linear-gradient';
6
7
  import { BlurView } from 'expo-blur';
7
8
  import * as Haptics from 'expo-haptics';
@@ -40,7 +41,11 @@ import {
40
41
  } from 'react-native-heroicons/outline';
41
42
 
42
43
  export default function ProfileScreen() {
43
- const { user, signOut, updateProfile } = useAuth();
44
+ // TODO: Replace with direct auth provider hook
45
+ // const { user, signOut, updateProfile } = useAuth();
46
+ const user = null as any; // placeholder — wire up your auth provider
47
+ const signOut = async () => { throw new Error('Wire up auth provider'); };
48
+ const updateProfile = async (_data: any) => { throw new Error('Wire up auth provider'); };
44
49
  const { theme, isDark } = useTheme();
45
50
  const [notificationsEnabled, setNotificationsEnabled] = useState(true);
46
51
  const [emailUpdates, setEmailUpdates] = useState(true);