@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,55 +1,40 @@
1
1
  {
2
2
  "name": "{{packageName}}",
3
3
  "version": "0.1.0",
4
- "description": "{{description}} (with Platform Core + UI + Auth + Payments)",
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/platform-core": "^1.13.0",
21
- "@digilogiclabs/saas-factory-ui": "^1.4.0",
22
- "tailwindcss": "^3.3.0",
23
- "autoprefixer": "^10.4.16",
24
- "postcss": "^8.4.31",
25
- "clsx": "^2.0.0",
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",
26
22
  "class-variance-authority": "^0.7.0",
27
- "tailwind-merge": "^2.0.0",
28
- "next-themes": "^0.2.1",
29
- "@radix-ui/react-slot": "^1.0.2",
30
- "tailwindcss-animate": "^1.0.7",
31
- "lucide-react": "^0.542.0",
32
- "zod": "^4.1.0",
33
- "firebase": "^10.0.0",
34
- "@supabase/supabase-js": "^2.0.0"
23
+ "tailwind-merge": "^2.6.0",
24
+ "next-themes": "^0.4.0",
25
+ "lucide-react": "^0.460.0",
26
+ "zod": "^4.1.0"
35
27
  },
36
28
  "devDependencies": {
37
- "typescript": "^5.0.0",
38
- "@types/node": "^20.0.0",
29
+ "typescript": "^5.8.0",
30
+ "@types/node": "^22.0.0",
39
31
  "@types/react": "^19.0.0",
40
32
  "@types/react-dom": "^19.0.0",
41
33
  "eslint": "^9.0.0",
42
34
  "eslint-config-next": "^15.0.0",
43
- "prettier": "^3.0.0",
44
- "prettier-plugin-tailwindcss": "^0.5.0",
45
- "vitest": "^1.0.0",
46
- "@vitejs/plugin-react": "^4.0.0",
47
- "@testing-library/react": "^16.0.0",
48
- "@testing-library/jest-dom": "^6.0.0",
49
- "@testing-library/user-event": "^14.0.0",
50
- "jsdom": "^24.0.0"
35
+ "prettier": "^3.4.0"
51
36
  },
52
37
  "engines": {
53
- "node": ">=18.0.0"
38
+ "node": ">=20.0.0"
54
39
  }
55
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;
@@ -1,97 +1,97 @@
1
- 'use client'
2
-
3
- import { useEffect } from 'react'
4
- import { Button, Card } from '@digilogiclabs/saas-factory-ui'
5
- import { AlertTriangle, RefreshCw, Home } from 'lucide-react'
6
- import Link from 'next/link'
7
-
8
- interface ErrorProps {
9
- error: Error & { digest?: string }
10
- reset: () => void
11
- }
12
-
13
- export default function Error({ error, reset }: ErrorProps) {
14
- useEffect(() => {
15
- // Log error to error reporting service
16
- console.error('Application error:', error)
17
- }, [error])
18
-
19
- return (
20
- <div className="min-h-screen bg-gradient-to-br from-red-50 to-orange-100 dark:from-gray-900 dark:to-gray-800 flex items-center justify-center p-4">
21
- <Card className="p-8 max-w-lg w-full">
22
- <div className="flex flex-col items-center space-y-6 text-center">
23
- {/* Error icon */}
24
- <div className="w-16 h-16 bg-red-100 dark:bg-red-900 rounded-full flex items-center justify-center">
25
- <AlertTriangle className="w-8 h-8 text-red-600 dark:text-red-400" />
26
- </div>
27
-
28
- {/* Error content */}
29
- <div>
30
- <h1 className="text-2xl font-bold text-gray-900 dark:text-white mb-2">
31
- Something went wrong!
32
- </h1>
33
- <p className="text-gray-600 dark:text-gray-300 mb-4">
34
- We encountered an unexpected error. This has been logged and our team will look into it.
35
- </p>
36
-
37
- {/* Error details in development */}
38
- {process.env.NODE_ENV === 'development' && (
39
- <details className="mt-4 text-left">
40
- <summary className="cursor-pointer text-sm text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200">
41
- Error details (development only)
42
- </summary>
43
- <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">
44
- <div className="mb-2">
45
- <strong>Message:</strong> {error.message}
46
- </div>
47
- {error.digest && (
48
- <div className="mb-2">
49
- <strong>Digest:</strong> {error.digest}
50
- </div>
51
- )}
52
- {error.stack && (
53
- <div>
54
- <strong>Stack:</strong>
55
- <pre className="whitespace-pre-wrap mt-1">{error.stack}</pre>
56
- </div>
57
- )}
58
- </div>
59
- </details>
60
- )}
61
- </div>
62
-
63
- {/* Action buttons */}
64
- <div className="flex flex-col sm:flex-row gap-3 w-full">
65
- <Button
66
- onClick={reset}
67
- className="flex-1"
68
- size="lg"
69
- >
70
- <RefreshCw className="w-4 h-4 mr-2" />
71
- Try again
72
- </Button>
73
-
74
- <Link href="/" className="flex-1">
75
- <Button
76
- variant="outline"
77
- className="w-full"
78
- size="lg"
79
- >
80
- <Home className="w-4 h-4 mr-2" />
81
- Go home
82
- </Button>
83
- </Link>
84
- </div>
85
-
86
- {/* Help text */}
87
- <p className="text-sm text-gray-500 dark:text-gray-400">
88
- If this problem persists, please{' '}
89
- <Link href="/contact" className="text-blue-600 hover:underline dark:text-blue-400">
90
- contact support
91
- </Link>
92
- </p>
93
- </div>
94
- </Card>
95
- </div>
96
- )
97
- }
1
+ 'use client'
2
+
3
+ import { useEffect } from 'react'
4
+ import { Button, Card } from '@digilogiclabs/saas-factory-ui'
5
+ import { AlertTriangle, RefreshCw, Home } from 'lucide-react'
6
+ import Link from 'next/link'
7
+
8
+ interface ErrorProps {
9
+ error: Error & { digest?: string }
10
+ reset: () => void
11
+ }
12
+
13
+ export default function Error({ error, reset }: ErrorProps) {
14
+ useEffect(() => {
15
+ // Log error to error reporting service
16
+ console.error('Application error:', error)
17
+ }, [error])
18
+
19
+ return (
20
+ <div className="min-h-screen bg-background flex items-center justify-center p-4">
21
+ <Card className="p-8 max-w-lg w-full">
22
+ <div className="flex flex-col items-center space-y-6 text-center">
23
+ {/* Error icon */}
24
+ <div className="w-16 h-16 bg-destructive/10 rounded-full flex items-center justify-center">
25
+ <AlertTriangle className="w-8 h-8 text-destructive" />
26
+ </div>
27
+
28
+ {/* Error content */}
29
+ <div>
30
+ <h1 className="text-2xl font-bold text-foreground mb-2">
31
+ Something went wrong!
32
+ </h1>
33
+ <p className="text-muted-foreground mb-4">
34
+ We encountered an unexpected error. This has been logged and our team will look into it.
35
+ </p>
36
+
37
+ {/* Error details in development */}
38
+ {process.env.NODE_ENV === 'development' && (
39
+ <details className="mt-4 text-left">
40
+ <summary className="cursor-pointer text-sm text-muted-foreground hover:text-foreground">
41
+ Error details (development only)
42
+ </summary>
43
+ <div className="mt-2 p-3 bg-muted rounded text-xs font-mono text-muted-foreground overflow-auto max-h-40">
44
+ <div className="mb-2">
45
+ <strong>Message:</strong> {error.message}
46
+ </div>
47
+ {error.digest && (
48
+ <div className="mb-2">
49
+ <strong>Digest:</strong> {error.digest}
50
+ </div>
51
+ )}
52
+ {error.stack && (
53
+ <div>
54
+ <strong>Stack:</strong>
55
+ <pre className="whitespace-pre-wrap mt-1">{error.stack}</pre>
56
+ </div>
57
+ )}
58
+ </div>
59
+ </details>
60
+ )}
61
+ </div>
62
+
63
+ {/* Action buttons */}
64
+ <div className="flex flex-col sm:flex-row gap-3 w-full">
65
+ <Button
66
+ onClick={reset}
67
+ className="flex-1"
68
+ size="lg"
69
+ >
70
+ <RefreshCw className="w-4 h-4 mr-2" />
71
+ Try again
72
+ </Button>
73
+
74
+ <Link href="/" className="flex-1">
75
+ <Button
76
+ variant="outline"
77
+ className="w-full"
78
+ size="lg"
79
+ >
80
+ <Home className="w-4 h-4 mr-2" />
81
+ Go home
82
+ </Button>
83
+ </Link>
84
+ </div>
85
+
86
+ {/* Help text */}
87
+ <p className="text-sm text-muted-foreground">
88
+ If this problem persists, please{' '}
89
+ <Link href="/contact" className="text-primary hover:underline">
90
+ contact support
91
+ </Link>
92
+ </p>
93
+ </div>
94
+ </Card>
95
+ </div>
96
+ )
97
+ }
@@ -1,158 +1,97 @@
1
- /* Import SaaS Factory UI styles */
2
- @import '@digilogiclabs/saas-factory-ui/styles.css';
3
-
4
- @tailwind base;
5
- @tailwind components;
6
- @tailwind utilities;
7
-
1
+ @import "tailwindcss";
2
+
3
+ @theme {
4
+ --font-sans: 'Inter', system-ui, sans-serif;
5
+
6
+ --radius: 0.5rem;
7
+ --radius-sm: calc(var(--radius) - 4px);
8
+ --radius-md: calc(var(--radius) - 2px);
9
+ --radius-lg: var(--radius);
10
+ --radius-xl: calc(var(--radius) + 4px);
11
+
12
+ --color-background: hsl(var(--background));
13
+ --color-foreground: hsl(var(--foreground));
14
+ --color-card: hsl(var(--card));
15
+ --color-card-foreground: hsl(var(--card-foreground));
16
+ --color-popover: hsl(var(--popover));
17
+ --color-popover-foreground: hsl(var(--popover-foreground));
18
+ --color-primary: hsl(var(--primary));
19
+ --color-primary-foreground: hsl(var(--primary-foreground));
20
+ --color-secondary: hsl(var(--secondary));
21
+ --color-secondary-foreground: hsl(var(--secondary-foreground));
22
+ --color-muted: hsl(var(--muted));
23
+ --color-muted-foreground: hsl(var(--muted-foreground));
24
+ --color-accent: hsl(var(--accent));
25
+ --color-accent-foreground: hsl(var(--accent-foreground));
26
+ --color-destructive: hsl(var(--destructive));
27
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
28
+ --color-border: hsl(var(--border));
29
+ --color-input: hsl(var(--input));
30
+ --color-ring: hsl(var(--ring));
31
+ --color-brand-from: hsl(var(--brand-from));
32
+ --color-brand-via: hsl(var(--brand-via));
33
+ --color-brand-to: hsl(var(--brand-to));
34
+ }
8
35
 
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
- --popover: 0 0% 100%;
16
- --popover-foreground: 222.2 84% 4.9%;
17
- --primary: 221.2 83.2% 53.3%;
18
- --primary-foreground: 210 40% 98%;
19
- --secondary: 210 40% 96%;
20
- --secondary-foreground: 222.2 84% 4.9%;
21
- --muted: 210 40% 96%;
22
- --muted-foreground: 215.4 16.3% 46.9%;
23
- --accent: 210 40% 96%;
24
- --accent-foreground: 222.2 84% 4.9%;
25
- --destructive: 0 84.2% 60.2%;
26
- --destructive-foreground: 210 40% 98%;
27
- --border: 214.3 31.8% 91.4%;
28
- --input: 214.3 31.8% 91.4%;
29
- --ring: 221.2 83.2% 53.3%;
30
- --radius: 0.5rem;
31
- }
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
+ }
32
60
 
33
- .dark {
34
- --background: 222.2 84% 4.9%;
35
- --foreground: 210 40% 98%;
36
- --card: 222.2 84% 4.9%;
37
- --card-foreground: 210 40% 98%;
38
- --popover: 222.2 84% 4.9%;
39
- --popover-foreground: 210 40% 98%;
40
- --primary: 217.2 91.2% 59.8%;
41
- --primary-foreground: 222.2 84% 4.9%;
42
- --secondary: 217.2 32.6% 17.5%;
43
- --secondary-foreground: 210 40% 98%;
44
- --muted: 217.2 32.6% 17.5%;
45
- --muted-foreground: 215 20.2% 65.1%;
46
- --accent: 217.2 32.6% 17.5%;
47
- --accent-foreground: 210 40% 98%;
48
- --destructive: 0 62.8% 30.6%;
49
- --destructive-foreground: 210 40% 98%;
50
- --border: 217.2 32.6% 17.5%;
51
- --input: 217.2 32.6% 17.5%;
52
- --ring: 224.3 76.3% 94.1%;
53
- }
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%;
54
84
  }
55
85
 
56
86
  @layer base {
57
87
  * {
58
- @apply border-border;
88
+ border-color: hsl(var(--border));
59
89
  }
60
-
61
90
  body {
62
- @apply bg-background text-foreground;
63
- }
64
- }
65
-
66
- /* Mobile-first optimizations */
67
- @media (max-width: 768px) {
68
- .mobile-optimized {
69
- touch-action: manipulation;
70
- -webkit-tap-highlight-color: transparent;
71
- }
72
-
73
- /* Better touch targets */
74
- button,
75
- a,
76
- input,
77
- select,
78
- textarea {
79
- min-height: 44px;
80
- min-width: 44px;
81
- }
82
-
83
- /* Smooth scrolling for mobile */
84
- html {
85
- scroll-behavior: smooth;
86
- -webkit-overflow-scrolling: touch;
87
- }
88
- }
89
-
90
- /* Network-aware styles */
91
- @media (prefers-reduced-data: reduce) {
92
- .high-bandwidth-content {
93
- display: none;
94
- }
95
- }
96
-
97
- /* Reduced motion preferences */
98
- @media (prefers-reduced-motion: reduce) {
99
- *,
100
- *::before,
101
- *::after {
102
- animation-duration: 0.01ms !important;
103
- animation-iteration-count: 1 !important;
104
- transition-duration: 0.01ms !important;
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;
105
96
  }
106
97
  }
107
-
108
- /* Custom animations for mobile interactions */
109
- @keyframes haptic-feedback {
110
- 0% { transform: scale(1); }
111
- 50% { transform: scale(0.95); }
112
- 100% { transform: scale(1); }
113
- }
114
-
115
- .haptic-feedback {
116
- animation: haptic-feedback 0.1s ease-in-out;
117
- }
118
-
119
- /* Offline indicator styles */
120
- .offline-indicator {
121
- position: fixed;
122
- top: 0;
123
- left: 0;
124
- right: 0;
125
- background: #f59e0b;
126
- color: white;
127
- text-align: center;
128
- padding: 8px;
129
- font-size: 14px;
130
- z-index: 9999;
131
- }
132
-
133
- /* Loading states */
134
- .loading-skeleton {
135
- background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
136
- background-size: 200% 100%;
137
- animation: loading 1.5s infinite;
138
- }
139
-
140
- @keyframes loading {
141
- 0% {
142
- background-position: 200% 0;
143
- }
144
- 100% {
145
- background-position: -200% 0;
146
- }
147
- }
148
-
149
- /* Progressive image loading */
150
- .progressive-image {
151
- filter: blur(5px);
152
- transition: filter 0.3s;
153
- }
154
-
155
- .progressive-image.loaded {
156
- filter: blur(0);
157
- }
158
-
@@ -22,8 +22,11 @@ export default function RootLayout({
22
22
  <body className={inter.className}>
23
23
  <AppProviders>
24
24
  <div className="min-h-screen flex flex-col">
25
+ <a href="#main-content" className="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-[90] focus:px-4 focus:py-2 focus:bg-primary focus:text-primary-foreground focus:rounded-lg focus:outline-none">
26
+ Skip to content
27
+ </a>
25
28
  <Header />
26
- <main className="flex-1">
29
+ <main id="main-content" className="flex-1">
27
30
  {children}
28
31
  </main>
29
32
  <Footer />
@@ -1,52 +1,52 @@
1
- import { Card, SkeletonCard, SkeletonText } from '@digilogiclabs/saas-factory-ui'
2
-
3
- export default function Loading() {
4
- return (
5
- <div className="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100 dark:from-gray-900 dark:to-gray-800">
6
- <div className="container mx-auto px-4 py-8">
7
- {/* Header skeleton */}
8
- <div className="mb-8">
9
- <SkeletonText className="h-8 w-64 mb-4" />
10
- <SkeletonText className="h-4 w-96" />
11
- </div>
12
-
13
- {/* Cards grid skeleton */}
14
- <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-8">
15
- {Array.from({ length: 6 }).map((_, i) => (
16
- <SkeletonCard key={i} />
17
- ))}
18
- </div>
19
-
20
- {/* Centered loading spinner */}
21
- <div className="flex justify-center">
22
- <Card className="p-8 max-w-sm w-full mx-4">
23
- <div className="flex flex-col items-center space-y-4">
24
- {/* Animated spinner */}
25
- <div className="relative">
26
- <div className="w-12 h-12 border-4 border-gray-200 dark:border-gray-700 rounded-full animate-spin"></div>
27
- <div className="absolute top-0 left-0 w-12 h-12 border-4 border-blue-600 border-t-transparent rounded-full animate-spin"></div>
28
- </div>
29
-
30
- {/* Loading text */}
31
- <div className="text-center">
32
- <h2 className="text-lg font-semibold text-gray-900 dark:text-white mb-2">
33
- Loading...
34
- </h2>
35
- <p className="text-sm text-gray-600 dark:text-gray-300">
36
- Please wait while we prepare your content
37
- </p>
38
- </div>
39
-
40
- {/* Pulsing dots */}
41
- <div className="flex space-x-1">
42
- <div className="w-2 h-2 bg-blue-600 rounded-full animate-pulse"></div>
43
- <div className="w-2 h-2 bg-blue-600 rounded-full animate-pulse" style={{ animationDelay: '0.2s' }}></div>
44
- <div className="w-2 h-2 bg-blue-600 rounded-full animate-pulse" style={{ animationDelay: '0.4s' }}></div>
45
- </div>
46
- </div>
47
- </Card>
48
- </div>
49
- </div>
50
- </div>
51
- )
52
- }
1
+ import { Card, SkeletonCard, SkeletonText } from '@digilogiclabs/saas-factory-ui'
2
+
3
+ export default function Loading() {
4
+ return (
5
+ <div className="min-h-screen bg-background">
6
+ <div className="container mx-auto px-4 py-8">
7
+ {/* Header skeleton */}
8
+ <div className="mb-8">
9
+ <SkeletonText className="h-8 w-64 mb-4" />
10
+ <SkeletonText className="h-4 w-96" />
11
+ </div>
12
+
13
+ {/* Cards grid skeleton */}
14
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-8">
15
+ {Array.from({ length: 6 }).map((_, i) => (
16
+ <SkeletonCard key={i} />
17
+ ))}
18
+ </div>
19
+
20
+ {/* Centered loading spinner */}
21
+ <div className="flex justify-center">
22
+ <Card className="p-8 max-w-sm w-full mx-4">
23
+ <div className="flex flex-col items-center space-y-4">
24
+ {/* Animated spinner */}
25
+ <div className="relative">
26
+ <div className="w-12 h-12 border-4 border-border rounded-full animate-spin"></div>
27
+ <div className="absolute top-0 left-0 w-12 h-12 border-4 border-primary border-t-transparent rounded-full animate-spin"></div>
28
+ </div>
29
+
30
+ {/* Loading text */}
31
+ <div className="text-center">
32
+ <h2 className="text-lg font-semibold text-foreground mb-2">
33
+ Loading...
34
+ </h2>
35
+ <p className="text-sm text-muted-foreground">
36
+ Please wait while we prepare your content
37
+ </p>
38
+ </div>
39
+
40
+ {/* Pulsing dots */}
41
+ <div className="flex space-x-1">
42
+ <div className="w-2 h-2 bg-primary rounded-full animate-pulse"></div>
43
+ <div className="w-2 h-2 bg-primary rounded-full animate-pulse" style={{ animationDelay: '0.2s' }}></div>
44
+ <div className="w-2 h-2 bg-primary rounded-full animate-pulse" style={{ animationDelay: '0.4s' }}></div>
45
+ </div>
46
+ </div>
47
+ </Card>
48
+ </div>
49
+ </div>
50
+ </div>
51
+ )
52
+ }