@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,96 +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
- }
22
-
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
- }
34
- }
35
-
36
- @layer base {
37
- * {
38
- @apply border-border;
39
- }
40
- body {
41
- @apply bg-background text-foreground;
42
- }
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));
43
34
  }
44
35
 
45
- /* Custom animations for enhanced visual effects */
46
- @keyframes slide-down {
47
- from {
48
- opacity: 0;
49
- transform: translateY(-10px);
50
- }
51
- to {
52
- opacity: 1;
53
- transform: translateY(0);
54
- }
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%;
55
59
  }
56
60
 
57
- @keyframes fade-in-up {
58
- from {
59
- opacity: 0;
60
- transform: translateY(10px);
61
- }
62
- to {
63
- opacity: 1;
64
- transform: translateY(0);
65
- }
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%;
66
84
  }
67
85
 
68
- @keyframes marquee {
69
- 0% {
70
- transform: translateX(100%);
86
+ @layer base {
87
+ * {
88
+ border-color: hsl(var(--border));
71
89
  }
72
- 100% {
73
- transform: translateX(-100%);
90
+ body {
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;
74
96
  }
75
97
  }
76
-
77
- .animate-slide-down {
78
- animation: slide-down 0.6s ease-out;
79
- }
80
-
81
- .animate-fade-in-up {
82
- animation: fade-in-up 0.6s ease-out;
83
- animation-fill-mode: both;
84
- }
85
-
86
- .animate-marquee {
87
- animation: marquee 20s linear infinite;
88
- }
89
-
90
- .animation-delay-2000 {
91
- animation-delay: 2s;
92
- }
93
-
94
- .animation-delay-4000 {
95
- animation-delay: 4s;
96
- }
@@ -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,38 +1,20 @@
1
- import { Card, SkeletonCard, SkeletonText } 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">
7
- <div className="container mx-auto px-4 py-8">
8
- {/* Header skeleton */}
9
- <div className="mb-8">
10
- <SkeletonText className="h-8 w-64 mb-4" />
11
- <SkeletonText className="h-4 w-96" />
12
- </div>
13
-
14
- {/* Cards grid skeleton */}
15
- <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-8">
16
- {Array.from({ length: 6 }).map((_, i) => (
17
- <SkeletonCard key={i} />
18
- ))}
19
- </div>
20
-
21
- {/* Centered loading spinner */}
22
- <div className="flex justify-center">
23
- <Card className="w-full max-w-md p-8 text-center">
24
- <div className="flex flex-col items-center">
25
- <Loader2 className="h-8 w-8 animate-spin text-blue-600 dark:text-blue-400 mb-4" />
26
- <h2 className="text-lg font-medium text-gray-900 dark:text-white mb-2">
27
- Loading
28
- </h2>
29
- <p className="text-sm text-gray-600 dark:text-gray-300">
30
- Please wait while we load your content...
31
- </p>
32
- </div>
33
- </Card>
34
- </div>
35
- </div>
36
- </div>
37
- )
38
- }
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
+ }
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { ThemeProvider } from 'next-themes'
4
4
  import { Toaster } from '@digilogiclabs/saas-factory-ui'
5
+ import { DLLProvider } from '@digilogiclabs/app-sdk'
5
6
 
6
7
  interface AppProvidersProps {
7
8
  children: React.ReactNode
@@ -10,8 +11,10 @@ interface AppProvidersProps {
10
11
  export function AppProviders({ children }: AppProvidersProps) {
11
12
  return (
12
13
  <ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange>
13
- {children}
14
- <Toaster />
14
+ <DLLProvider>
15
+ {children}
16
+ <Toaster />
17
+ </DLLProvider>
15
18
  </ThemeProvider>
16
19
  )
17
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
+ }
@@ -1,13 +1,15 @@
1
- /** @type {import('next').NextConfig} */
2
- const nextConfig = {
3
- experimental: {
4
- serverComponentsExternalPackages: ['@digilogiclabs/saas-factory-ai'],
5
- },
6
- env: {
7
- NEXT_PUBLIC_SUPABASE_URL: process.env.NEXT_PUBLIC_SUPABASE_URL,
8
- NEXT_PUBLIC_SUPABASE_ANON_KEY: process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
9
- AI_GATEWAY_URL: process.env.AI_GATEWAY_URL || 'http://localhost:3001',
10
- },
11
- }
12
-
13
- module.exports = nextConfig
1
+ /** @type {import('next').NextConfig} */
2
+ const nextConfig = {
3
+ reactStrictMode: true,
4
+ serverExternalPackages: ['@digilogiclabs/saas-factory-ai'],
5
+ images: {
6
+ remotePatterns: [
7
+ {
8
+ protocol: 'https',
9
+ hostname: '**',
10
+ },
11
+ ],
12
+ },
13
+ }
14
+
15
+ module.exports = nextConfig
@@ -2,35 +2,39 @@
2
2
  "name": "{{packageName}}",
3
3
  "version": "0.1.0",
4
4
  "description": "{{description}}",
5
+ "private": true,
5
6
  "scripts": {
6
7
  "dev": "next dev",
7
- "build": "next build",
8
+ "build": "next build",
8
9
  "start": "next start",
9
- "lint": "next lint"
10
+ "lint": "next lint",
11
+ "type-check": "tsc --noEmit"
10
12
  },
11
13
  "dependencies": {
12
- "@digilogiclabs/saas-factory-ui": "^1.4.0",
13
- "next": "^15.0.0",
14
+ "next": "^15.5.0",
14
15
  "react": "^19.0.0",
15
16
  "react-dom": "^19.0.0",
16
- "@supabase/supabase-js": "^2.0.0",
17
- "@supabase/ssr": "^0.1.0",
18
- "clsx": "^2.0.0",
19
- "tailwindcss": "^3.3.0",
20
- "autoprefixer": "^10.4.16",
21
- "postcss": "^8.4.31"
17
+ "@digilogiclabs/platform-core": "^1.14.0",
18
+ "@digilogiclabs/saas-factory-ui": "^1.8.1",
19
+ "tailwindcss": "^4.1.0",
20
+ "@tailwindcss/postcss": "^4.1.0",
21
+ "clsx": "^2.1.0",
22
+ "class-variance-authority": "^0.7.0",
23
+ "tailwind-merge": "^2.6.0",
24
+ "next-themes": "^0.4.0",
25
+ "lucide-react": "^0.460.0",
26
+ "zod": "^4.1.0"
22
27
  },
23
28
  "devDependencies": {
24
- "@types/node": "^20.0.0",
25
- "@types/react": "^18.0.0",
26
- "@types/react-dom": "^18.0.0",
27
- "eslint": "^8.0.0",
28
- "prettier": "^3.0.0",
29
- "typescript": "^5.0.0"
29
+ "typescript": "^5.8.0",
30
+ "@types/node": "^22.0.0",
31
+ "@types/react": "^19.0.0",
32
+ "@types/react-dom": "^19.0.0",
33
+ "eslint": "^9.0.0",
34
+ "eslint-config-next": "^15.0.0",
35
+ "prettier": "^3.4.0"
30
36
  },
31
37
  "engines": {
32
- "node": ">=18.0.0"
33
- },
34
- "author": "{{author}}",
35
- "license": "MIT"
36
- }
38
+ "node": ">=20.0.0"
39
+ }
40
+ }
@@ -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;
@@ -16,27 +16,27 @@ export default function Error({ error, reset }: ErrorProps) {
16
16
  }, [error])
17
17
 
18
18
  return (
19
- <div className="min-h-screen bg-gradient-to-br from-red-50 to-orange-100 dark:from-slate-900 dark:to-slate-800 flex items-center justify-center p-4">
19
+ <div className="min-h-screen bg-background flex items-center justify-center p-4">
20
20
  <Card className="p-8 max-w-lg w-full">
21
21
  <div className="flex flex-col items-center space-y-6 text-center">
22
- <div className="w-16 h-16 bg-red-100 dark:bg-red-900 rounded-full flex items-center justify-center">
23
- <AlertTriangle className="w-8 h-8 text-red-600 dark:text-red-400" />
22
+ <div className="w-16 h-16 bg-destructive/10 rounded-full flex items-center justify-center">
23
+ <AlertTriangle className="w-8 h-8 text-destructive" />
24
24
  </div>
25
25
 
26
26
  <div>
27
- <h1 className="text-2xl font-bold text-gray-900 dark:text-white mb-2">
27
+ <h1 className="text-2xl font-bold text-foreground mb-2">
28
28
  Something went wrong!
29
29
  </h1>
30
- <p className="text-gray-600 dark:text-gray-300 mb-4">
30
+ <p className="text-muted-foreground mb-4">
31
31
  We encountered an unexpected error. This has been logged and our team will look into it.
32
32
  </p>
33
33
 
34
34
  {process.env.NODE_ENV === 'development' && (
35
35
  <details className="mt-4 text-left">
36
- <summary className="cursor-pointer text-sm text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200">
36
+ <summary className="cursor-pointer text-sm text-muted-foreground hover:text-foreground">
37
37
  Error details (development only)
38
38
  </summary>
39
- <div className="mt-2 p-3 bg-gray-100 dark:bg-gray-800 rounded text-xs font-mono text-gray-700 dark:text-gray-300 overflow-auto max-h-40">
39
+ <div className="mt-2 p-3 bg-muted rounded text-xs font-mono text-muted-foreground overflow-auto max-h-40">
40
40
  <div className="mb-2">
41
41
  <strong>Message:</strong> {error.message}
42
42
  </div>
@@ -1,35 +1,97 @@
1
1
  @import "tailwindcss";
2
2
 
3
- @layer base {
4
- :root {
5
- --background: 0 0% 100%;
6
- --foreground: 222.2 84% 4.9%;
7
- --card: 0 0% 100%;
8
- --card-foreground: 222.2 84% 4.9%;
9
- --popover: 0 0% 100%;
10
- --popover-foreground: 222.2 84% 4.9%;
11
- --primary: 222.2 47.4% 11.2%;
12
- --primary-foreground: 210 40% 98%;
13
- --secondary: 210 40% 96%;
14
- --secondary-foreground: 222.2 47.4% 11.2%;
15
- --muted: 210 40% 96%;
16
- --muted-foreground: 215.4 16.3% 46.9%;
17
- --accent: 210 40% 96%;
18
- --accent-foreground: 222.2 47.4% 11.2%;
19
- --destructive: 0 84.2% 60.2%;
20
- --destructive-foreground: 210 40% 98%;
21
- --border: 214.3 31.8% 91.4%;
22
- --input: 214.3 31.8% 91.4%;
23
- --ring: 222.2 84% 4.9%;
24
- --radius: 0.5rem;
25
- }
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
+ --color-brand-from: hsl(var(--brand-from));
32
+ --color-brand-via: hsl(var(--brand-via));
33
+ --color-brand-to: hsl(var(--brand-to));
34
+ }
35
+
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%;
26
84
  }
27
85
 
28
86
  @layer base {
29
87
  * {
30
- @apply border-border;
88
+ border-color: hsl(var(--border));
31
89
  }
32
90
  body {
33
- @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;
34
96
  }
35
97
  }
@@ -22,6 +22,9 @@ export default function RootLayout({
22
22
  return (
23
23
  <html lang="en">
24
24
  <body className={inter.className}>
25
+ <a href="#main-content" className="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-[90] focus:px-4 focus:py-2 focus:bg-primary focus:text-primary-foreground focus:rounded-lg focus:outline-none">
26
+ Skip to content
27
+ </a>
25
28
  <AuthProvider>
26
29
  {{#ai.enabled}}
27
30
  <AIProvider
@@ -2,7 +2,7 @@ import { Card, SkeletonCard, SkeletonText } from '@digilogiclabs/saas-factory-ui
2
2
 
3
3
  export default function Loading() {
4
4
  return (
5
- <div className="min-h-screen bg-gradient-to-br from-slate-50 to-slate-100 dark:from-slate-900 dark:to-slate-800">
5
+ <div className="min-h-screen bg-background">
6
6
  <div className="max-w-4xl mx-auto px-4 py-16">
7
7
  {/* Header skeleton */}
8
8
  <div className="flex justify-end mb-8">
@@ -27,10 +27,10 @@ export default function Loading() {
27
27
  <Card className="p-8">
28
28
  <div className="flex flex-col items-center space-y-4">
29
29
  <div className="relative">
30
- <div className="w-12 h-12 border-4 border-gray-200 dark:border-gray-700 rounded-full animate-spin"></div>
31
- <div className="absolute top-0 left-0 w-12 h-12 border-4 border-blue-600 border-t-transparent rounded-full animate-spin"></div>
30
+ <div className="w-12 h-12 border-4 border-border rounded-full animate-spin"></div>
31
+ <div className="absolute top-0 left-0 w-12 h-12 border-4 border-primary border-t-transparent rounded-full animate-spin"></div>
32
32
  </div>
33
- <p className="text-sm text-gray-600 dark:text-gray-300">Loading...</p>
33
+ <p className="text-sm text-muted-foreground">Loading...</p>
34
34
  </div>
35
35
  </Card>
36
36
  </div>