@digilogiclabs/create-saas-app 1.4.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/index.js +45 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/templates/web/base/template/package.json +58 -48
  6. package/dist/templates/web/base/template/src/app/error.tsx +97 -0
  7. package/dist/templates/web/base/template/src/app/layout.tsx +8 -2
  8. package/dist/templates/web/base/template/src/app/loading.tsx +34 -0
  9. package/dist/templates/web/base/template/src/components/__tests__/example.test.tsx +49 -0
  10. package/dist/templates/web/base/template/src/components/providers/app-providers.tsx +6 -2
  11. package/dist/templates/web/base/template/src/components/providers/theme-provider.tsx +94 -0
  12. package/dist/templates/web/base/template/src/components/shared/footer.tsx +36 -0
  13. package/dist/templates/web/base/template/src/components/shared/header.tsx +2 -0
  14. package/dist/templates/web/base/template/src/components/ui/theme-toggle.tsx +34 -0
  15. package/dist/templates/web/base/template/src/lib/auth-server.ts +177 -0
  16. package/dist/templates/web/base/template/src/lib/env.ts +46 -0
  17. package/dist/templates/web/base/template/src/lib/utils.ts +133 -0
  18. package/dist/templates/web/base/template/src/test/setup.ts +79 -0
  19. package/dist/templates/web/base/template/vitest.config.ts +17 -0
  20. package/dist/templates/web/ui-auth/template/package.json +50 -40
  21. package/dist/templates/web/ui-auth/template/src/app/error.tsx +67 -0
  22. package/dist/templates/web/ui-auth/template/src/app/layout.tsx +6 -2
  23. package/dist/templates/web/ui-auth/template/src/app/loading.tsx +20 -0
  24. package/dist/templates/web/ui-auth/template/src/components/__tests__/example.test.tsx +49 -0
  25. package/dist/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +6 -2
  26. package/dist/templates/web/ui-auth/template/src/components/providers/theme-provider.tsx +94 -0
  27. package/dist/templates/web/ui-auth/template/src/components/shared/footer.tsx +36 -0
  28. package/dist/templates/web/ui-auth/template/src/components/shared/header.tsx +2 -0
  29. package/dist/templates/web/ui-auth/template/src/components/ui/theme-toggle.tsx +34 -0
  30. package/dist/templates/web/ui-auth/template/src/lib/env.ts +49 -0
  31. package/dist/templates/web/ui-auth/template/src/lib/utils.ts +133 -0
  32. package/dist/templates/web/ui-auth/template/src/test/setup.ts +79 -0
  33. package/dist/templates/web/ui-auth/template/vitest.config.ts +17 -0
  34. package/dist/templates/web/ui-auth-payments/template/middleware.ts +68 -0
  35. package/dist/templates/web/ui-auth-payments/template/package.json +52 -42
  36. package/dist/templates/web/ui-auth-payments/template/src/app/dashboard/layout.tsx +22 -0
  37. package/dist/templates/web/ui-auth-payments/template/src/app/dashboard/page.tsx +183 -0
  38. package/dist/templates/web/ui-auth-payments/template/src/app/error.tsx +67 -0
  39. package/dist/templates/web/ui-auth-payments/template/src/app/layout.tsx +6 -2
  40. package/dist/templates/web/ui-auth-payments/template/src/app/loading.tsx +20 -0
  41. package/dist/templates/web/ui-auth-payments/template/src/app/login/loading.tsx +38 -0
  42. package/dist/templates/web/ui-auth-payments/template/src/app/signup/loading.tsx +50 -0
  43. package/dist/templates/web/ui-auth-payments/template/src/components/__tests__/example.test.tsx +49 -0
  44. package/dist/templates/web/ui-auth-payments/template/src/components/client/auth-status.tsx +52 -0
  45. package/dist/templates/web/ui-auth-payments/template/src/components/client/login-form.tsx +144 -0
  46. package/dist/templates/web/ui-auth-payments/template/src/components/client/newsletter-signup.tsx +68 -0
  47. package/dist/templates/web/ui-auth-payments/template/src/components/client/signup-form.tsx +185 -0
  48. package/dist/templates/web/ui-auth-payments/template/src/components/providers/app-providers.tsx +6 -2
  49. package/dist/templates/web/ui-auth-payments/template/src/components/providers/theme-provider.tsx +94 -0
  50. package/dist/templates/web/ui-auth-payments/template/src/components/shared/footer.tsx +36 -0
  51. package/dist/templates/web/ui-auth-payments/template/src/components/shared/header.tsx +2 -0
  52. package/dist/templates/web/ui-auth-payments/template/src/components/ui/theme-toggle.tsx +34 -0
  53. package/dist/templates/web/ui-auth-payments/template/src/lib/actions/auth.ts +246 -0
  54. package/dist/templates/web/ui-auth-payments/template/src/lib/actions/index.ts +340 -0
  55. package/dist/templates/web/ui-auth-payments/template/src/lib/auth-server.ts +177 -0
  56. package/dist/templates/web/ui-auth-payments/template/src/lib/env.ts +49 -0
  57. package/dist/templates/web/ui-auth-payments/template/src/lib/utils.ts +133 -0
  58. package/dist/templates/web/ui-auth-payments/template/src/test/setup.ts +79 -0
  59. package/dist/templates/web/ui-auth-payments/template/vitest.config.ts +17 -0
  60. package/dist/templates/web/ui-auth-payments-audio/template/package.json +53 -42
  61. package/dist/templates/web/ui-auth-payments-audio/template/src/app/error.tsx +67 -0
  62. package/dist/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +8 -2
  63. package/dist/templates/web/ui-auth-payments-audio/template/src/app/loading.tsx +20 -0
  64. package/dist/templates/web/ui-auth-payments-audio/template/src/components/__tests__/example.test.tsx +49 -0
  65. package/dist/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +6 -2
  66. package/dist/templates/web/ui-auth-payments-audio/template/src/components/providers/theme-provider.tsx +94 -0
  67. package/dist/templates/web/ui-auth-payments-audio/template/src/components/shared/footer.tsx +36 -0
  68. package/dist/templates/web/ui-auth-payments-audio/template/src/components/shared/header.tsx +2 -0
  69. package/dist/templates/web/ui-auth-payments-audio/template/src/components/ui/theme-toggle.tsx +34 -0
  70. package/dist/templates/web/ui-auth-payments-audio/template/src/lib/env.ts +49 -0
  71. package/dist/templates/web/ui-auth-payments-audio/template/src/lib/utils.ts +133 -0
  72. package/dist/templates/web/ui-auth-payments-audio/template/src/test/setup.ts +79 -0
  73. package/dist/templates/web/ui-auth-payments-audio/template/vitest.config.ts +17 -0
  74. package/dist/templates/web/ui-auth-payments-video/template/package.json +53 -42
  75. package/dist/templates/web/ui-auth-payments-video/template/src/app/error.tsx +67 -0
  76. package/dist/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +6 -2
  77. package/dist/templates/web/ui-auth-payments-video/template/src/app/loading.tsx +20 -0
  78. package/dist/templates/web/ui-auth-payments-video/template/src/components/__tests__/example.test.tsx +49 -0
  79. package/dist/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +6 -2
  80. package/dist/templates/web/ui-auth-payments-video/template/src/components/providers/theme-provider.tsx +94 -0
  81. package/dist/templates/web/ui-auth-payments-video/template/src/components/shared/footer.tsx +36 -0
  82. package/dist/templates/web/ui-auth-payments-video/template/src/components/shared/header.tsx +2 -0
  83. package/dist/templates/web/ui-auth-payments-video/template/src/components/ui/theme-toggle.tsx +34 -0
  84. package/dist/templates/web/ui-auth-payments-video/template/src/lib/env.ts +49 -0
  85. package/dist/templates/web/ui-auth-payments-video/template/src/lib/utils.ts +133 -0
  86. package/dist/templates/web/ui-auth-payments-video/template/src/test/setup.ts +79 -0
  87. package/dist/templates/web/ui-auth-payments-video/template/vitest.config.ts +17 -0
  88. package/dist/templates/web/ui-only/template/package.json +49 -39
  89. package/dist/templates/web/ui-only/template/src/app/error.tsx +67 -0
  90. package/dist/templates/web/ui-only/template/src/app/layout.tsx +6 -2
  91. package/dist/templates/web/ui-only/template/src/app/loading.tsx +20 -0
  92. package/dist/templates/web/ui-only/template/src/components/__tests__/example.test.tsx +49 -0
  93. package/dist/templates/web/ui-only/template/src/components/providers/app-providers.tsx +6 -2
  94. package/dist/templates/web/ui-only/template/src/components/providers/theme-provider.tsx +94 -0
  95. package/dist/templates/web/ui-only/template/src/components/shared/footer.tsx +36 -0
  96. package/dist/templates/web/ui-only/template/src/components/shared/header.tsx +2 -0
  97. package/dist/templates/web/ui-only/template/src/components/ui/theme-toggle.tsx +34 -0
  98. package/dist/templates/web/ui-only/template/src/lib/env.ts +49 -0
  99. package/dist/templates/web/ui-only/template/src/lib/utils.ts +133 -0
  100. package/dist/templates/web/ui-only/template/src/test/setup.ts +79 -0
  101. package/dist/templates/web/ui-only/template/vitest.config.ts +17 -0
  102. package/dist/templates/web/ui-package-test/template/package.json +42 -42
  103. package/package.json +1 -1
  104. package/src/templates/web/base/template/package.json +58 -48
  105. package/src/templates/web/base/template/src/app/error.tsx +97 -0
  106. package/src/templates/web/base/template/src/app/layout.tsx +8 -2
  107. package/src/templates/web/base/template/src/app/loading.tsx +34 -0
  108. package/src/templates/web/base/template/src/components/__tests__/example.test.tsx +49 -0
  109. package/src/templates/web/base/template/src/components/providers/app-providers.tsx +6 -2
  110. package/src/templates/web/base/template/src/components/providers/theme-provider.tsx +94 -0
  111. package/src/templates/web/base/template/src/components/shared/footer.tsx +36 -0
  112. package/src/templates/web/base/template/src/components/shared/header.tsx +2 -0
  113. package/src/templates/web/base/template/src/components/ui/theme-toggle.tsx +34 -0
  114. package/src/templates/web/base/template/src/lib/auth-server.ts +177 -0
  115. package/src/templates/web/base/template/src/lib/env.ts +46 -0
  116. package/src/templates/web/base/template/src/lib/utils.ts +133 -0
  117. package/src/templates/web/base/template/src/test/setup.ts +79 -0
  118. package/src/templates/web/base/template/vitest.config.ts +17 -0
  119. package/src/templates/web/ui-auth/template/package.json +50 -40
  120. package/src/templates/web/ui-auth/template/src/app/error.tsx +67 -0
  121. package/src/templates/web/ui-auth/template/src/app/layout.tsx +6 -2
  122. package/src/templates/web/ui-auth/template/src/app/loading.tsx +20 -0
  123. package/src/templates/web/ui-auth/template/src/components/__tests__/example.test.tsx +49 -0
  124. package/src/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +6 -2
  125. package/src/templates/web/ui-auth/template/src/components/providers/theme-provider.tsx +94 -0
  126. package/src/templates/web/ui-auth/template/src/components/shared/footer.tsx +36 -0
  127. package/src/templates/web/ui-auth/template/src/components/shared/header.tsx +2 -0
  128. package/src/templates/web/ui-auth/template/src/components/ui/theme-toggle.tsx +34 -0
  129. package/src/templates/web/ui-auth/template/src/lib/env.ts +49 -0
  130. package/src/templates/web/ui-auth/template/src/lib/utils.ts +133 -0
  131. package/src/templates/web/ui-auth/template/src/test/setup.ts +79 -0
  132. package/src/templates/web/ui-auth/template/vitest.config.ts +17 -0
  133. package/src/templates/web/ui-auth-payments/template/middleware.ts +68 -0
  134. package/src/templates/web/ui-auth-payments/template/package.json +52 -42
  135. package/src/templates/web/ui-auth-payments/template/src/app/dashboard/layout.tsx +22 -0
  136. package/src/templates/web/ui-auth-payments/template/src/app/dashboard/page.tsx +183 -0
  137. package/src/templates/web/ui-auth-payments/template/src/app/error.tsx +67 -0
  138. package/src/templates/web/ui-auth-payments/template/src/app/layout.tsx +6 -2
  139. package/src/templates/web/ui-auth-payments/template/src/app/loading.tsx +20 -0
  140. package/src/templates/web/ui-auth-payments/template/src/app/login/loading.tsx +38 -0
  141. package/src/templates/web/ui-auth-payments/template/src/app/signup/loading.tsx +50 -0
  142. package/src/templates/web/ui-auth-payments/template/src/components/__tests__/example.test.tsx +49 -0
  143. package/src/templates/web/ui-auth-payments/template/src/components/client/auth-status.tsx +52 -0
  144. package/src/templates/web/ui-auth-payments/template/src/components/client/login-form.tsx +144 -0
  145. package/src/templates/web/ui-auth-payments/template/src/components/client/newsletter-signup.tsx +68 -0
  146. package/src/templates/web/ui-auth-payments/template/src/components/client/signup-form.tsx +185 -0
  147. package/src/templates/web/ui-auth-payments/template/src/components/providers/app-providers.tsx +6 -2
  148. package/src/templates/web/ui-auth-payments/template/src/components/providers/theme-provider.tsx +94 -0
  149. package/src/templates/web/ui-auth-payments/template/src/components/shared/footer.tsx +36 -0
  150. package/src/templates/web/ui-auth-payments/template/src/components/shared/header.tsx +2 -0
  151. package/src/templates/web/ui-auth-payments/template/src/components/ui/theme-toggle.tsx +34 -0
  152. package/src/templates/web/ui-auth-payments/template/src/lib/actions/auth.ts +246 -0
  153. package/src/templates/web/ui-auth-payments/template/src/lib/actions/index.ts +340 -0
  154. package/src/templates/web/ui-auth-payments/template/src/lib/auth-server.ts +177 -0
  155. package/src/templates/web/ui-auth-payments/template/src/lib/env.ts +49 -0
  156. package/src/templates/web/ui-auth-payments/template/src/lib/utils.ts +133 -0
  157. package/src/templates/web/ui-auth-payments/template/src/test/setup.ts +79 -0
  158. package/src/templates/web/ui-auth-payments/template/vitest.config.ts +17 -0
  159. package/src/templates/web/ui-auth-payments-audio/template/package.json +53 -42
  160. package/src/templates/web/ui-auth-payments-audio/template/src/app/error.tsx +67 -0
  161. package/src/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +8 -2
  162. package/src/templates/web/ui-auth-payments-audio/template/src/app/loading.tsx +20 -0
  163. package/src/templates/web/ui-auth-payments-audio/template/src/components/__tests__/example.test.tsx +49 -0
  164. package/src/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +6 -2
  165. package/src/templates/web/ui-auth-payments-audio/template/src/components/providers/theme-provider.tsx +94 -0
  166. package/src/templates/web/ui-auth-payments-audio/template/src/components/shared/footer.tsx +36 -0
  167. package/src/templates/web/ui-auth-payments-audio/template/src/components/shared/header.tsx +2 -0
  168. package/src/templates/web/ui-auth-payments-audio/template/src/components/ui/theme-toggle.tsx +34 -0
  169. package/src/templates/web/ui-auth-payments-audio/template/src/lib/env.ts +49 -0
  170. package/src/templates/web/ui-auth-payments-audio/template/src/lib/utils.ts +133 -0
  171. package/src/templates/web/ui-auth-payments-audio/template/src/test/setup.ts +79 -0
  172. package/src/templates/web/ui-auth-payments-audio/template/vitest.config.ts +17 -0
  173. package/src/templates/web/ui-auth-payments-video/template/package.json +53 -42
  174. package/src/templates/web/ui-auth-payments-video/template/src/app/error.tsx +67 -0
  175. package/src/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +6 -2
  176. package/src/templates/web/ui-auth-payments-video/template/src/app/loading.tsx +20 -0
  177. package/src/templates/web/ui-auth-payments-video/template/src/components/__tests__/example.test.tsx +49 -0
  178. package/src/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +6 -2
  179. package/src/templates/web/ui-auth-payments-video/template/src/components/providers/theme-provider.tsx +94 -0
  180. package/src/templates/web/ui-auth-payments-video/template/src/components/shared/footer.tsx +36 -0
  181. package/src/templates/web/ui-auth-payments-video/template/src/components/shared/header.tsx +2 -0
  182. package/src/templates/web/ui-auth-payments-video/template/src/components/ui/theme-toggle.tsx +34 -0
  183. package/src/templates/web/ui-auth-payments-video/template/src/lib/env.ts +49 -0
  184. package/src/templates/web/ui-auth-payments-video/template/src/lib/utils.ts +133 -0
  185. package/src/templates/web/ui-auth-payments-video/template/src/test/setup.ts +79 -0
  186. package/src/templates/web/ui-auth-payments-video/template/vitest.config.ts +17 -0
  187. package/src/templates/web/ui-only/template/package.json +49 -39
  188. package/src/templates/web/ui-only/template/src/app/error.tsx +67 -0
  189. package/src/templates/web/ui-only/template/src/app/layout.tsx +6 -2
  190. package/src/templates/web/ui-only/template/src/app/loading.tsx +20 -0
  191. package/src/templates/web/ui-only/template/src/components/__tests__/example.test.tsx +49 -0
  192. package/src/templates/web/ui-only/template/src/components/providers/app-providers.tsx +6 -2
  193. package/src/templates/web/ui-only/template/src/components/providers/theme-provider.tsx +94 -0
  194. package/src/templates/web/ui-only/template/src/components/shared/footer.tsx +36 -0
  195. package/src/templates/web/ui-only/template/src/components/shared/header.tsx +2 -0
  196. package/src/templates/web/ui-only/template/src/components/ui/theme-toggle.tsx +34 -0
  197. package/src/templates/web/ui-only/template/src/lib/env.ts +49 -0
  198. package/src/templates/web/ui-only/template/src/lib/utils.ts +133 -0
  199. package/src/templates/web/ui-only/template/src/test/setup.ts +79 -0
  200. package/src/templates/web/ui-only/template/vitest.config.ts +17 -0
  201. package/src/templates/web/ui-package-test/template/package.json +42 -42
@@ -0,0 +1,79 @@
1
+ import '@testing-library/jest-dom'
2
+ import { vi, beforeEach, afterAll } from 'vitest'
3
+
4
+ // Mock Next.js router
5
+ vi.mock('next/navigation', () => ({
6
+ useRouter: () => ({
7
+ push: vi.fn(),
8
+ back: vi.fn(),
9
+ forward: vi.fn(),
10
+ refresh: vi.fn(),
11
+ replace: vi.fn(),
12
+ prefetch: vi.fn(),
13
+ }),
14
+ useSearchParams: () => new URLSearchParams(),
15
+ usePathname: () => '/',
16
+ }))
17
+
18
+ // Mock SaaS Factory Auth (optional - only if testing auth components)
19
+ vi.mock('@digilogiclabs/saas-factory-auth', () => ({
20
+ useAuth: () => ({
21
+ user: null,
22
+ loading: false,
23
+ error: null,
24
+ signIn: vi.fn(),
25
+ signUp: vi.fn(),
26
+ signOut: vi.fn(),
27
+ signInWithOAuth: vi.fn(),
28
+ }),
29
+ AuthProvider: ({ children }: { children: React.ReactNode }) => children,
30
+ }))
31
+
32
+ // Mock SaaS Factory Payments (optional - only if testing payment components)
33
+ vi.mock('@digilogiclabs/saas-factory-payments', () => ({
34
+ usePayments: () => ({
35
+ createCheckoutSession: vi.fn(),
36
+ createPortalSession: vi.fn(),
37
+ subscription: null,
38
+ loading: false,
39
+ }),
40
+ PaymentsProvider: ({ children }: { children: React.ReactNode }) => children,
41
+ }))
42
+
43
+ // Global test utilities
44
+ global.ResizeObserver = vi.fn().mockImplementation(() => ({
45
+ observe: vi.fn(),
46
+ unobserve: vi.fn(),
47
+ disconnect: vi.fn(),
48
+ }))
49
+
50
+ // Suppress console warnings in tests unless needed
51
+ const originalConsoleError = console.error
52
+ const originalConsoleWarn = console.warn
53
+
54
+ beforeEach(() => {
55
+ console.error = (...args: any[]) => {
56
+ if (
57
+ typeof args[0] === 'string' &&
58
+ args[0].includes('Warning: ReactDOM.render is no longer supported')
59
+ ) {
60
+ return
61
+ }
62
+ originalConsoleError.call(console, ...args)
63
+ }
64
+
65
+ console.warn = (...args: any[]) => {
66
+ if (
67
+ typeof args[0] === 'string' &&
68
+ args[0].includes('useLayoutEffect does nothing on the server')
69
+ ) {
70
+ return
71
+ }
72
+ originalConsoleWarn.call(console, ...args)
73
+ }
74
+ })
75
+
76
+ afterAll(() => {
77
+ console.error = originalConsoleError
78
+ console.warn = originalConsoleWarn
79
+ })
@@ -0,0 +1,17 @@
1
+ import { defineConfig } from 'vitest/config'
2
+ import react from '@vitejs/plugin-react'
3
+ import path from 'path'
4
+
5
+ export default defineConfig({
6
+ plugins: [react()],
7
+ test: {
8
+ environment: 'jsdom',
9
+ setupFiles: ['./src/test/setup.ts'],
10
+ globals: true,
11
+ },
12
+ resolve: {
13
+ alias: {
14
+ '@': path.resolve(__dirname, './src'),
15
+ },
16
+ },
17
+ })
@@ -1,42 +1,42 @@
1
- {
2
- "name": "{{packageName}}",
3
- "version": "0.1.0",
4
- "description": "{{description}} (with UI Package v0.10.0)",
5
- "private": true,
6
- "scripts": {
7
- "dev": "next dev",
8
- "build": "next build",
9
- "start": "next start",
10
- "lint": "next lint",
11
- "type-check": "tsc --noEmit"
12
- },
13
- "dependencies": {
14
- "next": "15.4.5",
15
- "react": "19.1.0",
16
- "react-dom": "19.1.0",
17
- "@digilogiclabs/saas-factory-ui": "^0.10.0",
18
- "tailwindcss": "^3.4.0",
19
- "autoprefixer": "^10.4.16",
20
- "postcss": "^8.4.31",
21
- "clsx": "^2.0.0",
22
- "class-variance-authority": "^0.7.0",
23
- "tailwind-merge": "^2.0.0",
24
- "next-themes": "^0.2.1",
25
- "lucide-react": "^0.292.0"
26
- },
27
- "devDependencies": {
28
- "typescript": "^5.3.0",
29
- "@types/node": "^20.10.0",
30
- "@types/react": "^18.2.45",
31
- "@types/react-dom": "^18.2.18",
32
- "eslint": "^8.55.0",
33
- "eslint-config-next": "15.4.5",
34
- "prettier": "^3.1.0",
35
- "prettier-plugin-tailwindcss": "^0.5.7",
36
- "@typescript-eslint/eslint-plugin": "^6.14.0",
37
- "@typescript-eslint/parser": "^6.14.0"
38
- },
39
- "engines": {
40
- "node": ">=18.0.0"
41
- }
42
- }
1
+ {
2
+ "name": "{{packageName}}",
3
+ "version": "0.1.0",
4
+ "description": "{{description}} (with UI Package v0.10.0)",
5
+ "private": true,
6
+ "scripts": {
7
+ "dev": "next dev",
8
+ "build": "next build",
9
+ "start": "next start",
10
+ "lint": "next lint",
11
+ "type-check": "tsc --noEmit"
12
+ },
13
+ "dependencies": {
14
+ "next": "15.4.5",
15
+ "react": "19.1.0",
16
+ "react-dom": "19.1.0",
17
+ "@digilogiclabs/saas-factory-ui": "^0.10.0",
18
+ "tailwindcss": "^3.4.0",
19
+ "autoprefixer": "^10.4.16",
20
+ "postcss": "^8.4.31",
21
+ "clsx": "^2.0.0",
22
+ "class-variance-authority": "^0.7.0",
23
+ "tailwind-merge": "^2.0.0",
24
+ "next-themes": "^0.2.1",
25
+ "lucide-react": "^0.292.0"
26
+ },
27
+ "devDependencies": {
28
+ "typescript": "^5.3.0",
29
+ "@types/node": "^20.10.0",
30
+ "@types/react": "^18.2.45",
31
+ "@types/react-dom": "^18.2.18",
32
+ "eslint": "^8.55.0",
33
+ "eslint-config-next": "15.4.5",
34
+ "prettier": "^3.1.0",
35
+ "prettier-plugin-tailwindcss": "^0.5.7",
36
+ "@typescript-eslint/eslint-plugin": "^6.14.0",
37
+ "@typescript-eslint/parser": "^6.14.0"
38
+ },
39
+ "engines": {
40
+ "node": ">=18.0.0"
41
+ }
42
+ }