@donotdev/cli 0.0.18 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/dependencies-matrix.json +42 -55
  2. package/dist/bin/commands/bump.js +5 -2
  3. package/dist/bin/commands/coach.js +8177 -0
  4. package/dist/bin/commands/create-app.js +6 -6
  5. package/dist/bin/commands/create-project.js +23 -9
  6. package/dist/bin/commands/deploy.js +99 -59
  7. package/dist/bin/commands/doctor.js +243 -698
  8. package/dist/bin/commands/emu.js +2 -2
  9. package/dist/bin/commands/format.js +4 -1
  10. package/dist/bin/commands/get-demo.js +8351 -0
  11. package/dist/bin/commands/make-admin.js +773 -152
  12. package/dist/bin/commands/setup.js +524 -1713
  13. package/dist/bin/commands/staging.js +17870 -0
  14. package/dist/bin/commands/sync-secrets.js +2 -11
  15. package/dist/bin/commands/type-check.js +7738 -1712
  16. package/dist/bin/dndev.js +868 -199
  17. package/dist/bin/donotdev.js +868 -199
  18. package/dist/index.js +127 -67
  19. package/package.json +1 -1
  20. package/templates/app-demo/index.html.example +147 -10
  21. package/templates/app-demo/public/apple-touch-icon.png.example +0 -0
  22. package/templates/app-demo/public/favicon.svg.example +1 -0
  23. package/templates/app-demo/public/icon-192x192.png.example +0 -0
  24. package/templates/app-demo/public/icon-512x512.png.example +0 -0
  25. package/templates/app-demo/src/App.tsx.example +7 -11
  26. package/templates/app-demo/src/config/app.ts.example +13 -48
  27. package/templates/app-demo/src/entities/booking.ts.example +75 -0
  28. package/templates/app-demo/src/entities/onboarding.ts.example +160 -0
  29. package/templates/app-demo/src/entities/product.ts.example +50 -0
  30. package/templates/app-demo/src/entities/quote.ts.example +70 -0
  31. package/templates/app-demo/src/globals.css.example +5 -1
  32. package/templates/app-demo/src/main.tsx.example +13 -7
  33. package/templates/app-demo/src/pages/ChangelogPage.tsx.example +41 -0
  34. package/templates/app-demo/src/pages/ConditionalFormPage.tsx.example +88 -0
  35. package/templates/app-demo/src/pages/DashboardPage.tsx.example +17 -0
  36. package/templates/app-demo/src/pages/HomePage.tsx.example +339 -60
  37. package/templates/app-demo/src/pages/OnboardingPage.tsx.example +47 -0
  38. package/templates/app-demo/src/pages/PricingPage.tsx.example +41 -0
  39. package/templates/app-demo/src/pages/ProductsPage.tsx.example +19 -0
  40. package/templates/app-demo/src/pages/ProfilePage.tsx.example +18 -0
  41. package/templates/app-demo/src/pages/SettingsPage.tsx.example +17 -0
  42. package/templates/app-demo/src/pages/ShowcaseDetailPage.tsx.example +118 -0
  43. package/templates/app-demo/src/pages/ShowcasePage.tsx.example +93 -0
  44. package/templates/app-demo/src/pages/components/ComponentRenderer.tsx.example +147 -51
  45. package/templates/app-demo/src/pages/components/ComponentsData.tsx.example +103 -21
  46. package/templates/app-demo/src/pages/components/componentConfig.ts.example +139 -59
  47. package/templates/app-demo/src/pages/legal/LegalPage.tsx.example +25 -0
  48. package/templates/app-demo/src/pages/legal/PrivacyPage.tsx.example +23 -0
  49. package/templates/app-demo/src/pages/legal/TermsPage.tsx.example +23 -0
  50. package/templates/app-demo/src/themes.css.example +289 -77
  51. package/templates/app-demo/stats.html.example +4949 -0
  52. package/templates/app-demo/tsconfig.json.example +1 -1
  53. package/templates/app-demo/vite.config.ts.example +23 -48
  54. package/templates/app-expo/README.md.example +1 -1
  55. package/templates/app-expo/app/index.tsx.example +1 -1
  56. package/templates/app-next/src/locales/home_en.json.example +6 -6
  57. package/templates/app-vite/src/locales/home_en.json.example +6 -6
  58. package/templates/app-vite/src/pages/HomePage.tsx.example +8 -10
  59. package/templates/overlay-firebase/env.fragment.example +1 -1
  60. package/templates/overlay-firebase/env.fragment.expo.example +1 -1
  61. package/templates/overlay-firebase/env.fragment.nextjs.example +1 -1
  62. package/templates/overlay-supabase/env.fragment.example +1 -1
  63. package/templates/overlay-supabase/env.fragment.expo.example +1 -1
  64. package/templates/overlay-supabase/env.fragment.nextjs.example +1 -1
  65. package/templates/overlay-vercel/env.fragment.example +1 -1
  66. package/templates/overlay-vercel/env.fragment.nextjs.example +1 -1
  67. package/templates/root-consumer/AI.md.example +4 -3
  68. package/templates/root-consumer/guides/dndev/AGENT_START_HERE.md.example +21 -6
  69. package/templates/root-consumer/guides/dndev/COMPONENTS_ADV.md.example +16 -179
  70. package/templates/root-consumer/guides/dndev/ENV_SETUP.md.example +19 -21
  71. package/templates/root-consumer/guides/dndev/GOTCHAS.md.example +14 -3
  72. package/templates/root-consumer/guides/dndev/INDEX.md.example +2 -2
  73. package/templates/root-consumer/guides/dndev/SETUP_APP_CONFIG.md.example +3 -3
  74. package/templates/root-consumer/guides/dndev/SETUP_BLOG.md.example +19 -2
  75. package/templates/root-consumer/guides/dndev/SETUP_CRUD.md.example +35 -1
  76. package/templates/root-consumer/guides/dndev/SETUP_FIREBASE.md.example +17 -12
  77. package/templates/root-consumer/guides/dndev/SETUP_LAYOUTS.md.example +32 -0
  78. package/templates/root-consumer/guides/dndev/SETUP_OAUTH_PROVIDERS.md.example +1 -1
  79. package/templates/root-consumer/guides/dndev/SETUP_PAGES.md.example +19 -15
  80. package/templates/root-consumer/guides/dndev/SETUP_STRIPE.md.example +2 -2
  81. package/templates/root-consumer/guides/dndev/SETUP_SUPABASE.md.example +17 -12
  82. package/templates/root-consumer/guides/dndev/SETUP_VERCEL.md.example +37 -16
  83. package/templates/root-consumer/guides/dndev/USE_ROUTING.md.example +18 -18
  84. package/templates/root-consumer/guides/dndev/advanced/COOKIE_REFERENCE.md.example +252 -252
  85. package/templates/root-consumer/guides/dndev/advanced/VERSION_CONTROL.md.example +174 -174
  86. package/templates/root-consumer/guides/dndev/essences_reference.css.example +119 -2
  87. package/templates/root-consumer/guides/wai-way/blueprints/1_scaffold.md.example +14 -0
  88. package/templates/root-consumer/guides/wai-way/blueprints/2_entities.md.example +6 -0
  89. package/templates/root-consumer/guides/wai-way/blueprints/3_compose.md.example +14 -0
  90. package/templates/root-consumer/guides/wai-way/entity_patterns.md.example +4 -5
  91. package/templates/root-consumer/guides/wai-way/page_patterns.md.example +2 -2
  92. package/dist/bin/commands/agent-setup.d.ts +0 -6
  93. package/dist/bin/commands/agent-setup.d.ts.map +0 -1
  94. package/dist/bin/commands/agent-setup.js.map +0 -1
  95. package/dist/bin/commands/build.d.ts +0 -11
  96. package/dist/bin/commands/build.d.ts.map +0 -1
  97. package/dist/bin/commands/build.js.map +0 -1
  98. package/dist/bin/commands/bump.d.ts +0 -11
  99. package/dist/bin/commands/bump.d.ts.map +0 -1
  100. package/dist/bin/commands/bump.js.map +0 -1
  101. package/dist/bin/commands/cacheout.d.ts +0 -11
  102. package/dist/bin/commands/cacheout.d.ts.map +0 -1
  103. package/dist/bin/commands/cacheout.js.map +0 -1
  104. package/dist/bin/commands/create-app.d.ts +0 -11
  105. package/dist/bin/commands/create-app.d.ts.map +0 -1
  106. package/dist/bin/commands/create-app.js.map +0 -1
  107. package/dist/bin/commands/create-project.d.ts +0 -11
  108. package/dist/bin/commands/create-project.d.ts.map +0 -1
  109. package/dist/bin/commands/create-project.js.map +0 -1
  110. package/dist/bin/commands/deploy.d.ts +0 -11
  111. package/dist/bin/commands/deploy.d.ts.map +0 -1
  112. package/dist/bin/commands/deploy.js.map +0 -1
  113. package/dist/bin/commands/dev.d.ts +0 -11
  114. package/dist/bin/commands/dev.d.ts.map +0 -1
  115. package/dist/bin/commands/dev.js.map +0 -1
  116. package/dist/bin/commands/doctor.d.ts +0 -6
  117. package/dist/bin/commands/doctor.d.ts.map +0 -1
  118. package/dist/bin/commands/doctor.js.map +0 -1
  119. package/dist/bin/commands/emu.d.ts +0 -11
  120. package/dist/bin/commands/emu.d.ts.map +0 -1
  121. package/dist/bin/commands/emu.js.map +0 -1
  122. package/dist/bin/commands/format.d.ts +0 -11
  123. package/dist/bin/commands/format.d.ts.map +0 -1
  124. package/dist/bin/commands/format.js.map +0 -1
  125. package/dist/bin/commands/make-admin.d.ts +0 -11
  126. package/dist/bin/commands/make-admin.d.ts.map +0 -1
  127. package/dist/bin/commands/make-admin.js.map +0 -1
  128. package/dist/bin/commands/preview.d.ts +0 -11
  129. package/dist/bin/commands/preview.d.ts.map +0 -1
  130. package/dist/bin/commands/preview.js.map +0 -1
  131. package/dist/bin/commands/setup.d.ts +0 -6
  132. package/dist/bin/commands/setup.d.ts.map +0 -1
  133. package/dist/bin/commands/setup.js.map +0 -1
  134. package/dist/bin/commands/sync-secrets.d.ts +0 -11
  135. package/dist/bin/commands/sync-secrets.d.ts.map +0 -1
  136. package/dist/bin/commands/sync-secrets.js.map +0 -1
  137. package/dist/bin/commands/type-check.d.ts +0 -14
  138. package/dist/bin/commands/type-check.d.ts.map +0 -1
  139. package/dist/bin/commands/type-check.js.map +0 -1
  140. package/dist/bin/commands/wai.d.ts +0 -11
  141. package/dist/bin/commands/wai.d.ts.map +0 -1
  142. package/dist/bin/commands/wai.js.map +0 -1
  143. package/dist/index.d.ts +0 -8
  144. package/dist/index.d.ts.map +0 -1
  145. package/dist/index.js.map +0 -1
  146. package/templates/app-demo/src/components/ThemeToggle.tsx.example +0 -48
  147. package/templates/app-demo/src/pages/DetailPage.tsx.example +0 -103
  148. package/templates/app-demo/src/pages/FullPage.tsx.example +0 -142
  149. package/templates/app-demo/src/pages/components/DemoLayout.tsx.example +0 -266
  150. package/templates/app-demo/src/pages/components/LayoutRoute.tsx.example +0 -20
@@ -1,174 +1,174 @@
1
- # Version Control Guide
2
-
3
- **How to upgrade DoNotDev framework packages in your project**
4
-
5
- ---
6
-
7
- ## Quick Start
8
-
9
- ```bash
10
- # Check for available updates
11
- dndev bump --check
12
-
13
- # Apply safe updates (minor/patch versions)
14
- dndev bump
15
-
16
- # Preview changes without applying
17
- dndev bump --dry-run
18
- ```
19
-
20
- ---
21
-
22
- ## How It Works
23
-
24
- ### Automatic Updates
25
-
26
- **Patch versions (0.0.x):**
27
- - Handled automatically by `bun install`
28
- - No action needed - `^` ranges allow automatic patch updates
29
- - Example: `^0.0.2` → `0.0.3`, `0.0.4`, etc.
30
-
31
- **Minor versions (0.x.y):**
32
- - Handled automatically by `dndev bump`
33
- - **RISK FREE:** All changes are backward compatible via deprecation
34
- - No breaking changes in 0.x.y range
35
- - Example: `^0.0.2` → `^0.1.0` (auto-updated, safe)
36
-
37
- ### Manual Validation Required
38
-
39
- **Major versions (0.*.* → 1.x.y):**
40
- - `dndev bump` detects major version changes
41
- - Shows migration guide with breaking changes
42
- - **You must validate manually** before updating
43
- - **Only place where breaking changes occur**
44
- - Example: `^0.1.0` → `^1.0.0` (requires validation)
45
-
46
- ---
47
-
48
- ## Upgrade Process
49
-
50
- ### Step 1: Check for Updates
51
-
52
- ```bash
53
- dndev bump --check
54
- ```
55
-
56
- This shows:
57
- - Available updates for `@donotdev/*` packages (from npm)
58
- - Available updates for external peer dependencies (from matrix)
59
- - Major version changes (with migration guides)
60
-
61
- ### Step 2: Review Migration Guides
62
-
63
- If major version changes are detected:
64
- - Read the migration guide shown in the output
65
- - Check for breaking changes that affect your code
66
- - Review the migration guide file (path shown in output)
67
-
68
- ### Step 3: Apply Updates
69
-
70
- ```bash
71
- # Safe updates (minor/patch) - auto-applied
72
- dndev bump
73
-
74
- # Or preview first
75
- dndev bump --dry-run
76
- ```
77
-
78
- **What gets updated:**
79
- - `@donotdev/*` packages: Updated to latest compatible version
80
- - External peer dependencies: Updated to matrix versions
81
- - All `package.json` files in your project
82
-
83
- ---
84
-
85
- ## Understanding Version Ranges
86
-
87
- ### `^` Range (Caret)
88
-
89
- **What it means:**
90
- - Allows updates to latest minor/patch version
91
- - Same major version required
92
- - Example: `^0.0.2` allows `0.0.2` through `0.0.9`, but not `0.1.0`
93
-
94
- **Why we use it:**
95
- - Automatic patch updates via `bun install`
96
- - Safe minor updates via `dndev bump`
97
- - Prevents accidental major version updates
98
-
99
- ### Version Format
100
-
101
- ```json
102
- {
103
- "dependencies": {
104
- "@donotdev/core": "^0.0.2",
105
- "react": "^19.2.3"
106
- }
107
- }
108
- ```
109
-
110
- - `^0.0.2` = allows `0.0.2` to `0.0.x` (patch updates)
111
- - `^0.1.0` = allows `0.1.0` to `0.x.x` (minor updates)
112
- - `^1.0.0` = allows `1.0.0` to `1.x.x` (minor updates, not `2.0.0`)
113
-
114
- ---
115
-
116
- ## Migration Guides
117
-
118
- When upgrading major versions, migration guides are provided:
119
-
120
- **Location:** Shown in `dndev bump` output
121
-
122
- **Contains:**
123
- - List of breaking changes
124
- - Step-by-step migration instructions
125
- - Code examples for updated APIs
126
-
127
- **Example:**
128
- ```
129
- ⚠️ Major version update detected: @donotdev/core 0.1.0 → 1.0.0
130
-
131
- Migration guide: docs/migration/v0.1-to-v1.0.md
132
-
133
- Breaking changes:
134
- - Removed useAuth() - use useAuthentication() instead
135
- - Theme API changed - see migration guide
136
-
137
- Review the migration guide before updating.
138
- ```
139
-
140
- ---
141
-
142
- ## Troubleshooting
143
-
144
- ### "No updates available"
145
-
146
- - All packages are up to date
147
- - Or you're already on latest version
148
-
149
- ### "Major version change detected"
150
-
151
- - Review migration guide
152
- - Check breaking changes
153
- - Update code if needed
154
- - Run `dndev bump` again to apply
155
-
156
- ### "Package not found on npm"
157
-
158
- - Package may not be published yet
159
- - Check package name spelling
160
- - Verify you're using correct registry
161
-
162
- ---
163
-
164
- ## Best Practices
165
-
166
- 1. **Regular updates:** Run `dndev bump --check` monthly
167
- 2. **Test after updates:** Run your test suite after applying updates
168
- 3. **Review major changes:** Always read migration guides for major versions
169
- 4. **Use `--dry-run`:** Preview changes before applying
170
- 5. **Commit changes:** Commit updated `package.json` files after successful updates
171
-
172
- ---
173
-
174
- **Keep your dependencies up to date. Stay secure. Stay compatible.**
1
+ # Version Control Guide
2
+
3
+ **How to upgrade DoNotDev framework packages in your project**
4
+
5
+ ---
6
+
7
+ ## Quick Start
8
+
9
+ ```bash
10
+ # Check for available updates
11
+ dndev bump --check
12
+
13
+ # Apply safe updates (minor/patch versions)
14
+ dndev bump
15
+
16
+ # Preview changes without applying
17
+ dndev bump --dry-run
18
+ ```
19
+
20
+ ---
21
+
22
+ ## How It Works
23
+
24
+ ### Automatic Updates
25
+
26
+ **Patch versions (0.0.x):**
27
+ - Handled automatically by `bun install`
28
+ - No action needed - `^` ranges allow automatic patch updates
29
+ - Example: `^0.0.2` → `0.0.3`, `0.0.4`, etc.
30
+
31
+ **Minor versions (0.x.y):**
32
+ - Handled automatically by `dndev bump`
33
+ - **RISK FREE:** All changes are backward compatible via deprecation
34
+ - No breaking changes in 0.x.y range
35
+ - Example: `^0.0.2` → `^0.1.0` (auto-updated, safe)
36
+
37
+ ### Manual Validation Required
38
+
39
+ **Major versions (0.*.* → 1.x.y):**
40
+ - `dndev bump` detects major version changes
41
+ - Shows migration guide with breaking changes
42
+ - **You must validate manually** before updating
43
+ - **Only place where breaking changes occur**
44
+ - Example: `^0.1.0` → `^1.0.0` (requires validation)
45
+
46
+ ---
47
+
48
+ ## Upgrade Process
49
+
50
+ ### Step 1: Check for Updates
51
+
52
+ ```bash
53
+ dndev bump --check
54
+ ```
55
+
56
+ This shows:
57
+ - Available updates for `@donotdev/*` packages (from npm)
58
+ - Available updates for external peer dependencies (from matrix)
59
+ - Major version changes (with migration guides)
60
+
61
+ ### Step 2: Review Migration Guides
62
+
63
+ If major version changes are detected:
64
+ - Read the migration guide shown in the output
65
+ - Check for breaking changes that affect your code
66
+ - Review the migration guide file (path shown in output)
67
+
68
+ ### Step 3: Apply Updates
69
+
70
+ ```bash
71
+ # Safe updates (minor/patch) - auto-applied
72
+ dndev bump
73
+
74
+ # Or preview first
75
+ dndev bump --dry-run
76
+ ```
77
+
78
+ **What gets updated:**
79
+ - `@donotdev/*` packages: Updated to latest compatible version
80
+ - External peer dependencies: Updated to matrix versions
81
+ - All `package.json` files in your project
82
+
83
+ ---
84
+
85
+ ## Understanding Version Ranges
86
+
87
+ ### `^` Range (Caret)
88
+
89
+ **What it means:**
90
+ - Allows updates to latest minor/patch version
91
+ - Same major version required
92
+ - Example: `^0.0.2` allows `0.0.2` through `0.0.9`, but not `0.1.0`
93
+
94
+ **Why we use it:**
95
+ - Automatic patch updates via `bun install`
96
+ - Safe minor updates via `dndev bump`
97
+ - Prevents accidental major version updates
98
+
99
+ ### Version Format
100
+
101
+ ```json
102
+ {
103
+ "dependencies": {
104
+ "@donotdev/core": "^0.0.2",
105
+ "react": "^19.2.3"
106
+ }
107
+ }
108
+ ```
109
+
110
+ - `^0.0.2` = allows `0.0.2` to `0.0.x` (patch updates)
111
+ - `^0.1.0` = allows `0.1.0` to `0.x.x` (minor updates)
112
+ - `^1.0.0` = allows `1.0.0` to `1.x.x` (minor updates, not `2.0.0`)
113
+
114
+ ---
115
+
116
+ ## Migration Guides
117
+
118
+ When upgrading major versions, migration guides are provided:
119
+
120
+ **Location:** Shown in `dndev bump` output
121
+
122
+ **Contains:**
123
+ - List of breaking changes
124
+ - Step-by-step migration instructions
125
+ - Code examples for updated APIs
126
+
127
+ **Example:**
128
+ ```
129
+ ⚠️ Major version update detected: @donotdev/core 0.1.0 → 1.0.0
130
+
131
+ Migration guide: docs/migration/v0.1-to-v1.0.md
132
+
133
+ Breaking changes:
134
+ - Removed useAuth() - use useAuthentication() instead
135
+ - Theme API changed - see migration guide
136
+
137
+ Review the migration guide before updating.
138
+ ```
139
+
140
+ ---
141
+
142
+ ## Troubleshooting
143
+
144
+ ### "No updates available"
145
+
146
+ - All packages are up to date
147
+ - Or you're already on latest version
148
+
149
+ ### "Major version change detected"
150
+
151
+ - Review migration guide
152
+ - Check breaking changes
153
+ - Update code if needed
154
+ - Run `dndev bump` again to apply
155
+
156
+ ### "Package not found on npm"
157
+
158
+ - Package may not be published yet
159
+ - Check package name spelling
160
+ - Verify you're using correct registry
161
+
162
+ ---
163
+
164
+ ## Best Practices
165
+
166
+ 1. **Regular updates:** Run `dndev bump --check` monthly
167
+ 2. **Test after updates:** Run your test suite after applying updates
168
+ 3. **Review major changes:** Always read migration guides for major versions
169
+ 4. **Use `--dry-run`:** Preview changes before applying
170
+ 5. **Commit changes:** Commit updated `package.json` files after successful updates
171
+
172
+ ---
173
+
174
+ **Keep your dependencies up to date. Stay secure. Stay compatible.**
@@ -1,9 +1,10 @@
1
1
  /**
2
- * Reference: Framework essences (Brutalist, Luxury).
2
+ * Reference: Framework essences (Brutalist, Luxury, Retro).
3
3
  * Copy the blocks you need into your app's src/themes.css.
4
4
  * Default essence = SaaS (Inter); these do not apply until you set the class on <html>.
5
5
  *
6
- * Fonts: Space Grotesk (Brutalist), Playfair Display (Luxury), Inter, Roboto are bundled in @donotdev/ui (no external requests).
6
+ * Fonts: Space Grotesk (Brutalist), Playfair Display (Luxury), Press Start 2P (Retro),
7
+ * Inter, Roboto are bundled in @donotdev/ui (no external requests).
7
8
  */
8
9
 
9
10
  /** =========================================================================
@@ -172,3 +173,119 @@
172
173
  --shadow-md: 0 4px 12px var(--shadow-color);
173
174
  --shadow-xl: 0 8px 24px var(--shadow-color);
174
175
  }
176
+
177
+
178
+ /** =========================================================================
179
+ * Retro — 8-bit pixel aesthetic, Press Start 2P, neon on dark, CRT vibes.
180
+ * Set <html class="retro"> to apply.
181
+ * ========================================================================= */
182
+ .retro {
183
+ --theme-icon: 'Gamepad2';
184
+ --theme-label: 'Retro';
185
+ --theme-is-dark: 1;
186
+
187
+ /* 1. Core Colors - Muted neon on zinc */
188
+ --background: #1c1c22;
189
+ --foreground: #c8e6c9;
190
+ --primary: #5eead4;
191
+ --secondary: #c084fc;
192
+ --accent: #fbbf24;
193
+
194
+ /* 2. Semantic */
195
+ --success: #6ee7b7;
196
+ --warning: #fbbf24;
197
+ --destructive: #f87171;
198
+
199
+ /* 3. Surfaces - Zinc CRT glass */
200
+ --muted: #27272f;
201
+ --muted-foreground: #8bae8b;
202
+ --border: #4a6a4a;
203
+ --input: #1c1c22;
204
+ --ring: #5eead4;
205
+ --card: #222228;
206
+ --card-foreground: #c8e6c9;
207
+ --popover: #222228;
208
+ --popover-foreground: #c8e6c9;
209
+ --surface-1: #1e1e24;
210
+
211
+ /* 4. Text on Colors */
212
+ --primary-foreground: #0f172a;
213
+ --secondary-foreground: #0f172a;
214
+ --accent-foreground: #0f172a;
215
+ --success-foreground: #0f172a;
216
+ --warning-foreground: #0f172a;
217
+ --destructive-foreground: #ffffff;
218
+
219
+ /* 5. Radius - Hard pixel corners */
220
+ --radius-interactive: 0;
221
+ --radius-surface: 0;
222
+ --radius-floating: 0;
223
+
224
+ /* 6. Typography - Press Start 2P (pixel font, 400 only) */
225
+ --font-family: 'Press Start 2P', var(--font-mono);
226
+ --font-headline: 'Press Start 2P', var(--font-mono);
227
+ --font-weight-normal: 400;
228
+ --font-weight-medium: 400;
229
+ --font-weight-semibold: 400;
230
+ --font-weight-bold: 400;
231
+
232
+ /* 7. Font scale - smaller base (pixel font reads large) */
233
+ --font-size-xs: 0.5rem;
234
+ --font-size-sm: 0.625rem;
235
+ --font-size-base: 0.75rem;
236
+ --font-size-lg: 0.875rem;
237
+ --font-size-xl: 1rem;
238
+ --font-size-2xl: 1.25rem;
239
+ --font-size-3xl: 1.5rem;
240
+ --line-height: 1.6;
241
+
242
+ /* 8. Borders - Chunky pixel borders */
243
+ --border-width: 3px;
244
+ --border-huge: 4px;
245
+
246
+ /* 9. Shadows — soft neon glow */
247
+ --shadow-color: #5eead433;
248
+ --shadow-sm: 0 0 4px #5eead422;
249
+ --shadow-md: 0 0 8px #5eead433, 0 0 16px #5eead41a;
250
+ --shadow-xl: 0 0 12px #5eead444, 0 0 24px #5eead42a, 0 0 48px #c084fc1a;
251
+ --shadow-cta: 0 0 16px #5eead444, 0 0 32px #5eead422;
252
+
253
+ /* 10. Per-variant shadows — soft neon matching */
254
+ --shadow-primary: 0 0 8px #5eead42a;
255
+ --shadow-primary-xl: 0 0 16px #5eead444, 0 0 32px #5eead422;
256
+ --shadow-secondary: 0 0 8px #c084fc2a;
257
+ --shadow-secondary-xl: 0 0 16px #c084fc44, 0 0 32px #c084fc22;
258
+
259
+ /* 11. Header padding */
260
+ --header-shadow-padding: 0;
261
+ }
262
+
263
+ /* Body - subtle CRT scanlines */
264
+ .retro body {
265
+ background-color: var(--background);
266
+ background-image:
267
+ repeating-linear-gradient(
268
+ 0deg,
269
+ transparent,
270
+ transparent 2px,
271
+ rgba(0, 0, 0, 0.08) 2px,
272
+ rgba(0, 0, 0, 0.08) 4px
273
+ );
274
+ }
275
+
276
+ /* Uppercase headings (pixel fonts look best in caps) */
277
+ .retro {
278
+ :is(h1, h2, h3, h4, h5, h6),
279
+ [data-level^='h'] {
280
+ text-transform: uppercase;
281
+ }
282
+ }
283
+
284
+ /* Flat surfaces - no gradient, pixel-sharp */
285
+ .retro .dndev-surface { background: var(--card); }
286
+ .retro .dndev-surface[data-variant='outline'] { border: var(--border-width) solid var(--border); }
287
+
288
+ .retro .dndev-card[data-variant='outline'] {
289
+ background: transparent;
290
+ box-shadow: none;
291
+ }
@@ -37,6 +37,20 @@ Apply the chosen essence (SaaS, Luxury, Brutalist) to your `src/themes.css`.
37
37
 
38
38
  ---
39
39
 
40
+ ## Reference: Demo App
41
+
42
+ **Before creating pages, study the demo app:** `packages/cli/templates/app-demo/src/pages/`
43
+
44
+ It shows the canonical pattern:
45
+ - Thin page wrappers (~5 lines) that import templates
46
+ - `PageMeta.preset` for per-route layout switching (landing → admin → docs)
47
+ - Component showcase with filterable grid
48
+ - Entity definition with `defineEntity()`
49
+
50
+ **Copy from the demo app, customize for your spec.**
51
+
52
+ ---
53
+
40
54
  ## Step 3: Review Spec Pages
41
55
 
42
56
  From your spec, you have a list of pages. Now create them.
@@ -46,6 +46,12 @@ export const productEntity = defineEntity({
46
46
  });
47
47
  ```
48
48
 
49
+ > **Status field:** Auto-added with locked `type`, `visibility`, `editable`. Don't redefine those. To add custom options:
50
+ > ```typescript
51
+ > status: { validation: { options: [{ value: 'shipped', label: 'Shipped' }] } }
52
+ > // Merged result: [draft, available, deleted, shipped]
53
+ > ```
54
+
49
55
  ---
50
56
 
51
57
  ## Step 3: Export Entities
@@ -20,6 +20,20 @@
20
20
 
21
21
  ---
22
22
 
23
+ ## Reference: Demo App
24
+
25
+ **Before composing pages, study the demo app:** `packages/cli/templates/app-demo/src/pages/`
26
+
27
+ It shows the canonical pattern:
28
+ - Thin page wrappers (~5 lines) that import templates
29
+ - `PageMeta.preset` for per-route layout switching (landing → admin → docs)
30
+ - CRUD with `ProductCardListTemplate` + `defineEntity()`
31
+ - Component showcase with filterable grid
32
+
33
+ **Copy from the demo app, customize for your spec.**
34
+
35
+ ---
36
+
23
37
  ## Step 2: Read Page Patterns
24
38
 
25
39
  **READ:** `guides/wai-way/page_patterns.md` for all patterns:
@@ -309,12 +309,9 @@ export const orderEntity = defineEntity({
309
309
  visibility: 'owner',
310
310
  editable: 'never',
311
311
  },
312
+ // status is auto-added with type/visibility/editable locked.
313
+ // Only define validation.options — framework auto-adds [draft, available, deleted].
312
314
  status: {
313
- name: 'status',
314
- label: 'status',
315
- type: 'select',
316
- visibility: 'owner',
317
- editable: 'admin',
318
315
  validation: {
319
316
  options: [
320
317
  { value: 'pending', label: 'Pending' },
@@ -341,6 +338,8 @@ export const orderEntity = defineEntity({
341
338
  });
342
339
  ```
343
340
 
341
+ > **Merged status options:** `[draft, available, deleted, pending, paid, shipped, delivered, cancelled]`. The three defaults are always first and cannot be removed.
342
+
344
343
  ---
345
344
 
346
345
  ## Review
@@ -152,7 +152,7 @@ import { EntityFormRenderer, useCrud } from '@donotdev/crud';
152
152
  import { carEntity } from 'entities/car';
153
153
  import { useTranslation } from '@donotdev/core';
154
154
  import type { PageMeta } from '@donotdev/core';
155
- import { useParams } from '@donotdev/ui/routing';
155
+ import { useParams } from '@donotdev/ui';
156
156
 
157
157
  export const NAMESPACE = 'car';
158
158
 
@@ -523,7 +523,7 @@ import { Section, Card, Grid, Stack, Text, Button, Badge } from '@donotdev/compo
523
523
  import { useCrud } from '@donotdev/crud';
524
524
  import { productEntity } from 'entities/product';
525
525
  import type { PageMeta } from '@donotdev/core';
526
- import { useParams } from '@donotdev/ui/routing';
526
+ import { useParams } from '@donotdev/ui';
527
527
 
528
528
  export const NAMESPACE = 'product-detail';
529
529
 
@@ -1,6 +0,0 @@
1
- /**
2
- * @fileoverview Agent Setup Command Wrapper
3
- * @description Re-exports agentSetup from tooling for CLI bundling.
4
- */
5
- export { agentSetup as main } from '@donotdev/tooling';
6
- //# sourceMappingURL=agent-setup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-setup.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/agent-setup.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-setup.js","sourceRoot":"","sources":["../../../src/bin/commands/agent-setup.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C;;;GAGG;AAEH,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * @fileoverview Build Command Wrapper
3
- * @description Re-exports build from tooling for CLI bundling.
4
- * Each command wrapper is bundled separately as a fully self-contained script.
5
- *
6
- * @version 0.0.1
7
- * @since 0.0.1
8
- * @author AMBROISE PARK Consulting
9
- */
10
- export { build as main } from '@donotdev/tooling';
11
- //# sourceMappingURL=build.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/bin/commands/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * @fileoverview Bump Command Wrapper
3
- * @description Re-exports bump from tooling for CLI bundling.
4
- * Each command wrapper is bundled separately as a fully self-contained script.
5
- *
6
- * @version 0.0.4
7
- * @since 0.0.2
8
- * @author AMBROISE PARK Consulting
9
- */
10
- export { bump as main } from '@donotdev/tooling';
11
- //# sourceMappingURL=bump.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bump.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/bump.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bump.js","sourceRoot":"","sources":["../../../src/bin/commands/bump.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * @fileoverview Cacheout Command Wrapper
3
- * @description Re-exports cacheout from tooling for CLI bundling.
4
- * Each command wrapper is bundled separately as a fully self-contained script.
5
- *
6
- * @version 0.0.1
7
- * @since 0.0.1
8
- * @author AMBROISE PARK Consulting
9
- */
10
- export { cacheout as main } from '@donotdev/tooling';
11
- //# sourceMappingURL=cacheout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cacheout.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/cacheout.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cacheout.js","sourceRoot":"","sources":["../../../src/bin/commands/cacheout.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * @fileoverview Create App Command Wrapper
3
- * @description Re-exports createApp from tooling for CLI bundling.
4
- * Each command wrapper is bundled separately as a fully self-contained script.
5
- *
6
- * @version 0.0.1
7
- * @since 0.0.1
8
- * @author AMBROISE PARK Consulting
9
- */
10
- export { createApp as main } from '@donotdev/tooling';
11
- //# sourceMappingURL=create-app.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-app.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/create-app.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../../src/bin/commands/create-app.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC"}