@digilogiclabs/create-saas-app 2.9.0 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/generators/template-generator.d.ts.map +1 -1
  3. package/dist/generators/template-generator.js +6 -3
  4. package/dist/generators/template-generator.js.map +1 -1
  5. package/dist/templates/shared/auth/supabase/web/src/middleware.ts +63 -0
  6. package/dist/templates/shared/database/supabase/web/src/lib/supabase/server.ts +3 -1
  7. package/dist/templates/shared/design/web/src/config/design.config.ts +14 -14
  8. package/dist/templates/shared/landing/web/src/components/LandingPage.tsx +0 -3
  9. package/dist/templates/shared/security/web/src/lib/api-security.ts +2 -2
  10. package/dist/templates/web/ai-platform/template/next.config.js +14 -14
  11. package/dist/templates/web/ai-platform/template/package.json +11 -22
  12. package/dist/templates/web/ai-platform/template/postcss.config.mjs +8 -0
  13. package/dist/templates/web/ai-platform/template/src/app/chat/page.tsx +234 -235
  14. package/dist/templates/web/ai-platform/template/src/app/dashboard/page.tsx +142 -142
  15. package/dist/templates/web/ai-platform/template/src/app/error.tsx +13 -13
  16. package/dist/templates/web/ai-platform/template/src/app/globals.css +97 -34
  17. package/dist/templates/web/ai-platform/template/src/app/layout.tsx +3 -0
  18. package/dist/templates/web/ai-platform/template/src/app/loading.tsx +22 -22
  19. package/dist/templates/web/ai-platform/template/src/app/page.tsx +249 -155
  20. package/dist/templates/web/ai-platform/template/src/components/providers/app-providers.tsx +5 -2
  21. package/dist/templates/web/ai-platform/template/src/lib/auth-server.ts +32 -33
  22. package/dist/templates/web/base/template/next.config.js +14 -15
  23. package/dist/templates/web/base/template/package.json +16 -31
  24. package/dist/templates/web/base/template/postcss.config.mjs +8 -0
  25. package/dist/templates/web/base/template/src/app/error.tsx +97 -97
  26. package/dist/templates/web/base/template/src/app/globals.css +87 -148
  27. package/dist/templates/web/base/template/src/app/layout.tsx +4 -1
  28. package/dist/templates/web/base/template/src/app/loading.tsx +52 -52
  29. package/dist/templates/web/base/template/src/components/providers/app-providers.tsx +5 -2
  30. package/dist/templates/web/base/template/tsconfig.json +27 -33
  31. package/dist/templates/web/iot-dashboard/template/next.config.js +14 -14
  32. package/dist/templates/web/iot-dashboard/template/package.json +12 -16
  33. package/dist/templates/web/iot-dashboard/template/postcss.config.mjs +8 -0
  34. package/dist/templates/web/iot-dashboard/template/src/app/dashboard/page.tsx +224 -224
  35. package/dist/templates/web/iot-dashboard/template/src/app/error.tsx +8 -8
  36. package/dist/templates/web/iot-dashboard/template/src/app/globals.css +97 -20
  37. package/dist/templates/web/iot-dashboard/template/src/app/layout.tsx +3 -0
  38. package/dist/templates/web/iot-dashboard/template/src/app/loading.tsx +5 -5
  39. package/dist/templates/web/iot-dashboard/template/src/app/page.tsx +266 -189
  40. package/dist/templates/web/iot-dashboard/template/src/components/providers/app-providers.tsx +5 -2
  41. package/dist/templates/web/iot-dashboard/template/src/lib/auth-server.ts +32 -33
  42. package/dist/templates/web/marketplace/template/next.config.js +14 -14
  43. package/dist/templates/web/marketplace/template/package.json +11 -18
  44. package/dist/templates/web/marketplace/template/postcss.config.mjs +8 -0
  45. package/dist/templates/web/marketplace/template/src/app/cart/page.tsx +147 -147
  46. package/dist/templates/web/marketplace/template/src/app/dashboard/page.tsx +149 -149
  47. package/dist/templates/web/marketplace/template/src/app/error.tsx +7 -7
  48. package/dist/templates/web/marketplace/template/src/app/globals.css +97 -20
  49. package/dist/templates/web/marketplace/template/src/app/layout.tsx +3 -0
  50. package/dist/templates/web/marketplace/template/src/app/loading.tsx +5 -5
  51. package/dist/templates/web/marketplace/template/src/app/page.tsx +370 -169
  52. package/dist/templates/web/marketplace/template/src/app/products/page.tsx +129 -129
  53. package/dist/templates/web/marketplace/template/src/components/providers/app-providers.tsx +5 -2
  54. package/dist/templates/web/marketplace/template/src/lib/auth-server.ts +32 -33
  55. package/dist/templates/web/micro-saas/template/next.config.js +14 -14
  56. package/dist/templates/web/micro-saas/template/package.json +9 -8
  57. package/dist/templates/web/micro-saas/template/postcss.config.mjs +8 -0
  58. package/dist/templates/web/micro-saas/template/src/app/dashboard/page.tsx +145 -117
  59. package/dist/templates/web/micro-saas/template/src/app/error.tsx +7 -7
  60. package/dist/templates/web/micro-saas/template/src/app/globals.css +97 -20
  61. package/dist/templates/web/micro-saas/template/src/app/layout.tsx +3 -0
  62. package/dist/templates/web/micro-saas/template/src/app/loading.tsx +43 -27
  63. package/dist/templates/web/micro-saas/template/src/app/login/page.tsx +101 -87
  64. package/dist/templates/web/micro-saas/template/src/app/page.tsx +227 -137
  65. package/dist/templates/web/micro-saas/template/src/app/signup/page.tsx +122 -108
  66. package/dist/templates/web/micro-saas/template/src/components/providers/app-providers.tsx +5 -2
  67. package/dist/templates/web/micro-saas/template/src/lib/auth-server.ts +32 -33
  68. package/dist/templates/web/ui-auth/template/next.config.js +14 -12
  69. package/dist/templates/web/ui-auth/template/package.json +16 -26
  70. package/dist/templates/web/ui-auth/template/postcss.config.mjs +8 -0
  71. package/dist/templates/web/ui-auth/template/src/app/error.tsx +67 -67
  72. package/dist/templates/web/ui-auth/template/src/app/globals.css +85 -84
  73. package/dist/templates/web/ui-auth/template/src/app/layout.tsx +4 -1
  74. package/dist/templates/web/ui-auth/template/src/app/loading.tsx +20 -38
  75. package/dist/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +5 -2
  76. package/dist/templates/web/ui-auth/template/tsconfig.json +27 -33
  77. package/dist/templates/web/ui-auth-ai/template/next.config.js +15 -13
  78. package/dist/templates/web/ui-auth-ai/template/package.json +25 -21
  79. package/dist/templates/web/ui-auth-ai/template/postcss.config.mjs +8 -0
  80. package/dist/templates/web/ui-auth-ai/template/src/app/error.tsx +7 -7
  81. package/dist/templates/web/ui-auth-ai/template/src/app/globals.css +87 -25
  82. package/dist/templates/web/ui-auth-ai/template/src/app/layout.tsx +3 -0
  83. package/dist/templates/web/ui-auth-ai/template/src/app/loading.tsx +4 -4
  84. package/dist/templates/web/ui-auth-ai/template/tsconfig.json +27 -28
  85. package/dist/templates/web/ui-auth-payments/template/next.config.js +14 -12
  86. package/dist/templates/web/ui-auth-payments/template/package.json +16 -29
  87. package/dist/templates/web/ui-auth-payments/template/postcss.config.mjs +8 -0
  88. package/dist/templates/web/ui-auth-payments/template/src/app/error.tsx +67 -67
  89. package/dist/templates/web/ui-auth-payments/template/src/app/globals.css +89 -204
  90. package/dist/templates/web/ui-auth-payments/template/src/app/layout.tsx +4 -1
  91. package/dist/templates/web/ui-auth-payments/template/src/app/loading.tsx +20 -20
  92. package/dist/templates/web/ui-auth-payments/template/tsconfig.json +27 -33
  93. package/dist/templates/web/ui-auth-payments-ai/template/next.config.js +14 -12
  94. package/dist/templates/web/ui-auth-payments-ai/template/package.json +17 -33
  95. package/dist/templates/web/ui-auth-payments-ai/template/postcss.config.mjs +8 -0
  96. package/dist/templates/web/ui-auth-payments-ai/template/src/app/error.tsx +67 -67
  97. package/dist/templates/web/ui-auth-payments-ai/template/src/app/globals.css +85 -85
  98. package/dist/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +4 -1
  99. package/dist/templates/web/ui-auth-payments-ai/template/src/app/loading.tsx +20 -20
  100. package/dist/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +5 -2
  101. package/dist/templates/web/ui-auth-payments-ai/template/tsconfig.json +27 -33
  102. package/dist/templates/web/ui-auth-payments-audio/template/next.config.js +14 -12
  103. package/dist/templates/web/ui-auth-payments-audio/template/package.json +17 -30
  104. package/dist/templates/web/ui-auth-payments-audio/template/postcss.config.mjs +8 -0
  105. package/dist/templates/web/ui-auth-payments-audio/template/src/app/error.tsx +67 -67
  106. package/dist/templates/web/ui-auth-payments-audio/template/src/app/globals.css +85 -85
  107. package/dist/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +4 -1
  108. package/dist/templates/web/ui-auth-payments-audio/template/src/app/loading.tsx +20 -20
  109. package/dist/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +5 -2
  110. package/dist/templates/web/ui-auth-payments-audio/template/tsconfig.json +27 -33
  111. package/dist/templates/web/ui-auth-payments-video/template/next.config.js +14 -12
  112. package/dist/templates/web/ui-auth-payments-video/template/package.json +17 -30
  113. package/dist/templates/web/ui-auth-payments-video/template/postcss.config.mjs +8 -0
  114. package/dist/templates/web/ui-auth-payments-video/template/src/app/error.tsx +67 -67
  115. package/dist/templates/web/ui-auth-payments-video/template/src/app/globals.css +89 -221
  116. package/dist/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +4 -1
  117. package/dist/templates/web/ui-auth-payments-video/template/src/app/loading.tsx +20 -20
  118. package/dist/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +5 -2
  119. package/dist/templates/web/ui-auth-payments-video/template/tsconfig.json +27 -33
  120. package/dist/templates/web/ui-only/template/next.config.js +14 -12
  121. package/dist/templates/web/ui-only/template/package.json +15 -25
  122. package/dist/templates/web/ui-only/template/postcss.config.mjs +8 -0
  123. package/dist/templates/web/ui-only/template/src/app/error.tsx +67 -67
  124. package/dist/templates/web/ui-only/template/src/app/globals.css +85 -31
  125. package/dist/templates/web/ui-only/template/src/app/layout.tsx +4 -1
  126. package/dist/templates/web/ui-only/template/src/app/loading.tsx +20 -20
  127. package/dist/templates/web/ui-only/template/src/components/providers/app-providers.tsx +20 -26
  128. package/dist/templates/web/ui-only/template/tsconfig.json +27 -33
  129. package/package.json +1 -1
  130. package/src/templates/shared/auth/supabase/web/src/middleware.ts +63 -0
  131. package/src/templates/shared/database/supabase/web/src/lib/supabase/server.ts +3 -1
  132. package/src/templates/shared/design/web/src/config/design.config.ts +14 -14
  133. package/src/templates/shared/landing/web/src/components/LandingPage.tsx +0 -3
  134. package/src/templates/shared/security/web/src/lib/api-security.ts +2 -2
  135. package/src/templates/web/ai-platform/template/next.config.js +14 -14
  136. package/src/templates/web/ai-platform/template/package.json +11 -22
  137. package/src/templates/web/ai-platform/template/postcss.config.mjs +8 -0
  138. package/src/templates/web/ai-platform/template/src/app/chat/page.tsx +234 -235
  139. package/src/templates/web/ai-platform/template/src/app/dashboard/page.tsx +142 -142
  140. package/src/templates/web/ai-platform/template/src/app/error.tsx +13 -13
  141. package/src/templates/web/ai-platform/template/src/app/globals.css +97 -34
  142. package/src/templates/web/ai-platform/template/src/app/layout.tsx +3 -0
  143. package/src/templates/web/ai-platform/template/src/app/loading.tsx +22 -22
  144. package/src/templates/web/ai-platform/template/src/app/page.tsx +249 -155
  145. package/src/templates/web/ai-platform/template/src/components/providers/app-providers.tsx +5 -2
  146. package/src/templates/web/ai-platform/template/src/lib/auth-server.ts +32 -33
  147. package/src/templates/web/base/template/next.config.js +14 -15
  148. package/src/templates/web/base/template/package.json +16 -31
  149. package/src/templates/web/base/template/postcss.config.mjs +8 -0
  150. package/src/templates/web/base/template/src/app/error.tsx +97 -97
  151. package/src/templates/web/base/template/src/app/globals.css +87 -148
  152. package/src/templates/web/base/template/src/app/layout.tsx +4 -1
  153. package/src/templates/web/base/template/src/app/loading.tsx +52 -52
  154. package/src/templates/web/base/template/src/components/providers/app-providers.tsx +5 -2
  155. package/src/templates/web/base/template/tsconfig.json +27 -33
  156. package/src/templates/web/iot-dashboard/template/next.config.js +14 -14
  157. package/src/templates/web/iot-dashboard/template/package.json +12 -16
  158. package/src/templates/web/iot-dashboard/template/postcss.config.mjs +8 -0
  159. package/src/templates/web/iot-dashboard/template/src/app/dashboard/page.tsx +224 -224
  160. package/src/templates/web/iot-dashboard/template/src/app/error.tsx +8 -8
  161. package/src/templates/web/iot-dashboard/template/src/app/globals.css +97 -20
  162. package/src/templates/web/iot-dashboard/template/src/app/layout.tsx +3 -0
  163. package/src/templates/web/iot-dashboard/template/src/app/loading.tsx +5 -5
  164. package/src/templates/web/iot-dashboard/template/src/app/page.tsx +266 -189
  165. package/src/templates/web/iot-dashboard/template/src/components/providers/app-providers.tsx +5 -2
  166. package/src/templates/web/iot-dashboard/template/src/lib/auth-server.ts +32 -33
  167. package/src/templates/web/marketplace/template/next.config.js +14 -14
  168. package/src/templates/web/marketplace/template/package.json +11 -18
  169. package/src/templates/web/marketplace/template/postcss.config.mjs +8 -0
  170. package/src/templates/web/marketplace/template/src/app/cart/page.tsx +147 -147
  171. package/src/templates/web/marketplace/template/src/app/dashboard/page.tsx +149 -149
  172. package/src/templates/web/marketplace/template/src/app/error.tsx +7 -7
  173. package/src/templates/web/marketplace/template/src/app/globals.css +97 -20
  174. package/src/templates/web/marketplace/template/src/app/layout.tsx +3 -0
  175. package/src/templates/web/marketplace/template/src/app/loading.tsx +5 -5
  176. package/src/templates/web/marketplace/template/src/app/page.tsx +370 -169
  177. package/src/templates/web/marketplace/template/src/app/products/page.tsx +129 -129
  178. package/src/templates/web/marketplace/template/src/components/providers/app-providers.tsx +5 -2
  179. package/src/templates/web/marketplace/template/src/lib/auth-server.ts +32 -33
  180. package/src/templates/web/micro-saas/template/next.config.js +14 -14
  181. package/src/templates/web/micro-saas/template/package.json +9 -8
  182. package/src/templates/web/micro-saas/template/postcss.config.mjs +8 -0
  183. package/src/templates/web/micro-saas/template/src/app/dashboard/page.tsx +145 -117
  184. package/src/templates/web/micro-saas/template/src/app/error.tsx +7 -7
  185. package/src/templates/web/micro-saas/template/src/app/globals.css +97 -20
  186. package/src/templates/web/micro-saas/template/src/app/layout.tsx +3 -0
  187. package/src/templates/web/micro-saas/template/src/app/loading.tsx +43 -27
  188. package/src/templates/web/micro-saas/template/src/app/login/page.tsx +101 -87
  189. package/src/templates/web/micro-saas/template/src/app/page.tsx +227 -137
  190. package/src/templates/web/micro-saas/template/src/app/signup/page.tsx +122 -108
  191. package/src/templates/web/micro-saas/template/src/components/providers/app-providers.tsx +5 -2
  192. package/src/templates/web/micro-saas/template/src/lib/auth-server.ts +32 -33
  193. package/src/templates/web/ui-auth/template/next.config.js +14 -12
  194. package/src/templates/web/ui-auth/template/package.json +16 -26
  195. package/src/templates/web/ui-auth/template/postcss.config.mjs +8 -0
  196. package/src/templates/web/ui-auth/template/src/app/error.tsx +67 -67
  197. package/src/templates/web/ui-auth/template/src/app/globals.css +85 -84
  198. package/src/templates/web/ui-auth/template/src/app/layout.tsx +4 -1
  199. package/src/templates/web/ui-auth/template/src/app/loading.tsx +20 -38
  200. package/src/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +5 -2
  201. package/src/templates/web/ui-auth/template/tsconfig.json +27 -33
  202. package/src/templates/web/ui-auth-ai/template/next.config.js +15 -13
  203. package/src/templates/web/ui-auth-ai/template/package.json +25 -21
  204. package/src/templates/web/ui-auth-ai/template/postcss.config.mjs +8 -0
  205. package/src/templates/web/ui-auth-ai/template/src/app/error.tsx +7 -7
  206. package/src/templates/web/ui-auth-ai/template/src/app/globals.css +87 -25
  207. package/src/templates/web/ui-auth-ai/template/src/app/layout.tsx +3 -0
  208. package/src/templates/web/ui-auth-ai/template/src/app/loading.tsx +4 -4
  209. package/src/templates/web/ui-auth-ai/template/tsconfig.json +27 -28
  210. package/src/templates/web/ui-auth-payments/template/next.config.js +14 -12
  211. package/src/templates/web/ui-auth-payments/template/package.json +16 -29
  212. package/src/templates/web/ui-auth-payments/template/postcss.config.mjs +8 -0
  213. package/src/templates/web/ui-auth-payments/template/src/app/error.tsx +67 -67
  214. package/src/templates/web/ui-auth-payments/template/src/app/globals.css +89 -204
  215. package/src/templates/web/ui-auth-payments/template/src/app/layout.tsx +4 -1
  216. package/src/templates/web/ui-auth-payments/template/src/app/loading.tsx +20 -20
  217. package/src/templates/web/ui-auth-payments/template/tsconfig.json +27 -33
  218. package/src/templates/web/ui-auth-payments-ai/template/next.config.js +14 -12
  219. package/src/templates/web/ui-auth-payments-ai/template/package.json +17 -33
  220. package/src/templates/web/ui-auth-payments-ai/template/postcss.config.mjs +8 -0
  221. package/src/templates/web/ui-auth-payments-ai/template/src/app/error.tsx +67 -67
  222. package/src/templates/web/ui-auth-payments-ai/template/src/app/globals.css +85 -85
  223. package/src/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +4 -1
  224. package/src/templates/web/ui-auth-payments-ai/template/src/app/loading.tsx +20 -20
  225. package/src/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +5 -2
  226. package/src/templates/web/ui-auth-payments-ai/template/tsconfig.json +27 -33
  227. package/src/templates/web/ui-auth-payments-audio/template/next.config.js +14 -12
  228. package/src/templates/web/ui-auth-payments-audio/template/package.json +17 -30
  229. package/src/templates/web/ui-auth-payments-audio/template/postcss.config.mjs +8 -0
  230. package/src/templates/web/ui-auth-payments-audio/template/src/app/error.tsx +67 -67
  231. package/src/templates/web/ui-auth-payments-audio/template/src/app/globals.css +85 -85
  232. package/src/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +4 -1
  233. package/src/templates/web/ui-auth-payments-audio/template/src/app/loading.tsx +20 -20
  234. package/src/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +5 -2
  235. package/src/templates/web/ui-auth-payments-audio/template/tsconfig.json +27 -33
  236. package/src/templates/web/ui-auth-payments-video/template/next.config.js +14 -12
  237. package/src/templates/web/ui-auth-payments-video/template/package.json +17 -30
  238. package/src/templates/web/ui-auth-payments-video/template/postcss.config.mjs +8 -0
  239. package/src/templates/web/ui-auth-payments-video/template/src/app/error.tsx +67 -67
  240. package/src/templates/web/ui-auth-payments-video/template/src/app/globals.css +89 -221
  241. package/src/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +4 -1
  242. package/src/templates/web/ui-auth-payments-video/template/src/app/loading.tsx +20 -20
  243. package/src/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +5 -2
  244. package/src/templates/web/ui-auth-payments-video/template/tsconfig.json +27 -33
  245. package/src/templates/web/ui-only/template/next.config.js +14 -12
  246. package/src/templates/web/ui-only/template/package.json +15 -25
  247. package/src/templates/web/ui-only/template/postcss.config.mjs +8 -0
  248. package/src/templates/web/ui-only/template/src/app/error.tsx +67 -67
  249. package/src/templates/web/ui-only/template/src/app/globals.css +85 -31
  250. package/src/templates/web/ui-only/template/src/app/layout.tsx +4 -1
  251. package/src/templates/web/ui-only/template/src/app/loading.tsx +20 -20
  252. package/src/templates/web/ui-only/template/src/components/providers/app-providers.tsx +20 -26
  253. package/src/templates/web/ui-only/template/tsconfig.json +27 -33
  254. package/dist/templates/web/ai-platform/template/middleware.ts +0 -55
  255. package/dist/templates/web/ai-platform/template/src/lib/supabase/client.ts +0 -8
  256. package/dist/templates/web/ai-platform/template/src/lib/supabase/server.ts +0 -27
  257. package/dist/templates/web/base/template/postcss.config.js +0 -7
  258. package/dist/templates/web/base/template/tailwind.config.js +0 -77
  259. package/dist/templates/web/iot-dashboard/template/middleware.ts +0 -56
  260. package/dist/templates/web/iot-dashboard/template/src/lib/supabase/client.ts +0 -8
  261. package/dist/templates/web/iot-dashboard/template/src/lib/supabase/server.ts +0 -27
  262. package/dist/templates/web/marketplace/template/middleware.ts +0 -56
  263. package/dist/templates/web/marketplace/template/src/lib/supabase/client.ts +0 -8
  264. package/dist/templates/web/marketplace/template/src/lib/supabase/server.ts +0 -27
  265. package/dist/templates/web/micro-saas/template/middleware.ts +0 -53
  266. package/dist/templates/web/micro-saas/template/src/lib/supabase/client.ts +0 -8
  267. package/dist/templates/web/micro-saas/template/src/lib/supabase/server.ts +0 -29
  268. package/dist/templates/web/ui-auth/template/.claude +0 -21
  269. package/dist/templates/web/ui-auth/template/context.md +0 -105
  270. package/dist/templates/web/ui-auth/template/postcss.config.js +0 -7
  271. package/dist/templates/web/ui-auth/template/tailwind.config.js +0 -77
  272. package/dist/templates/web/ui-auth-ai/template/postcss.config.js +0 -6
  273. package/dist/templates/web/ui-auth-ai/template/tailwind.config.js +0 -22
  274. package/dist/templates/web/ui-auth-payments/template/middleware.ts +0 -68
  275. package/dist/templates/web/ui-auth-payments/template/package-lock.json +0 -12240
  276. package/dist/templates/web/ui-auth-payments/template/postcss.config.js +0 -7
  277. package/dist/templates/web/ui-auth-payments/template/tailwind.config.js +0 -77
  278. package/dist/templates/web/ui-auth-payments/template/tsconfig.tsbuildinfo +0 -1
  279. package/dist/templates/web/ui-auth-payments-ai/template/.claude +0 -21
  280. package/dist/templates/web/ui-auth-payments-ai/template/context.md +0 -169
  281. package/dist/templates/web/ui-auth-payments-ai/template/middleware.ts +0 -68
  282. package/dist/templates/web/ui-auth-payments-ai/template/package-lock.json +0 -12241
  283. package/dist/templates/web/ui-auth-payments-ai/template/postcss.config.js +0 -7
  284. package/dist/templates/web/ui-auth-payments-ai/template/tailwind.config.js +0 -77
  285. package/dist/templates/web/ui-auth-payments-ai/template/tsconfig.tsbuildinfo +0 -1
  286. package/dist/templates/web/ui-auth-payments-audio/template/middleware.ts +0 -68
  287. package/dist/templates/web/ui-auth-payments-audio/template/package-lock.json +0 -12241
  288. package/dist/templates/web/ui-auth-payments-audio/template/postcss.config.js +0 -7
  289. package/dist/templates/web/ui-auth-payments-audio/template/tailwind.config.js +0 -77
  290. package/dist/templates/web/ui-auth-payments-audio/template/tsconfig.tsbuildinfo +0 -1
  291. package/dist/templates/web/ui-auth-payments-video/template/postcss.config.js +0 -7
  292. package/dist/templates/web/ui-auth-payments-video/template/tailwind.config.js +0 -77
  293. package/dist/templates/web/ui-only/template/postcss.config.js +0 -7
  294. package/dist/templates/web/ui-only/template/tailwind.config.js +0 -77
  295. package/src/templates/web/ai-platform/template/middleware.ts +0 -55
  296. package/src/templates/web/ai-platform/template/src/lib/supabase/client.ts +0 -8
  297. package/src/templates/web/ai-platform/template/src/lib/supabase/server.ts +0 -27
  298. package/src/templates/web/base/template/postcss.config.js +0 -7
  299. package/src/templates/web/base/template/tailwind.config.js +0 -77
  300. package/src/templates/web/iot-dashboard/template/middleware.ts +0 -56
  301. package/src/templates/web/iot-dashboard/template/src/lib/supabase/client.ts +0 -8
  302. package/src/templates/web/iot-dashboard/template/src/lib/supabase/server.ts +0 -27
  303. package/src/templates/web/marketplace/template/middleware.ts +0 -56
  304. package/src/templates/web/marketplace/template/src/lib/supabase/client.ts +0 -8
  305. package/src/templates/web/marketplace/template/src/lib/supabase/server.ts +0 -27
  306. package/src/templates/web/micro-saas/template/middleware.ts +0 -53
  307. package/src/templates/web/micro-saas/template/src/lib/supabase/client.ts +0 -8
  308. package/src/templates/web/micro-saas/template/src/lib/supabase/server.ts +0 -29
  309. package/src/templates/web/ui-auth/template/.claude +0 -21
  310. package/src/templates/web/ui-auth/template/context.md +0 -105
  311. package/src/templates/web/ui-auth/template/postcss.config.js +0 -7
  312. package/src/templates/web/ui-auth/template/tailwind.config.js +0 -77
  313. package/src/templates/web/ui-auth-ai/template/postcss.config.js +0 -6
  314. package/src/templates/web/ui-auth-ai/template/tailwind.config.js +0 -22
  315. package/src/templates/web/ui-auth-payments/template/middleware.ts +0 -68
  316. package/src/templates/web/ui-auth-payments/template/package-lock.json +0 -12240
  317. package/src/templates/web/ui-auth-payments/template/postcss.config.js +0 -7
  318. package/src/templates/web/ui-auth-payments/template/tailwind.config.js +0 -77
  319. package/src/templates/web/ui-auth-payments/template/tsconfig.tsbuildinfo +0 -1
  320. package/src/templates/web/ui-auth-payments-ai/template/.claude +0 -21
  321. package/src/templates/web/ui-auth-payments-ai/template/context.md +0 -169
  322. package/src/templates/web/ui-auth-payments-ai/template/middleware.ts +0 -68
  323. package/src/templates/web/ui-auth-payments-ai/template/package-lock.json +0 -12241
  324. package/src/templates/web/ui-auth-payments-ai/template/postcss.config.js +0 -7
  325. package/src/templates/web/ui-auth-payments-ai/template/tailwind.config.js +0 -77
  326. package/src/templates/web/ui-auth-payments-ai/template/tsconfig.tsbuildinfo +0 -1
  327. package/src/templates/web/ui-auth-payments-audio/template/middleware.ts +0 -68
  328. package/src/templates/web/ui-auth-payments-audio/template/package-lock.json +0 -12241
  329. package/src/templates/web/ui-auth-payments-audio/template/postcss.config.js +0 -7
  330. package/src/templates/web/ui-auth-payments-audio/template/tailwind.config.js +0 -77
  331. package/src/templates/web/ui-auth-payments-audio/template/tsconfig.tsbuildinfo +0 -1
  332. package/src/templates/web/ui-auth-payments-video/template/postcss.config.js +0 -7
  333. package/src/templates/web/ui-auth-payments-video/template/tailwind.config.js +0 -77
  334. package/src/templates/web/ui-only/template/postcss.config.js +0 -7
  335. package/src/templates/web/ui-only/template/tailwind.config.js +0 -77
  336. /package/dist/templates/shared/admin/web/{components → src/components}/admin-nav.tsx +0 -0
  337. /package/dist/templates/shared/auth/keycloak/web/{auth.config.ts → src/auth.config.ts} +0 -0
  338. /package/dist/templates/shared/auth/keycloak/web/{auth.ts → src/auth.ts} +0 -0
  339. /package/dist/templates/shared/middleware/web/{middleware.ts → src/middleware.ts} +0 -0
  340. /package/src/templates/shared/admin/web/{components → src/components}/admin-nav.tsx +0 -0
  341. /package/src/templates/shared/auth/keycloak/web/{auth.config.ts → src/auth.config.ts} +0 -0
  342. /package/src/templates/shared/auth/keycloak/web/{auth.ts → src/auth.ts} +0 -0
  343. /package/src/templates/shared/middleware/web/{middleware.ts → src/middleware.ts} +0 -0
@@ -1,49 +1,39 @@
1
1
  {
2
2
  "name": "{{packageName}}",
3
3
  "version": "0.1.0",
4
- "description": "{{description}} (with UI Package v0.18.0)",
4
+ "description": "{{description}}",
5
5
  "private": true,
6
6
  "scripts": {
7
7
  "dev": "next dev",
8
8
  "build": "next build",
9
9
  "start": "next start",
10
10
  "lint": "next lint",
11
- "type-check": "tsc --noEmit",
12
- "test": "vitest",
13
- "test:ui": "vitest --ui",
14
- "test:run": "vitest run"
11
+ "type-check": "tsc --noEmit"
15
12
  },
16
13
  "dependencies": {
17
- "next": "^15.0.0",
14
+ "next": "^15.5.0",
18
15
  "react": "^19.0.0",
19
16
  "react-dom": "^19.0.0",
20
- "@digilogiclabs/saas-factory-ui": "^1.4.0",
21
- "tailwindcss": "^3.3.0",
22
- "autoprefixer": "^10.4.16",
23
- "postcss": "^8.4.31",
24
- "clsx": "^2.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",
25
21
  "class-variance-authority": "^0.7.0",
26
- "tailwind-merge": "^2.0.0",
27
- "next-themes": "^0.2.1",
28
- "lucide-react": "^0.542.0",
22
+ "tailwind-merge": "^2.6.0",
23
+ "next-themes": "^0.4.0",
24
+ "lucide-react": "^0.460.0",
29
25
  "zod": "^4.1.0"
30
26
  },
31
27
  "devDependencies": {
32
- "typescript": "^5.0.0",
33
- "@types/node": "^20.0.0",
28
+ "typescript": "^5.8.0",
29
+ "@types/node": "^22.0.0",
34
30
  "@types/react": "^19.0.0",
35
31
  "@types/react-dom": "^19.0.0",
36
- "eslint": "^8.0.0",
32
+ "eslint": "^9.0.0",
37
33
  "eslint-config-next": "^15.0.0",
38
- "prettier": "^3.0.0",
39
- "vitest": "^1.0.0",
40
- "@vitejs/plugin-react": "^4.0.0",
41
- "@testing-library/react": "^16.0.0",
42
- "@testing-library/jest-dom": "^6.0.0",
43
- "@testing-library/user-event": "^14.0.0",
44
- "jsdom": "^24.0.0"
34
+ "prettier": "^3.4.0"
45
35
  },
46
36
  "engines": {
47
- "node": ">=18.0.0"
37
+ "node": ">=20.0.0"
48
38
  }
49
39
  }
@@ -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;
@@ -1,67 +1,67 @@
1
- 'use client'
2
-
3
- import { useEffect } from 'react'
4
- import { Button, Card } from '@digilogiclabs/saas-factory-ui'
5
- import { RefreshCw, Home, AlertCircle } from 'lucide-react'
6
-
7
- interface ErrorProps {
8
- error: Error & { digest?: string }
9
- reset: () => void
10
- }
11
-
12
- export default function Error({ error, reset }: ErrorProps) {
13
- useEffect(() => {
14
- // Log the error to an error reporting service
15
- console.error('Application error:', error)
16
- }, [error])
17
-
18
- return (
19
- <div className="min-h-screen bg-gray-50 dark:bg-gray-900 flex items-center justify-center p-4">
20
- <Card className="w-full max-w-md p-8 text-center">
21
- <div className="mb-6">
22
- <div className="mx-auto w-16 h-16 bg-red-100 dark:bg-red-900 rounded-full flex items-center justify-center mb-4">
23
- <AlertCircle className="h-8 w-8 text-red-600 dark:text-red-400" />
24
- </div>
25
- <h1 className="text-2xl font-bold text-gray-900 dark:text-white mb-2">
26
- Something went wrong
27
- </h1>
28
- <p className="text-gray-600 dark:text-gray-300 mb-6">
29
- We apologize for the inconvenience. Please try again or return to the home page.
30
- </p>
31
- </div>
32
-
33
- <div className="space-y-3">
34
- <Button
35
- onClick={reset}
36
- className="w-full"
37
- variant="default"
38
- >
39
- <RefreshCw className="w-4 h-4 mr-2" />
40
- Try Again
41
- </Button>
42
-
43
- <Button
44
- onClick={() => window.location.href = '/'}
45
- variant="outline"
46
- className="w-full"
47
- >
48
- <Home className="w-4 h-4 mr-2" />
49
- Go Home
50
- </Button>
51
- </div>
52
-
53
- {process.env.NODE_ENV === 'development' && (
54
- <details className="mt-6 text-left">
55
- <summary className="text-sm font-medium text-gray-500 cursor-pointer hover:text-gray-700 dark:hover:text-gray-300">
56
- Error Details (Development)
57
- </summary>
58
- <pre className="mt-2 text-xs bg-gray-100 dark:bg-gray-800 p-3 rounded-md overflow-auto">
59
- {error.message}
60
- {error.stack}
61
- </pre>
62
- </details>
63
- )}
64
- </Card>
65
- </div>
66
- )
67
- }
1
+ 'use client'
2
+
3
+ import { useEffect } from 'react'
4
+ import { Button, Card } from '@digilogiclabs/saas-factory-ui'
5
+ import { RefreshCw, Home, AlertCircle } from 'lucide-react'
6
+
7
+ interface ErrorProps {
8
+ error: Error & { digest?: string }
9
+ reset: () => void
10
+ }
11
+
12
+ export default function Error({ error, reset }: ErrorProps) {
13
+ useEffect(() => {
14
+ // Log the error to an error reporting service
15
+ console.error('Application error:', error)
16
+ }, [error])
17
+
18
+ return (
19
+ <div className="min-h-screen bg-background flex items-center justify-center p-4">
20
+ <Card className="w-full max-w-md p-8 text-center">
21
+ <div className="mb-6">
22
+ <div className="mx-auto w-16 h-16 bg-destructive/10 rounded-full flex items-center justify-center mb-4">
23
+ <AlertCircle className="h-8 w-8 text-destructive" />
24
+ </div>
25
+ <h1 className="text-2xl font-bold text-foreground mb-2">
26
+ Something went wrong
27
+ </h1>
28
+ <p className="text-muted-foreground mb-6">
29
+ We apologize for the inconvenience. Please try again or return to the home page.
30
+ </p>
31
+ </div>
32
+
33
+ <div className="space-y-3">
34
+ <Button
35
+ onClick={reset}
36
+ className="w-full"
37
+ variant="default"
38
+ >
39
+ <RefreshCw className="w-4 h-4 mr-2" />
40
+ Try Again
41
+ </Button>
42
+
43
+ <Button
44
+ onClick={() => window.location.href = '/'}
45
+ variant="outline"
46
+ className="w-full"
47
+ >
48
+ <Home className="w-4 h-4 mr-2" />
49
+ Go Home
50
+ </Button>
51
+ </div>
52
+
53
+ {process.env.NODE_ENV === 'development' && (
54
+ <details className="mt-6 text-left">
55
+ <summary className="text-sm font-medium text-muted-foreground cursor-pointer hover:text-foreground">
56
+ Error Details (Development)
57
+ </summary>
58
+ <pre className="mt-2 text-xs bg-muted text-muted-foreground p-3 rounded-md overflow-auto">
59
+ {error.message}
60
+ {error.stack}
61
+ </pre>
62
+ </details>
63
+ )}
64
+ </Card>
65
+ </div>
66
+ )
67
+ }
@@ -1,43 +1,97 @@
1
- /* Import SaaS Factory UI styles */
2
- @import '@digilogiclabs/saas-factory-ui/dist/index.css';
1
+ @import "tailwindcss";
3
2
 
4
- @tailwind base;
5
- @tailwind components;
6
- @tailwind utilities;
3
+ @theme {
4
+ --font-sans: 'Inter', system-ui, sans-serif;
7
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);
8
11
 
9
- @layer base {
10
- :root {
11
- --background: 0 0% 100%;
12
- --foreground: 222.2 84% 4.9%;
13
- --card: 0 0% 100%;
14
- --card-foreground: 222.2 84% 4.9%;
15
- --primary: 221.2 83.2% 53.3%;
16
- --primary-foreground: 210 40% 98%;
17
- --secondary: 210 40% 96%;
18
- --secondary-foreground: 222.2 84% 4.9%;
19
- --border: 214.3 31.8% 91.4%;
20
- --radius: 0.5rem;
21
- }
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
+ --color-brand-from: hsl(var(--brand-from));
32
+ --color-brand-via: hsl(var(--brand-via));
33
+ --color-brand-to: hsl(var(--brand-to));
34
+ }
22
35
 
23
- .dark {
24
- --background: 222.2 84% 4.9%;
25
- --foreground: 210 40% 98%;
26
- --card: 222.2 84% 4.9%;
27
- --card-foreground: 210 40% 98%;
28
- --primary: 217.2 91.2% 59.8%;
29
- --primary-foreground: 222.2 84% 4.9%;
30
- --secondary: 217.2 32.6% 17.5%;
31
- --secondary-foreground: 210 40% 98%;
32
- --border: 217.2 32.6% 17.5%;
33
- }
36
+ :root {
37
+ --brand-from: 221.2 83.2% 53.3%;
38
+ --brand-via: 232 75% 55%;
39
+ --brand-to: 243 75% 59%;
40
+ --background: 0 0% 100%;
41
+ --foreground: 222.2 84% 4.9%;
42
+ --card: 0 0% 100%;
43
+ --card-foreground: 222.2 84% 4.9%;
44
+ --popover: 0 0% 100%;
45
+ --popover-foreground: 222.2 84% 4.9%;
46
+ --primary: 221.2 83.2% 53.3%;
47
+ --primary-foreground: 210 40% 98%;
48
+ --secondary: 210 40% 96%;
49
+ --secondary-foreground: 222.2 47.4% 11.2%;
50
+ --muted: 210 40% 96%;
51
+ --muted-foreground: 215.4 16.3% 46.9%;
52
+ --accent: 210 40% 96%;
53
+ --accent-foreground: 222.2 47.4% 11.2%;
54
+ --destructive: 0 84.2% 60.2%;
55
+ --destructive-foreground: 210 40% 98%;
56
+ --border: 214.3 31.8% 91.4%;
57
+ --input: 214.3 31.8% 91.4%;
58
+ --ring: 221.2 83.2% 53.3%;
59
+ }
60
+
61
+ .dark {
62
+ --brand-from: 217.2 91.2% 59.8%;
63
+ --brand-via: 232 85% 65%;
64
+ --brand-to: 243 85% 69%;
65
+ --background: 222.2 84% 4.9%;
66
+ --foreground: 210 40% 98%;
67
+ --card: 222.2 84% 4.9%;
68
+ --card-foreground: 210 40% 98%;
69
+ --popover: 222.2 84% 4.9%;
70
+ --popover-foreground: 210 40% 98%;
71
+ --primary: 217.2 91.2% 59.8%;
72
+ --primary-foreground: 222.2 84% 4.9%;
73
+ --secondary: 217.2 32.6% 17.5%;
74
+ --secondary-foreground: 210 40% 98%;
75
+ --muted: 217.2 32.6% 17.5%;
76
+ --muted-foreground: 215 20.2% 65.1%;
77
+ --accent: 217.2 32.6% 17.5%;
78
+ --accent-foreground: 210 40% 98%;
79
+ --destructive: 0 62.8% 30.6%;
80
+ --destructive-foreground: 210 40% 98%;
81
+ --border: 217.2 32.6% 17.5%;
82
+ --input: 217.2 32.6% 17.5%;
83
+ --ring: 224.3 76.3% 48%;
34
84
  }
35
85
 
36
86
  @layer base {
37
87
  * {
38
- @apply border-border;
88
+ border-color: hsl(var(--border));
39
89
  }
40
90
  body {
41
- @apply bg-background text-foreground;
91
+ font-family: var(--font-sans);
92
+ background-color: hsl(var(--background));
93
+ color: hsl(var(--foreground));
94
+ -webkit-font-smoothing: antialiased;
95
+ -moz-osx-font-smoothing: grayscale;
42
96
  }
43
97
  }
@@ -21,8 +21,11 @@ export default function RootLayout({
21
21
  <html lang="en" suppressHydrationWarning>
22
22
  <body className={`${inter.className} min-h-screen flex flex-col`}>
23
23
  <AppProviders>
24
+ <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">
25
+ Skip to content
26
+ </a>
24
27
  <Header />
25
- <main className="flex-1">
28
+ <main id="main-content" className="flex-1">
26
29
  {children}
27
30
  </main>
28
31
  <Footer />
@@ -1,20 +1,20 @@
1
- import { Card } from '@digilogiclabs/saas-factory-ui'
2
- import { Loader2 } from 'lucide-react'
3
-
4
- export default function Loading() {
5
- return (
6
- <div className="min-h-screen bg-gray-50 dark:bg-gray-900 flex items-center justify-center p-4">
7
- <Card className="w-full max-w-md p-8 text-center">
8
- <div className="flex flex-col items-center">
9
- <Loader2 className="h-8 w-8 animate-spin text-blue-600 dark:text-blue-400 mb-4" />
10
- <h2 className="text-lg font-medium text-gray-900 dark:text-white mb-2">
11
- Loading
12
- </h2>
13
- <p className="text-sm text-gray-600 dark:text-gray-300">
14
- Please wait while we load your content...
15
- </p>
16
- </div>
17
- </Card>
18
- </div>
19
- )
20
- }
1
+ import { Card } from '@digilogiclabs/saas-factory-ui'
2
+ import { Loader2 } from 'lucide-react'
3
+
4
+ export default function Loading() {
5
+ return (
6
+ <div className="min-h-screen bg-background flex items-center justify-center p-4">
7
+ <Card className="w-full max-w-md p-8 text-center">
8
+ <div className="flex flex-col items-center">
9
+ <Loader2 className="h-8 w-8 animate-spin text-primary mb-4" />
10
+ <h2 className="text-lg font-medium text-foreground mb-2">
11
+ Loading
12
+ </h2>
13
+ <p className="text-sm text-muted-foreground">
14
+ Please wait while we load your content...
15
+ </p>
16
+ </div>
17
+ </Card>
18
+ </div>
19
+ )
20
+ }
@@ -1,26 +1,20 @@
1
- 'use client'
2
-
3
- import React from 'react'
4
- import { ThemeProvider } from 'next-themes'
5
- import { AppThemeProvider } from './theme-provider'
6
-
7
- interface AppProvidersProps {
8
- children: React.ReactNode
9
- }
10
-
11
- export function AppProviders({ children }: AppProvidersProps) {
12
- return (
13
- <ThemeProvider
14
- attribute="class"
15
- defaultTheme="{{defaultTheme}}"
16
- enableSystem
17
- disableTransitionOnChange
18
- storageKey="{{packageName}}-theme"
19
- >
20
- <AppThemeProvider themeColor="{{themeColor}}">
21
- {children}
22
- </AppThemeProvider>
23
- </ThemeProvider>
24
- )
25
- }
26
-
1
+ 'use client'
2
+
3
+ import { ThemeProvider } from 'next-themes'
4
+ import { Toaster } from '@digilogiclabs/saas-factory-ui'
5
+ import { DLLProvider } from '@digilogiclabs/app-sdk'
6
+
7
+ interface AppProvidersProps {
8
+ children: React.ReactNode
9
+ }
10
+
11
+ export function AppProviders({ children }: AppProvidersProps) {
12
+ return (
13
+ <ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange>
14
+ <DLLProvider>
15
+ {children}
16
+ <Toaster />
17
+ </DLLProvider>
18
+ </ThemeProvider>
19
+ )
20
+ }
@@ -1,33 +1,27 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es5",
4
- "lib": ["dom", "dom.iterable", "es6"],
5
- "allowJs": true,
6
- "skipLibCheck": true,
7
- "strict": true,
8
- "noEmit": true,
9
- "esModuleInterop": true,
10
- "module": "esnext",
11
- "moduleResolution": "bundler",
12
- "resolveJsonModule": true,
13
- "isolatedModules": true,
14
- "jsx": "preserve",
15
- "incremental": true,
16
- "plugins": [
17
- {
18
- "name": "next"
19
- }
20
- ],
21
- "baseUrl": ".",
22
- "paths": {
23
- "@/*": ["./src/*"],
24
- "@/components/*": ["./src/components/*"],
25
- "@/lib/*": ["./src/lib/*"],
26
- "@/hooks/*": ["./src/hooks/*"],
27
- "@/types/*": ["./src/types/*"]
28
- }
29
- },
30
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
31
- "exclude": ["node_modules"]
32
- }
33
-
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "lib": ["dom", "dom.iterable", "esnext"],
5
+ "allowJs": true,
6
+ "skipLibCheck": true,
7
+ "strict": true,
8
+ "noEmit": true,
9
+ "esModuleInterop": true,
10
+ "module": "esnext",
11
+ "moduleResolution": "bundler",
12
+ "resolveJsonModule": true,
13
+ "isolatedModules": true,
14
+ "jsx": "preserve",
15
+ "incremental": true,
16
+ "plugins": [
17
+ {
18
+ "name": "next"
19
+ }
20
+ ],
21
+ "paths": {
22
+ "@/*": ["./src/*"]
23
+ }
24
+ },
25
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
26
+ "exclude": ["node_modules"]
27
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digilogiclabs/create-saas-app",
3
- "version": "2.9.0",
3
+ "version": "2.10.0",
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": {
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Next.js Middleware — Supabase Auth (Edge Runtime)
3
+ *
4
+ * Refreshes the Supabase auth session on every request and
5
+ * protects routes under /dashboard from unauthenticated access.
6
+ *
7
+ * Add more protected routes to the `protectedPrefixes` array below.
8
+ */
9
+ import { createServerClient } from '@supabase/ssr';
10
+ import { NextResponse, type NextRequest } from 'next/server';
11
+
12
+ /** Routes that require authentication — add your own here */
13
+ const protectedPrefixes = ['/dashboard', '/settings', '/account'];
14
+
15
+ export async function middleware(request: NextRequest) {
16
+ let supabaseResponse = NextResponse.next({ request });
17
+
18
+ const supabase = createServerClient(
19
+ process.env.NEXT_PUBLIC_SUPABASE_URL!,
20
+ process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
21
+ {
22
+ cookies: {
23
+ getAll() {
24
+ return request.cookies.getAll();
25
+ },
26
+ setAll(
27
+ cookiesToSet: Array<{
28
+ name: string;
29
+ value: string;
30
+ options?: Record<string, unknown>;
31
+ }>
32
+ ) {
33
+ cookiesToSet.forEach(({ name, value }) => request.cookies.set(name, value));
34
+ supabaseResponse = NextResponse.next({ request });
35
+ cookiesToSet.forEach(({ name, value, options }) =>
36
+ supabaseResponse.cookies.set(name, value, options)
37
+ );
38
+ },
39
+ },
40
+ }
41
+ );
42
+
43
+ const {
44
+ data: { user },
45
+ } = await supabase.auth.getUser();
46
+
47
+ // Redirect to login if accessing a protected route without auth
48
+ const isProtected = protectedPrefixes.some((prefix) =>
49
+ request.nextUrl.pathname.startsWith(prefix)
50
+ );
51
+
52
+ if (!user && isProtected) {
53
+ const url = request.nextUrl.clone();
54
+ url.pathname = '/login';
55
+ return NextResponse.redirect(url);
56
+ }
57
+
58
+ return supabaseResponse;
59
+ }
60
+
61
+ export const config = {
62
+ matcher: ['/((?!_next/static|_next/image|favicon.ico|.*\\.(?:svg|png|jpg|jpeg|gif|webp)$).*)'],
63
+ };
@@ -16,7 +16,9 @@ export async function createClient() {
16
16
  getAll() {
17
17
  return cookieStore.getAll();
18
18
  },
19
- setAll(cookiesToSet: Array<{ name: string; value: string; options?: Record<string, unknown> }>) {
19
+ setAll(
20
+ cookiesToSet: Array<{ name: string; value: string; options?: Record<string, unknown> }>
21
+ ) {
20
22
  try {
21
23
  cookiesToSet.forEach(({ name, value, options }) =>
22
24
  cookieStore.set(name, value, options)
@@ -10,28 +10,28 @@
10
10
 
11
11
  export const designConfig = {
12
12
  /** App theme preset */
13
- theme: "{{theme}}" as const,
13
+ theme: '{{theme}}' as const,
14
14
 
15
15
  /** Primary accent color */
16
- accent: "{{themeColor}}" as const,
16
+ accent: '{{themeColor}}' as const,
17
17
 
18
18
  /** Default color mode */
19
- defaultMode: "{{defaultTheme}}" as const,
19
+ defaultMode: '{{defaultTheme}}' as const,
20
20
 
21
21
  /** Content density */
22
- density: "comfortable" as const,
22
+ density: 'comfortable' as const,
23
23
 
24
24
  /** Border radius scale */
25
- radius: "lg" as const,
25
+ radius: 'lg' as const,
26
26
 
27
27
  /** Motion preference */
28
- motion: "{{motion}}" as const,
28
+ motion: '{{motion}}' as const,
29
29
 
30
30
  /** Landing page style */
31
- landingStyle: "{{landingStyle}}" as const,
31
+ landingStyle: '{{landingStyle}}' as const,
32
32
 
33
33
  /** Layout archetype */
34
- layout: "dashboard" as const,
34
+ layout: 'dashboard' as const,
35
35
  } as const;
36
36
 
37
37
  /**
@@ -39,12 +39,12 @@ export const designConfig = {
39
39
  * Used by ThemeProvider to set --color-accent at runtime.
40
40
  */
41
41
  export const accentColors = {
42
- blue: { light: "#3b82f6", dark: "#60a5fa" },
43
- green: { light: "#10b981", dark: "#34d399" },
44
- purple: { light: "#8b5cf6", dark: "#a78bfa" },
45
- orange: { light: "#f97316", dark: "#fb923c" },
46
- red: { light: "#ef4444", dark: "#f87171" },
47
- slate: { light: "#475569", dark: "#94a3b8" },
42
+ blue: { light: '#3b82f6', dark: '#60a5fa' },
43
+ green: { light: '#10b981', dark: '#34d399' },
44
+ purple: { light: '#8b5cf6', dark: '#a78bfa' },
45
+ orange: { light: '#f97316', dark: '#fb923c' },
46
+ red: { light: '#ef4444', dark: '#f87171' },
47
+ slate: { light: '#475569', dark: '#94a3b8' },
48
48
  } as const;
49
49
 
50
50
  export type AccentColor = keyof typeof accentColors;