@digilogiclabs/create-saas-app 2.11.0 → 2.12.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.
- package/CHANGELOG.md +12 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/generators/template-generator.d.ts +0 -2
- package/dist/generators/template-generator.d.ts.map +1 -1
- package/dist/generators/template-generator.js +18 -17
- package/dist/generators/template-generator.js.map +1 -1
- package/dist/templates/mobile/base/template/App.tsx +7 -4
- package/dist/templates/mobile/base/template/app/checkout.tsx +5 -2
- package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/_layout.tsx +6 -2
- package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/billing.tsx +7 -3
- package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/index.tsx +5 -2
- package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/profile.tsx +7 -2
- package/dist/templates/mobile/ui-auth-payments/template/app/_layout.tsx +2 -4
- package/dist/templates/mobile/ui-auth-payments/template/app/auth/login.tsx +6 -3
- package/dist/templates/mobile/ui-auth-payments/template/app/auth/signup.tsx +6 -3
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/_layout.tsx +6 -2
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/billing.tsx +7 -3
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/index.tsx +5 -2
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/profile.tsx +7 -2
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/_layout.tsx +2 -4
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/auth/login.tsx +6 -3
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/auth/signup.tsx +6 -3
- package/dist/templates/shared/admin/web/src/components/admin-nav.tsx +3 -3
- package/dist/templates/shared/auth/supabase/web/src/lib/auth-session.ts +36 -16
- package/dist/templates/shared/auth/supabase/web/src/middleware.ts +6 -0
- package/dist/templates/shared/config/web/next.config.mjs +0 -1
- package/dist/templates/shared/cookie-consent/web/components/cookie-consent.tsx +5 -5
- package/dist/templates/shared/design/web/src/components/ui/button.tsx +56 -0
- package/dist/templates/shared/email/web/src/lib/email/client.ts +1 -1
- package/dist/templates/shared/error-pages/web/src/app/error.tsx +13 -11
- package/dist/templates/shared/error-pages/web/src/app/global-error.tsx +2 -0
- package/dist/templates/shared/error-pages/web/src/app/not-found.tsx +6 -6
- package/dist/templates/shared/legal/web/src/app/(legal)/privacy/page.tsx +4 -4
- package/dist/templates/shared/legal/web/src/app/(legal)/terms/page.tsx +4 -4
- package/dist/templates/shared/loading/web/components/skeleton.tsx +4 -4
- package/dist/templates/shared/mock/web/.env.local +55 -0
- package/dist/templates/shared/mock/web/src/components/mock-auth-provider.tsx +72 -0
- package/dist/templates/shared/mock/web/src/components/mock-banner.tsx +29 -0
- package/dist/templates/shared/mock/web/src/lib/mock.ts +147 -0
- package/dist/templates/shared/payments/web/src/app/api/webhooks/stripe/route.ts +10 -4
- package/dist/templates/shared/redis/web/src/lib/redis.ts +1 -1
- package/dist/templates/web/ai-platform/template/package.json +0 -1
- package/dist/templates/web/ai-platform/template/src/app/chat/page.tsx +5 -2
- package/dist/templates/web/ai-platform/template/src/app/playground/page.tsx +5 -2
- package/dist/templates/web/ai-platform/template/src/components/providers/app-providers.tsx +2 -5
- package/dist/templates/web/base/template/eslint.config.mjs +14 -0
- package/dist/templates/web/base/template/src/app/auth/callback/route.ts +1 -1
- package/dist/templates/web/base/template/src/app/checkout/page.tsx +76 -103
- package/dist/templates/web/base/template/src/app/dashboard/page.tsx +145 -329
- package/dist/templates/web/base/template/src/app/layout.tsx +40 -38
- package/dist/templates/web/base/template/src/app/login/page.tsx +116 -66
- package/dist/templates/web/base/template/src/app/page.tsx +97 -193
- package/dist/templates/web/base/template/src/app/settings/page.tsx +154 -0
- package/dist/templates/web/base/template/src/app/signup/page.tsx +117 -66
- package/dist/templates/web/base/template/src/components/providers/app-providers.tsx +8 -3
- package/dist/templates/web/base/template/src/components/shared/header.tsx +229 -63
- package/dist/templates/web/iot-dashboard/template/package.json +0 -1
- package/dist/templates/web/iot-dashboard/template/src/components/providers/app-providers.tsx +2 -5
- package/dist/templates/web/marketplace/template/package.json +0 -1
- package/dist/templates/web/marketplace/template/src/components/providers/app-providers.tsx +2 -5
- package/dist/templates/web/micro-saas/template/package.json +0 -1
- package/dist/templates/web/micro-saas/template/src/components/providers/app-providers.tsx +2 -5
- package/dist/templates/web/ui-auth/template/eslint.config.mjs +14 -0
- package/dist/templates/web/ui-auth/template/src/app/checkout/page.tsx +3 -3
- package/dist/templates/web/ui-auth/template/src/app/dev-setup/page.tsx +81 -91
- package/dist/templates/web/ui-auth/template/src/app/layout.tsx +38 -36
- package/dist/templates/web/ui-auth/template/src/app/login/page.tsx +22 -45
- package/dist/templates/web/ui-auth/template/src/app/page.tsx +106 -306
- package/dist/templates/web/ui-auth/template/src/app/setup/page.tsx +387 -402
- package/dist/templates/web/ui-auth/template/src/app/signup/page.tsx +24 -47
- package/dist/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +8 -3
- package/dist/templates/web/ui-auth/template/src/components/shared/header.tsx +229 -94
- package/dist/templates/web/ui-auth-ai/template/src/app/layout.tsx +38 -45
- package/dist/templates/web/ui-auth-ai/template/src/app/login/page.tsx +86 -0
- package/dist/templates/web/ui-auth-ai/template/src/app/page.tsx +107 -193
- package/dist/templates/web/ui-auth-ai/template/src/app/signup/page.tsx +105 -0
- package/dist/templates/web/ui-auth-ai/template/src/components/ai/audio-generator.tsx +144 -140
- package/dist/templates/web/ui-auth-ai/template/src/components/ai/video-generator.tsx +156 -157
- package/dist/templates/web/ui-auth-ai/template/src/components/auth/login-form.tsx +7 -3
- package/dist/templates/web/ui-auth-ai/template/src/components/providers/app-providers.tsx +25 -0
- package/dist/templates/web/ui-auth-ai/template/src/components/shared/footer.tsx +36 -0
- package/dist/templates/web/ui-auth-ai/template/src/components/shared/header.tsx +228 -0
- package/dist/templates/web/ui-auth-ai/template/src/components/ui/button.tsx +5 -5
- package/dist/templates/web/ui-auth-ai/template/src/components/ui/input.tsx +1 -1
- package/dist/templates/web/ui-auth-ai/template/src/components/ui/select.tsx +1 -1
- package/dist/templates/web/ui-auth-ai/template/src/components/ui/textarea.tsx +1 -1
- package/dist/templates/web/ui-auth-ai/template/src/components/ui/theme-toggle.tsx +34 -0
- package/dist/templates/web/ui-auth-ai/template/src/lib/supabase.ts +6 -4
- package/dist/templates/web/ui-auth-ai/template/src/providers/auth-provider.tsx +7 -5
- package/dist/templates/web/ui-auth-payments/template/src/app/billing/page.tsx +63 -192
- package/dist/templates/web/ui-auth-payments/template/src/app/checkout/page.tsx +104 -296
- package/dist/templates/web/ui-auth-payments/template/src/app/dashboard/page.tsx +27 -27
- package/dist/templates/web/ui-auth-payments/template/src/app/dev-setup/page.tsx +70 -81
- package/dist/templates/web/ui-auth-payments/template/src/app/layout.tsx +38 -36
- package/dist/templates/web/ui-auth-payments/template/src/app/login/loading.tsx +9 -9
- package/dist/templates/web/ui-auth-payments/template/src/app/login/page.tsx +4 -104
- package/dist/templates/web/ui-auth-payments/template/src/app/page.tsx +69 -337
- package/dist/templates/web/ui-auth-payments/template/src/app/setup/page.tsx +55 -68
- package/dist/templates/web/ui-auth-payments/template/src/app/signup/loading.tsx +13 -13
- package/dist/templates/web/ui-auth-payments/template/src/app/signup/page.tsx +4 -123
- package/dist/templates/web/ui-auth-payments/template/src/components/client/auth-status.tsx +37 -52
- package/dist/templates/web/ui-auth-payments/template/src/components/client/login-form.tsx +49 -103
- package/dist/templates/web/ui-auth-payments/template/src/components/client/newsletter-signup.tsx +4 -4
- package/dist/templates/web/ui-auth-payments/template/src/components/client/signup-form.tsx +60 -140
- package/dist/templates/web/ui-auth-payments/template/src/components/providers/app-providers.tsx +25 -28
- package/dist/templates/web/ui-auth-payments/template/src/components/shared/header.tsx +229 -230
- package/dist/templates/web/ui-auth-payments/template/src/lib/actions/auth.ts +245 -245
- package/dist/templates/web/ui-auth-payments/template/src/lib/actions/index.ts +339 -339
- package/dist/templates/web/ui-auth-payments-ai/template/src/app/ai/page.tsx +305 -309
- package/dist/templates/web/ui-auth-payments-ai/template/src/app/billing/page.tsx +62 -312
- package/dist/templates/web/ui-auth-payments-ai/template/src/app/checkout/page.tsx +109 -125
- package/dist/templates/web/ui-auth-payments-ai/template/src/app/dashboard/page.tsx +27 -27
- package/dist/templates/web/ui-auth-payments-ai/template/src/app/dev-setup/page.tsx +68 -83
- package/dist/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +40 -38
- package/dist/templates/web/ui-auth-payments-ai/template/src/app/onboarding/page.tsx +20 -20
- package/dist/templates/web/ui-auth-payments-ai/template/src/app/page.tsx +140 -394
- package/dist/templates/web/ui-auth-payments-ai/template/src/app/settings/page.tsx +28 -27
- package/dist/templates/web/ui-auth-payments-ai/template/src/app/setup/page.tsx +51 -66
- package/dist/templates/web/ui-auth-payments-ai/template/src/components/client/auth-status.tsx +37 -52
- package/dist/templates/web/ui-auth-payments-ai/template/src/components/client/login-form.tsx +50 -79
- package/dist/templates/web/ui-auth-payments-ai/template/src/components/client/signup-form.tsx +58 -111
- package/dist/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +8 -3
- package/dist/templates/web/ui-auth-payments-ai/template/src/components/shared/header.tsx +229 -252
- package/dist/templates/web/ui-auth-payments-ai/template/src/lib/actions/auth.ts +245 -245
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/billing/page.tsx +63 -192
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/checkout/page.tsx +109 -125
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/dashboard/page.tsx +27 -27
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +40 -38
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +122 -385
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/setup/page.tsx +340 -344
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/auth-status.tsx +37 -52
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/login-form.tsx +49 -103
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/signup-form.tsx +60 -140
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +8 -3
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/shared/header.tsx +229 -252
- package/dist/templates/web/ui-auth-payments-audio/template/src/lib/actions/auth.ts +3 -3
- package/dist/templates/web/ui-auth-payments-video/template/src/app/billing/page.tsx +63 -192
- package/dist/templates/web/ui-auth-payments-video/template/src/app/checkout/page.tsx +109 -125
- package/dist/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +38 -36
- package/dist/templates/web/ui-auth-payments-video/template/src/app/login/page.tsx +9 -109
- package/dist/templates/web/ui-auth-payments-video/template/src/app/page.tsx +132 -392
- package/dist/templates/web/ui-auth-payments-video/template/src/app/setup/page.tsx +346 -350
- package/dist/templates/web/ui-auth-payments-video/template/src/app/signup/page.tsx +9 -128
- package/dist/templates/web/ui-auth-payments-video/template/src/components/client/login-form.tsx +90 -0
- package/dist/templates/web/ui-auth-payments-video/template/src/components/client/signup-form.tsx +105 -0
- package/dist/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +8 -3
- package/dist/templates/web/ui-auth-payments-video/template/src/components/shared/header.tsx +229 -246
- package/dist/templates/web/ui-only/template/eslint.config.mjs +14 -0
- package/dist/templates/web/ui-only/template/src/app/checkout/page.tsx +2 -2
- package/dist/templates/web/ui-only/template/src/app/login/page.tsx +69 -63
- package/dist/templates/web/ui-only/template/src/app/page.tsx +69 -91
- package/dist/templates/web/ui-only/template/src/app/signup/page.tsx +94 -79
- package/dist/templates/web/ui-only/template/src/components/providers/app-providers.tsx +1 -6
- package/dist/templates/web/ui-only/template/src/components/shared/header.tsx +90 -53
- package/dist/templates/web/ui-package-test/template/package.json +19 -23
- package/dist/templates/web/ui-package-test/template/postcss.config.mjs +8 -0
- package/dist/templates/web/ui-package-test/template/src/app/globals.css +88 -0
- package/dist/templates/web/ui-package-test/template/src/app/layout.tsx +27 -0
- package/dist/templates/web/ui-package-test/template/src/app/page.tsx +46 -106
- package/package.json +1 -1
- package/src/templates/mobile/base/template/App.tsx +7 -4
- package/src/templates/mobile/base/template/app/checkout.tsx +5 -2
- package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/_layout.tsx +6 -2
- package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/billing.tsx +7 -3
- package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/index.tsx +5 -2
- package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/profile.tsx +7 -2
- package/src/templates/mobile/ui-auth-payments/template/app/_layout.tsx +2 -4
- package/src/templates/mobile/ui-auth-payments/template/app/auth/login.tsx +6 -3
- package/src/templates/mobile/ui-auth-payments/template/app/auth/signup.tsx +6 -3
- package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/_layout.tsx +6 -2
- package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/billing.tsx +7 -3
- package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/index.tsx +5 -2
- package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/profile.tsx +7 -2
- package/src/templates/mobile/ui-auth-payments-ai/template/app/_layout.tsx +2 -4
- package/src/templates/mobile/ui-auth-payments-ai/template/app/auth/login.tsx +6 -3
- package/src/templates/mobile/ui-auth-payments-ai/template/app/auth/signup.tsx +6 -3
- package/src/templates/shared/admin/web/src/components/admin-nav.tsx +3 -3
- package/src/templates/shared/auth/supabase/web/src/lib/auth-session.ts +36 -16
- package/src/templates/shared/auth/supabase/web/src/middleware.ts +6 -0
- package/src/templates/shared/config/web/next.config.mjs +0 -1
- package/src/templates/shared/cookie-consent/web/components/cookie-consent.tsx +5 -5
- package/src/templates/shared/design/web/src/components/ui/button.tsx +56 -0
- package/src/templates/shared/email/web/src/lib/email/client.ts +1 -1
- package/src/templates/shared/error-pages/web/src/app/error.tsx +13 -11
- package/src/templates/shared/error-pages/web/src/app/global-error.tsx +2 -0
- package/src/templates/shared/error-pages/web/src/app/not-found.tsx +6 -6
- package/src/templates/shared/legal/web/src/app/(legal)/privacy/page.tsx +4 -4
- package/src/templates/shared/legal/web/src/app/(legal)/terms/page.tsx +4 -4
- package/src/templates/shared/loading/web/components/skeleton.tsx +4 -4
- package/src/templates/shared/mock/web/.env.local +55 -0
- package/src/templates/shared/mock/web/src/components/mock-auth-provider.tsx +72 -0
- package/src/templates/shared/mock/web/src/components/mock-banner.tsx +29 -0
- package/src/templates/shared/mock/web/src/lib/mock.ts +147 -0
- package/src/templates/shared/payments/web/src/app/api/webhooks/stripe/route.ts +10 -4
- package/src/templates/shared/redis/web/src/lib/redis.ts +1 -1
- package/src/templates/web/ai-platform/template/package.json +0 -1
- package/src/templates/web/ai-platform/template/src/app/chat/page.tsx +5 -2
- package/src/templates/web/ai-platform/template/src/app/playground/page.tsx +5 -2
- package/src/templates/web/ai-platform/template/src/components/providers/app-providers.tsx +2 -5
- package/src/templates/web/base/template/eslint.config.mjs +14 -0
- package/src/templates/web/base/template/src/app/auth/callback/route.ts +1 -1
- package/src/templates/web/base/template/src/app/checkout/page.tsx +76 -103
- package/src/templates/web/base/template/src/app/dashboard/page.tsx +145 -329
- package/src/templates/web/base/template/src/app/layout.tsx +40 -38
- package/src/templates/web/base/template/src/app/login/page.tsx +116 -66
- package/src/templates/web/base/template/src/app/page.tsx +97 -193
- package/src/templates/web/base/template/src/app/settings/page.tsx +154 -0
- package/src/templates/web/base/template/src/app/signup/page.tsx +117 -66
- package/src/templates/web/base/template/src/components/providers/app-providers.tsx +8 -3
- package/src/templates/web/base/template/src/components/shared/header.tsx +229 -63
- package/src/templates/web/iot-dashboard/template/package.json +0 -1
- package/src/templates/web/iot-dashboard/template/src/components/providers/app-providers.tsx +2 -5
- package/src/templates/web/marketplace/template/package.json +0 -1
- package/src/templates/web/marketplace/template/src/components/providers/app-providers.tsx +2 -5
- package/src/templates/web/micro-saas/template/package.json +0 -1
- package/src/templates/web/micro-saas/template/src/components/providers/app-providers.tsx +2 -5
- package/src/templates/web/ui-auth/template/eslint.config.mjs +14 -0
- package/src/templates/web/ui-auth/template/src/app/checkout/page.tsx +3 -3
- package/src/templates/web/ui-auth/template/src/app/dev-setup/page.tsx +81 -91
- package/src/templates/web/ui-auth/template/src/app/layout.tsx +38 -36
- package/src/templates/web/ui-auth/template/src/app/login/page.tsx +22 -45
- package/src/templates/web/ui-auth/template/src/app/page.tsx +106 -306
- package/src/templates/web/ui-auth/template/src/app/setup/page.tsx +387 -402
- package/src/templates/web/ui-auth/template/src/app/signup/page.tsx +24 -47
- package/src/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +8 -3
- package/src/templates/web/ui-auth/template/src/components/shared/header.tsx +229 -94
- package/src/templates/web/ui-auth-ai/template/src/app/layout.tsx +38 -45
- package/src/templates/web/ui-auth-ai/template/src/app/login/page.tsx +86 -0
- package/src/templates/web/ui-auth-ai/template/src/app/page.tsx +107 -193
- package/src/templates/web/ui-auth-ai/template/src/app/signup/page.tsx +105 -0
- package/src/templates/web/ui-auth-ai/template/src/components/ai/audio-generator.tsx +144 -140
- package/src/templates/web/ui-auth-ai/template/src/components/ai/video-generator.tsx +156 -157
- package/src/templates/web/ui-auth-ai/template/src/components/auth/login-form.tsx +7 -3
- package/src/templates/web/ui-auth-ai/template/src/components/providers/app-providers.tsx +25 -0
- package/src/templates/web/ui-auth-ai/template/src/components/shared/footer.tsx +36 -0
- package/src/templates/web/ui-auth-ai/template/src/components/shared/header.tsx +228 -0
- package/src/templates/web/ui-auth-ai/template/src/components/ui/button.tsx +5 -5
- package/src/templates/web/ui-auth-ai/template/src/components/ui/input.tsx +1 -1
- package/src/templates/web/ui-auth-ai/template/src/components/ui/select.tsx +1 -1
- package/src/templates/web/ui-auth-ai/template/src/components/ui/textarea.tsx +1 -1
- package/src/templates/web/ui-auth-ai/template/src/components/ui/theme-toggle.tsx +34 -0
- package/src/templates/web/ui-auth-ai/template/src/lib/supabase.ts +6 -4
- package/src/templates/web/ui-auth-ai/template/src/providers/auth-provider.tsx +7 -5
- package/src/templates/web/ui-auth-payments/template/src/app/billing/page.tsx +63 -192
- package/src/templates/web/ui-auth-payments/template/src/app/checkout/page.tsx +104 -296
- package/src/templates/web/ui-auth-payments/template/src/app/dashboard/page.tsx +27 -27
- package/src/templates/web/ui-auth-payments/template/src/app/dev-setup/page.tsx +70 -81
- package/src/templates/web/ui-auth-payments/template/src/app/layout.tsx +38 -36
- package/src/templates/web/ui-auth-payments/template/src/app/login/loading.tsx +9 -9
- package/src/templates/web/ui-auth-payments/template/src/app/login/page.tsx +4 -104
- package/src/templates/web/ui-auth-payments/template/src/app/page.tsx +69 -337
- package/src/templates/web/ui-auth-payments/template/src/app/setup/page.tsx +55 -68
- package/src/templates/web/ui-auth-payments/template/src/app/signup/loading.tsx +13 -13
- package/src/templates/web/ui-auth-payments/template/src/app/signup/page.tsx +4 -123
- package/src/templates/web/ui-auth-payments/template/src/components/client/auth-status.tsx +37 -52
- package/src/templates/web/ui-auth-payments/template/src/components/client/login-form.tsx +49 -103
- package/src/templates/web/ui-auth-payments/template/src/components/client/newsletter-signup.tsx +4 -4
- package/src/templates/web/ui-auth-payments/template/src/components/client/signup-form.tsx +60 -140
- package/src/templates/web/ui-auth-payments/template/src/components/providers/app-providers.tsx +25 -28
- package/src/templates/web/ui-auth-payments/template/src/components/shared/header.tsx +229 -230
- package/src/templates/web/ui-auth-payments/template/src/lib/actions/auth.ts +245 -245
- package/src/templates/web/ui-auth-payments/template/src/lib/actions/index.ts +339 -339
- package/src/templates/web/ui-auth-payments-ai/template/src/app/ai/page.tsx +305 -309
- package/src/templates/web/ui-auth-payments-ai/template/src/app/billing/page.tsx +62 -312
- package/src/templates/web/ui-auth-payments-ai/template/src/app/checkout/page.tsx +109 -125
- package/src/templates/web/ui-auth-payments-ai/template/src/app/dashboard/page.tsx +27 -27
- package/src/templates/web/ui-auth-payments-ai/template/src/app/dev-setup/page.tsx +68 -83
- package/src/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +40 -38
- package/src/templates/web/ui-auth-payments-ai/template/src/app/onboarding/page.tsx +20 -20
- package/src/templates/web/ui-auth-payments-ai/template/src/app/page.tsx +140 -394
- package/src/templates/web/ui-auth-payments-ai/template/src/app/settings/page.tsx +28 -27
- package/src/templates/web/ui-auth-payments-ai/template/src/app/setup/page.tsx +51 -66
- package/src/templates/web/ui-auth-payments-ai/template/src/components/client/auth-status.tsx +37 -52
- package/src/templates/web/ui-auth-payments-ai/template/src/components/client/login-form.tsx +50 -79
- package/src/templates/web/ui-auth-payments-ai/template/src/components/client/signup-form.tsx +58 -111
- package/src/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +8 -3
- package/src/templates/web/ui-auth-payments-ai/template/src/components/shared/header.tsx +229 -252
- package/src/templates/web/ui-auth-payments-ai/template/src/lib/actions/auth.ts +245 -245
- package/src/templates/web/ui-auth-payments-audio/template/src/app/billing/page.tsx +63 -192
- package/src/templates/web/ui-auth-payments-audio/template/src/app/checkout/page.tsx +109 -125
- package/src/templates/web/ui-auth-payments-audio/template/src/app/dashboard/page.tsx +27 -27
- package/src/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +40 -38
- package/src/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +122 -385
- package/src/templates/web/ui-auth-payments-audio/template/src/app/setup/page.tsx +340 -344
- package/src/templates/web/ui-auth-payments-audio/template/src/components/client/auth-status.tsx +37 -52
- package/src/templates/web/ui-auth-payments-audio/template/src/components/client/login-form.tsx +49 -103
- package/src/templates/web/ui-auth-payments-audio/template/src/components/client/signup-form.tsx +60 -140
- package/src/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +8 -3
- package/src/templates/web/ui-auth-payments-audio/template/src/components/shared/header.tsx +229 -252
- package/src/templates/web/ui-auth-payments-audio/template/src/lib/actions/auth.ts +3 -3
- package/src/templates/web/ui-auth-payments-video/template/src/app/billing/page.tsx +63 -192
- package/src/templates/web/ui-auth-payments-video/template/src/app/checkout/page.tsx +109 -125
- package/src/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +38 -36
- package/src/templates/web/ui-auth-payments-video/template/src/app/login/page.tsx +9 -109
- package/src/templates/web/ui-auth-payments-video/template/src/app/page.tsx +132 -392
- package/src/templates/web/ui-auth-payments-video/template/src/app/setup/page.tsx +346 -350
- package/src/templates/web/ui-auth-payments-video/template/src/app/signup/page.tsx +9 -128
- package/src/templates/web/ui-auth-payments-video/template/src/components/client/login-form.tsx +90 -0
- package/src/templates/web/ui-auth-payments-video/template/src/components/client/signup-form.tsx +105 -0
- package/src/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +8 -3
- package/src/templates/web/ui-auth-payments-video/template/src/components/shared/header.tsx +229 -246
- package/src/templates/web/ui-only/template/eslint.config.mjs +14 -0
- package/src/templates/web/ui-only/template/src/app/checkout/page.tsx +2 -2
- package/src/templates/web/ui-only/template/src/app/login/page.tsx +69 -63
- package/src/templates/web/ui-only/template/src/app/page.tsx +69 -91
- package/src/templates/web/ui-only/template/src/app/signup/page.tsx +94 -79
- package/src/templates/web/ui-only/template/src/components/providers/app-providers.tsx +1 -6
- package/src/templates/web/ui-only/template/src/components/shared/header.tsx +90 -53
- package/src/templates/web/ui-package-test/template/package.json +19 -23
- package/src/templates/web/ui-package-test/template/postcss.config.mjs +8 -0
- package/src/templates/web/ui-package-test/template/src/app/globals.css +88 -0
- package/src/templates/web/ui-package-test/template/src/app/layout.tsx +27 -0
- package/src/templates/web/ui-package-test/template/src/app/page.tsx +46 -106
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/README.md +0 -655
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app/(tabs)/ai.tsx +0 -683
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app/_layout.tsx +0 -124
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app.json +0 -74
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/babel.config.js +0 -25
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/docs/MOBILE-SETUP.md +0 -787
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/eas.json +0 -25
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/expo-env.d.ts +0 -3
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -346
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/jest-setup.ts +0 -37
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -180
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/metro.config.js +0 -11
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/package.json +0 -122
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -599
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/tsconfig.json +0 -32
- package/dist/templates/web/base/template/.eslintrc.js +0 -8
- package/dist/templates/web/base/template/src/components/__tests__/example.test.tsx +0 -49
- package/dist/templates/web/base/template/src/test/setup.ts +0 -74
- package/dist/templates/web/base/template/vitest.config.ts +0 -17
- package/dist/templates/web/ui-auth/template/.eslintrc.js +0 -8
- package/dist/templates/web/ui-auth/template/src/components/__tests__/example.test.tsx +0 -49
- package/dist/templates/web/ui-auth/template/src/test/setup.ts +0 -74
- package/dist/templates/web/ui-auth/template/vitest.config.ts +0 -17
- package/dist/templates/web/ui-auth-payments/template/src/components/__tests__/example.test.tsx +0 -49
- package/dist/templates/web/ui-auth-payments/template/src/test/setup.ts +0 -74
- package/dist/templates/web/ui-auth-payments/template/vitest.config.ts +0 -17
- package/dist/templates/web/ui-auth-payments-ai/template/src/components/__tests__/example.test.tsx +0 -49
- package/dist/templates/web/ui-auth-payments-ai/template/src/test/setup.ts +0 -74
- package/dist/templates/web/ui-auth-payments-ai/template/vitest.config.ts +0 -17
- package/dist/templates/web/ui-auth-payments-ai-rag/template/README.md +0 -434
- package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/KnowledgeManager.tsx +0 -642
- package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGAnalytics.tsx +0 -466
- package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGChatInterface.tsx +0 -393
- package/dist/templates/web/ui-auth-payments-ai-rag/template/docs/GETTING-STARTED.md +0 -457
- package/dist/templates/web/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -478
- package/dist/templates/web/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -250
- package/dist/templates/web/ui-auth-payments-ai-rag/template/package.json +0 -73
- package/dist/templates/web/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -622
- package/dist/templates/web/ui-auth-payments-ai-rag/template/src/app/ai/page.tsx +0 -396
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/__tests__/example.test.tsx +0 -49
- package/dist/templates/web/ui-auth-payments-audio/template/src/test/setup.ts +0 -74
- package/dist/templates/web/ui-auth-payments-audio/template/vitest.config.ts +0 -17
- package/dist/templates/web/ui-auth-payments-video/template/src/components/__tests__/example.test.tsx +0 -49
- package/dist/templates/web/ui-auth-payments-video/template/src/test/setup.ts +0 -74
- package/dist/templates/web/ui-auth-payments-video/template/vitest.config.ts +0 -17
- package/dist/templates/web/ui-only/template/.eslintrc.js +0 -8
- package/dist/templates/web/ui-only/template/src/components/__tests__/example.test.tsx +0 -49
- package/dist/templates/web/ui-only/template/src/test/setup.ts +0 -74
- package/dist/templates/web/ui-only/template/vitest.config.ts +0 -17
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/README.md +0 -655
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/app/(tabs)/ai.tsx +0 -683
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/app/_layout.tsx +0 -124
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/app.json +0 -74
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/babel.config.js +0 -25
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/docs/MOBILE-SETUP.md +0 -787
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/eas.json +0 -25
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/expo-env.d.ts +0 -3
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -346
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/jest-setup.ts +0 -37
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -180
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/metro.config.js +0 -11
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/package.json +0 -122
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -599
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/tsconfig.json +0 -32
- package/src/templates/web/base/template/.eslintrc.js +0 -8
- package/src/templates/web/base/template/src/components/__tests__/example.test.tsx +0 -49
- package/src/templates/web/base/template/src/test/setup.ts +0 -74
- package/src/templates/web/base/template/vitest.config.ts +0 -17
- package/src/templates/web/ui-auth/template/.eslintrc.js +0 -8
- package/src/templates/web/ui-auth/template/src/components/__tests__/example.test.tsx +0 -49
- package/src/templates/web/ui-auth/template/src/test/setup.ts +0 -74
- package/src/templates/web/ui-auth/template/vitest.config.ts +0 -17
- package/src/templates/web/ui-auth-payments/template/src/components/__tests__/example.test.tsx +0 -49
- package/src/templates/web/ui-auth-payments/template/src/test/setup.ts +0 -74
- package/src/templates/web/ui-auth-payments/template/vitest.config.ts +0 -17
- package/src/templates/web/ui-auth-payments-ai/template/src/components/__tests__/example.test.tsx +0 -49
- package/src/templates/web/ui-auth-payments-ai/template/src/test/setup.ts +0 -74
- package/src/templates/web/ui-auth-payments-ai/template/vitest.config.ts +0 -17
- package/src/templates/web/ui-auth-payments-ai-rag/template/README.md +0 -434
- package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/KnowledgeManager.tsx +0 -642
- package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGAnalytics.tsx +0 -466
- package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGChatInterface.tsx +0 -393
- package/src/templates/web/ui-auth-payments-ai-rag/template/docs/GETTING-STARTED.md +0 -457
- package/src/templates/web/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -478
- package/src/templates/web/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -250
- package/src/templates/web/ui-auth-payments-ai-rag/template/package.json +0 -73
- package/src/templates/web/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -622
- package/src/templates/web/ui-auth-payments-ai-rag/template/src/app/ai/page.tsx +0 -396
- package/src/templates/web/ui-auth-payments-audio/template/src/components/__tests__/example.test.tsx +0 -49
- package/src/templates/web/ui-auth-payments-audio/template/src/test/setup.ts +0 -74
- package/src/templates/web/ui-auth-payments-audio/template/vitest.config.ts +0 -17
- package/src/templates/web/ui-auth-payments-video/template/src/components/__tests__/example.test.tsx +0 -49
- package/src/templates/web/ui-auth-payments-video/template/src/test/setup.ts +0 -74
- package/src/templates/web/ui-auth-payments-video/template/vitest.config.ts +0 -17
- package/src/templates/web/ui-only/template/.eslintrc.js +0 -8
- package/src/templates/web/ui-only/template/src/components/__tests__/example.test.tsx +0 -49
- package/src/templates/web/ui-only/template/src/test/setup.ts +0 -74
- package/src/templates/web/ui-only/template/vitest.config.ts +0 -17
|
@@ -36,10 +36,10 @@ function StatsCard({ title, value, icon: Icon, href }: {
|
|
|
36
36
|
<Card className="p-6 hover:shadow-lg transition-shadow">
|
|
37
37
|
<div className="flex items-center justify-between">
|
|
38
38
|
<div>
|
|
39
|
-
<p className="text-sm font-medium text-
|
|
40
|
-
<p className="text-2xl font-bold text-
|
|
39
|
+
<p className="text-sm font-medium text-muted-foreground">{title}</p>
|
|
40
|
+
<p className="text-2xl font-bold text-foreground">{value}</p>
|
|
41
41
|
</div>
|
|
42
|
-
<Icon className="h-8 w-8 text-
|
|
42
|
+
<Icon className="h-8 w-8 text-primary" />
|
|
43
43
|
</div>
|
|
44
44
|
</Card>
|
|
45
45
|
)
|
|
@@ -86,8 +86,8 @@ function UserStatsSkeleton() {
|
|
|
86
86
|
{[...Array(4)].map((_, i) => (
|
|
87
87
|
<Card key={i} className="p-6">
|
|
88
88
|
<div className="animate-pulse">
|
|
89
|
-
<div className="h-4 bg-
|
|
90
|
-
<div className="h-8 bg-
|
|
89
|
+
<div className="h-4 bg-muted rounded w-1/2 mb-2"></div>
|
|
90
|
+
<div className="h-8 bg-muted rounded w-1/3"></div>
|
|
91
91
|
</div>
|
|
92
92
|
</Card>
|
|
93
93
|
))}
|
|
@@ -101,14 +101,14 @@ export default async function DashboardPage() {
|
|
|
101
101
|
|
|
102
102
|
return (
|
|
103
103
|
<DashboardLayout>
|
|
104
|
-
<div className="min-h-screen bg-
|
|
104
|
+
<div className="min-h-screen bg-muted">
|
|
105
105
|
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
|
|
106
106
|
{/* Header */}
|
|
107
107
|
<div className="mb-8" data-tour="overview">
|
|
108
|
-
<h1 className="text-3xl font-bold text-
|
|
108
|
+
<h1 className="text-3xl font-bold text-foreground">
|
|
109
109
|
Welcome back, {user.name || user.email}!
|
|
110
110
|
</h1>
|
|
111
|
-
<p className="text-
|
|
111
|
+
<p className="text-muted-foreground mt-2">
|
|
112
112
|
Here's what's happening with your account today.
|
|
113
113
|
</p>
|
|
114
114
|
</div>
|
|
@@ -124,10 +124,10 @@ export default async function DashboardPage() {
|
|
|
124
124
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-8" data-tour="actions">
|
|
125
125
|
<Card className="p-6">
|
|
126
126
|
<div className="flex items-center mb-4">
|
|
127
|
-
<User className="h-6 w-6 text-
|
|
128
|
-
<h3 className="text-lg font-semibold text-
|
|
127
|
+
<User className="h-6 w-6 text-primary mr-3" />
|
|
128
|
+
<h3 className="text-lg font-semibold text-foreground">Profile</h3>
|
|
129
129
|
</div>
|
|
130
|
-
<p className="text-
|
|
130
|
+
<p className="text-muted-foreground mb-4">
|
|
131
131
|
Update your personal information and preferences
|
|
132
132
|
</p>
|
|
133
133
|
<Link href="/profile">
|
|
@@ -137,10 +137,10 @@ export default async function DashboardPage() {
|
|
|
137
137
|
|
|
138
138
|
<Card className="p-6">
|
|
139
139
|
<div className="flex items-center mb-4">
|
|
140
|
-
<Settings className="h-6 w-6 text-
|
|
141
|
-
<h3 className="text-lg font-semibold text-
|
|
140
|
+
<Settings className="h-6 w-6 text-primary mr-3" />
|
|
141
|
+
<h3 className="text-lg font-semibold text-foreground">Settings</h3>
|
|
142
142
|
</div>
|
|
143
|
-
<p className="text-
|
|
143
|
+
<p className="text-muted-foreground mb-4">
|
|
144
144
|
Configure your account settings and security options
|
|
145
145
|
</p>
|
|
146
146
|
<Link href="/settings">
|
|
@@ -150,10 +150,10 @@ export default async function DashboardPage() {
|
|
|
150
150
|
|
|
151
151
|
<Card className="p-6">
|
|
152
152
|
<div className="flex items-center mb-4">
|
|
153
|
-
<CreditCard className="h-6 w-6 text-
|
|
154
|
-
<h3 className="text-lg font-semibold text-
|
|
153
|
+
<CreditCard className="h-6 w-6 text-primary mr-3" />
|
|
154
|
+
<h3 className="text-lg font-semibold text-foreground">Billing</h3>
|
|
155
155
|
</div>
|
|
156
|
-
<p className="text-
|
|
156
|
+
<p className="text-muted-foreground mb-4">
|
|
157
157
|
View your subscription and payment information
|
|
158
158
|
</p>
|
|
159
159
|
<Link href="/billing">
|
|
@@ -164,28 +164,28 @@ export default async function DashboardPage() {
|
|
|
164
164
|
|
|
165
165
|
{/* Recent Activity */}
|
|
166
166
|
<Card className="p-6">
|
|
167
|
-
<h3 className="text-lg font-semibold text-
|
|
167
|
+
<h3 className="text-lg font-semibold text-foreground mb-4">Recent Activity</h3>
|
|
168
168
|
<div className="space-y-4">
|
|
169
|
-
<div className="flex items-center justify-between py-3 border-b border-
|
|
169
|
+
<div className="flex items-center justify-between py-3 border-b border-border">
|
|
170
170
|
<div className="flex items-center">
|
|
171
171
|
<div className="w-2 h-2 bg-green-500 rounded-full mr-3"></div>
|
|
172
|
-
<span className="text-
|
|
172
|
+
<span className="text-foreground">Account created</span>
|
|
173
173
|
</div>
|
|
174
|
-
<span className="text-sm text-
|
|
174
|
+
<span className="text-sm text-muted-foreground">2 days ago</span>
|
|
175
175
|
</div>
|
|
176
|
-
<div className="flex items-center justify-between py-3 border-b border-
|
|
176
|
+
<div className="flex items-center justify-between py-3 border-b border-border">
|
|
177
177
|
<div className="flex items-center">
|
|
178
|
-
<div className="w-2 h-2 bg-
|
|
179
|
-
<span className="text-
|
|
178
|
+
<div className="w-2 h-2 bg-primary rounded-full mr-3"></div>
|
|
179
|
+
<span className="text-foreground">Profile updated</span>
|
|
180
180
|
</div>
|
|
181
|
-
<span className="text-sm text-
|
|
181
|
+
<span className="text-sm text-muted-foreground">1 week ago</span>
|
|
182
182
|
</div>
|
|
183
183
|
<div className="flex items-center justify-between py-3">
|
|
184
184
|
<div className="flex items-center">
|
|
185
185
|
<div className="w-2 h-2 bg-purple-500 rounded-full mr-3"></div>
|
|
186
|
-
<span className="text-
|
|
186
|
+
<span className="text-foreground">Subscription started</span>
|
|
187
187
|
</div>
|
|
188
|
-
<span className="text-sm text-
|
|
188
|
+
<span className="text-sm text-muted-foreground">2 weeks ago</span>
|
|
189
189
|
</div>
|
|
190
190
|
</div>
|
|
191
191
|
</Card>
|
|
@@ -3,10 +3,6 @@
|
|
|
3
3
|
import {
|
|
4
4
|
Card,
|
|
5
5
|
Button,
|
|
6
|
-
PageTransition,
|
|
7
|
-
MobileContainer,
|
|
8
|
-
useAnimationTokens,
|
|
9
|
-
useGlassmorphism
|
|
10
6
|
} from '@digilogiclabs/saas-factory-ui'
|
|
11
7
|
import {
|
|
12
8
|
ArrowLeft,
|
|
@@ -46,8 +42,6 @@ interface DeploymentOption {
|
|
|
46
42
|
}
|
|
47
43
|
|
|
48
44
|
export default function DevSetupPage() {
|
|
49
|
-
const animations = useAnimationTokens()
|
|
50
|
-
const glass = useGlassmorphism()
|
|
51
45
|
const [copiedItem, setCopiedItem] = useState<string | null>(null)
|
|
52
46
|
const [activeTab, setActiveTab] = useState<'claude' | 'deployment'>('claude')
|
|
53
47
|
|
|
@@ -55,9 +49,9 @@ export default function DevSetupPage() {
|
|
|
55
49
|
const templateName = "{{ai.enabled ? 'Full-Stack AI Platform' : 'SaaS Platform'}}"
|
|
56
50
|
const hasAuth = true
|
|
57
51
|
const hasPayments = true
|
|
58
|
-
const hasAI = "{{ai.enabled}}" === "true"
|
|
59
|
-
const hasAudio = "{{ai.hasAudio}}" === "true"
|
|
60
|
-
const hasVideo = "{{ai.hasVideo}}" === "true"
|
|
52
|
+
const hasAI = String("{{ai.enabled}}") === "true"
|
|
53
|
+
const hasAudio = String("{{ai.hasAudio}}") === "true"
|
|
54
|
+
const hasVideo = String("{{ai.hasVideo}}") === "true"
|
|
61
55
|
|
|
62
56
|
const copyToClipboard = async (text: string, itemName: string) => {
|
|
63
57
|
await navigator.clipboard.writeText(text)
|
|
@@ -76,7 +70,7 @@ export default function DevSetupPage() {
|
|
|
76
70
|
{
|
|
77
71
|
name: "@digilogiclabs/saas-factory-ui",
|
|
78
72
|
description: "Modern UI components with glassmorphism and responsive design",
|
|
79
|
-
key_exports: ["Button", "Card", "
|
|
73
|
+
key_exports: ["Button", "Card", "CardContent", "CardHeader", "CardTitle", "Input", "Label"],
|
|
80
74
|
docs_link: "https://docs.digilogiclabs.com/packages/ui"
|
|
81
75
|
},
|
|
82
76
|
...(hasPayments ? [{
|
|
@@ -201,14 +195,12 @@ ${hasVideo ? '- **video_content**: Generated video files and metadata' : ''}
|
|
|
201
195
|
|
|
202
196
|
### Authentication Flow
|
|
203
197
|
${hasAuth ? `\`\`\`typescript
|
|
204
|
-
|
|
198
|
+
|
|
205
199
|
|
|
206
200
|
export function ProtectedComponent() {
|
|
207
201
|
const { user, loading } = useAuth()
|
|
208
|
-
|
|
209
202
|
if (loading) return <LoadingSpinner />
|
|
210
203
|
if (!user) return <LoginPrompt />
|
|
211
|
-
|
|
212
204
|
return <UserContent user={user} />
|
|
213
205
|
}
|
|
214
206
|
\`\`\`` : 'Authentication not configured for this template'}
|
|
@@ -218,35 +210,29 @@ export function ProtectedComponent() {
|
|
|
218
210
|
import {
|
|
219
211
|
Card,
|
|
220
212
|
Button,
|
|
221
|
-
PageTransition,
|
|
222
|
-
useGlassmorphism
|
|
223
213
|
} from '@digilogiclabs/saas-factory-ui'
|
|
224
214
|
|
|
225
215
|
export function ExampleComponent() {
|
|
226
|
-
const glass = useGlassmorphism()
|
|
227
|
-
|
|
228
216
|
return (
|
|
229
|
-
<
|
|
230
|
-
<Card className={
|
|
217
|
+
<div>
|
|
218
|
+
<Card className={\`\rounded-xl bg-card \border border-border\`}>
|
|
231
219
|
<Button variant="default">Action</Button>
|
|
232
220
|
</Card>
|
|
233
|
-
</
|
|
221
|
+
</div>
|
|
234
222
|
)
|
|
235
223
|
}
|
|
236
224
|
\`\`\`
|
|
237
225
|
|
|
238
226
|
${hasPayments ? `### Payment Integration
|
|
239
227
|
\`\`\`typescript
|
|
240
|
-
import { usePayments } from '
|
|
228
|
+
import { usePayments } from '@/hooks/usePayments'
|
|
241
229
|
|
|
242
230
|
export function CheckoutPage() {
|
|
243
231
|
const { createCheckoutSession, loading } = usePayments()
|
|
244
|
-
|
|
245
232
|
const handlePayment = async (priceId: string) => {
|
|
246
233
|
const { url } = await createCheckoutSession({ priceId })
|
|
247
234
|
window.location.href = url
|
|
248
235
|
}
|
|
249
|
-
|
|
250
236
|
return <PaymentForm onSubmit={handlePayment} />
|
|
251
237
|
}
|
|
252
238
|
\`\`\`` : ''}
|
|
@@ -261,7 +247,6 @@ export function AIDemo() {
|
|
|
261
247
|
provider: 'openai',
|
|
262
248
|
model: 'gpt-4'
|
|
263
249
|
}
|
|
264
|
-
|
|
265
250
|
return (
|
|
266
251
|
<AIProvider config={aiConfig}>
|
|
267
252
|
<AITextGenerator
|
|
@@ -439,35 +424,35 @@ CMD ["npm", "start"]`
|
|
|
439
424
|
]
|
|
440
425
|
|
|
441
426
|
return (
|
|
442
|
-
<
|
|
443
|
-
<main className={`min-h-screen
|
|
444
|
-
<div className={`absolute inset-0
|
|
427
|
+
<div>
|
|
428
|
+
<main className={`min-h-screen bg-background relative overflow-hidden`}>
|
|
429
|
+
<div className={`absolute inset-0 bg-muted opacity-30`} />
|
|
445
430
|
<div className="relative z-10">
|
|
446
|
-
<
|
|
431
|
+
<div className="max-w-4xl mx-auto px-4">
|
|
447
432
|
{/* Header */}
|
|
448
433
|
<div className="flex items-center justify-between mb-8">
|
|
449
434
|
<div className="flex items-center gap-4">
|
|
450
|
-
<Link href="/setup" className={
|
|
435
|
+
<Link href="/setup" className={`rounded-xl border border-border bg-card p-2 rounded-xl hover:scale-[1.02] transition-transform`}>
|
|
451
436
|
<ArrowLeft className="w-5 h-5" />
|
|
452
437
|
</Link>
|
|
453
438
|
<div>
|
|
454
439
|
<h1 className="text-2xl font-bold">Development & Deployment</h1>
|
|
455
|
-
<p className="text-
|
|
440
|
+
<p className="text-muted-foreground">Claude AI setup and hosting guides</p>
|
|
456
441
|
</div>
|
|
457
442
|
</div>
|
|
458
|
-
<div className={
|
|
443
|
+
<div className={`rounded-xl border border-border bg-card px-4 py-2 rounded-xl`}>
|
|
459
444
|
<span className="text-sm font-medium">{projectName}</span>
|
|
460
445
|
</div>
|
|
461
446
|
</div>
|
|
462
447
|
|
|
463
448
|
{/* Tab Navigation */}
|
|
464
|
-
<div className={
|
|
449
|
+
<div className={`rounded-xl border border-border bg-card rounded-2xl p-1 mb-8 inline-flex`}>
|
|
465
450
|
<button
|
|
466
451
|
onClick={() => setActiveTab('claude')}
|
|
467
452
|
className={`px-4 py-2 rounded-xl text-sm font-medium transition-all duration-200 ${
|
|
468
453
|
activeTab === 'claude'
|
|
469
454
|
? 'bg-purple-500 text-white shadow-lg'
|
|
470
|
-
: 'text-
|
|
455
|
+
: 'text-muted-foreground hover:bg-white/10'
|
|
471
456
|
}`}
|
|
472
457
|
>
|
|
473
458
|
<Bot className="w-4 h-4 inline mr-2" />
|
|
@@ -477,8 +462,8 @@ CMD ["npm", "start"]`
|
|
|
477
462
|
onClick={() => setActiveTab('deployment')}
|
|
478
463
|
className={`px-4 py-2 rounded-xl text-sm font-medium transition-all duration-200 ${
|
|
479
464
|
activeTab === 'deployment'
|
|
480
|
-
? 'bg-
|
|
481
|
-
: 'text-
|
|
465
|
+
? 'bg-primary text-primary-foreground shadow-lg'
|
|
466
|
+
: 'text-muted-foreground hover:bg-white/10'
|
|
482
467
|
}`}
|
|
483
468
|
>
|
|
484
469
|
<Rocket className="w-4 h-4 inline mr-2" />
|
|
@@ -489,14 +474,14 @@ CMD ["npm", "start"]`
|
|
|
489
474
|
{activeTab === 'claude' && (
|
|
490
475
|
<>
|
|
491
476
|
{/* Claude AI Development Setup */}
|
|
492
|
-
<div className={
|
|
477
|
+
<div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mb-8`}>
|
|
493
478
|
<div className="flex items-center gap-4 mb-6">
|
|
494
479
|
<div className={`w-12 h-12 rounded-xl bg-gradient-to-r from-purple-500 to-blue-500 flex items-center justify-center`}>
|
|
495
480
|
<Bot className="w-6 h-6 text-white" />
|
|
496
481
|
</div>
|
|
497
482
|
<div>
|
|
498
483
|
<h2 className="text-xl font-semibold">Claude AI Development Setup</h2>
|
|
499
|
-
<p className="text-
|
|
484
|
+
<p className="text-muted-foreground">Supercharge your development workflow with AI assistance</p>
|
|
500
485
|
</div>
|
|
501
486
|
</div>
|
|
502
487
|
|
|
@@ -504,17 +489,17 @@ CMD ["npm", "start"]`
|
|
|
504
489
|
<div className="text-center p-4 rounded-xl bg-purple-500/10">
|
|
505
490
|
<Terminal className="w-8 h-8 text-purple-400 mx-auto mb-2" />
|
|
506
491
|
<div className="font-medium">Claude CLI</div>
|
|
507
|
-
<div className="text-sm text-
|
|
492
|
+
<div className="text-sm text-muted-foreground">Command-line AI assistant</div>
|
|
508
493
|
</div>
|
|
509
|
-
<div className="text-center p-4 rounded-xl bg-
|
|
510
|
-
<FileText className="w-8 h-8 text-
|
|
494
|
+
<div className="text-center p-4 rounded-xl bg-primary/10">
|
|
495
|
+
<FileText className="w-8 h-8 text-primary mx-auto mb-2" />
|
|
511
496
|
<div className="font-medium">Smart Context</div>
|
|
512
|
-
<div className="text-sm text-
|
|
497
|
+
<div className="text-sm text-muted-foreground">Project-aware assistance</div>
|
|
513
498
|
</div>
|
|
514
499
|
<div className="text-center p-4 rounded-xl bg-green-500/10">
|
|
515
500
|
<Zap className="w-8 h-8 text-green-400 mx-auto mb-2" />
|
|
516
501
|
<div className="font-medium">Auto-Setup</div>
|
|
517
|
-
<div className="text-sm text-
|
|
502
|
+
<div className="text-sm text-muted-foreground">Generated configuration</div>
|
|
518
503
|
</div>
|
|
519
504
|
</div>
|
|
520
505
|
|
|
@@ -526,14 +511,14 @@ CMD ["npm", "start"]`
|
|
|
526
511
|
</div>
|
|
527
512
|
<div className="flex-1">
|
|
528
513
|
<h3 className="font-semibold mb-2">Install Claude CLI</h3>
|
|
529
|
-
<p className="text-sm text-
|
|
514
|
+
<p className="text-sm text-muted-foreground mb-3">
|
|
530
515
|
Install the Claude CLI to get AI assistance directly in your terminal
|
|
531
516
|
</p>
|
|
532
|
-
<div className="bg-
|
|
517
|
+
<div className="bg-background rounded-xl p-4">
|
|
533
518
|
<pre className="text-green-400 text-sm">npm install -g @anthropic-ai/claude-cli</pre>
|
|
534
519
|
<button
|
|
535
520
|
onClick={() => copyToClipboard('npm install -g @anthropic-ai/claude-cli', 'claude-install')}
|
|
536
|
-
className="mt-2 flex items-center gap-2 text-xs text-
|
|
521
|
+
className="mt-2 flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground transition-colors"
|
|
537
522
|
>
|
|
538
523
|
<Copy className="w-3 h-3" />
|
|
539
524
|
{copiedItem === 'claude-install' ? 'Copied!' : 'Copy command'}
|
|
@@ -549,16 +534,16 @@ CMD ["npm", "start"]`
|
|
|
549
534
|
</div>
|
|
550
535
|
<div className="flex-1">
|
|
551
536
|
<h3 className="font-semibold mb-2">Create .claude Configuration</h3>
|
|
552
|
-
<p className="text-sm text-
|
|
537
|
+
<p className="text-sm text-muted-foreground mb-3">
|
|
553
538
|
Create a .claude file in your project root with this optimized configuration
|
|
554
539
|
</p>
|
|
555
|
-
<div className="bg-
|
|
540
|
+
<div className="bg-background rounded-xl p-4 overflow-x-auto">
|
|
556
541
|
<pre className="text-green-400 text-xs">
|
|
557
542
|
{JSON.stringify(claudeConfig, null, 2)}
|
|
558
543
|
</pre>
|
|
559
544
|
<button
|
|
560
545
|
onClick={() => copyToClipboard(JSON.stringify(claudeConfig, null, 2), 'claude-config')}
|
|
561
|
-
className="mt-2 flex items-center gap-2 text-xs text-
|
|
546
|
+
className="mt-2 flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground transition-colors"
|
|
562
547
|
>
|
|
563
548
|
<Copy className="w-3 h-3" />
|
|
564
549
|
{copiedItem === 'claude-config' ? 'Copied!' : 'Copy .claude configuration'}
|
|
@@ -574,18 +559,18 @@ CMD ["npm", "start"]`
|
|
|
574
559
|
</div>
|
|
575
560
|
<div className="flex-1">
|
|
576
561
|
<h3 className="font-semibold mb-2">Create Context Documentation</h3>
|
|
577
|
-
<p className="text-sm text-
|
|
562
|
+
<p className="text-sm text-muted-foreground mb-3">
|
|
578
563
|
Create a context.md file with comprehensive project documentation
|
|
579
564
|
</p>
|
|
580
565
|
<details className="mb-3">
|
|
581
|
-
<summary className="text-sm text-
|
|
566
|
+
<summary className="text-sm text-primary cursor-pointer hover:text-primary/80">
|
|
582
567
|
Show context.md content
|
|
583
568
|
</summary>
|
|
584
|
-
<div className="bg-
|
|
569
|
+
<div className="bg-background rounded-xl p-4 mt-2 overflow-x-auto max-h-64">
|
|
585
570
|
<pre className="text-green-400 text-xs whitespace-pre-wrap">{contextContent}</pre>
|
|
586
571
|
<button
|
|
587
572
|
onClick={() => copyToClipboard(contextContent, 'context-content')}
|
|
588
|
-
className="mt-2 flex items-center gap-2 text-xs text-
|
|
573
|
+
className="mt-2 flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground transition-colors"
|
|
589
574
|
>
|
|
590
575
|
<Copy className="w-3 h-3" />
|
|
591
576
|
{copiedItem === 'context-content' ? 'Copied!' : 'Copy context.md content'}
|
|
@@ -602,20 +587,20 @@ CMD ["npm", "start"]`
|
|
|
602
587
|
</div>
|
|
603
588
|
<div className="flex-1">
|
|
604
589
|
<h3 className="font-semibold mb-2">Start Using Claude AI</h3>
|
|
605
|
-
<p className="text-sm text-
|
|
590
|
+
<p className="text-sm text-muted-foreground mb-3">
|
|
606
591
|
Common commands to supercharge your development workflow
|
|
607
592
|
</p>
|
|
608
593
|
<div className="space-y-3">
|
|
609
|
-
<div className="bg-
|
|
610
|
-
<div className="text-
|
|
594
|
+
<div className="bg-background rounded-lg p-3">
|
|
595
|
+
<div className="text-primary text-sm mb-1">Generate new component:</div>
|
|
611
596
|
<code className="text-green-400 text-xs">claude "Create a new user profile component with glassmorphism styling"</code>
|
|
612
597
|
</div>
|
|
613
|
-
<div className="bg-
|
|
614
|
-
<div className="text-
|
|
598
|
+
<div className="bg-background rounded-lg p-3">
|
|
599
|
+
<div className="text-primary text-sm mb-1">Debug issues:</div>
|
|
615
600
|
<code className="text-green-400 text-xs">claude "Help me debug this authentication error"</code>
|
|
616
601
|
</div>
|
|
617
|
-
<div className="bg-
|
|
618
|
-
<div className="text-
|
|
602
|
+
<div className="bg-background rounded-lg p-3">
|
|
603
|
+
<div className="text-primary text-sm mb-1">Add features:</div>
|
|
619
604
|
<code className="text-green-400 text-xs">claude "Add a dark mode toggle to the header component"</code>
|
|
620
605
|
</div>
|
|
621
606
|
</div>
|
|
@@ -625,25 +610,25 @@ CMD ["npm", "start"]`
|
|
|
625
610
|
</div>
|
|
626
611
|
|
|
627
612
|
{/* Package Documentation Quick Reference */}
|
|
628
|
-
<div className={
|
|
613
|
+
<div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mb-8`}>
|
|
629
614
|
<h3 className="text-lg font-semibold mb-4 flex items-center gap-2">
|
|
630
|
-
<Book className="w-5 h-5 text-
|
|
615
|
+
<Book className="w-5 h-5 text-primary" />
|
|
631
616
|
Package Documentation Quick Reference
|
|
632
617
|
</h3>
|
|
633
618
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
634
619
|
{packageDocs.map((pkg, index) => (
|
|
635
|
-
<div key={index} className={
|
|
620
|
+
<div key={index} className={`rounded-xl border border-border bg-card rounded-xl p-4`}>
|
|
636
621
|
<h4 className="font-semibold text-sm mb-2">{pkg.name}</h4>
|
|
637
|
-
<p className="text-xs text-
|
|
622
|
+
<p className="text-xs text-muted-foreground mb-3">{pkg.description}</p>
|
|
638
623
|
<div className="text-xs">
|
|
639
|
-
<div className="text-
|
|
640
|
-
<div className="text-
|
|
624
|
+
<div className="text-primary mb-1">Key Exports:</div>
|
|
625
|
+
<div className="text-muted-foreground">{pkg.key_exports.join(', ')}</div>
|
|
641
626
|
</div>
|
|
642
627
|
<a
|
|
643
628
|
href={pkg.docs_link}
|
|
644
629
|
target="_blank"
|
|
645
630
|
rel="noopener noreferrer"
|
|
646
|
-
className="inline-flex items-center gap-1 text-xs text-
|
|
631
|
+
className="inline-flex items-center gap-1 text-xs text-primary hover:text-primary/80 mt-2"
|
|
647
632
|
>
|
|
648
633
|
View Docs <ExternalLink className="w-3 h-3" />
|
|
649
634
|
</a>
|
|
@@ -663,10 +648,10 @@ CMD ["npm", "start"]`
|
|
|
663
648
|
{deploymentOptions.map((option, index) => {
|
|
664
649
|
const OptionIcon = option.icon
|
|
665
650
|
return (
|
|
666
|
-
<div key={index} className={
|
|
651
|
+
<div key={index} className={`rounded-xl border border-border bg-card rounded-2xl p-6`}>
|
|
667
652
|
<div className="flex items-start justify-between mb-4">
|
|
668
653
|
<div className="flex items-center gap-4">
|
|
669
|
-
<div className={`w-12 h-12 rounded-xl bg-
|
|
654
|
+
<div className={`w-12 h-12 rounded-xl bg-card flex items-center justify-center`}>
|
|
670
655
|
<OptionIcon className="w-6 h-6 text-white" />
|
|
671
656
|
</div>
|
|
672
657
|
<div>
|
|
@@ -680,8 +665,8 @@ CMD ["npm", "start"]`
|
|
|
680
665
|
{option.complexity}
|
|
681
666
|
</span>
|
|
682
667
|
</h3>
|
|
683
|
-
<p className="text-sm text-
|
|
684
|
-
<div className="text-xs text-
|
|
668
|
+
<p className="text-sm text-muted-foreground">{option.description}</p>
|
|
669
|
+
<div className="text-xs text-primary mt-1">⏱️ {option.timeEstimate}</div>
|
|
685
670
|
</div>
|
|
686
671
|
</div>
|
|
687
672
|
</div>
|
|
@@ -705,14 +690,14 @@ CMD ["npm", "start"]`
|
|
|
705
690
|
<div className="space-y-3">
|
|
706
691
|
{option.steps.map((step, stepIndex) => (
|
|
707
692
|
<div key={stepIndex} className="flex gap-3">
|
|
708
|
-
<div className="w-6 h-6 rounded-full bg-
|
|
693
|
+
<div className="w-6 h-6 rounded-full bg-primary text-primary-foreground text-xs flex items-center justify-center flex-shrink-0 mt-0.5">
|
|
709
694
|
{stepIndex + 1}
|
|
710
695
|
</div>
|
|
711
696
|
<div className="flex-1">
|
|
712
697
|
<h5 className="font-medium">{step.title}</h5>
|
|
713
|
-
<p className="text-sm text-
|
|
698
|
+
<p className="text-sm text-muted-foreground mb-2">{step.description}</p>
|
|
714
699
|
{step.code && (
|
|
715
|
-
<div className="bg-
|
|
700
|
+
<div className="bg-background rounded-lg p-3 mt-2">
|
|
716
701
|
<pre className="text-green-400 text-xs whitespace-pre-wrap">{step.code}</pre>
|
|
717
702
|
</div>
|
|
718
703
|
)}
|
|
@@ -721,7 +706,7 @@ CMD ["npm", "start"]`
|
|
|
721
706
|
href={step.link}
|
|
722
707
|
target="_blank"
|
|
723
708
|
rel="noopener noreferrer"
|
|
724
|
-
className="inline-flex items-center gap-1 text-sm text-
|
|
709
|
+
className="inline-flex items-center gap-1 text-sm text-primary hover:text-primary/80 mt-2"
|
|
725
710
|
>
|
|
726
711
|
Learn More <ExternalLink className="w-3 h-3" />
|
|
727
712
|
</a>
|
|
@@ -737,7 +722,7 @@ CMD ["npm", "start"]`
|
|
|
737
722
|
</div>
|
|
738
723
|
|
|
739
724
|
{/* Pre-Deployment Checklist */}
|
|
740
|
-
<div className={
|
|
725
|
+
<div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mt-8`}>
|
|
741
726
|
<h3 className="text-lg font-semibold mb-4 flex items-center gap-2">
|
|
742
727
|
<CheckCircle className="w-5 h-5 text-green-400" />
|
|
743
728
|
Pre-Deployment Checklist
|
|
@@ -759,11 +744,11 @@ CMD ["npm", "start"]`
|
|
|
759
744
|
)}
|
|
760
745
|
<div className="flex items-center gap-3">
|
|
761
746
|
<CheckCircle className="w-5 h-5 text-green-400" />
|
|
762
|
-
<span>Build succeeds locally: <code className="px-2 py-1 bg-
|
|
747
|
+
<span>Build succeeds locally: <code className="px-2 py-1 bg-card rounded">npm run build</code></span>
|
|
763
748
|
</div>
|
|
764
749
|
<div className="flex items-center gap-3">
|
|
765
750
|
<CheckCircle className="w-5 h-5 text-green-400" />
|
|
766
|
-
<span>Tests pass: <code className="px-2 py-1 bg-
|
|
751
|
+
<span>Tests pass: <code className="px-2 py-1 bg-card rounded">npm run test</code></span>
|
|
767
752
|
</div>
|
|
768
753
|
<div className="flex items-center gap-3">
|
|
769
754
|
<CheckCircle className="w-5 h-5 text-green-400" />
|
|
@@ -775,27 +760,27 @@ CMD ["npm", "start"]`
|
|
|
775
760
|
)}
|
|
776
761
|
|
|
777
762
|
{/* Support Section */}
|
|
778
|
-
<div className={
|
|
763
|
+
<div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mt-8 text-center`}>
|
|
779
764
|
<h3 className="text-lg font-semibold mb-4">Need Help?</h3>
|
|
780
|
-
<p className="text-
|
|
765
|
+
<p className="text-muted-foreground mb-4">
|
|
781
766
|
Our community and support team are here to help with development and deployment.
|
|
782
767
|
</p>
|
|
783
768
|
<div className="flex justify-center gap-4">
|
|
784
|
-
<Button variant="outline" size="sm"
|
|
769
|
+
<Button variant="outline" size="sm">
|
|
785
770
|
<a href="https://discord.gg/digilogiclabs" target="_blank" rel="noopener noreferrer">
|
|
786
771
|
Join Discord
|
|
787
772
|
</a>
|
|
788
773
|
</Button>
|
|
789
|
-
<Button size="sm"
|
|
774
|
+
<Button size="sm">
|
|
790
775
|
<a href="https://docs.digilogiclabs.com" target="_blank" rel="noopener noreferrer">
|
|
791
776
|
View Docs
|
|
792
777
|
</a>
|
|
793
778
|
</Button>
|
|
794
779
|
</div>
|
|
795
780
|
</div>
|
|
796
|
-
</
|
|
781
|
+
</div>
|
|
797
782
|
</div>
|
|
798
783
|
</main>
|
|
799
|
-
</
|
|
784
|
+
</div>
|
|
800
785
|
)
|
|
801
786
|
}
|
|
@@ -1,38 +1,40 @@
|
|
|
1
|
-
import type { Metadata } from 'next'
|
|
2
|
-
import { Inter } from 'next/font/google'
|
|
3
|
-
import './globals.css'
|
|
4
|
-
import { AppProviders } from '@/components/providers/app-providers'
|
|
5
|
-
import { Header } from '@/components/shared/header'
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
1
|
+
import type { Metadata } from 'next'
|
|
2
|
+
import { Inter } from 'next/font/google'
|
|
3
|
+
import './globals.css'
|
|
4
|
+
import { AppProviders } from '@/components/providers/app-providers'
|
|
5
|
+
import { Header } from '@/components/shared/header'
|
|
6
|
+
import { MockBanner } from '@/components/mock-banner'
|
|
7
|
+
import { Footer } from '@/components/shared/footer'
|
|
8
|
+
|
|
9
|
+
const inter = Inter({ subsets: ['latin'] })
|
|
10
|
+
|
|
11
|
+
export const metadata: Metadata = {
|
|
12
|
+
title: '{{titleCaseName}}',
|
|
13
|
+
description: '{{description}}',
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default function RootLayout({
|
|
17
|
+
children,
|
|
18
|
+
}: {
|
|
19
|
+
children: React.ReactNode
|
|
20
|
+
}) {
|
|
21
|
+
return (
|
|
22
|
+
<html lang="en" suppressHydrationWarning>
|
|
23
|
+
<body className={inter.className}>
|
|
24
|
+
<AppProviders>
|
|
25
|
+
<MockBanner />
|
|
26
|
+
<div className="min-h-screen flex flex-col">
|
|
27
|
+
<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">
|
|
28
|
+
Skip to content
|
|
29
|
+
</a>
|
|
30
|
+
<Header />
|
|
31
|
+
<main id="main-content" className="flex-1">
|
|
32
|
+
{children}
|
|
33
|
+
</main>
|
|
34
|
+
<Footer />
|
|
35
|
+
</div>
|
|
36
|
+
</AppProviders>
|
|
37
|
+
</body>
|
|
38
|
+
</html>
|
|
39
|
+
)
|
|
40
|
+
}
|