@digilogiclabs/create-saas-app 2.9.1 → 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 (323) 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 +248 -154
  20. package/dist/templates/web/ai-platform/template/src/lib/auth-server.ts +32 -33
  21. package/dist/templates/web/base/template/next.config.js +14 -15
  22. package/dist/templates/web/base/template/package.json +16 -31
  23. package/dist/templates/web/base/template/postcss.config.mjs +8 -0
  24. package/dist/templates/web/base/template/src/app/error.tsx +97 -97
  25. package/dist/templates/web/base/template/src/app/globals.css +87 -148
  26. package/dist/templates/web/base/template/src/app/layout.tsx +4 -1
  27. package/dist/templates/web/base/template/src/app/loading.tsx +52 -52
  28. package/dist/templates/web/base/template/tsconfig.json +27 -33
  29. package/dist/templates/web/iot-dashboard/template/next.config.js +14 -14
  30. package/dist/templates/web/iot-dashboard/template/package.json +12 -16
  31. package/dist/templates/web/iot-dashboard/template/postcss.config.mjs +8 -0
  32. package/dist/templates/web/iot-dashboard/template/src/app/dashboard/page.tsx +224 -224
  33. package/dist/templates/web/iot-dashboard/template/src/app/error.tsx +8 -8
  34. package/dist/templates/web/iot-dashboard/template/src/app/globals.css +97 -20
  35. package/dist/templates/web/iot-dashboard/template/src/app/layout.tsx +3 -0
  36. package/dist/templates/web/iot-dashboard/template/src/app/loading.tsx +5 -5
  37. package/dist/templates/web/iot-dashboard/template/src/app/page.tsx +266 -189
  38. package/dist/templates/web/iot-dashboard/template/src/lib/auth-server.ts +32 -33
  39. package/dist/templates/web/marketplace/template/next.config.js +14 -14
  40. package/dist/templates/web/marketplace/template/package.json +11 -18
  41. package/dist/templates/web/marketplace/template/postcss.config.mjs +8 -0
  42. package/dist/templates/web/marketplace/template/src/app/cart/page.tsx +147 -147
  43. package/dist/templates/web/marketplace/template/src/app/dashboard/page.tsx +149 -149
  44. package/dist/templates/web/marketplace/template/src/app/error.tsx +7 -7
  45. package/dist/templates/web/marketplace/template/src/app/globals.css +97 -20
  46. package/dist/templates/web/marketplace/template/src/app/layout.tsx +3 -0
  47. package/dist/templates/web/marketplace/template/src/app/loading.tsx +5 -5
  48. package/dist/templates/web/marketplace/template/src/app/page.tsx +370 -169
  49. package/dist/templates/web/marketplace/template/src/app/products/page.tsx +129 -129
  50. package/dist/templates/web/marketplace/template/src/lib/auth-server.ts +32 -33
  51. package/dist/templates/web/micro-saas/template/next.config.js +14 -14
  52. package/dist/templates/web/micro-saas/template/package.json +9 -8
  53. package/dist/templates/web/micro-saas/template/postcss.config.mjs +8 -0
  54. package/dist/templates/web/micro-saas/template/src/app/dashboard/page.tsx +145 -117
  55. package/dist/templates/web/micro-saas/template/src/app/error.tsx +7 -7
  56. package/dist/templates/web/micro-saas/template/src/app/globals.css +97 -20
  57. package/dist/templates/web/micro-saas/template/src/app/layout.tsx +3 -0
  58. package/dist/templates/web/micro-saas/template/src/app/loading.tsx +43 -27
  59. package/dist/templates/web/micro-saas/template/src/app/login/page.tsx +101 -87
  60. package/dist/templates/web/micro-saas/template/src/app/page.tsx +227 -137
  61. package/dist/templates/web/micro-saas/template/src/app/signup/page.tsx +122 -108
  62. package/dist/templates/web/micro-saas/template/src/lib/auth-server.ts +32 -33
  63. package/dist/templates/web/ui-auth/template/next.config.js +14 -12
  64. package/dist/templates/web/ui-auth/template/package.json +16 -26
  65. package/dist/templates/web/ui-auth/template/postcss.config.mjs +8 -0
  66. package/dist/templates/web/ui-auth/template/src/app/error.tsx +67 -67
  67. package/dist/templates/web/ui-auth/template/src/app/globals.css +85 -84
  68. package/dist/templates/web/ui-auth/template/src/app/layout.tsx +4 -1
  69. package/dist/templates/web/ui-auth/template/src/app/loading.tsx +20 -38
  70. package/dist/templates/web/ui-auth/template/tsconfig.json +27 -33
  71. package/dist/templates/web/ui-auth-ai/template/next.config.js +15 -13
  72. package/dist/templates/web/ui-auth-ai/template/package.json +25 -21
  73. package/dist/templates/web/ui-auth-ai/template/postcss.config.mjs +8 -0
  74. package/dist/templates/web/ui-auth-ai/template/src/app/error.tsx +7 -7
  75. package/dist/templates/web/ui-auth-ai/template/src/app/globals.css +87 -25
  76. package/dist/templates/web/ui-auth-ai/template/src/app/layout.tsx +3 -0
  77. package/dist/templates/web/ui-auth-ai/template/src/app/loading.tsx +4 -4
  78. package/dist/templates/web/ui-auth-ai/template/tsconfig.json +27 -28
  79. package/dist/templates/web/ui-auth-payments/template/next.config.js +14 -12
  80. package/dist/templates/web/ui-auth-payments/template/package.json +16 -29
  81. package/dist/templates/web/ui-auth-payments/template/postcss.config.mjs +8 -0
  82. package/dist/templates/web/ui-auth-payments/template/src/app/error.tsx +67 -67
  83. package/dist/templates/web/ui-auth-payments/template/src/app/globals.css +89 -204
  84. package/dist/templates/web/ui-auth-payments/template/src/app/layout.tsx +4 -1
  85. package/dist/templates/web/ui-auth-payments/template/src/app/loading.tsx +20 -20
  86. package/dist/templates/web/ui-auth-payments/template/tsconfig.json +27 -33
  87. package/dist/templates/web/ui-auth-payments-ai/template/next.config.js +14 -12
  88. package/dist/templates/web/ui-auth-payments-ai/template/package.json +17 -33
  89. package/dist/templates/web/ui-auth-payments-ai/template/postcss.config.mjs +8 -0
  90. package/dist/templates/web/ui-auth-payments-ai/template/src/app/error.tsx +67 -67
  91. package/dist/templates/web/ui-auth-payments-ai/template/src/app/globals.css +85 -85
  92. package/dist/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +4 -1
  93. package/dist/templates/web/ui-auth-payments-ai/template/src/app/loading.tsx +20 -20
  94. package/dist/templates/web/ui-auth-payments-ai/template/tsconfig.json +27 -33
  95. package/dist/templates/web/ui-auth-payments-audio/template/next.config.js +14 -12
  96. package/dist/templates/web/ui-auth-payments-audio/template/package.json +17 -30
  97. package/dist/templates/web/ui-auth-payments-audio/template/postcss.config.mjs +8 -0
  98. package/dist/templates/web/ui-auth-payments-audio/template/src/app/error.tsx +67 -67
  99. package/dist/templates/web/ui-auth-payments-audio/template/src/app/globals.css +85 -85
  100. package/dist/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +4 -1
  101. package/dist/templates/web/ui-auth-payments-audio/template/src/app/loading.tsx +20 -20
  102. package/dist/templates/web/ui-auth-payments-audio/template/tsconfig.json +27 -33
  103. package/dist/templates/web/ui-auth-payments-video/template/next.config.js +14 -12
  104. package/dist/templates/web/ui-auth-payments-video/template/package.json +17 -30
  105. package/dist/templates/web/ui-auth-payments-video/template/postcss.config.mjs +8 -0
  106. package/dist/templates/web/ui-auth-payments-video/template/src/app/error.tsx +67 -67
  107. package/dist/templates/web/ui-auth-payments-video/template/src/app/globals.css +89 -221
  108. package/dist/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +4 -1
  109. package/dist/templates/web/ui-auth-payments-video/template/src/app/loading.tsx +20 -20
  110. package/dist/templates/web/ui-auth-payments-video/template/tsconfig.json +27 -33
  111. package/dist/templates/web/ui-only/template/next.config.js +14 -12
  112. package/dist/templates/web/ui-only/template/package.json +15 -25
  113. package/dist/templates/web/ui-only/template/postcss.config.mjs +8 -0
  114. package/dist/templates/web/ui-only/template/src/app/error.tsx +67 -67
  115. package/dist/templates/web/ui-only/template/src/app/globals.css +85 -31
  116. package/dist/templates/web/ui-only/template/src/app/layout.tsx +4 -1
  117. package/dist/templates/web/ui-only/template/src/app/loading.tsx +20 -20
  118. package/dist/templates/web/ui-only/template/tsconfig.json +27 -33
  119. package/package.json +1 -1
  120. package/src/templates/shared/auth/supabase/web/src/middleware.ts +63 -0
  121. package/src/templates/shared/database/supabase/web/src/lib/supabase/server.ts +3 -1
  122. package/src/templates/shared/design/web/src/config/design.config.ts +14 -14
  123. package/src/templates/shared/landing/web/src/components/LandingPage.tsx +0 -3
  124. package/src/templates/shared/security/web/src/lib/api-security.ts +2 -2
  125. package/src/templates/web/ai-platform/template/next.config.js +14 -14
  126. package/src/templates/web/ai-platform/template/package.json +11 -22
  127. package/src/templates/web/ai-platform/template/postcss.config.mjs +8 -0
  128. package/src/templates/web/ai-platform/template/src/app/chat/page.tsx +234 -235
  129. package/src/templates/web/ai-platform/template/src/app/dashboard/page.tsx +142 -142
  130. package/src/templates/web/ai-platform/template/src/app/error.tsx +13 -13
  131. package/src/templates/web/ai-platform/template/src/app/globals.css +97 -34
  132. package/src/templates/web/ai-platform/template/src/app/layout.tsx +3 -0
  133. package/src/templates/web/ai-platform/template/src/app/loading.tsx +22 -22
  134. package/src/templates/web/ai-platform/template/src/app/page.tsx +248 -154
  135. package/src/templates/web/ai-platform/template/src/lib/auth-server.ts +32 -33
  136. package/src/templates/web/base/template/next.config.js +14 -15
  137. package/src/templates/web/base/template/package.json +16 -31
  138. package/src/templates/web/base/template/postcss.config.mjs +8 -0
  139. package/src/templates/web/base/template/src/app/error.tsx +97 -97
  140. package/src/templates/web/base/template/src/app/globals.css +87 -148
  141. package/src/templates/web/base/template/src/app/layout.tsx +4 -1
  142. package/src/templates/web/base/template/src/app/loading.tsx +52 -52
  143. package/src/templates/web/base/template/tsconfig.json +27 -33
  144. package/src/templates/web/iot-dashboard/template/next.config.js +14 -14
  145. package/src/templates/web/iot-dashboard/template/package.json +12 -16
  146. package/src/templates/web/iot-dashboard/template/postcss.config.mjs +8 -0
  147. package/src/templates/web/iot-dashboard/template/src/app/dashboard/page.tsx +224 -224
  148. package/src/templates/web/iot-dashboard/template/src/app/error.tsx +8 -8
  149. package/src/templates/web/iot-dashboard/template/src/app/globals.css +97 -20
  150. package/src/templates/web/iot-dashboard/template/src/app/layout.tsx +3 -0
  151. package/src/templates/web/iot-dashboard/template/src/app/loading.tsx +5 -5
  152. package/src/templates/web/iot-dashboard/template/src/app/page.tsx +266 -189
  153. package/src/templates/web/iot-dashboard/template/src/lib/auth-server.ts +32 -33
  154. package/src/templates/web/marketplace/template/next.config.js +14 -14
  155. package/src/templates/web/marketplace/template/package.json +11 -18
  156. package/src/templates/web/marketplace/template/postcss.config.mjs +8 -0
  157. package/src/templates/web/marketplace/template/src/app/cart/page.tsx +147 -147
  158. package/src/templates/web/marketplace/template/src/app/dashboard/page.tsx +149 -149
  159. package/src/templates/web/marketplace/template/src/app/error.tsx +7 -7
  160. package/src/templates/web/marketplace/template/src/app/globals.css +97 -20
  161. package/src/templates/web/marketplace/template/src/app/layout.tsx +3 -0
  162. package/src/templates/web/marketplace/template/src/app/loading.tsx +5 -5
  163. package/src/templates/web/marketplace/template/src/app/page.tsx +370 -169
  164. package/src/templates/web/marketplace/template/src/app/products/page.tsx +129 -129
  165. package/src/templates/web/marketplace/template/src/lib/auth-server.ts +32 -33
  166. package/src/templates/web/micro-saas/template/next.config.js +14 -14
  167. package/src/templates/web/micro-saas/template/package.json +9 -8
  168. package/src/templates/web/micro-saas/template/postcss.config.mjs +8 -0
  169. package/src/templates/web/micro-saas/template/src/app/dashboard/page.tsx +145 -117
  170. package/src/templates/web/micro-saas/template/src/app/error.tsx +7 -7
  171. package/src/templates/web/micro-saas/template/src/app/globals.css +97 -20
  172. package/src/templates/web/micro-saas/template/src/app/layout.tsx +3 -0
  173. package/src/templates/web/micro-saas/template/src/app/loading.tsx +43 -27
  174. package/src/templates/web/micro-saas/template/src/app/login/page.tsx +101 -87
  175. package/src/templates/web/micro-saas/template/src/app/page.tsx +227 -137
  176. package/src/templates/web/micro-saas/template/src/app/signup/page.tsx +122 -108
  177. package/src/templates/web/micro-saas/template/src/lib/auth-server.ts +32 -33
  178. package/src/templates/web/ui-auth/template/next.config.js +14 -12
  179. package/src/templates/web/ui-auth/template/package.json +16 -26
  180. package/src/templates/web/ui-auth/template/postcss.config.mjs +8 -0
  181. package/src/templates/web/ui-auth/template/src/app/error.tsx +67 -67
  182. package/src/templates/web/ui-auth/template/src/app/globals.css +85 -84
  183. package/src/templates/web/ui-auth/template/src/app/layout.tsx +4 -1
  184. package/src/templates/web/ui-auth/template/src/app/loading.tsx +20 -38
  185. package/src/templates/web/ui-auth/template/tsconfig.json +27 -33
  186. package/src/templates/web/ui-auth-ai/template/next.config.js +15 -13
  187. package/src/templates/web/ui-auth-ai/template/package.json +25 -21
  188. package/src/templates/web/ui-auth-ai/template/postcss.config.mjs +8 -0
  189. package/src/templates/web/ui-auth-ai/template/src/app/error.tsx +7 -7
  190. package/src/templates/web/ui-auth-ai/template/src/app/globals.css +87 -25
  191. package/src/templates/web/ui-auth-ai/template/src/app/layout.tsx +3 -0
  192. package/src/templates/web/ui-auth-ai/template/src/app/loading.tsx +4 -4
  193. package/src/templates/web/ui-auth-ai/template/tsconfig.json +27 -28
  194. package/src/templates/web/ui-auth-payments/template/next.config.js +14 -12
  195. package/src/templates/web/ui-auth-payments/template/package.json +16 -29
  196. package/src/templates/web/ui-auth-payments/template/postcss.config.mjs +8 -0
  197. package/src/templates/web/ui-auth-payments/template/src/app/error.tsx +67 -67
  198. package/src/templates/web/ui-auth-payments/template/src/app/globals.css +89 -204
  199. package/src/templates/web/ui-auth-payments/template/src/app/layout.tsx +4 -1
  200. package/src/templates/web/ui-auth-payments/template/src/app/loading.tsx +20 -20
  201. package/src/templates/web/ui-auth-payments/template/tsconfig.json +27 -33
  202. package/src/templates/web/ui-auth-payments-ai/template/next.config.js +14 -12
  203. package/src/templates/web/ui-auth-payments-ai/template/package.json +17 -33
  204. package/src/templates/web/ui-auth-payments-ai/template/postcss.config.mjs +8 -0
  205. package/src/templates/web/ui-auth-payments-ai/template/src/app/error.tsx +67 -67
  206. package/src/templates/web/ui-auth-payments-ai/template/src/app/globals.css +85 -85
  207. package/src/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +4 -1
  208. package/src/templates/web/ui-auth-payments-ai/template/src/app/loading.tsx +20 -20
  209. package/src/templates/web/ui-auth-payments-ai/template/tsconfig.json +27 -33
  210. package/src/templates/web/ui-auth-payments-audio/template/next.config.js +14 -12
  211. package/src/templates/web/ui-auth-payments-audio/template/package.json +17 -30
  212. package/src/templates/web/ui-auth-payments-audio/template/postcss.config.mjs +8 -0
  213. package/src/templates/web/ui-auth-payments-audio/template/src/app/error.tsx +67 -67
  214. package/src/templates/web/ui-auth-payments-audio/template/src/app/globals.css +85 -85
  215. package/src/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +4 -1
  216. package/src/templates/web/ui-auth-payments-audio/template/src/app/loading.tsx +20 -20
  217. package/src/templates/web/ui-auth-payments-audio/template/tsconfig.json +27 -33
  218. package/src/templates/web/ui-auth-payments-video/template/next.config.js +14 -12
  219. package/src/templates/web/ui-auth-payments-video/template/package.json +17 -30
  220. package/src/templates/web/ui-auth-payments-video/template/postcss.config.mjs +8 -0
  221. package/src/templates/web/ui-auth-payments-video/template/src/app/error.tsx +67 -67
  222. package/src/templates/web/ui-auth-payments-video/template/src/app/globals.css +89 -221
  223. package/src/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +4 -1
  224. package/src/templates/web/ui-auth-payments-video/template/src/app/loading.tsx +20 -20
  225. package/src/templates/web/ui-auth-payments-video/template/tsconfig.json +27 -33
  226. package/src/templates/web/ui-only/template/next.config.js +14 -12
  227. package/src/templates/web/ui-only/template/package.json +15 -25
  228. package/src/templates/web/ui-only/template/postcss.config.mjs +8 -0
  229. package/src/templates/web/ui-only/template/src/app/error.tsx +67 -67
  230. package/src/templates/web/ui-only/template/src/app/globals.css +85 -31
  231. package/src/templates/web/ui-only/template/src/app/layout.tsx +4 -1
  232. package/src/templates/web/ui-only/template/src/app/loading.tsx +20 -20
  233. package/src/templates/web/ui-only/template/tsconfig.json +27 -33
  234. package/dist/templates/web/ai-platform/template/middleware.ts +0 -55
  235. package/dist/templates/web/ai-platform/template/src/lib/supabase/client.ts +0 -8
  236. package/dist/templates/web/ai-platform/template/src/lib/supabase/server.ts +0 -27
  237. package/dist/templates/web/base/template/postcss.config.js +0 -7
  238. package/dist/templates/web/base/template/tailwind.config.js +0 -77
  239. package/dist/templates/web/iot-dashboard/template/middleware.ts +0 -56
  240. package/dist/templates/web/iot-dashboard/template/src/lib/supabase/client.ts +0 -8
  241. package/dist/templates/web/iot-dashboard/template/src/lib/supabase/server.ts +0 -27
  242. package/dist/templates/web/marketplace/template/middleware.ts +0 -56
  243. package/dist/templates/web/marketplace/template/src/lib/supabase/client.ts +0 -8
  244. package/dist/templates/web/marketplace/template/src/lib/supabase/server.ts +0 -27
  245. package/dist/templates/web/micro-saas/template/middleware.ts +0 -53
  246. package/dist/templates/web/micro-saas/template/src/lib/supabase/client.ts +0 -8
  247. package/dist/templates/web/micro-saas/template/src/lib/supabase/server.ts +0 -29
  248. package/dist/templates/web/ui-auth/template/.claude +0 -21
  249. package/dist/templates/web/ui-auth/template/context.md +0 -105
  250. package/dist/templates/web/ui-auth/template/postcss.config.js +0 -7
  251. package/dist/templates/web/ui-auth/template/tailwind.config.js +0 -77
  252. package/dist/templates/web/ui-auth-ai/template/postcss.config.js +0 -6
  253. package/dist/templates/web/ui-auth-ai/template/tailwind.config.js +0 -22
  254. package/dist/templates/web/ui-auth-payments/template/middleware.ts +0 -68
  255. package/dist/templates/web/ui-auth-payments/template/package-lock.json +0 -12240
  256. package/dist/templates/web/ui-auth-payments/template/postcss.config.js +0 -7
  257. package/dist/templates/web/ui-auth-payments/template/tailwind.config.js +0 -77
  258. package/dist/templates/web/ui-auth-payments/template/tsconfig.tsbuildinfo +0 -1
  259. package/dist/templates/web/ui-auth-payments-ai/template/.claude +0 -21
  260. package/dist/templates/web/ui-auth-payments-ai/template/context.md +0 -169
  261. package/dist/templates/web/ui-auth-payments-ai/template/middleware.ts +0 -68
  262. package/dist/templates/web/ui-auth-payments-ai/template/package-lock.json +0 -12241
  263. package/dist/templates/web/ui-auth-payments-ai/template/postcss.config.js +0 -7
  264. package/dist/templates/web/ui-auth-payments-ai/template/tailwind.config.js +0 -77
  265. package/dist/templates/web/ui-auth-payments-ai/template/tsconfig.tsbuildinfo +0 -1
  266. package/dist/templates/web/ui-auth-payments-audio/template/middleware.ts +0 -68
  267. package/dist/templates/web/ui-auth-payments-audio/template/package-lock.json +0 -12241
  268. package/dist/templates/web/ui-auth-payments-audio/template/postcss.config.js +0 -7
  269. package/dist/templates/web/ui-auth-payments-audio/template/tailwind.config.js +0 -77
  270. package/dist/templates/web/ui-auth-payments-audio/template/tsconfig.tsbuildinfo +0 -1
  271. package/dist/templates/web/ui-auth-payments-video/template/postcss.config.js +0 -7
  272. package/dist/templates/web/ui-auth-payments-video/template/tailwind.config.js +0 -77
  273. package/dist/templates/web/ui-only/template/postcss.config.js +0 -7
  274. package/dist/templates/web/ui-only/template/tailwind.config.js +0 -77
  275. package/src/templates/web/ai-platform/template/middleware.ts +0 -55
  276. package/src/templates/web/ai-platform/template/src/lib/supabase/client.ts +0 -8
  277. package/src/templates/web/ai-platform/template/src/lib/supabase/server.ts +0 -27
  278. package/src/templates/web/base/template/postcss.config.js +0 -7
  279. package/src/templates/web/base/template/tailwind.config.js +0 -77
  280. package/src/templates/web/iot-dashboard/template/middleware.ts +0 -56
  281. package/src/templates/web/iot-dashboard/template/src/lib/supabase/client.ts +0 -8
  282. package/src/templates/web/iot-dashboard/template/src/lib/supabase/server.ts +0 -27
  283. package/src/templates/web/marketplace/template/middleware.ts +0 -56
  284. package/src/templates/web/marketplace/template/src/lib/supabase/client.ts +0 -8
  285. package/src/templates/web/marketplace/template/src/lib/supabase/server.ts +0 -27
  286. package/src/templates/web/micro-saas/template/middleware.ts +0 -53
  287. package/src/templates/web/micro-saas/template/src/lib/supabase/client.ts +0 -8
  288. package/src/templates/web/micro-saas/template/src/lib/supabase/server.ts +0 -29
  289. package/src/templates/web/ui-auth/template/.claude +0 -21
  290. package/src/templates/web/ui-auth/template/context.md +0 -105
  291. package/src/templates/web/ui-auth/template/postcss.config.js +0 -7
  292. package/src/templates/web/ui-auth/template/tailwind.config.js +0 -77
  293. package/src/templates/web/ui-auth-ai/template/postcss.config.js +0 -6
  294. package/src/templates/web/ui-auth-ai/template/tailwind.config.js +0 -22
  295. package/src/templates/web/ui-auth-payments/template/middleware.ts +0 -68
  296. package/src/templates/web/ui-auth-payments/template/package-lock.json +0 -12240
  297. package/src/templates/web/ui-auth-payments/template/postcss.config.js +0 -7
  298. package/src/templates/web/ui-auth-payments/template/tailwind.config.js +0 -77
  299. package/src/templates/web/ui-auth-payments/template/tsconfig.tsbuildinfo +0 -1
  300. package/src/templates/web/ui-auth-payments-ai/template/.claude +0 -21
  301. package/src/templates/web/ui-auth-payments-ai/template/context.md +0 -169
  302. package/src/templates/web/ui-auth-payments-ai/template/middleware.ts +0 -68
  303. package/src/templates/web/ui-auth-payments-ai/template/package-lock.json +0 -12241
  304. package/src/templates/web/ui-auth-payments-ai/template/postcss.config.js +0 -7
  305. package/src/templates/web/ui-auth-payments-ai/template/tailwind.config.js +0 -77
  306. package/src/templates/web/ui-auth-payments-ai/template/tsconfig.tsbuildinfo +0 -1
  307. package/src/templates/web/ui-auth-payments-audio/template/middleware.ts +0 -68
  308. package/src/templates/web/ui-auth-payments-audio/template/package-lock.json +0 -12241
  309. package/src/templates/web/ui-auth-payments-audio/template/postcss.config.js +0 -7
  310. package/src/templates/web/ui-auth-payments-audio/template/tailwind.config.js +0 -77
  311. package/src/templates/web/ui-auth-payments-audio/template/tsconfig.tsbuildinfo +0 -1
  312. package/src/templates/web/ui-auth-payments-video/template/postcss.config.js +0 -7
  313. package/src/templates/web/ui-auth-payments-video/template/tailwind.config.js +0 -77
  314. package/src/templates/web/ui-only/template/postcss.config.js +0 -7
  315. package/src/templates/web/ui-only/template/tailwind.config.js +0 -77
  316. /package/dist/templates/shared/admin/web/{components → src/components}/admin-nav.tsx +0 -0
  317. /package/dist/templates/shared/auth/keycloak/web/{auth.config.ts → src/auth.config.ts} +0 -0
  318. /package/dist/templates/shared/auth/keycloak/web/{auth.ts → src/auth.ts} +0 -0
  319. /package/dist/templates/shared/middleware/web/{middleware.ts → src/middleware.ts} +0 -0
  320. /package/src/templates/shared/admin/web/{components → src/components}/admin-nav.tsx +0 -0
  321. /package/src/templates/shared/auth/keycloak/web/{auth.config.ts → src/auth.config.ts} +0 -0
  322. /package/src/templates/shared/auth/keycloak/web/{auth.ts → src/auth.ts} +0 -0
  323. /package/src/templates/shared/middleware/web/{middleware.ts → src/middleware.ts} +0 -0
@@ -1,129 +1,129 @@
1
- 'use client'
2
-
3
- import { useState } from 'react'
4
- import { Button, Card } from '@digilogiclabs/saas-factory-ui'
5
- import { Search, Filter, Star, ShoppingCart } from 'lucide-react'
6
- import Link from 'next/link'
7
-
8
- const PRODUCTS = [
9
- { id: 1, name: 'Premium Widget Pro', price: 49.99, vendor: 'TechCo', rating: 4.8, category: 'Software', sales: 234 },
10
- { id: 2, name: 'Developer Toolkit', price: 129.99, vendor: 'DevTools', rating: 4.9, category: 'Software', sales: 156 },
11
- { id: 3, name: 'UI Design Pack', price: 79.99, vendor: 'CreativeStudio', rating: 4.7, category: 'Templates', sales: 89 },
12
- { id: 4, name: 'Analytics Dashboard', price: 199.99, vendor: 'DataCorp', rating: 4.6, category: 'Software', sales: 67 },
13
- { id: 5, name: 'Marketing Templates', price: 39.99, vendor: 'GrowthLab', rating: 4.5, category: 'Templates', sales: 312 },
14
- { id: 6, name: 'API Integration Kit', price: 149.99, vendor: 'APIExperts', rating: 4.8, category: 'Software', sales: 178 },
15
- { id: 7, name: 'SEO Course Bundle', price: 99.99, vendor: 'SEOMasters', rating: 4.9, category: 'Courses', sales: 245 },
16
- { id: 8, name: 'Cloud Consulting', price: 299.99, vendor: 'CloudPros', rating: 4.7, category: 'Services', sales: 45 },
17
- ]
18
-
19
- const CATEGORIES = ['All', 'Software', 'Templates', 'Courses', 'Services']
20
-
21
- export default function ProductsPage() {
22
- const [searchQuery, setSearchQuery] = useState('')
23
- const [selectedCategory, setSelectedCategory] = useState('All')
24
- const [sortBy, setSortBy] = useState('popular')
25
-
26
- const filteredProducts = PRODUCTS
27
- .filter(p => selectedCategory === 'All' || p.category === selectedCategory)
28
- .filter(p => p.name.toLowerCase().includes(searchQuery.toLowerCase()))
29
- .sort((a, b) => {
30
- if (sortBy === 'popular') return b.sales - a.sales
31
- if (sortBy === 'price-low') return a.price - b.price
32
- if (sortBy === 'price-high') return b.price - a.price
33
- if (sortBy === 'rating') return b.rating - a.rating
34
- return 0
35
- })
36
-
37
- return (
38
- <div className="min-h-screen bg-gray-50 dark:bg-gray-900">
39
- {/* Header */}
40
- <div className="bg-white dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700">
41
- <div className="max-w-7xl mx-auto px-4 py-6">
42
- <h1 className="text-3xl font-bold text-gray-900 dark:text-white mb-4">Products</h1>
43
-
44
- {/* Search and Filters */}
45
- <div className="flex flex-col md:flex-row gap-4">
46
- <div className="flex-1 relative">
47
- <Search className="absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400" />
48
- <input
49
- type="text"
50
- placeholder="Search products..."
51
- value={searchQuery}
52
- onChange={(e) => setSearchQuery(e.target.value)}
53
- className="w-full pl-10 pr-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white"
54
- />
55
- </div>
56
-
57
- <div className="flex gap-2">
58
- <select
59
- value={sortBy}
60
- onChange={(e) => setSortBy(e.target.value)}
61
- className="px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white"
62
- >
63
- <option value="popular">Most Popular</option>
64
- <option value="rating">Highest Rated</option>
65
- <option value="price-low">Price: Low to High</option>
66
- <option value="price-high">Price: High to Low</option>
67
- </select>
68
- </div>
69
- </div>
70
-
71
- {/* Categories */}
72
- <div className="flex gap-2 mt-4 overflow-x-auto pb-2">
73
- {CATEGORIES.map((category) => (
74
- <Button
75
- key={category}
76
- variant={selectedCategory === category ? 'default' : 'outline'}
77
- size="sm"
78
- onClick={() => setSelectedCategory(category)}
79
- >
80
- {category}
81
- </Button>
82
- ))}
83
- </div>
84
- </div>
85
- </div>
86
-
87
- {/* Products Grid */}
88
- <div className="max-w-7xl mx-auto px-4 py-8">
89
- <div className="flex items-center justify-between mb-6">
90
- <p className="text-gray-600 dark:text-gray-300">
91
- {filteredProducts.length} products found
92
- </p>
93
- </div>
94
-
95
- <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6">
96
- {filteredProducts.map((product) => (
97
- <Card key={product.id} className="overflow-hidden hover:shadow-lg transition-shadow">
98
- <div className="aspect-square bg-gray-100 dark:bg-gray-700 relative">
99
- <span className="absolute top-2 left-2 bg-blue-600 text-white text-xs px-2 py-1 rounded">
100
- {product.category}
101
- </span>
102
- </div>
103
- <div className="p-4">
104
- <h3 className="font-semibold text-gray-900 dark:text-white mb-1">{product.name}</h3>
105
- <p className="text-sm text-gray-500 mb-2">by {product.vendor}</p>
106
- <div className="flex items-center justify-between mb-3">
107
- <span className="text-lg font-bold text-blue-600">${product.price}</span>
108
- <div className="flex items-center text-yellow-500">
109
- <Star className="w-4 h-4 fill-current" />
110
- <span className="text-sm ml-1">{product.rating}</span>
111
- </div>
112
- </div>
113
- <div className="flex gap-2">
114
- <Button className="flex-1" size="sm">
115
- <ShoppingCart className="w-4 h-4 mr-1" />
116
- Add
117
- </Button>
118
- <Link href={`/products/${product.id}`} className="flex-1">
119
- <Button variant="outline" size="sm" className="w-full">View</Button>
120
- </Link>
121
- </div>
122
- </div>
123
- </Card>
124
- ))}
125
- </div>
126
- </div>
127
- </div>
128
- )
129
- }
1
+ 'use client'
2
+
3
+ import { useState } from 'react'
4
+ import { Button, Card } from '@digilogiclabs/saas-factory-ui'
5
+ import { Search, Filter, Star, ShoppingCart } from 'lucide-react'
6
+ import Link from 'next/link'
7
+
8
+ const PRODUCTS = [
9
+ { id: 1, name: 'Premium Widget Pro', price: 49.99, vendor: 'TechCo', rating: 4.8, category: 'Software', sales: 234 },
10
+ { id: 2, name: 'Developer Toolkit', price: 129.99, vendor: 'DevTools', rating: 4.9, category: 'Software', sales: 156 },
11
+ { id: 3, name: 'UI Design Pack', price: 79.99, vendor: 'CreativeStudio', rating: 4.7, category: 'Templates', sales: 89 },
12
+ { id: 4, name: 'Analytics Dashboard', price: 199.99, vendor: 'DataCorp', rating: 4.6, category: 'Software', sales: 67 },
13
+ { id: 5, name: 'Marketing Templates', price: 39.99, vendor: 'GrowthLab', rating: 4.5, category: 'Templates', sales: 312 },
14
+ { id: 6, name: 'API Integration Kit', price: 149.99, vendor: 'APIExperts', rating: 4.8, category: 'Software', sales: 178 },
15
+ { id: 7, name: 'SEO Course Bundle', price: 99.99, vendor: 'SEOMasters', rating: 4.9, category: 'Courses', sales: 245 },
16
+ { id: 8, name: 'Cloud Consulting', price: 299.99, vendor: 'CloudPros', rating: 4.7, category: 'Services', sales: 45 },
17
+ ]
18
+
19
+ const CATEGORIES = ['All', 'Software', 'Templates', 'Courses', 'Services']
20
+
21
+ export default function ProductsPage() {
22
+ const [searchQuery, setSearchQuery] = useState('')
23
+ const [selectedCategory, setSelectedCategory] = useState('All')
24
+ const [sortBy, setSortBy] = useState('popular')
25
+
26
+ const filteredProducts = PRODUCTS
27
+ .filter(p => selectedCategory === 'All' || p.category === selectedCategory)
28
+ .filter(p => p.name.toLowerCase().includes(searchQuery.toLowerCase()))
29
+ .sort((a, b) => {
30
+ if (sortBy === 'popular') return b.sales - a.sales
31
+ if (sortBy === 'price-low') return a.price - b.price
32
+ if (sortBy === 'price-high') return b.price - a.price
33
+ if (sortBy === 'rating') return b.rating - a.rating
34
+ return 0
35
+ })
36
+
37
+ return (
38
+ <div className="min-h-screen bg-background">
39
+ {/* Header */}
40
+ <div className="bg-card border-b border-border">
41
+ <div className="max-w-7xl mx-auto px-4 py-6">
42
+ <h1 className="text-3xl font-bold text-foreground mb-4">Products</h1>
43
+
44
+ {/* Search and Filters */}
45
+ <div className="flex flex-col md:flex-row gap-4">
46
+ <div className="flex-1 relative">
47
+ <Search className="absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-muted-foreground" />
48
+ <input
49
+ type="text"
50
+ placeholder="Search products..."
51
+ value={searchQuery}
52
+ onChange={(e) => setSearchQuery(e.target.value)}
53
+ className="w-full pl-10 pr-4 py-2 border border-input rounded-lg focus:ring-2 focus:ring-ring bg-background text-foreground"
54
+ />
55
+ </div>
56
+
57
+ <div className="flex gap-2">
58
+ <select
59
+ value={sortBy}
60
+ onChange={(e) => setSortBy(e.target.value)}
61
+ className="px-4 py-2 border border-input rounded-lg focus:ring-2 focus:ring-ring bg-background text-foreground"
62
+ >
63
+ <option value="popular">Most Popular</option>
64
+ <option value="rating">Highest Rated</option>
65
+ <option value="price-low">Price: Low to High</option>
66
+ <option value="price-high">Price: High to Low</option>
67
+ </select>
68
+ </div>
69
+ </div>
70
+
71
+ {/* Categories */}
72
+ <div className="flex gap-2 mt-4 overflow-x-auto pb-2">
73
+ {CATEGORIES.map((category) => (
74
+ <Button
75
+ key={category}
76
+ variant={selectedCategory === category ? 'default' : 'outline'}
77
+ size="sm"
78
+ onClick={() => setSelectedCategory(category)}
79
+ >
80
+ {category}
81
+ </Button>
82
+ ))}
83
+ </div>
84
+ </div>
85
+ </div>
86
+
87
+ {/* Products Grid */}
88
+ <div className="max-w-7xl mx-auto px-4 py-8">
89
+ <div className="flex items-center justify-between mb-6">
90
+ <p className="text-muted-foreground">
91
+ {filteredProducts.length} products found
92
+ </p>
93
+ </div>
94
+
95
+ <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6">
96
+ {filteredProducts.map((product) => (
97
+ <Card key={product.id} className="overflow-hidden hover:shadow-lg transition-shadow">
98
+ <div className="aspect-square bg-muted relative">
99
+ <span className="absolute top-2 left-2 bg-primary text-primary-foreground text-xs px-2 py-1 rounded">
100
+ {product.category}
101
+ </span>
102
+ </div>
103
+ <div className="p-4">
104
+ <h3 className="font-semibold text-foreground mb-1">{product.name}</h3>
105
+ <p className="text-sm text-muted-foreground mb-2">by {product.vendor}</p>
106
+ <div className="flex items-center justify-between mb-3">
107
+ <span className="text-lg font-bold text-primary">${product.price}</span>
108
+ <div className="flex items-center text-amber-500">
109
+ <Star className="w-4 h-4 fill-current" />
110
+ <span className="text-sm ml-1">{product.rating}</span>
111
+ </div>
112
+ </div>
113
+ <div className="flex gap-2">
114
+ <Button className="flex-1" size="sm">
115
+ <ShoppingCart className="w-4 h-4 mr-1" />
116
+ Add
117
+ </Button>
118
+ <Link href={`/products/${product.id}`} className="flex-1">
119
+ <Button variant="outline" size="sm" className="w-full">View</Button>
120
+ </Link>
121
+ </div>
122
+ </div>
123
+ </Card>
124
+ ))}
125
+ </div>
126
+ </div>
127
+ </div>
128
+ )
129
+ }
@@ -1,33 +1,32 @@
1
- import { redirect } from 'next/navigation'
2
- import { createClient } from './supabase/server'
3
-
4
- export interface AuthUser {
5
- id: string
6
- email: string | null
7
- name?: string | null
8
- }
9
-
10
- export async function getUser(): Promise<AuthUser | null> {
11
- const supabase = await createClient()
12
- const { data: { user }, error } = await supabase.auth.getUser()
13
-
14
- if (error || !user) {
15
- return null
16
- }
17
-
18
- return {
19
- id: user.id,
20
- email: user.email ?? null,
21
- name: user.user_metadata?.name ?? user.user_metadata?.full_name ?? null,
22
- }
23
- }
24
-
25
- export async function requireAuth(): Promise<AuthUser> {
26
- const user = await getUser()
27
-
28
- if (!user) {
29
- redirect('/login')
30
- }
31
-
32
- return user
33
- }
1
+ import { redirect } from 'next/navigation'
2
+ import { getSession, getUser as getSessionUser } from './auth-session'
3
+
4
+ export interface AuthUser {
5
+ id: string
6
+ email: string | null
7
+ name?: string | null
8
+ }
9
+
10
+ export async function getUser(): Promise<AuthUser | null> {
11
+ const user = await getSessionUser()
12
+
13
+ if (!user || !user.id) {
14
+ return null
15
+ }
16
+
17
+ return {
18
+ id: user.id,
19
+ email: user.email ?? null,
20
+ name: user.name ?? null,
21
+ }
22
+ }
23
+
24
+ export async function requireAuth(): Promise<AuthUser> {
25
+ const user = await getUser()
26
+
27
+ if (!user) {
28
+ redirect('/login')
29
+ }
30
+
31
+ return user
32
+ }
@@ -1,14 +1,14 @@
1
- /** @type {import('next').NextConfig} */
2
- const nextConfig = {
3
- reactStrictMode: true,
4
- images: {
5
- remotePatterns: [
6
- {
7
- protocol: 'https',
8
- hostname: '**.supabase.co',
9
- },
10
- ],
11
- },
12
- }
13
-
14
- module.exports = nextConfig
1
+ /** @type {import('next').NextConfig} */
2
+ const nextConfig = {
3
+ reactStrictMode: true,
4
+ images: {
5
+ remotePatterns: [
6
+ {
7
+ protocol: 'https',
8
+ hostname: '**',
9
+ },
10
+ ],
11
+ },
12
+ }
13
+
14
+ module.exports = nextConfig
@@ -11,22 +11,23 @@
11
11
  "type-check": "tsc --noEmit"
12
12
  },
13
13
  "dependencies": {
14
- "next": "^15.0.0",
14
+ "next": "^15.5.0",
15
15
  "react": "^19.0.0",
16
16
  "react-dom": "^19.0.0",
17
- "@digilogiclabs/platform-core": "^1.13.0",
18
- "@digilogiclabs/app-sdk": "^1.0.0",
19
- "@digilogiclabs/saas-factory-ui": "^1.4.0",
20
- "tailwindcss": "^4.0.0",
21
- "clsx": "^2.0.0",
17
+ "@digilogiclabs/platform-core": "^1.14.0",
18
+ "@digilogiclabs/app-sdk": "^1.1.0",
19
+ "@digilogiclabs/saas-factory-ui": "^1.8.1",
20
+ "tailwindcss": "^4.1.0",
21
+ "@tailwindcss/postcss": "^4.1.0",
22
+ "clsx": "^2.1.0",
22
23
  "class-variance-authority": "^0.7.0",
23
- "tailwind-merge": "^2.0.0",
24
+ "tailwind-merge": "^2.6.0",
24
25
  "next-themes": "^0.4.0",
25
26
  "lucide-react": "^0.460.0",
26
27
  "zod": "^4.1.0"
27
28
  },
28
29
  "devDependencies": {
29
- "typescript": "^5.7.0",
30
+ "typescript": "^5.8.0",
30
31
  "@types/node": "^22.0.0",
31
32
  "@types/react": "^19.0.0",
32
33
  "@types/react-dom": "^19.0.0",
@@ -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;