@digilogiclabs/create-saas-app 2.11.0 → 2.12.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.
- package/CHANGELOG.md +6 -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.map +1 -1
- package/dist/generators/template-generator.js +15 -8
- package/dist/generators/template-generator.js.map +1 -1
- 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/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/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/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/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/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/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/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
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Button,
|
|
6
|
-
PageTransition,
|
|
7
|
-
MobileContainer,
|
|
8
|
-
ResponsiveGrid,
|
|
9
|
-
useAnimationTokens,
|
|
10
|
-
useGlassmorphism
|
|
11
|
-
} from '@digilogiclabs/saas-factory-ui'
|
|
3
|
+
|
|
4
|
+
// UI components from saas-factory-ui available: Button, Card, Input, Label, etc.
|
|
12
5
|
import {
|
|
13
6
|
ArrowLeft,
|
|
14
7
|
CheckCircle,
|
|
@@ -48,8 +41,6 @@ interface ServiceConfig {
|
|
|
48
41
|
}
|
|
49
42
|
|
|
50
43
|
export default function SetupPage() {
|
|
51
|
-
const animations = useAnimationTokens()
|
|
52
|
-
const glass = useGlassmorphism()
|
|
53
44
|
const [copiedVar, setCopiedVar] = useState<string | null>(null)
|
|
54
45
|
|
|
55
46
|
const projectName = "{{projectName}}"
|
|
@@ -138,7 +129,7 @@ CREATE POLICY "Users can view own subscriptions" ON subscriptions FOR ALL USING
|
|
|
138
129
|
{
|
|
139
130
|
name: "Stripe (Payments)",
|
|
140
131
|
status: 'required',
|
|
141
|
-
icon:
|
|
132
|
+
icon: CreditCard,
|
|
142
133
|
description: "Payment processing for subscriptions, one-time payments, and billing management.",
|
|
143
134
|
setupSteps: [
|
|
144
135
|
{
|
|
@@ -226,7 +217,7 @@ try {
|
|
|
226
217
|
case 'required': return 'text-red-400'
|
|
227
218
|
case 'optional': return 'text-yellow-400'
|
|
228
219
|
case 'configured': return 'text-green-400'
|
|
229
|
-
default: return 'text-
|
|
220
|
+
default: return 'text-muted-foreground'
|
|
230
221
|
}
|
|
231
222
|
}
|
|
232
223
|
|
|
@@ -240,59 +231,59 @@ try {
|
|
|
240
231
|
}
|
|
241
232
|
|
|
242
233
|
return (
|
|
243
|
-
<
|
|
244
|
-
<main className={`min-h-screen
|
|
245
|
-
<div className={`absolute inset-0
|
|
234
|
+
<div>
|
|
235
|
+
<main className={`min-h-screen bg-background relative overflow-hidden`}>
|
|
236
|
+
<div className={`absolute inset-0 bg-muted opacity-30`} />
|
|
246
237
|
<div className="relative z-10">
|
|
247
|
-
<
|
|
238
|
+
<div className="max-w-4xl mx-auto px-4">
|
|
248
239
|
{/* Header */}
|
|
249
240
|
<div className="flex items-center justify-between mb-8">
|
|
250
241
|
<div className="flex items-center gap-4">
|
|
251
|
-
<Link href="/" className={
|
|
242
|
+
<Link href="/" className={`rounded-xl border border-border bg-card p-2 rounded-xl hover:scale-[1.02] transition-transform`}>
|
|
252
243
|
<ArrowLeft className="w-5 h-5" />
|
|
253
244
|
</Link>
|
|
254
245
|
<div>
|
|
255
246
|
<h1 className="text-2xl font-bold">Setup Guide</h1>
|
|
256
|
-
<p className="text-
|
|
247
|
+
<p className="text-muted-foreground">{templateName}</p>
|
|
257
248
|
</div>
|
|
258
249
|
</div>
|
|
259
|
-
<div className={
|
|
250
|
+
<div className={`rounded-xl border border-border bg-card px-4 py-2 rounded-xl`}>
|
|
260
251
|
<span className="text-sm font-medium">{projectName}</span>
|
|
261
252
|
</div>
|
|
262
253
|
</div>
|
|
263
254
|
|
|
264
255
|
{/* Template Overview */}
|
|
265
|
-
<div className={
|
|
256
|
+
<div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mb-8`}>
|
|
266
257
|
<div className="flex items-center gap-4 mb-4">
|
|
267
258
|
<div className={`w-12 h-12 rounded-xl bg-gradient-to-r from-green-500 to-blue-500 flex items-center justify-center`}>
|
|
268
259
|
<CreditCard className="w-6 h-6 text-white" />
|
|
269
260
|
</div>
|
|
270
261
|
<div>
|
|
271
262
|
<h2 className="text-xl font-semibold">{templateName}</h2>
|
|
272
|
-
<p className="text-
|
|
263
|
+
<p className="text-muted-foreground">{templateDescription}</p>
|
|
273
264
|
</div>
|
|
274
265
|
</div>
|
|
275
266
|
<div className="grid grid-cols-1 md:grid-cols-3 gap-4 mt-6">
|
|
276
267
|
<div className="text-center p-4 rounded-xl bg-blue-500/10">
|
|
277
268
|
<Shield className="w-8 h-8 text-blue-400 mx-auto mb-2" />
|
|
278
269
|
<div className="font-medium">Authentication</div>
|
|
279
|
-
<div className="text-sm text-
|
|
270
|
+
<div className="text-sm text-muted-foreground">Secure user management</div>
|
|
280
271
|
</div>
|
|
281
272
|
<div className="text-center p-4 rounded-xl bg-green-500/10">
|
|
282
273
|
<CreditCard className="w-8 h-8 text-green-400 mx-auto mb-2" />
|
|
283
274
|
<div className="font-medium">Payments</div>
|
|
284
|
-
<div className="text-sm text-
|
|
275
|
+
<div className="text-sm text-muted-foreground">Stripe integration</div>
|
|
285
276
|
</div>
|
|
286
277
|
<div className="text-center p-4 rounded-xl bg-purple-500/10">
|
|
287
278
|
<Code2 className="w-8 h-8 text-purple-400 mx-auto mb-2" />
|
|
288
279
|
<div className="font-medium">Modern UI</div>
|
|
289
|
-
<div className="text-sm text-
|
|
280
|
+
<div className="text-sm text-muted-foreground">Beautiful components</div>
|
|
290
281
|
</div>
|
|
291
282
|
</div>
|
|
292
283
|
</div>
|
|
293
284
|
|
|
294
285
|
{/* Quick Start */}
|
|
295
|
-
<div className={
|
|
286
|
+
<div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mb-8`}>
|
|
296
287
|
<h3 className="text-lg font-semibold mb-4 flex items-center gap-2">
|
|
297
288
|
<Zap className="w-5 h-5 text-yellow-400" />
|
|
298
289
|
Quick Start
|
|
@@ -312,21 +303,21 @@ try {
|
|
|
312
303
|
</div>
|
|
313
304
|
<div className="flex items-center gap-3">
|
|
314
305
|
<CheckCircle className="w-5 h-5 text-green-400" />
|
|
315
|
-
<span>4. Run <code className="px-2 py-1 bg-
|
|
306
|
+
<span>4. Run <code className="px-2 py-1 bg-card rounded text-green-400">npm run dev</code> to start developing</span>
|
|
316
307
|
</div>
|
|
317
308
|
</div>
|
|
318
309
|
</div>
|
|
319
310
|
|
|
320
311
|
{/* Environment Variables */}
|
|
321
|
-
<div className={
|
|
312
|
+
<div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mb-8`}>
|
|
322
313
|
<h3 className="text-lg font-semibold mb-4 flex items-center gap-2">
|
|
323
|
-
<Key className="w-5 h-5 text-
|
|
314
|
+
<Key className="w-5 h-5 text-primary" />
|
|
324
315
|
Environment Variables
|
|
325
316
|
</h3>
|
|
326
|
-
<p className="text-sm text-
|
|
327
|
-
Copy these to your <code className="px-2 py-1 bg-
|
|
317
|
+
<p className="text-sm text-muted-foreground mb-4">
|
|
318
|
+
Copy these to your <code className="px-2 py-1 bg-card rounded">.env.local</code> file:
|
|
328
319
|
</p>
|
|
329
|
-
<div className="bg-
|
|
320
|
+
<div className="bg-background rounded-xl p-4 overflow-x-auto">
|
|
330
321
|
<pre className="text-sm text-green-400">
|
|
331
322
|
{allEnvVars.map(envVar => (
|
|
332
323
|
`${envVar.name}=${envVar.example}${envVar.required ? ' # Required' : ' # Optional'}`
|
|
@@ -337,7 +328,7 @@ try {
|
|
|
337
328
|
allEnvVars.map(envVar => `${envVar.name}=${envVar.example}`).join('\n'),
|
|
338
329
|
'all-env-vars'
|
|
339
330
|
)}
|
|
340
|
-
className="mt-3 flex items-center gap-2 text-xs text-
|
|
331
|
+
className="mt-3 flex items-center gap-2 text-xs text-muted-foreground hover:text-white transition-colors"
|
|
341
332
|
>
|
|
342
333
|
<Copy className="w-4 h-4" />
|
|
343
334
|
{copiedVar === 'all-env-vars' ? 'Copied!' : 'Copy all environment variables'}
|
|
@@ -348,7 +339,7 @@ try {
|
|
|
348
339
|
{/* Services Configuration */}
|
|
349
340
|
<div className="space-y-6">
|
|
350
341
|
<h3 className="text-lg font-semibold flex items-center gap-2">
|
|
351
|
-
<Settings className="w-5 h-5 text-
|
|
342
|
+
<Settings className="w-5 h-5 text-muted-foreground" />
|
|
352
343
|
Service Configuration
|
|
353
344
|
</h3>
|
|
354
345
|
|
|
@@ -357,10 +348,10 @@ try {
|
|
|
357
348
|
const ServiceIcon = service.icon
|
|
358
349
|
|
|
359
350
|
return (
|
|
360
|
-
<div key={service.name} className={
|
|
351
|
+
<div key={service.name} className={`rounded-xl border border-border bg-card rounded-2xl p-6`}>
|
|
361
352
|
<div className="flex items-start justify-between mb-4">
|
|
362
353
|
<div className="flex items-center gap-3">
|
|
363
|
-
<div className={`w-10 h-10 rounded-xl bg-
|
|
354
|
+
<div className={`w-10 h-10 rounded-xl bg-card flex items-center justify-center`}>
|
|
364
355
|
<ServiceIcon className="w-5 h-5 text-white" />
|
|
365
356
|
</div>
|
|
366
357
|
<div>
|
|
@@ -368,7 +359,7 @@ try {
|
|
|
368
359
|
{service.name}
|
|
369
360
|
<StatusIcon className={`w-4 h-4 ${getStatusColor(service.status)}`} />
|
|
370
361
|
</h4>
|
|
371
|
-
<p className="text-sm text-
|
|
362
|
+
<p className="text-sm text-muted-foreground">{service.description}</p>
|
|
372
363
|
</div>
|
|
373
364
|
</div>
|
|
374
365
|
<span className={`px-3 py-1 rounded-full text-xs font-medium ${
|
|
@@ -386,28 +377,28 @@ try {
|
|
|
386
377
|
<div className="space-y-3">
|
|
387
378
|
{service.setupSteps.map((step, stepIndex) => (
|
|
388
379
|
<div key={stepIndex} className="flex gap-3">
|
|
389
|
-
<div className="w-6 h-6 rounded-full bg-
|
|
380
|
+
<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">
|
|
390
381
|
{stepIndex + 1}
|
|
391
382
|
</div>
|
|
392
383
|
<div className="flex-1">
|
|
393
384
|
<h6 className="font-medium">{step.title}</h6>
|
|
394
|
-
<p className="text-sm text-
|
|
385
|
+
<p className="text-sm text-muted-foreground">{step.description}</p>
|
|
395
386
|
{step.link && (
|
|
396
387
|
<a
|
|
397
388
|
href={step.link}
|
|
398
389
|
target="_blank"
|
|
399
390
|
rel="noopener noreferrer"
|
|
400
|
-
className="inline-flex items-center gap-1 text-sm text-
|
|
391
|
+
className="inline-flex items-center gap-1 text-sm text-primary hover:text-primary/80 mt-1"
|
|
401
392
|
>
|
|
402
393
|
Open Dashboard <ExternalLink className="w-3 h-3" />
|
|
403
394
|
</a>
|
|
404
395
|
)}
|
|
405
396
|
{step.code && (
|
|
406
397
|
<details className="mt-2">
|
|
407
|
-
<summary className="text-sm text-
|
|
398
|
+
<summary className="text-sm text-primary cursor-pointer hover:text-primary/80">
|
|
408
399
|
Show code example
|
|
409
400
|
</summary>
|
|
410
|
-
<pre className="bg-
|
|
401
|
+
<pre className="bg-background rounded-lg p-3 mt-2 text-xs overflow-x-auto">
|
|
411
402
|
<code className="text-green-400">{step.code}</code>
|
|
412
403
|
</pre>
|
|
413
404
|
</details>
|
|
@@ -423,25 +414,25 @@ try {
|
|
|
423
414
|
<h5 className="font-semibold mb-3">Environment Variables:</h5>
|
|
424
415
|
<div className="space-y-2">
|
|
425
416
|
{service.envVars.map((envVar, envIndex) => (
|
|
426
|
-
<div key={envIndex} className="bg-
|
|
417
|
+
<div key={envIndex} className="bg-card/50 rounded-lg p-3">
|
|
427
418
|
<div className="flex items-center justify-between mb-1">
|
|
428
|
-
<code className="text-
|
|
419
|
+
<code className="text-primary font-mono text-sm">{envVar.name}</code>
|
|
429
420
|
<div className="flex items-center gap-2">
|
|
430
421
|
<span className={`px-2 py-1 rounded text-xs ${
|
|
431
|
-
envVar.required ? 'bg-red-500/20 text-red-400' : 'bg-
|
|
422
|
+
envVar.required ? 'bg-red-500/20 text-red-400' : 'bg-muted-foreground/20 text-muted-foreground'
|
|
432
423
|
}`}>
|
|
433
424
|
{envVar.required ? 'Required' : 'Optional'}
|
|
434
425
|
</span>
|
|
435
426
|
<button
|
|
436
427
|
onClick={() => copyToClipboard(`${envVar.name}=${envVar.example}`, envVar.name)}
|
|
437
|
-
className="p-1 hover:bg-
|
|
428
|
+
className="p-1 hover:bg-muted rounded transition-colors"
|
|
438
429
|
>
|
|
439
430
|
<Copy className="w-3 h-3" />
|
|
440
431
|
</button>
|
|
441
432
|
</div>
|
|
442
433
|
</div>
|
|
443
|
-
<p className="text-xs text-
|
|
444
|
-
<code className="text-xs text-
|
|
434
|
+
<p className="text-xs text-muted-foreground mb-2">{envVar.description}</p>
|
|
435
|
+
<code className="text-xs text-muted-foreground font-mono">{envVar.example}</code>
|
|
445
436
|
{copiedVar === envVar.name && (
|
|
446
437
|
<span className="text-xs text-green-400 ml-2">Copied!</span>
|
|
447
438
|
)}
|
|
@@ -455,7 +446,7 @@ try {
|
|
|
455
446
|
</div>
|
|
456
447
|
|
|
457
448
|
{/* Additional Resources */}
|
|
458
|
-
<div className={
|
|
449
|
+
<div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mt-8`}>
|
|
459
450
|
<h3 className="text-lg font-semibold mb-4 flex items-center gap-2">
|
|
460
451
|
<BookOpen className="w-5 h-5 text-green-400" />
|
|
461
452
|
Additional Resources
|
|
@@ -463,45 +454,41 @@ try {
|
|
|
463
454
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
464
455
|
<a
|
|
465
456
|
href="https://docs.digilogiclabs.com"
|
|
466
|
-
className={
|
|
457
|
+
className={`rounded-xl border border-border bg-card p-4 rounded-xl hover:scale-[1.02] transition-transform block`}
|
|
467
458
|
>
|
|
468
|
-
<FileText className="w-8 h-8 text-
|
|
459
|
+
<FileText className="w-8 h-8 text-primary mb-2" />
|
|
469
460
|
<h4 className="font-medium">Documentation</h4>
|
|
470
|
-
<p className="text-sm text-
|
|
461
|
+
<p className="text-sm text-muted-foreground">Complete guides and API reference</p>
|
|
471
462
|
</a>
|
|
472
463
|
<a
|
|
473
464
|
href="https://github.com/digilogiclabs/examples"
|
|
474
|
-
className={
|
|
465
|
+
className={`rounded-xl border border-border bg-card p-4 rounded-xl hover:scale-[1.02] transition-transform block`}
|
|
475
466
|
>
|
|
476
467
|
<Code2 className="w-8 h-8 text-purple-400 mb-2" />
|
|
477
468
|
<h4 className="font-medium">Examples</h4>
|
|
478
|
-
<p className="text-sm text-
|
|
469
|
+
<p className="text-sm text-muted-foreground">Sample projects and code snippets</p>
|
|
479
470
|
</a>
|
|
480
471
|
</div>
|
|
481
472
|
</div>
|
|
482
473
|
|
|
483
474
|
{/* Support */}
|
|
484
|
-
<div className={
|
|
475
|
+
<div className={`rounded-xl border border-border bg-card rounded-2xl p-6 mt-8 text-center`}>
|
|
485
476
|
<h3 className="text-lg font-semibold mb-4">Need Help?</h3>
|
|
486
|
-
<p className="text-
|
|
477
|
+
<p className="text-muted-foreground mb-4">
|
|
487
478
|
Our community and support team are here to help you get started.
|
|
488
479
|
</p>
|
|
489
480
|
<div className="flex justify-center gap-4">
|
|
490
|
-
<
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
<a href="https://docs.digilogiclabs.com/support" target="_blank" rel="noopener noreferrer">
|
|
497
|
-
Get Support
|
|
498
|
-
</a>
|
|
499
|
-
</Button>
|
|
481
|
+
<a href="https://discord.gg/digilogiclabs" target="_blank" rel="noopener noreferrer" className="inline-flex items-center justify-center rounded-md border border-input bg-background px-3 py-1.5 text-sm font-medium text-foreground hover:bg-accent transition-colors">
|
|
482
|
+
Join Discord
|
|
483
|
+
</a>
|
|
484
|
+
<a href="https://docs.digilogiclabs.com/support" target="_blank" rel="noopener noreferrer" className="inline-flex items-center justify-center rounded-md bg-primary px-3 py-1.5 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors">
|
|
485
|
+
Get Support
|
|
486
|
+
</a>
|
|
500
487
|
</div>
|
|
501
488
|
</div>
|
|
502
|
-
</
|
|
489
|
+
</div>
|
|
503
490
|
</div>
|
|
504
491
|
</main>
|
|
505
|
-
</
|
|
492
|
+
</div>
|
|
506
493
|
)
|
|
507
494
|
}
|
|
@@ -2,47 +2,47 @@ import { Card } from '@digilogiclabs/saas-factory-ui'
|
|
|
2
2
|
|
|
3
3
|
export default function SignupLoading() {
|
|
4
4
|
return (
|
|
5
|
-
<div className="flex items-center justify-center min-h-screen bg-
|
|
5
|
+
<div className="flex items-center justify-center min-h-screen bg-muted">
|
|
6
6
|
<Card className="w-full max-w-md p-8">
|
|
7
7
|
<div className="animate-pulse space-y-6">
|
|
8
8
|
{/* Title skeleton */}
|
|
9
|
-
<div className="h-8 bg-
|
|
9
|
+
<div className="h-8 bg-muted rounded-md mx-auto w-32"></div>
|
|
10
10
|
|
|
11
11
|
{/* Form skeleton */}
|
|
12
12
|
<div className="space-y-4">
|
|
13
13
|
{/* Name field */}
|
|
14
14
|
<div>
|
|
15
|
-
<div className="h-4 bg-
|
|
16
|
-
<div className="h-10 bg-
|
|
15
|
+
<div className="h-4 bg-muted rounded w-12 mb-2"></div>
|
|
16
|
+
<div className="h-10 bg-muted rounded"></div>
|
|
17
17
|
</div>
|
|
18
18
|
|
|
19
19
|
{/* Email field */}
|
|
20
20
|
<div>
|
|
21
|
-
<div className="h-4 bg-
|
|
22
|
-
<div className="h-10 bg-
|
|
21
|
+
<div className="h-4 bg-muted rounded w-16 mb-2"></div>
|
|
22
|
+
<div className="h-10 bg-muted rounded"></div>
|
|
23
23
|
</div>
|
|
24
24
|
|
|
25
25
|
{/* Password field */}
|
|
26
26
|
<div>
|
|
27
|
-
<div className="h-4 bg-
|
|
28
|
-
<div className="h-10 bg-
|
|
27
|
+
<div className="h-4 bg-muted rounded w-20 mb-2"></div>
|
|
28
|
+
<div className="h-10 bg-muted rounded"></div>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
{/* Confirm password field */}
|
|
32
32
|
<div>
|
|
33
|
-
<div className="h-4 bg-
|
|
34
|
-
<div className="h-10 bg-
|
|
33
|
+
<div className="h-4 bg-muted rounded w-32 mb-2"></div>
|
|
34
|
+
<div className="h-10 bg-muted rounded"></div>
|
|
35
35
|
</div>
|
|
36
36
|
|
|
37
37
|
{/* Sign up button */}
|
|
38
|
-
<div className="h-10 bg-
|
|
38
|
+
<div className="h-10 bg-primary/50 rounded"></div>
|
|
39
39
|
|
|
40
40
|
{/* OAuth button */}
|
|
41
|
-
<div className="h-10 bg-
|
|
41
|
+
<div className="h-10 bg-muted rounded"></div>
|
|
42
42
|
</div>
|
|
43
43
|
|
|
44
44
|
{/* Sign in link */}
|
|
45
|
-
<div className="h-4 bg-
|
|
45
|
+
<div className="h-4 bg-muted rounded w-44 mx-auto"></div>
|
|
46
46
|
</div>
|
|
47
47
|
</Card>
|
|
48
48
|
</div>
|
|
@@ -1,128 +1,9 @@
|
|
|
1
|
-
'
|
|
2
|
-
|
|
3
|
-
import React, { useState } from 'react';
|
|
4
|
-
import { Button, Card, Input, Label } from '@digilogiclabs/saas-factory-ui';
|
|
5
|
-
import { useAuth } from '@digilogiclabs/app-sdk';
|
|
6
|
-
import { useRouter } from 'next/navigation';
|
|
1
|
+
import { SignupForm } from '@/components/client/signup-form'
|
|
7
2
|
|
|
8
3
|
export default function SignupPage() {
|
|
9
|
-
const [email, setEmail] = useState('');
|
|
10
|
-
const [password, setPassword] = useState('');
|
|
11
|
-
const [confirmPassword, setConfirmPassword] = useState('');
|
|
12
|
-
const { signUp, signInWithOAuth, loading, error, user } = useAuth();
|
|
13
|
-
const router = useRouter();
|
|
14
|
-
|
|
15
|
-
// Redirect if already logged in
|
|
16
|
-
React.useEffect(() => {
|
|
17
|
-
if (user) {
|
|
18
|
-
router.push('/');
|
|
19
|
-
}
|
|
20
|
-
}, [user, router]);
|
|
21
|
-
|
|
22
|
-
const handleSignup = async (e: React.FormEvent) => {
|
|
23
|
-
e.preventDefault();
|
|
24
|
-
|
|
25
|
-
if (password !== confirmPassword) {
|
|
26
|
-
alert('Passwords do not match');
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
try {
|
|
31
|
-
await signUp(email, password);
|
|
32
|
-
router.push('/');
|
|
33
|
-
} catch (err) {
|
|
34
|
-
console.error('Signup error:', err);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
const handleGoogleSignup = async () => {
|
|
39
|
-
try {
|
|
40
|
-
await signInWithOAuth('google');
|
|
41
|
-
} catch (err) {
|
|
42
|
-
console.error('Google signup error:', err);
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
if (loading) {
|
|
47
|
-
return (
|
|
48
|
-
<div className="flex items-center justify-center min-h-screen bg-gray-100">
|
|
49
|
-
<div>Loading...</div>
|
|
50
|
-
</div>
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
4
|
return (
|
|
55
|
-
<div className="flex items-center justify-center
|
|
56
|
-
<
|
|
57
|
-
<h1 className="text-2xl font-bold text-center mb-6">Sign Up</h1>
|
|
58
|
-
|
|
59
|
-
{error && (
|
|
60
|
-
<div className="mb-4 p-3 bg-red-100 border border-red-400 text-red-700 rounded">
|
|
61
|
-
{error.message}
|
|
62
|
-
</div>
|
|
63
|
-
)}
|
|
64
|
-
|
|
65
|
-
<form onSubmit={handleSignup} className="space-y-4">
|
|
66
|
-
<div>
|
|
67
|
-
<Label htmlFor="email">Email</Label>
|
|
68
|
-
<Input
|
|
69
|
-
id="email"
|
|
70
|
-
type="email"
|
|
71
|
-
value={email}
|
|
72
|
-
onChange={(e) => setEmail(e.target.value)}
|
|
73
|
-
placeholder="Enter your email"
|
|
74
|
-
required
|
|
75
|
-
disabled={loading}
|
|
76
|
-
/>
|
|
77
|
-
</div>
|
|
78
|
-
<div>
|
|
79
|
-
<Label htmlFor="password">Password</Label>
|
|
80
|
-
<Input
|
|
81
|
-
id="password"
|
|
82
|
-
type="password"
|
|
83
|
-
value={password}
|
|
84
|
-
onChange={(e) => setPassword(e.target.value)}
|
|
85
|
-
placeholder="Enter your password"
|
|
86
|
-
required
|
|
87
|
-
disabled={loading}
|
|
88
|
-
/>
|
|
89
|
-
</div>
|
|
90
|
-
<div>
|
|
91
|
-
<Label htmlFor="confirmPassword">Confirm Password</Label>
|
|
92
|
-
<Input
|
|
93
|
-
id="confirmPassword"
|
|
94
|
-
type="password"
|
|
95
|
-
value={confirmPassword}
|
|
96
|
-
onChange={(e) => setConfirmPassword(e.target.value)}
|
|
97
|
-
placeholder="Confirm your password"
|
|
98
|
-
required
|
|
99
|
-
disabled={loading}
|
|
100
|
-
/>
|
|
101
|
-
</div>
|
|
102
|
-
<Button type="submit" className="w-full" disabled={loading}>
|
|
103
|
-
{loading ? 'Signing Up...' : 'Sign Up'}
|
|
104
|
-
</Button>
|
|
105
|
-
<Button
|
|
106
|
-
type="button"
|
|
107
|
-
variant="outline"
|
|
108
|
-
className="w-full"
|
|
109
|
-
onClick={handleGoogleSignup}
|
|
110
|
-
disabled={loading}
|
|
111
|
-
>
|
|
112
|
-
Sign up with Google
|
|
113
|
-
</Button>
|
|
114
|
-
</form>
|
|
115
|
-
|
|
116
|
-
<div className="mt-4 text-center">
|
|
117
|
-
<p className="text-sm text-gray-600">
|
|
118
|
-
Already have an account?{' '}
|
|
119
|
-
<a href="/login" className="text-blue-600 hover:underline">
|
|
120
|
-
Sign in
|
|
121
|
-
</a>
|
|
122
|
-
</p>
|
|
123
|
-
</div>
|
|
124
|
-
</Card>
|
|
5
|
+
<div className="flex min-h-screen items-center justify-center bg-background px-4">
|
|
6
|
+
<SignupForm />
|
|
125
7
|
</div>
|
|
126
|
-
)
|
|
8
|
+
)
|
|
127
9
|
}
|
|
128
|
-
|
|
@@ -1,52 +1,37 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
import { Button } from '@digilogiclabs/saas-factory-ui'
|
|
4
|
-
import { LogOut, User } from 'lucide-react'
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const {
|
|
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
|
-
</div>
|
|
39
|
-
)
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return (
|
|
43
|
-
<div className="flex gap-2">
|
|
44
|
-
<Link href="/login">
|
|
45
|
-
<Button variant="outline" size="sm">Sign In</Button>
|
|
46
|
-
</Link>
|
|
47
|
-
<Link href="/signup">
|
|
48
|
-
<Button size="sm">Sign Up</Button>
|
|
49
|
-
</Link>
|
|
50
|
-
</div>
|
|
51
|
-
)
|
|
52
|
-
}
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import { Button } from '@digilogiclabs/saas-factory-ui'
|
|
4
|
+
import { LogOut, User } from 'lucide-react'
|
|
5
|
+
import Link from 'next/link'
|
|
6
|
+
|
|
7
|
+
export function AuthStatus() {
|
|
8
|
+
// TODO: Replace with your auth hook or server session check
|
|
9
|
+
const user = null as { email?: string } | null
|
|
10
|
+
|
|
11
|
+
if (!user) {
|
|
12
|
+
return (
|
|
13
|
+
<div className="flex items-center gap-2">
|
|
14
|
+
<Button variant="ghost" size="sm">
|
|
15
|
+
<Link href="/login">Sign In</Link>
|
|
16
|
+
</Button>
|
|
17
|
+
<Button size="sm">
|
|
18
|
+
<Link href="/signup">Sign Up</Link>
|
|
19
|
+
</Button>
|
|
20
|
+
</div>
|
|
21
|
+
)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<div className="flex items-center gap-3">
|
|
26
|
+
<div className="flex items-center gap-2 text-sm text-muted-foreground">
|
|
27
|
+
<User className="h-4 w-4" />
|
|
28
|
+
<span>{user.email}</span>
|
|
29
|
+
</div>
|
|
30
|
+
<Button variant="ghost" size="sm">
|
|
31
|
+
<Link href="/api/auth/signout">
|
|
32
|
+
<LogOut className="h-4 w-4" />
|
|
33
|
+
</Link>
|
|
34
|
+
</Button>
|
|
35
|
+
</div>
|
|
36
|
+
)
|
|
37
|
+
}
|