@donotdev/cli 0.0.3
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/LICENSE.md +48 -0
- package/README.md +291 -0
- package/dependencies-matrix.json +694 -0
- package/dist/bin/commands/build.d.ts +11 -0
- package/dist/bin/commands/build.d.ts.map +1 -0
- package/dist/bin/commands/build.js +8162 -0
- package/dist/bin/commands/build.js.map +1 -0
- package/dist/bin/commands/bump.d.ts +11 -0
- package/dist/bin/commands/bump.d.ts.map +1 -0
- package/dist/bin/commands/bump.js +8004 -0
- package/dist/bin/commands/bump.js.map +1 -0
- package/dist/bin/commands/cacheout.d.ts +11 -0
- package/dist/bin/commands/cacheout.d.ts.map +1 -0
- package/dist/bin/commands/cacheout.js +7630 -0
- package/dist/bin/commands/cacheout.js.map +1 -0
- package/dist/bin/commands/create-app.d.ts +11 -0
- package/dist/bin/commands/create-app.d.ts.map +1 -0
- package/dist/bin/commands/create-app.js +9032 -0
- package/dist/bin/commands/create-app.js.map +1 -0
- package/dist/bin/commands/create-project.d.ts +11 -0
- package/dist/bin/commands/create-project.d.ts.map +1 -0
- package/dist/bin/commands/create-project.js +9643 -0
- package/dist/bin/commands/create-project.js.map +1 -0
- package/dist/bin/commands/deploy.d.ts +11 -0
- package/dist/bin/commands/deploy.d.ts.map +1 -0
- package/dist/bin/commands/deploy.js +9007 -0
- package/dist/bin/commands/deploy.js.map +1 -0
- package/dist/bin/commands/dev.d.ts +11 -0
- package/dist/bin/commands/dev.d.ts.map +1 -0
- package/dist/bin/commands/dev.js +7892 -0
- package/dist/bin/commands/dev.js.map +1 -0
- package/dist/bin/commands/emu.d.ts +11 -0
- package/dist/bin/commands/emu.d.ts.map +1 -0
- package/dist/bin/commands/emu.js +8302 -0
- package/dist/bin/commands/emu.js.map +1 -0
- package/dist/bin/commands/format.d.ts +11 -0
- package/dist/bin/commands/format.d.ts.map +1 -0
- package/dist/bin/commands/format.js +8009 -0
- package/dist/bin/commands/format.js.map +1 -0
- package/dist/bin/commands/lint.d.ts +11 -0
- package/dist/bin/commands/lint.d.ts.map +1 -0
- package/dist/bin/commands/lint.js +7481 -0
- package/dist/bin/commands/lint.js.map +1 -0
- package/dist/bin/commands/preview.d.ts +11 -0
- package/dist/bin/commands/preview.d.ts.map +1 -0
- package/dist/bin/commands/preview.js +7909 -0
- package/dist/bin/commands/preview.js.map +1 -0
- package/dist/bin/commands/sync-secrets.d.ts +11 -0
- package/dist/bin/commands/sync-secrets.d.ts.map +1 -0
- package/dist/bin/commands/sync-secrets.js +8227 -0
- package/dist/bin/commands/sync-secrets.js.map +1 -0
- package/dist/bin/dndev.js +222 -0
- package/dist/bin/donotdev.js +222 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12820 -0
- package/dist/index.js.map +1 -0
- package/package.json +71 -0
- package/templates/app-demo/index.html.example +20 -0
- package/templates/app-demo/public/favicon.ico.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-400-cyrillic-ext.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-400-cyrillic.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-400-greek-ext.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-400-greek.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-400-latin-ext.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-400-latin.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-400-vietnamese.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-700-cyrillic-ext.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-700-cyrillic.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-700-greek-ext.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-700-greek.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-700-latin-ext.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-700-latin.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-700-vietnamese.woff2.example +0 -0
- package/templates/app-demo/public/fonts/fonts.css.example +144 -0
- package/templates/app-demo/public/logo.png.example +0 -0
- package/templates/app-demo/public/logo.svg.example +1 -0
- package/templates/app-demo/public/manifest.json.example +10 -0
- package/templates/app-demo/src/App.tsx.example +17 -0
- package/templates/app-demo/src/Routes.tsx.example +20 -0
- package/templates/app-demo/src/components/ThemeToggle.tsx.example +48 -0
- package/templates/app-demo/src/globals.css.example +4 -0
- package/templates/app-demo/src/main.tsx.example +27 -0
- package/templates/app-demo/src/pages/DetailPage.tsx.example +103 -0
- package/templates/app-demo/src/pages/FullPage.tsx.example +142 -0
- package/templates/app-demo/src/pages/HomePage.tsx.example +79 -0
- package/templates/app-demo/src/pages/components/ComponentRenderer.tsx.example +511 -0
- package/templates/app-demo/src/pages/components/ComponentsData.tsx.example +152 -0
- package/templates/app-demo/src/pages/components/DemoLayout.tsx.example +266 -0
- package/templates/app-demo/src/pages/components/LayoutRoute.tsx.example +20 -0
- package/templates/app-demo/src/pages/components/componentConfig.ts.example +921 -0
- package/templates/app-demo/src/themes.css.example +179 -0
- package/templates/app-demo/tsconfig.json.example +9 -0
- package/templates/app-demo/vite.config.ts.example +53 -0
- package/templates/app-next/.env.example +92 -0
- package/templates/app-next/next.config.ts.example +8 -0
- package/templates/app-next/postcss.config.js.example +58 -0
- package/templates/app-next/service-account-key.json.example +2 -0
- package/templates/app-next/src/app/ClientLayout.tsx.example +39 -0
- package/templates/app-next/src/app/layout.tsx.example +52 -0
- package/templates/app-next/src/app/not-found.tsx.example +21 -0
- package/templates/app-next/src/config/app.ts.example +75 -0
- package/templates/app-next/src/config/legal.ts.example +170 -0
- package/templates/app-next/src/globals.css.example +15 -0
- package/templates/app-next/src/locales/dndev_en.json.example +516 -0
- package/templates/app-next/src/pages/HomePage.tsx.example +20 -0
- package/templates/app-next/src/pages/legal/LegalNoticePage.tsx.example +75 -0
- package/templates/app-next/src/pages/legal/PrivacyPage.tsx.example +69 -0
- package/templates/app-next/src/pages/legal/TermsPage.tsx.example +71 -0
- package/templates/app-next/src/themes.css.example +179 -0
- package/templates/app-next/tsconfig.json.example +11 -0
- package/templates/app-payload/.env.example +28 -0
- package/templates/app-payload/README.md.example +233 -0
- package/templates/app-payload/collections/Company.ts.example +125 -0
- package/templates/app-payload/collections/Hero.ts.example +62 -0
- package/templates/app-payload/collections/Media.ts.example +41 -0
- package/templates/app-payload/collections/Products.ts.example +115 -0
- package/templates/app-payload/collections/Services.ts.example +104 -0
- package/templates/app-payload/collections/Testimonials.ts.example +92 -0
- package/templates/app-payload/collections/Users.ts.example +35 -0
- package/templates/app-payload/src/server.ts.example +79 -0
- package/templates/app-payload/tsconfig.json.example +24 -0
- package/templates/app-vite/.env.example +77 -0
- package/templates/app-vite/index.html.example +127 -0
- package/templates/app-vite/service-account-key.json.example +2 -0
- package/templates/app-vite/src/App.tsx.example +39 -0
- package/templates/app-vite/src/Routes.tsx.example +16 -0
- package/templates/app-vite/src/config/app.ts.example +75 -0
- package/templates/app-vite/src/config/legal.ts.example +170 -0
- package/templates/app-vite/src/globals.css.example +11 -0
- package/templates/app-vite/src/locales/dndev_en.json.example +516 -0
- package/templates/app-vite/src/main.tsx.example +21 -0
- package/templates/app-vite/src/pages/HomePage.tsx.example +22 -0
- package/templates/app-vite/src/pages/NotFoundPage.tsx.example +33 -0
- package/templates/app-vite/src/pages/legal/LegalNoticePage.tsx.example +75 -0
- package/templates/app-vite/src/pages/legal/PrivacyPage.tsx.example +69 -0
- package/templates/app-vite/src/pages/legal/TermsPage.tsx.example +71 -0
- package/templates/app-vite/src/pages/locales/README.md.example +1 -0
- package/templates/app-vite/src/pages/locales/example_en.json.example +5 -0
- package/templates/app-vite/src/themes.css.example +179 -0
- package/templates/app-vite/tsconfig.json.example +9 -0
- package/templates/app-vite/vite.config.ts.example +9 -0
- package/templates/functions-firebase/README.md.example +129 -0
- package/templates/functions-firebase/build.mjs.example +52 -0
- package/templates/functions-firebase/functions-firebase/.env.example.example +45 -0
- package/templates/functions-firebase/functions-firebase/README.md.example +123 -0
- package/templates/functions-firebase/functions-firebase/build.mjs.example +52 -0
- package/templates/functions-firebase/functions-firebase/src/auth/getCustomClaims.ts.example +19 -0
- package/templates/functions-firebase/functions-firebase/src/auth/getUserAuthStatus.ts.example +21 -0
- package/templates/functions-firebase/functions-firebase/src/auth/index.ts.example +11 -0
- package/templates/functions-firebase/functions-firebase/src/auth/removeCustomClaims.ts.example +21 -0
- package/templates/functions-firebase/functions-firebase/src/auth/setCustomClaims.ts.example +21 -0
- package/templates/functions-firebase/functions-firebase/src/billing/handleStripeWebhook.ts.example +24 -0
- package/templates/functions-firebase/functions-firebase/src/billing/index.ts.example +10 -0
- package/templates/functions-firebase/functions-firebase/src/billing/processPaymentSuccess.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/billing/refreshSubscriptionStatus.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/crud/createEntity.ts.example +19 -0
- package/templates/functions-firebase/functions-firebase/src/crud/deleteEntity.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/crud/getEntity.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/crud/index.ts.example +12 -0
- package/templates/functions-firebase/functions-firebase/src/crud/listEntities.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/crud/updateEntity.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/index.ts.example +45 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/checkGitHubAccess.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/disconnect.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/exchangeToken.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/getConnections.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/grantGitHubAccess.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/index.ts.example +17 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/refreshToken.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/revokeGitHubAccess.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/tsconfig.json.example +21 -0
- package/templates/functions-firebase/functions.yaml.example +14 -0
- package/templates/functions-firebase/src/auth/getCustomClaims.ts.example +19 -0
- package/templates/functions-firebase/src/auth/getUserAuthStatus.ts.example +21 -0
- package/templates/functions-firebase/src/auth/index.ts.example +11 -0
- package/templates/functions-firebase/src/auth/removeCustomClaims.ts.example +21 -0
- package/templates/functions-firebase/src/auth/setCustomClaims.ts.example +21 -0
- package/templates/functions-firebase/src/billing/handleStripeWebhook.ts.example +24 -0
- package/templates/functions-firebase/src/billing/index.ts.example +10 -0
- package/templates/functions-firebase/src/billing/processPaymentSuccess.ts.example +14 -0
- package/templates/functions-firebase/src/billing/refreshSubscriptionStatus.ts.example +14 -0
- package/templates/functions-firebase/src/crud/createEntity.ts.example +19 -0
- package/templates/functions-firebase/src/crud/deleteEntity.ts.example +14 -0
- package/templates/functions-firebase/src/crud/getEntity.ts.example +14 -0
- package/templates/functions-firebase/src/crud/index.ts.example +12 -0
- package/templates/functions-firebase/src/crud/listEntities.ts.example +14 -0
- package/templates/functions-firebase/src/crud/updateEntity.ts.example +14 -0
- package/templates/functions-firebase/src/index.ts.example +45 -0
- package/templates/functions-firebase/src/oauth/checkGitHubAccess.ts.example +14 -0
- package/templates/functions-firebase/src/oauth/disconnect.ts.example +14 -0
- package/templates/functions-firebase/src/oauth/exchangeToken.ts.example +14 -0
- package/templates/functions-firebase/src/oauth/getConnections.ts.example +14 -0
- package/templates/functions-firebase/src/oauth/grantGitHubAccess.ts.example +14 -0
- package/templates/functions-firebase/src/oauth/index.ts.example +17 -0
- package/templates/functions-firebase/src/oauth/refreshToken.ts.example +14 -0
- package/templates/functions-firebase/src/oauth/revokeGitHubAccess.ts.example +14 -0
- package/templates/functions-firebase/tsconfig.json.example +24 -0
- package/templates/functions-vercel/README.md.example +116 -0
- package/templates/functions-vercel/build.mjs.example +52 -0
- package/templates/functions-vercel/functions-vercel/.env.example.example +37 -0
- package/templates/functions-vercel/functions-vercel/README.md.example +116 -0
- package/templates/functions-vercel/functions-vercel/build.mjs.example +52 -0
- package/templates/functions-vercel/functions-vercel/src/api/auth/getCustomClaims.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/auth/getUserAuthStatus.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/auth/removeCustomClaims.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/auth/setCustomClaims.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/billing/handleStripeWebhook.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/billing/processPaymentSuccess.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/billing/refreshSubscriptionStatus.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/crud/createEntity.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/crud/deleteEntity.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/crud/getEntity.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/crud/listEntities.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/crud/updateEntity.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/oauth/checkGitHubAccess.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/oauth/disconnect.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/oauth/exchangeToken.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/oauth/getConnections.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/oauth/grantGitHubAccess.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/oauth/refreshToken.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/oauth/revokeGitHubAccess.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/tsconfig.json.example +21 -0
- package/templates/functions-vercel/functions-vercel/vercel.json.example +14 -0
- package/templates/functions-vercel/src/api/auth/getCustomClaims.ts.example +20 -0
- package/templates/functions-vercel/src/api/auth/getUserAuthStatus.ts.example +20 -0
- package/templates/functions-vercel/src/api/auth/removeCustomClaims.ts.example +20 -0
- package/templates/functions-vercel/src/api/auth/setCustomClaims.ts.example +20 -0
- package/templates/functions-vercel/src/api/billing/handleStripeWebhook.ts.example +20 -0
- package/templates/functions-vercel/src/api/billing/processPaymentSuccess.ts.example +20 -0
- package/templates/functions-vercel/src/api/billing/refreshSubscriptionStatus.ts.example +20 -0
- package/templates/functions-vercel/src/api/crud/createEntity.ts.example +20 -0
- package/templates/functions-vercel/src/api/crud/deleteEntity.ts.example +20 -0
- package/templates/functions-vercel/src/api/crud/getEntity.ts.example +20 -0
- package/templates/functions-vercel/src/api/crud/listEntities.ts.example +20 -0
- package/templates/functions-vercel/src/api/crud/updateEntity.ts.example +20 -0
- package/templates/functions-vercel/src/api/oauth/checkGitHubAccess.ts.example +20 -0
- package/templates/functions-vercel/src/api/oauth/disconnect.ts.example +20 -0
- package/templates/functions-vercel/src/api/oauth/exchangeToken.ts.example +20 -0
- package/templates/functions-vercel/src/api/oauth/getConnections.ts.example +20 -0
- package/templates/functions-vercel/src/api/oauth/grantGitHubAccess.ts.example +20 -0
- package/templates/functions-vercel/src/api/oauth/refreshToken.ts.example +20 -0
- package/templates/functions-vercel/src/api/oauth/revokeGitHubAccess.ts.example +20 -0
- package/templates/functions-vercel/tsconfig.json.example +24 -0
- package/templates/functions-vercel/vercel.json.example +14 -0
- package/templates/github/github/workflows/firebase-deploy.yml.example +79 -0
- package/templates/github/workflows/firebase-deploy.yml.example +79 -0
- package/templates/root-consumer/.env.example +19 -0
- package/templates/root-consumer/.gitignore.example +82 -0
- package/templates/root-consumer/.prettierrc.cjs.example +12 -0
- package/templates/root-consumer/CLAUDE.md.example +73 -0
- package/templates/root-consumer/README.md.example +295 -0
- package/templates/root-consumer/bunfig.toml.example +68 -0
- package/templates/root-consumer/eslint.config.js.example +336 -0
- package/templates/root-consumer/firebase.json.example +348 -0
- package/templates/root-consumer/guides/AGENT_START_HERE.md.example +98 -0
- package/templates/root-consumer/guides/APP_CHECK_SETUP.md.example +111 -0
- package/templates/root-consumer/guides/AUTH_SETUP.md.example +92 -0
- package/templates/root-consumer/guides/BILLING_SETUP.md.example +120 -0
- package/templates/root-consumer/guides/CLI.md.example +293 -0
- package/templates/root-consumer/guides/COMPONENTS.md.example +875 -0
- package/templates/root-consumer/guides/CONFIG_SETUP.md.example +132 -0
- package/templates/root-consumer/guides/EMULATOR_SETUP.md.example +48 -0
- package/templates/root-consumer/guides/FEATURES.md.example +286 -0
- package/templates/root-consumer/guides/FRAMEWORK_OVERVIEW.md.example +97 -0
- package/templates/root-consumer/guides/FUNCTIONS.md.example +177 -0
- package/templates/root-consumer/guides/GETTING_STARTED.md.example +451 -0
- package/templates/root-consumer/guides/HOW_TO_USE.md.example +296 -0
- package/templates/root-consumer/guides/I18N_SETUP.md.example +204 -0
- package/templates/root-consumer/guides/IMPORT_PATTERNS.md.example +79 -0
- package/templates/root-consumer/guides/INDEX.md.example +50 -0
- package/templates/root-consumer/guides/INSTALLATION.md.example +296 -0
- package/templates/root-consumer/guides/LAYOUTS.md.example +310 -0
- package/templates/root-consumer/guides/PAGES_SETUP.md.example +123 -0
- package/templates/root-consumer/guides/STYLING.md.example +273 -0
- package/templates/root-consumer/guides/THEMING_SETUP.md.example +119 -0
- package/templates/root-consumer/guides/VERSION_CONTROL.md.example +181 -0
- package/templates/root-consumer/tsconfig.functions.json.example +15 -0
- package/templates/root-consumer/tsconfig.json.example +18 -0
- package/templates/root-consumer/turbo.json.example +46 -0
- package/templates/root-consumer/vercel.json.example +124 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
|
|
6
|
+
<!-- ✅ CORE: Performance-critical meta tags first -->
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
+
<meta name="color-scheme" content="light dark" />
|
|
9
|
+
|
|
10
|
+
<!-- ✅ DnDev: Framework will inject FaviconHead here -->
|
|
11
|
+
<!-- All favicon links will be added by FaviconHead component -->
|
|
12
|
+
|
|
13
|
+
<!-- ✅ DnDev: Asset manifest injection point -->
|
|
14
|
+
<!-- window.__DNDEV_ASSETS__ and __DNDEV_ASSET_MANIFEST__ injected here -->
|
|
15
|
+
|
|
16
|
+
<!-- ✅ PWA: Manifest link (if exists) -->
|
|
17
|
+
<link rel="manifest" href="/manifest.json" />
|
|
18
|
+
|
|
19
|
+
<!-- ✅ PERFORMANCE: Preconnect to external domains (OAuth providers) -->
|
|
20
|
+
<!-- GitHub OAuth -->
|
|
21
|
+
<link rel="preconnect" href="https://github.com">
|
|
22
|
+
<link rel="preconnect" href="https://api.github.com">
|
|
23
|
+
<!-- Google OAuth (remove if not using) -->
|
|
24
|
+
<link rel="preconnect" href="https://accounts.google.com">
|
|
25
|
+
<link rel="preconnect" href="https://oauth2.googleapis.com">
|
|
26
|
+
<link rel="preconnect" href="https://apis.google.com">
|
|
27
|
+
<link rel="preconnect" href="https://www.googleapis.com">
|
|
28
|
+
|
|
29
|
+
<!-- ✅ SEO: Basic meta tags (AutoMetaTags will override these) -->
|
|
30
|
+
<title>Loading...</title>
|
|
31
|
+
<meta name="description" content="Modern web application powered by DoNotDev" />
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
<!-- ✅ PERFORMANCE: Critical CSS inlined here by build -->
|
|
35
|
+
<style>
|
|
36
|
+
/* Critical above-the-fold styles */
|
|
37
|
+
body {
|
|
38
|
+
margin: 0;
|
|
39
|
+
font-family: var(--font-family, ui-monospace, 'SF Mono', 'Cascadia Code', 'Roboto Mono', Consolas, Monaco, 'Liberation Mono', monospace);
|
|
40
|
+
line-height: 1.5;
|
|
41
|
+
-webkit-font-smoothing: antialiased;
|
|
42
|
+
-moz-osx-font-smoothing: grayscale;
|
|
43
|
+
background: #ffffff;
|
|
44
|
+
color: #000000;
|
|
45
|
+
}
|
|
46
|
+
@media (prefers-color-scheme: dark) {
|
|
47
|
+
body {
|
|
48
|
+
background: #000000;
|
|
49
|
+
color: #ffffff;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/* Critical shell loader styles - pure CSS, instant render */
|
|
53
|
+
#shell-loader {
|
|
54
|
+
position: fixed;
|
|
55
|
+
top: 0;
|
|
56
|
+
left: 0;
|
|
57
|
+
width: 100%;
|
|
58
|
+
height: 100%;
|
|
59
|
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
60
|
+
display: flex;
|
|
61
|
+
align-items: center;
|
|
62
|
+
justify-content: center;
|
|
63
|
+
z-index: 9999;
|
|
64
|
+
opacity: 1;
|
|
65
|
+
transition: opacity 0.3s ease-out;
|
|
66
|
+
}
|
|
67
|
+
#shell-loader.shell-loader--fading {
|
|
68
|
+
opacity: 0;
|
|
69
|
+
}
|
|
70
|
+
.shell-loader__content {
|
|
71
|
+
text-align: center;
|
|
72
|
+
color: white;
|
|
73
|
+
font-family: ui-monospace, 'SF Mono', 'Cascadia Code', 'Roboto Mono', Consolas, Monaco, 'Liberation Mono', monospace !important;
|
|
74
|
+
font-size: 2.4em;
|
|
75
|
+
font-weight: 500;
|
|
76
|
+
line-height: 1.8;
|
|
77
|
+
}
|
|
78
|
+
.shell-loader__brand {
|
|
79
|
+
display: block;
|
|
80
|
+
}
|
|
81
|
+
.shell-loader__dots {
|
|
82
|
+
display: inline-flex;
|
|
83
|
+
align-items: center;
|
|
84
|
+
gap: 12px;
|
|
85
|
+
}
|
|
86
|
+
.shell-loader__dots span {
|
|
87
|
+
display: inline-block;
|
|
88
|
+
width: 12px;
|
|
89
|
+
height: 12px;
|
|
90
|
+
border-radius: 50%;
|
|
91
|
+
background: white;
|
|
92
|
+
animation: blink 1.4s infinite;
|
|
93
|
+
}
|
|
94
|
+
.shell-loader__dots span:nth-child(1) { animation-delay: 0s; }
|
|
95
|
+
.shell-loader__dots span:nth-child(2) { animation-delay: 0.2s; }
|
|
96
|
+
.shell-loader__dots span:nth-child(3) { animation-delay: 0.4s; }
|
|
97
|
+
.shell-loader__content > :last-child {
|
|
98
|
+
display: block;
|
|
99
|
+
}
|
|
100
|
+
@keyframes blink {
|
|
101
|
+
0%, 80%, 100% { opacity: 0.3; }
|
|
102
|
+
40% { opacity: 1; }
|
|
103
|
+
}
|
|
104
|
+
</style>
|
|
105
|
+
</head>
|
|
106
|
+
<body>
|
|
107
|
+
|
|
108
|
+
<!-- ✅ SHELL LOADER: Branded loading experience before React loads -->
|
|
109
|
+
<div id="shell-loader">
|
|
110
|
+
<div class="shell-loader__content">
|
|
111
|
+
<span class="shell-loader__brand">DoNotDev</span>
|
|
112
|
+
<span class="shell-loader__dots">
|
|
113
|
+
<span></span>
|
|
114
|
+
<span></span>
|
|
115
|
+
<span></span>
|
|
116
|
+
</span>
|
|
117
|
+
<span>is loading</span>
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
<!-- ✅ APP: React app container -->
|
|
122
|
+
<div id="root"></div>
|
|
123
|
+
|
|
124
|
+
<!-- ✅ PERFORMANCE: Module script with proper attributes -->
|
|
125
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
126
|
+
</body>
|
|
127
|
+
</html>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Main application component
|
|
3
|
+
* @description Root application component with configuration-driven architecture
|
|
4
|
+
* @version 0.0.1
|
|
5
|
+
* @since 0.0.1
|
|
6
|
+
* @author AMBROISE PARK Consulting
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { ViteAppProviders } from '@donotdev/ui/vite';
|
|
10
|
+
import { appConfig } from './config/app';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Main application component
|
|
14
|
+
*
|
|
15
|
+
* Configuration-driven architecture with smart defaults.
|
|
16
|
+
* Layout preset comes from appConfig.preset (configured in config/app.ts).
|
|
17
|
+
* Layout prop is for breadcrumbs and slot customizations only.
|
|
18
|
+
* CSS variable overrides should be done in themes.css.
|
|
19
|
+
* Override only what you need - everything else has sensible defaults.
|
|
20
|
+
*
|
|
21
|
+
* Note: HomePage.tsx in src/pages/ is automatically used for the root route "/"
|
|
22
|
+
*
|
|
23
|
+
* @version 0.0.1
|
|
24
|
+
* @since 0.0.1
|
|
25
|
+
* @author AMBROISE PARK Consulting
|
|
26
|
+
*/
|
|
27
|
+
export function App() {
|
|
28
|
+
return (
|
|
29
|
+
<ViteAppProviders
|
|
30
|
+
config={appConfig}
|
|
31
|
+
layout={{
|
|
32
|
+
breadcrumbs: 'smart', // 'smart' | 'always' | 'never' | false
|
|
33
|
+
header: {
|
|
34
|
+
// end: () => <YourHeaderActions />,
|
|
35
|
+
},
|
|
36
|
+
}}
|
|
37
|
+
/>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
|
|
2
|
+
import { Routes as RouterRoutes, Route } from 'react-router-dom';
|
|
3
|
+
|
|
4
|
+
// Import your pages
|
|
5
|
+
import HomePage from './pages/HomePage';
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
export function Routes() {
|
|
9
|
+
return (
|
|
10
|
+
<RouterRoutes>
|
|
11
|
+
{/* Public routes */}
|
|
12
|
+
<Route path="/" element={<HomePage />} />
|
|
13
|
+
{/* Protected routes */}
|
|
14
|
+
</RouterRoutes>
|
|
15
|
+
);
|
|
16
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Application configuration
|
|
3
|
+
* @description Defines application metadata and feature flags
|
|
4
|
+
* @version 0.0.1
|
|
5
|
+
* @since 0.0.1
|
|
6
|
+
* @author AMBROISE PARK Consulting
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import type { AppConfig } from '@donotdev/core';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Application name constant
|
|
13
|
+
*
|
|
14
|
+
* @version 0.0.1
|
|
15
|
+
* @since 0.0.1
|
|
16
|
+
* @author AMBROISE PARK Consulting
|
|
17
|
+
*/
|
|
18
|
+
export const APP_NAME = '{{appName}}';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Application short name constant
|
|
22
|
+
*
|
|
23
|
+
* @version 0.0.1
|
|
24
|
+
* @since 0.0.1
|
|
25
|
+
* @author AMBROISE PARK Consulting
|
|
26
|
+
*/
|
|
27
|
+
export const APP_SHORT_NAME = '{{appShortName}}';
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Application description constant
|
|
31
|
+
*
|
|
32
|
+
* @version 0.0.1
|
|
33
|
+
* @since 0.0.1
|
|
34
|
+
* @author AMBROISE PARK Consulting
|
|
35
|
+
*/
|
|
36
|
+
export const APP_DESCRIPTION = 'Built with DoNotDev Framework';
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Application configuration object
|
|
40
|
+
*
|
|
41
|
+
* @version 0.0.1
|
|
42
|
+
* @since 0.0.1
|
|
43
|
+
* @author AMBROISE PARK Consulting
|
|
44
|
+
*/
|
|
45
|
+
export const appConfig: AppConfig = {
|
|
46
|
+
app: {
|
|
47
|
+
name: APP_NAME,
|
|
48
|
+
shortName: APP_SHORT_NAME,
|
|
49
|
+
description: APP_DESCRIPTION,
|
|
50
|
+
// Optional: Configure footer legal links
|
|
51
|
+
// Remove any links you don't need
|
|
52
|
+
footer: {
|
|
53
|
+
legalLinks: [
|
|
54
|
+
{ path: '#cookie-settings', label: 'footer.legal.cookieSettings' },
|
|
55
|
+
{ path: '/legal/privacy', label: 'footer.legal.privacyPolicy' },
|
|
56
|
+
{ path: '/legal/terms', label: 'footer.legal.termsOfService' },
|
|
57
|
+
// Add more links as needed:
|
|
58
|
+
// { path: '/legal/legal-notice', label: 'footer.legal.legalNotice' },
|
|
59
|
+
// { path: '/license', label: 'License' },
|
|
60
|
+
],
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
preset: 'landing', // 'landing' | 'admin' | 'moolti' | 'docs' | 'blog' | 'game' | 'plain'
|
|
64
|
+
features: {
|
|
65
|
+
// Optional: Enable debug tools in development
|
|
66
|
+
// debug: true,
|
|
67
|
+
},
|
|
68
|
+
// Optional: Override auth routes
|
|
69
|
+
// auth: {
|
|
70
|
+
// authRoute: '/signin',
|
|
71
|
+
// roleRoute: '/403',
|
|
72
|
+
// tierRoute: '/pricing',
|
|
73
|
+
// },
|
|
74
|
+
};
|
|
75
|
+
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
// src/config/legal.ts
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Legal Information Configuration
|
|
5
|
+
* @description Centralized legal information for Terms, Privacy, and Legal Notice pages
|
|
6
|
+
*
|
|
7
|
+
* IMPORTANT: Configure your actual legal information here.
|
|
8
|
+
* This file is used by all legal pages (Terms of Service, Privacy Policy, Legal Notice).
|
|
9
|
+
*
|
|
10
|
+
* @version 0.0.1
|
|
11
|
+
* @since 0.0.1
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import type { LegalConfig } from '@donotdev/core';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Legal Configuration
|
|
18
|
+
*
|
|
19
|
+
* Fill in your actual company and legal information below.
|
|
20
|
+
* Remove any optional fields you don't need.
|
|
21
|
+
*
|
|
22
|
+
* For detailed documentation on each field, see the JSDoc in @donotdev/types or
|
|
23
|
+
* hover over any field in your IDE for inline documentation.
|
|
24
|
+
*/
|
|
25
|
+
export const legalConfig: LegalConfig = {
|
|
26
|
+
/**
|
|
27
|
+
* Company/Publisher Information
|
|
28
|
+
*/
|
|
29
|
+
company: {
|
|
30
|
+
name: 'Your Company Name', // Required - Full legal name
|
|
31
|
+
shortName: 'YCN', // Optional - Abbreviation
|
|
32
|
+
legalStatus: 'LLC', // Optional - e.g., "LLC", "SARL", "SAS", "GmbH", "Ltd"
|
|
33
|
+
registrationNumber: '123456789', // Optional but recommended - e.g., SIRET (France), Company Number (UK), EIN (USA)
|
|
34
|
+
vatNumber: 'XX123456789', // Optional - VAT/Tax ID, required for EU businesses
|
|
35
|
+
shareCapital: '10,000 USD', // Optional - Required in some jurisdictions like France
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Contact Information
|
|
40
|
+
*/
|
|
41
|
+
contact: {
|
|
42
|
+
address: '123 Main Street, City, State/Province, Postal Code, Country', // Required - Registered office address
|
|
43
|
+
email: 'legal@yourcompany.com', // Required - Legal contact email
|
|
44
|
+
phone: '+1 (555) 123-4567', // Optional but recommended
|
|
45
|
+
supportEmail: 'support@yourcompany.com', // Required - Customer support email
|
|
46
|
+
privacyEmail: 'privacy@yourcompany.com', // Required - Privacy inquiries
|
|
47
|
+
dpoEmail: 'dpo@yourcompany.com', // Required for GDPR compliance if processing significant personal data
|
|
48
|
+
},
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Publication Director
|
|
52
|
+
*
|
|
53
|
+
* The person legally responsible for the website's content.
|
|
54
|
+
* Required by law in France ("Directeur de la publication").
|
|
55
|
+
*/
|
|
56
|
+
director: {
|
|
57
|
+
name: 'John Doe', // Required - Full name of the responsible person
|
|
58
|
+
role: 'CEO', // Optional - Their title/role
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Hosting Provider
|
|
63
|
+
*
|
|
64
|
+
* Information about where your website is hosted.
|
|
65
|
+
* Required by law in many jurisdictions including France.
|
|
66
|
+
*/
|
|
67
|
+
hosting: {
|
|
68
|
+
provider: 'Firebase Hosting by Google', // Required - Hosting service name
|
|
69
|
+
address: 'Google LLC, 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA', // Optional - Hosting provider's address
|
|
70
|
+
contact: 'https://firebase.google.com/support', // Optional - Support URL or email
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Legal Jurisdiction
|
|
75
|
+
*
|
|
76
|
+
* Where your business operates and how disputes are resolved.
|
|
77
|
+
*/
|
|
78
|
+
jurisdiction: {
|
|
79
|
+
country: 'United States', // Required - Operating jurisdiction
|
|
80
|
+
arbitrationOrg: 'American Arbitration Association', // Optional - For dispute resolution
|
|
81
|
+
arbitrationLocation: 'New York, NY', // Optional - Where arbitration would occur
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Website Information
|
|
86
|
+
*/
|
|
87
|
+
website: {
|
|
88
|
+
url: 'https://yourcompany.com', // Required - Your main website URL
|
|
89
|
+
},
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Optional Sections Configuration
|
|
93
|
+
*
|
|
94
|
+
* Enable/disable specific sections in your legal pages.
|
|
95
|
+
* Set to true to include, false to exclude.
|
|
96
|
+
*/
|
|
97
|
+
sections: {
|
|
98
|
+
// Terms of Service sections
|
|
99
|
+
terms: {
|
|
100
|
+
children: false, // Include children-specific provisions (COPPA)
|
|
101
|
+
international: true, // Include international users provisions
|
|
102
|
+
california: false, // Include California-specific provisions (CCPA)
|
|
103
|
+
eu: true, // Include EU-specific provisions
|
|
104
|
+
},
|
|
105
|
+
// Privacy Policy sections
|
|
106
|
+
privacy: {
|
|
107
|
+
children: false, // Include children's privacy provisions (COPPA)
|
|
108
|
+
international: true, // Include international data transfer provisions
|
|
109
|
+
california: false, // Include California privacy rights (CCPA)
|
|
110
|
+
eu: true, // Include EU privacy provisions (GDPR)
|
|
111
|
+
},
|
|
112
|
+
// Legal Notice sections
|
|
113
|
+
legalNotice: {
|
|
114
|
+
intellectualProperty: true, // Include IP notice
|
|
115
|
+
personalData: true, // Include link to Privacy Policy
|
|
116
|
+
cookies: true, // Include cookies reference
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
} as const;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Type-safe access to legal config
|
|
123
|
+
*/
|
|
124
|
+
export type AppLegalConfig = typeof legalConfig;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* QUICK START CHECKLIST:
|
|
128
|
+
*
|
|
129
|
+
* 1. Company Information:
|
|
130
|
+
* - [ ] Update company.name with your legal entity name
|
|
131
|
+
* - [ ] Set company.legalStatus (SARL, LLC, GmbH, etc.)
|
|
132
|
+
* - [ ] Add company.registrationNumber (SIRET, EIN, Company Number)
|
|
133
|
+
* - [ ] Add company.vatNumber if you're in the EU or have VAT obligations
|
|
134
|
+
*
|
|
135
|
+
* 2. Contact Information:
|
|
136
|
+
* - [ ] Update contact.address with your registered office
|
|
137
|
+
* - [ ] Set contact.email for legal notices
|
|
138
|
+
* - [ ] Set contact.supportEmail for customer support
|
|
139
|
+
* - [ ] Set contact.privacyEmail for GDPR/privacy requests
|
|
140
|
+
* - [ ] Set contact.dpoEmail if you have a Data Protection Officer
|
|
141
|
+
*
|
|
142
|
+
* 3. Legal Responsibility:
|
|
143
|
+
* - [ ] Update director.name (person responsible for content)
|
|
144
|
+
* - [ ] Set director.role (CEO, Director, etc.)
|
|
145
|
+
*
|
|
146
|
+
* 4. Hosting:
|
|
147
|
+
* - [ ] Verify hosting.provider is correct
|
|
148
|
+
* - [ ] Update hosting.address and hosting.contact if needed
|
|
149
|
+
*
|
|
150
|
+
* 5. Jurisdiction:
|
|
151
|
+
* - [ ] Set jurisdiction.country where you operate
|
|
152
|
+
* - [ ] Configure arbitration details if needed
|
|
153
|
+
*
|
|
154
|
+
* 6. Optional Sections:
|
|
155
|
+
* - [ ] Review and enable/disable sections based on your needs
|
|
156
|
+
* - [ ] Enable sections.*.eu if you have EU users (GDPR)
|
|
157
|
+
* - [ ] Enable sections.*.california if you have California users (CCPA)
|
|
158
|
+
*
|
|
159
|
+
* LEGAL COMPLIANCE NOTES:
|
|
160
|
+
*
|
|
161
|
+
* - France: All fields with "Required" are mandatory for French websites
|
|
162
|
+
* - EU/GDPR: contact.dpoEmail is required if you process significant personal data
|
|
163
|
+
* - USA/California: Enable California sections if you have California users
|
|
164
|
+
* - International: Enable international sections for global audience
|
|
165
|
+
*
|
|
166
|
+
* For more information, consult your legal advisor or refer to:
|
|
167
|
+
* - https://docs.dndev.com/legal/configuration (framework docs)
|
|
168
|
+
* - Your local business registration authority
|
|
169
|
+
* - GDPR guidance: https://gdpr.eu
|
|
170
|
+
*/
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/* apps/{{appName}}/src/globals.css */
|
|
2
|
+
@import '@donotdev/ui/dndev.css';
|
|
3
|
+
|
|
4
|
+
@import './themes.css';
|
|
5
|
+
|
|
6
|
+
/* Override framework's default font to use Roboto */
|
|
7
|
+
:root {
|
|
8
|
+
--font-sans: 'Roboto', sans-serif;
|
|
9
|
+
--font-mono: 'Roboto Mono', monospace;
|
|
10
|
+
--font-family: var(--font-sans);
|
|
11
|
+
}
|