popeye-cli 1.5.0 → 1.7.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.
Files changed (195) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +184 -31
  3. package/dist/cli/commands/create.d.ts.map +1 -1
  4. package/dist/cli/commands/create.js +54 -4
  5. package/dist/cli/commands/create.js.map +1 -1
  6. package/dist/cli/interactive.d.ts +29 -0
  7. package/dist/cli/interactive.d.ts.map +1 -1
  8. package/dist/cli/interactive.js +90 -7
  9. package/dist/cli/interactive.js.map +1 -1
  10. package/dist/generators/all.d.ts +4 -1
  11. package/dist/generators/all.d.ts.map +1 -1
  12. package/dist/generators/all.js +36 -316
  13. package/dist/generators/all.js.map +1 -1
  14. package/dist/generators/doc-parser.d.ts +18 -3
  15. package/dist/generators/doc-parser.d.ts.map +1 -1
  16. package/dist/generators/doc-parser.js +81 -10
  17. package/dist/generators/doc-parser.js.map +1 -1
  18. package/dist/generators/frontend-design-analyzer.d.ts +30 -0
  19. package/dist/generators/frontend-design-analyzer.d.ts.map +1 -0
  20. package/dist/generators/frontend-design-analyzer.js +208 -0
  21. package/dist/generators/frontend-design-analyzer.js.map +1 -0
  22. package/dist/generators/shared-packages.d.ts +45 -0
  23. package/dist/generators/shared-packages.d.ts.map +1 -0
  24. package/dist/generators/shared-packages.js +456 -0
  25. package/dist/generators/shared-packages.js.map +1 -0
  26. package/dist/generators/templates/index.d.ts +4 -0
  27. package/dist/generators/templates/index.d.ts.map +1 -1
  28. package/dist/generators/templates/index.js +4 -0
  29. package/dist/generators/templates/index.js.map +1 -1
  30. package/dist/generators/templates/website-components.d.ts.map +1 -1
  31. package/dist/generators/templates/website-components.js +36 -11
  32. package/dist/generators/templates/website-components.js.map +1 -1
  33. package/dist/generators/templates/website-config.d.ts +15 -1
  34. package/dist/generators/templates/website-config.d.ts.map +1 -1
  35. package/dist/generators/templates/website-config.js +155 -13
  36. package/dist/generators/templates/website-config.js.map +1 -1
  37. package/dist/generators/templates/website-landing.d.ts +24 -0
  38. package/dist/generators/templates/website-landing.d.ts.map +1 -0
  39. package/dist/generators/templates/website-landing.js +276 -0
  40. package/dist/generators/templates/website-landing.js.map +1 -0
  41. package/dist/generators/templates/website-layout.d.ts +42 -0
  42. package/dist/generators/templates/website-layout.d.ts.map +1 -0
  43. package/dist/generators/templates/website-layout.js +408 -0
  44. package/dist/generators/templates/website-layout.js.map +1 -0
  45. package/dist/generators/templates/website-pricing.d.ts +11 -0
  46. package/dist/generators/templates/website-pricing.d.ts.map +1 -0
  47. package/dist/generators/templates/website-pricing.js +313 -0
  48. package/dist/generators/templates/website-pricing.js.map +1 -0
  49. package/dist/generators/templates/website-sections.d.ts +102 -0
  50. package/dist/generators/templates/website-sections.d.ts.map +1 -0
  51. package/dist/generators/templates/website-sections.js +444 -0
  52. package/dist/generators/templates/website-sections.js.map +1 -0
  53. package/dist/generators/templates/website.d.ts +10 -50
  54. package/dist/generators/templates/website.d.ts.map +1 -1
  55. package/dist/generators/templates/website.js +12 -788
  56. package/dist/generators/templates/website.js.map +1 -1
  57. package/dist/generators/website-content-scanner.d.ts +37 -0
  58. package/dist/generators/website-content-scanner.d.ts.map +1 -0
  59. package/dist/generators/website-content-scanner.js +165 -0
  60. package/dist/generators/website-content-scanner.js.map +1 -0
  61. package/dist/generators/website-context.d.ts +38 -2
  62. package/dist/generators/website-context.d.ts.map +1 -1
  63. package/dist/generators/website-context.js +179 -19
  64. package/dist/generators/website-context.js.map +1 -1
  65. package/dist/generators/website-debug.d.ts +68 -0
  66. package/dist/generators/website-debug.d.ts.map +1 -0
  67. package/dist/generators/website-debug.js +93 -0
  68. package/dist/generators/website-debug.js.map +1 -0
  69. package/dist/generators/website.d.ts +2 -0
  70. package/dist/generators/website.d.ts.map +1 -1
  71. package/dist/generators/website.js +66 -4
  72. package/dist/generators/website.js.map +1 -1
  73. package/dist/generators/workspace-root.d.ts +27 -0
  74. package/dist/generators/workspace-root.d.ts.map +1 -0
  75. package/dist/generators/workspace-root.js +100 -0
  76. package/dist/generators/workspace-root.js.map +1 -0
  77. package/dist/state/index.d.ts +8 -0
  78. package/dist/state/index.d.ts.map +1 -1
  79. package/dist/state/index.js +11 -0
  80. package/dist/state/index.js.map +1 -1
  81. package/dist/types/consensus.d.ts +3 -0
  82. package/dist/types/consensus.d.ts.map +1 -1
  83. package/dist/types/consensus.js +1 -0
  84. package/dist/types/consensus.js.map +1 -1
  85. package/dist/types/index.d.ts +1 -0
  86. package/dist/types/index.d.ts.map +1 -1
  87. package/dist/types/index.js +2 -0
  88. package/dist/types/index.js.map +1 -1
  89. package/dist/types/tester.d.ts +138 -0
  90. package/dist/types/tester.d.ts.map +1 -0
  91. package/dist/types/tester.js +110 -0
  92. package/dist/types/tester.js.map +1 -0
  93. package/dist/types/workflow.d.ts +151 -0
  94. package/dist/types/workflow.d.ts.map +1 -1
  95. package/dist/types/workflow.js +14 -0
  96. package/dist/types/workflow.js.map +1 -1
  97. package/dist/upgrade/handlers.d.ts +15 -0
  98. package/dist/upgrade/handlers.d.ts.map +1 -1
  99. package/dist/upgrade/handlers.js +52 -0
  100. package/dist/upgrade/handlers.js.map +1 -1
  101. package/dist/workflow/auto-fix-bundler.d.ts +37 -0
  102. package/dist/workflow/auto-fix-bundler.d.ts.map +1 -0
  103. package/dist/workflow/auto-fix-bundler.js +320 -0
  104. package/dist/workflow/auto-fix-bundler.js.map +1 -0
  105. package/dist/workflow/auto-fix.d.ts.map +1 -1
  106. package/dist/workflow/auto-fix.js +10 -3
  107. package/dist/workflow/auto-fix.js.map +1 -1
  108. package/dist/workflow/execution-mode.js +2 -2
  109. package/dist/workflow/execution-mode.js.map +1 -1
  110. package/dist/workflow/index.d.ts +2 -0
  111. package/dist/workflow/index.d.ts.map +1 -1
  112. package/dist/workflow/index.js +13 -0
  113. package/dist/workflow/index.js.map +1 -1
  114. package/dist/workflow/overview.d.ts.map +1 -1
  115. package/dist/workflow/overview.js +4 -0
  116. package/dist/workflow/overview.js.map +1 -1
  117. package/dist/workflow/plan-mode.d.ts +4 -3
  118. package/dist/workflow/plan-mode.d.ts.map +1 -1
  119. package/dist/workflow/plan-mode.js +69 -5
  120. package/dist/workflow/plan-mode.js.map +1 -1
  121. package/dist/workflow/task-workflow.d.ts +5 -0
  122. package/dist/workflow/task-workflow.d.ts.map +1 -1
  123. package/dist/workflow/task-workflow.js +172 -6
  124. package/dist/workflow/task-workflow.js.map +1 -1
  125. package/dist/workflow/tester.d.ts +120 -0
  126. package/dist/workflow/tester.d.ts.map +1 -0
  127. package/dist/workflow/tester.js +589 -0
  128. package/dist/workflow/tester.js.map +1 -0
  129. package/dist/workflow/website-strategy.d.ts +9 -0
  130. package/dist/workflow/website-strategy.d.ts.map +1 -1
  131. package/dist/workflow/website-strategy.js +73 -1
  132. package/dist/workflow/website-strategy.js.map +1 -1
  133. package/dist/workflow/website-updater.d.ts.map +1 -1
  134. package/dist/workflow/website-updater.js +15 -4
  135. package/dist/workflow/website-updater.js.map +1 -1
  136. package/dist/workflow/workflow-logger.d.ts +1 -1
  137. package/dist/workflow/workflow-logger.d.ts.map +1 -1
  138. package/dist/workflow/workflow-logger.js.map +1 -1
  139. package/package.json +1 -1
  140. package/src/cli/commands/create.ts +58 -4
  141. package/src/cli/interactive.ts +96 -7
  142. package/src/generators/all.ts +44 -332
  143. package/src/generators/doc-parser.ts +87 -10
  144. package/src/generators/frontend-design-analyzer.ts +261 -0
  145. package/src/generators/shared-packages.ts +500 -0
  146. package/src/generators/templates/index.ts +4 -0
  147. package/src/generators/templates/website-components.ts +36 -11
  148. package/src/generators/templates/website-config.ts +166 -13
  149. package/src/generators/templates/website-landing.ts +331 -0
  150. package/src/generators/templates/website-layout.ts +443 -0
  151. package/src/generators/templates/website-pricing.ts +330 -0
  152. package/src/generators/templates/website-sections.ts +541 -0
  153. package/src/generators/templates/website.ts +38 -851
  154. package/src/generators/website-content-scanner.ts +208 -0
  155. package/src/generators/website-context.ts +248 -20
  156. package/src/generators/website-debug.ts +130 -0
  157. package/src/generators/website.ts +71 -3
  158. package/src/generators/workspace-root.ts +113 -0
  159. package/src/state/index.ts +15 -0
  160. package/src/types/consensus.ts +3 -0
  161. package/src/types/index.ts +21 -0
  162. package/src/types/tester.ts +136 -0
  163. package/src/types/workflow.ts +32 -0
  164. package/src/upgrade/handlers.ts +65 -0
  165. package/src/workflow/auto-fix-bundler.ts +392 -0
  166. package/src/workflow/auto-fix.ts +11 -3
  167. package/src/workflow/execution-mode.ts +2 -2
  168. package/src/workflow/index.ts +13 -0
  169. package/src/workflow/overview.ts +6 -0
  170. package/src/workflow/plan-mode.ts +81 -7
  171. package/src/workflow/task-workflow.ts +227 -5
  172. package/src/workflow/tester.ts +723 -0
  173. package/src/workflow/website-strategy.ts +75 -1
  174. package/src/workflow/website-updater.ts +17 -6
  175. package/src/workflow/workflow-logger.ts +2 -0
  176. package/tests/cli/project-naming.test.ts +136 -0
  177. package/tests/generators/doc-parser.test.ts +121 -0
  178. package/tests/generators/frontend-design-analyzer.test.ts +90 -0
  179. package/tests/generators/quality-gate.test.ts +183 -0
  180. package/tests/generators/shared-packages.test.ts +83 -0
  181. package/tests/generators/website-components.test.ts +1 -1
  182. package/tests/generators/website-config.test.ts +84 -0
  183. package/tests/generators/website-content-scanner.test.ts +181 -0
  184. package/tests/generators/website-context.test.ts +109 -0
  185. package/tests/generators/website-debug.test.ts +77 -0
  186. package/tests/generators/website-landing.test.ts +188 -0
  187. package/tests/generators/website-pricing.test.ts +98 -0
  188. package/tests/generators/website-sections.test.ts +245 -0
  189. package/tests/generators/workspace-root.test.ts +105 -0
  190. package/tests/types/tester.test.ts +174 -0
  191. package/tests/upgrade/handlers.test.ts +162 -0
  192. package/tests/workflow/auto-fix-bundler.test.ts +242 -0
  193. package/tests/workflow/plan-mode.test.ts +111 -1
  194. package/tests/workflow/tester.test.ts +401 -0
  195. package/tests/workflow/website-strategy.test.ts +55 -0
@@ -0,0 +1,456 @@
1
+ /**
2
+ * Shared package generators for monorepo workspaces
3
+ * Generates design-tokens and UI component packages
4
+ * with support for brand-specific color palettes
5
+ */
6
+ /**
7
+ * Generate a color scale from a single hex color
8
+ * Converts hex to HSL and varies lightness across 10 stops (50-900)
9
+ *
10
+ * @param hex - Primary hex color (e.g., "#2563EB")
11
+ * @returns Record of color stops (50-900) with hex values
12
+ */
13
+ export function generateColorScale(hex) {
14
+ const rgb = hexToRgb(hex);
15
+ if (!rgb) {
16
+ // Fallback to default sky-blue on parse failure
17
+ return getDefaultPrimaryScale();
18
+ }
19
+ const hsl = rgbToHsl(rgb.r, rgb.g, rgb.b);
20
+ const stops = [
21
+ { key: '50', lightness: 0.95 },
22
+ { key: '100', lightness: 0.90 },
23
+ { key: '200', lightness: 0.80 },
24
+ { key: '300', lightness: 0.68 },
25
+ { key: '400', lightness: 0.56 },
26
+ { key: '500', lightness: 0.48 },
27
+ { key: '600', lightness: 0.40 },
28
+ { key: '700', lightness: 0.32 },
29
+ { key: '800', lightness: 0.24 },
30
+ { key: '900', lightness: 0.15 },
31
+ ];
32
+ const scale = {};
33
+ for (const stop of stops) {
34
+ scale[stop.key] = hslToHex(hsl.h, hsl.s, stop.lightness);
35
+ }
36
+ return scale;
37
+ }
38
+ /**
39
+ * Default sky-blue primary color scale (backward compatible)
40
+ */
41
+ function getDefaultPrimaryScale() {
42
+ return {
43
+ 50: '#f0f9ff',
44
+ 100: '#e0f2fe',
45
+ 200: '#bae6fd',
46
+ 300: '#7dd3fc',
47
+ 400: '#38bdf8',
48
+ 500: '#0ea5e9',
49
+ 600: '#0284c7',
50
+ 700: '#0369a1',
51
+ 800: '#075985',
52
+ 900: '#0c4a6e',
53
+ };
54
+ }
55
+ /**
56
+ * Generate design tokens package with optional brand colors
57
+ *
58
+ * @param projectName - Project name for package naming
59
+ * @param brandColors - Optional brand color configuration
60
+ * @returns Package files array
61
+ */
62
+ export function generateDesignTokensPackage(projectName, brandColors) {
63
+ const primaryScale = brandColors?.primaryColor
64
+ ? generateColorScale(brandColors.primaryColor)
65
+ : getDefaultPrimaryScale();
66
+ const colorsContent = generateColorsModule(primaryScale);
67
+ return {
68
+ files: [
69
+ {
70
+ path: 'package.json',
71
+ content: JSON.stringify({
72
+ name: `@${projectName}/design-tokens`,
73
+ version: '1.0.0',
74
+ type: 'module',
75
+ main: './dist/index.js',
76
+ types: './dist/index.d.ts',
77
+ exports: {
78
+ '.': './dist/index.js',
79
+ './tailwind': './dist/tailwind-preset.js',
80
+ },
81
+ scripts: {
82
+ build: 'tsc',
83
+ dev: 'tsc --watch',
84
+ },
85
+ devDependencies: {
86
+ typescript: '^5.3.3',
87
+ },
88
+ }, null, 2),
89
+ },
90
+ {
91
+ path: 'tsconfig.json',
92
+ content: JSON.stringify({
93
+ compilerOptions: {
94
+ target: 'ES2020',
95
+ module: 'ESNext',
96
+ moduleResolution: 'bundler',
97
+ declaration: true,
98
+ outDir: './dist',
99
+ strict: true,
100
+ esModuleInterop: true,
101
+ skipLibCheck: true,
102
+ },
103
+ include: ['src'],
104
+ }, null, 2),
105
+ },
106
+ {
107
+ path: 'src/index.ts',
108
+ content: `/**
109
+ * Design tokens for ${projectName}
110
+ */
111
+
112
+ export * from './colors.js';
113
+ export * from './typography.js';
114
+ `,
115
+ },
116
+ {
117
+ path: 'src/colors.ts',
118
+ content: colorsContent,
119
+ },
120
+ {
121
+ path: 'src/typography.ts',
122
+ content: `/**
123
+ * Typography settings
124
+ */
125
+
126
+ export const typography = {
127
+ fontFamily: {
128
+ sans: ['Inter', 'system-ui', 'sans-serif'],
129
+ mono: ['JetBrains Mono', 'Fira Code', 'monospace'],
130
+ },
131
+ fontSize: {
132
+ xs: ['0.75rem', { lineHeight: '1rem' }],
133
+ sm: ['0.875rem', { lineHeight: '1.25rem' }],
134
+ base: ['1rem', { lineHeight: '1.5rem' }],
135
+ lg: ['1.125rem', { lineHeight: '1.75rem' }],
136
+ xl: ['1.25rem', { lineHeight: '1.75rem' }],
137
+ '2xl': ['1.5rem', { lineHeight: '2rem' }],
138
+ '3xl': ['1.875rem', { lineHeight: '2.25rem' }],
139
+ '4xl': ['2.25rem', { lineHeight: '2.5rem' }],
140
+ '5xl': ['3rem', { lineHeight: '1' }],
141
+ '6xl': ['3.75rem', { lineHeight: '1' }],
142
+ },
143
+ } as const;
144
+
145
+ export type Typography = typeof typography;
146
+ `,
147
+ },
148
+ {
149
+ path: 'src/tailwind-preset.ts',
150
+ content: `/**
151
+ * Tailwind CSS preset with design tokens
152
+ */
153
+
154
+ import { colors } from './colors.js';
155
+ import { typography } from './typography.js';
156
+
157
+ export const preset = {
158
+ theme: {
159
+ extend: {
160
+ colors,
161
+ fontFamily: typography.fontFamily,
162
+ fontSize: typography.fontSize,
163
+ },
164
+ },
165
+ };
166
+
167
+ export default preset;
168
+ `,
169
+ },
170
+ ],
171
+ };
172
+ }
173
+ /**
174
+ * Generate the colors.ts module content with given primary scale
175
+ */
176
+ function generateColorsModule(primaryScale) {
177
+ const entries = Object.entries(primaryScale)
178
+ .map(([key, value]) => ` ${key}: '${value}',`)
179
+ .join('\n');
180
+ return `/**
181
+ * Color palette
182
+ */
183
+
184
+ export const colors = {
185
+ primary: {
186
+ ${entries}
187
+ },
188
+ secondary: {
189
+ 50: '#f8fafc',
190
+ 100: '#f1f5f9',
191
+ 200: '#e2e8f0',
192
+ 300: '#cbd5e1',
193
+ 400: '#94a3b8',
194
+ 500: '#64748b',
195
+ 600: '#475569',
196
+ 700: '#334155',
197
+ 800: '#1e293b',
198
+ 900: '#0f172a',
199
+ },
200
+ } as const;
201
+
202
+ export type ColorScale = typeof colors.primary;
203
+ export type Colors = typeof colors;
204
+ `;
205
+ }
206
+ /**
207
+ * Generate UI components package
208
+ *
209
+ * @param projectName - Project name for package naming
210
+ * @returns Package files array
211
+ */
212
+ export function generateUiPackage(projectName) {
213
+ return {
214
+ files: [
215
+ {
216
+ path: 'package.json',
217
+ content: JSON.stringify({
218
+ name: `@${projectName}/ui`,
219
+ version: '1.0.0',
220
+ type: 'module',
221
+ main: './dist/index.js',
222
+ types: './dist/index.d.ts',
223
+ exports: {
224
+ '.': './dist/index.js',
225
+ './button': './dist/button.js',
226
+ './card': './dist/card.js',
227
+ },
228
+ scripts: {
229
+ build: 'tsc',
230
+ dev: 'tsc --watch',
231
+ },
232
+ dependencies: {
233
+ clsx: '^2.1.0',
234
+ 'tailwind-merge': '^2.2.0',
235
+ },
236
+ peerDependencies: {
237
+ react: '>=18.0.0',
238
+ 'react-dom': '>=18.0.0',
239
+ },
240
+ devDependencies: {
241
+ '@types/react': '^18.2.0',
242
+ '@types/react-dom': '^18.2.0',
243
+ typescript: '^5.3.3',
244
+ },
245
+ }, null, 2),
246
+ },
247
+ {
248
+ path: 'tsconfig.json',
249
+ content: JSON.stringify({
250
+ compilerOptions: {
251
+ target: 'ES2020',
252
+ module: 'ESNext',
253
+ moduleResolution: 'bundler',
254
+ declaration: true,
255
+ outDir: './dist',
256
+ strict: true,
257
+ esModuleInterop: true,
258
+ skipLibCheck: true,
259
+ jsx: 'react-jsx',
260
+ },
261
+ include: ['src'],
262
+ }, null, 2),
263
+ },
264
+ {
265
+ path: 'src/index.ts',
266
+ content: `/**
267
+ * Shared UI components for ${projectName}
268
+ */
269
+
270
+ export * from './button.js';
271
+ export * from './card.js';
272
+ export * from './utils.js';
273
+ `,
274
+ },
275
+ {
276
+ path: 'src/utils.ts',
277
+ content: `import { clsx, type ClassValue } from 'clsx';
278
+ import { twMerge } from 'tailwind-merge';
279
+
280
+ export function cn(...inputs: ClassValue[]) {
281
+ return twMerge(clsx(inputs));
282
+ }
283
+ `,
284
+ },
285
+ {
286
+ path: 'src/button.tsx',
287
+ content: `import * as React from 'react';
288
+ import { cn } from './utils.js';
289
+
290
+ export interface ButtonProps
291
+ extends React.ButtonHTMLAttributes<HTMLButtonElement> {
292
+ variant?: 'primary' | 'secondary' | 'outline' | 'ghost';
293
+ size?: 'sm' | 'md' | 'lg';
294
+ }
295
+
296
+ export const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
297
+ ({ className, variant = 'primary', size = 'md', ...props }, ref) => {
298
+ return (
299
+ <button
300
+ className={cn(
301
+ 'inline-flex items-center justify-center rounded-md font-medium transition-colors',
302
+ 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2',
303
+ 'disabled:pointer-events-none disabled:opacity-50',
304
+ {
305
+ // Variants
306
+ 'bg-primary-600 text-white hover:bg-primary-500': variant === 'primary',
307
+ 'bg-secondary-100 text-secondary-900 hover:bg-secondary-200': variant === 'secondary',
308
+ 'border border-secondary-300 bg-transparent hover:bg-secondary-50': variant === 'outline',
309
+ 'bg-transparent hover:bg-secondary-100': variant === 'ghost',
310
+ // Sizes
311
+ 'h-8 px-3 text-sm': size === 'sm',
312
+ 'h-10 px-4 text-sm': size === 'md',
313
+ 'h-12 px-6 text-base': size === 'lg',
314
+ },
315
+ className
316
+ )}
317
+ ref={ref}
318
+ {...props}
319
+ />
320
+ );
321
+ }
322
+ );
323
+
324
+ Button.displayName = 'Button';
325
+ `,
326
+ },
327
+ {
328
+ path: 'src/card.tsx',
329
+ content: `import * as React from 'react';
330
+ import { cn } from './utils.js';
331
+
332
+ export interface CardProps extends React.HTMLAttributes<HTMLDivElement> {}
333
+
334
+ export const Card = React.forwardRef<HTMLDivElement, CardProps>(
335
+ ({ className, ...props }, ref) => (
336
+ <div
337
+ ref={ref}
338
+ className={cn(
339
+ 'rounded-lg border border-secondary-200 bg-white shadow-sm',
340
+ className
341
+ )}
342
+ {...props}
343
+ />
344
+ )
345
+ );
346
+
347
+ Card.displayName = 'Card';
348
+
349
+ export const CardHeader = React.forwardRef<
350
+ HTMLDivElement,
351
+ React.HTMLAttributes<HTMLDivElement>
352
+ >(({ className, ...props }, ref) => (
353
+ <div
354
+ ref={ref}
355
+ className={cn('flex flex-col space-y-1.5 p-6', className)}
356
+ {...props}
357
+ />
358
+ ));
359
+
360
+ CardHeader.displayName = 'CardHeader';
361
+
362
+ export const CardTitle = React.forwardRef<
363
+ HTMLParagraphElement,
364
+ React.HTMLAttributes<HTMLHeadingElement>
365
+ >(({ className, ...props }, ref) => (
366
+ <h3
367
+ ref={ref}
368
+ className={cn('text-lg font-semibold leading-none tracking-tight', className)}
369
+ {...props}
370
+ />
371
+ ));
372
+
373
+ CardTitle.displayName = 'CardTitle';
374
+
375
+ export const CardContent = React.forwardRef<
376
+ HTMLDivElement,
377
+ React.HTMLAttributes<HTMLDivElement>
378
+ >(({ className, ...props }, ref) => (
379
+ <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />
380
+ ));
381
+
382
+ CardContent.displayName = 'CardContent';
383
+ `,
384
+ },
385
+ ],
386
+ };
387
+ }
388
+ // --- Color conversion helpers ---
389
+ function hexToRgb(hex) {
390
+ const cleaned = hex.replace(/^#/, '');
391
+ if (cleaned.length !== 6)
392
+ return null;
393
+ const r = parseInt(cleaned.substring(0, 2), 16);
394
+ const g = parseInt(cleaned.substring(2, 4), 16);
395
+ const b = parseInt(cleaned.substring(4, 6), 16);
396
+ if (isNaN(r) || isNaN(g) || isNaN(b))
397
+ return null;
398
+ return { r, g, b };
399
+ }
400
+ function rgbToHsl(r, g, b) {
401
+ const rn = r / 255;
402
+ const gn = g / 255;
403
+ const bn = b / 255;
404
+ const max = Math.max(rn, gn, bn);
405
+ const min = Math.min(rn, gn, bn);
406
+ const l = (max + min) / 2;
407
+ let h = 0;
408
+ let s = 0;
409
+ if (max !== min) {
410
+ const d = max - min;
411
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
412
+ if (max === rn) {
413
+ h = ((gn - bn) / d + (gn < bn ? 6 : 0)) / 6;
414
+ }
415
+ else if (max === gn) {
416
+ h = ((bn - rn) / d + 2) / 6;
417
+ }
418
+ else {
419
+ h = ((rn - gn) / d + 4) / 6;
420
+ }
421
+ }
422
+ return { h, s, l };
423
+ }
424
+ function hslToHex(h, s, l) {
425
+ const hue2rgb = (p, q, t) => {
426
+ let tn = t;
427
+ if (tn < 0)
428
+ tn += 1;
429
+ if (tn > 1)
430
+ tn -= 1;
431
+ if (tn < 1 / 6)
432
+ return p + (q - p) * 6 * tn;
433
+ if (tn < 1 / 2)
434
+ return q;
435
+ if (tn < 2 / 3)
436
+ return p + (q - p) * (2 / 3 - tn) * 6;
437
+ return p;
438
+ };
439
+ let r, g, b;
440
+ if (s === 0) {
441
+ r = g = b = l;
442
+ }
443
+ else {
444
+ const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
445
+ const p = 2 * l - q;
446
+ r = hue2rgb(p, q, h + 1 / 3);
447
+ g = hue2rgb(p, q, h);
448
+ b = hue2rgb(p, q, h - 1 / 3);
449
+ }
450
+ const toHex = (n) => {
451
+ const hex = Math.round(n * 255).toString(16);
452
+ return hex.length === 1 ? '0' + hex : hex;
453
+ };
454
+ return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
455
+ }
456
+ //# sourceMappingURL=shared-packages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-packages.js","sourceRoot":"","sources":["../../src/generators/shared-packages.ts"],"names":[],"mappings":"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"}
@@ -9,4 +9,8 @@ export * as websiteConfigTemplates from './website-config.js';
9
9
  export * as websiteComponentTemplates from './website-components.js';
10
10
  export * as websiteSeoTemplates from './website-seo.js';
11
11
  export * as websiteConversionTemplates from './website-conversion.js';
12
+ export * as websiteLandingTemplates from './website-landing.js';
13
+ export * as websitePricingTemplates from './website-pricing.js';
14
+ export * as websiteLayoutTemplates from './website-layout.js';
15
+ export * as websiteSectionTemplates from './website-sections.js';
12
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,eAAe,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,mBAAmB,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,kBAAkB,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,gBAAgB,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,sBAAsB,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,yBAAyB,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,mBAAmB,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,0BAA0B,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,eAAe,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,mBAAmB,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,kBAAkB,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,gBAAgB,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,sBAAsB,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,yBAAyB,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,mBAAmB,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,0BAA0B,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,uBAAuB,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,uBAAuB,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,sBAAsB,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,uBAAuB,MAAM,uBAAuB,CAAC"}
@@ -9,4 +9,8 @@ export * as websiteConfigTemplates from './website-config.js';
9
9
  export * as websiteComponentTemplates from './website-components.js';
10
10
  export * as websiteSeoTemplates from './website-seo.js';
11
11
  export * as websiteConversionTemplates from './website-conversion.js';
12
+ export * as websiteLandingTemplates from './website-landing.js';
13
+ export * as websitePricingTemplates from './website-pricing.js';
14
+ export * as websiteLayoutTemplates from './website-layout.js';
15
+ export * as websiteSectionTemplates from './website-sections.js';
12
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,eAAe,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,mBAAmB,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,kBAAkB,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,gBAAgB,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,sBAAsB,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,yBAAyB,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,mBAAmB,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,0BAA0B,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,eAAe,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,mBAAmB,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,kBAAkB,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,gBAAgB,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,sBAAsB,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,yBAAyB,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,mBAAmB,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,0BAA0B,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,uBAAuB,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,uBAAuB,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,sBAAsB,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,uBAAuB,MAAM,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"website-components.d.ts","sourceRoot":"","sources":["../../../src/generators/templates/website-components.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAA0B,MAAM,iCAAiC,CAAC;AAavG;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,qBAAqB,EAC/B,QAAQ,CAAC,EAAE,uBAAuB,GACjC,MAAM,CAyHR;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,qBAAqB,EAC/B,QAAQ,CAAC,EAAE,uBAAuB,GACjC,MAAM,CA+FR;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,CAAC,EAAE,uBAAuB,GACjC,MAAM,CAgCR"}
1
+ {"version":3,"file":"website-components.d.ts","sourceRoot":"","sources":["../../../src/generators/templates/website-components.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAA0B,MAAM,iCAAiC,CAAC;AAavG;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,qBAAqB,EAC/B,QAAQ,CAAC,EAAE,uBAAuB,GACjC,MAAM,CA8HR;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,qBAAqB,EAC/B,QAAQ,CAAC,EAAE,uBAAuB,GACjC,MAAM,CAmHR;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,CAAC,EAAE,uBAAuB,GACjC,MAAM,CAgCR"}
@@ -27,9 +27,10 @@ export function generateWebsiteHeader(projectName, context, strategy) {
27
27
  .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
28
28
  .join(' ');
29
29
  const hasLogo = !!(context?.brandAssets?.logoOutputPath || context?.brand?.logoPath);
30
+ // Reason: Next.js serves public/ at root, so public/brand/logo.svg -> /brand/logo.svg
30
31
  const logoPath = context?.brandAssets?.logoOutputPath
31
- ? `/${context.brandAssets.logoOutputPath}`
32
- : '/logo.svg';
32
+ ? `/${context.brandAssets.logoOutputPath.replace(/^public\//, '')}`
33
+ : '/brand/logo.svg';
33
34
  // Build nav items from strategy or defaults
34
35
  const navItems = strategy?.siteArchitecture.navigation || [
35
36
  { label: 'Features', href: '/#features' },
@@ -43,10 +44,14 @@ export function generateWebsiteHeader(projectName, context, strategy) {
43
44
  // CTA from strategy or default
44
45
  const ctaText = strategy?.conversionStrategy.primaryCta.text || 'Get Started';
45
46
  const ctaHref = strategy?.conversionStrategy.primaryCta.href || '/pricing';
46
- // Logo rendering
47
+ // Logo rendering: Image if available, product initial circle if not
48
+ const initialLetter = displayName.charAt(0).toUpperCase();
47
49
  const logoBlock = hasLogo
48
50
  ? `<Image src="${logoPath}" alt="${escapeJsx(displayName)}" width={32} height={32} className="h-8 w-auto" />`
49
- : `<span className="text-xl font-bold text-primary-600">${escapeJsx(displayName)}</span>`;
51
+ : `<div className="flex items-center gap-2">
52
+ <div className="flex h-8 w-8 items-center justify-center rounded-full bg-primary-600 text-sm font-bold text-white">${initialLetter}</div>
53
+ <span className="text-lg font-bold text-foreground">${escapeJsx(displayName)}</span>
54
+ </div>`;
50
55
  return `'use client';
51
56
 
52
57
  import { useState } from 'react';
@@ -194,29 +199,49 @@ ${sectionsStr}
194
199
  */
195
200
  export default function Footer() {
196
201
  return (
197
- <footer className="border-t border-gray-200 bg-gray-50">
202
+ <footer className="border-t border-border bg-muted/50">
198
203
  <div className="container py-12">
199
204
  <div className="grid grid-cols-2 gap-8 md:grid-cols-${Math.min(sections.length + 1, 4)}">
200
205
  {/* Brand column */}
201
206
  <div className="col-span-2 md:col-span-1">
202
- <Link href="/" className="text-lg font-bold text-gray-900">
207
+ <Link href="/" className="text-lg font-bold text-foreground">
203
208
  ${escapeJsx(displayName)}
204
209
  </Link>
205
- <p className="mt-2 text-sm text-gray-600">
210
+ <p className="mt-2 text-sm text-muted-foreground">
206
211
  ${context?.tagline ? escapeJsx(context.tagline) : 'Build something amazing.'}
207
212
  </p>
213
+ {/* Newsletter */}
214
+ <form className="mt-6" onSubmit={(e) => e.preventDefault()}>
215
+ <label htmlFor="newsletter-email" className="text-sm font-medium text-foreground">
216
+ Stay updated
217
+ </label>
218
+ <div className="mt-2 flex gap-2">
219
+ <input
220
+ id="newsletter-email"
221
+ type="email"
222
+ placeholder="you@example.com"
223
+ className="flex-1 rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary-600"
224
+ />
225
+ <button
226
+ type="submit"
227
+ className="rounded-lg bg-primary-600 px-4 py-2 text-sm font-medium text-white hover:bg-primary-500 transition-colors"
228
+ >
229
+ Subscribe
230
+ </button>
231
+ </div>
232
+ </form>
208
233
  </div>
209
234
 
210
235
  {/* Link columns */}
211
236
  {FOOTER_SECTIONS.map((section) => (
212
237
  <div key={section.title}>
213
- <h3 className="text-sm font-semibold text-gray-900">{section.title}</h3>
238
+ <h3 className="text-sm font-semibold text-foreground">{section.title}</h3>
214
239
  <ul className="mt-4 space-y-2">
215
240
  {section.links.map((link) => (
216
241
  <li key={link.href}>
217
242
  <Link
218
243
  href={link.href}
219
- className="text-sm text-gray-600 hover:text-primary-600 transition-colors"
244
+ className="text-sm text-muted-foreground hover:text-primary-600 transition-colors"
220
245
  >
221
246
  {link.label}
222
247
  </Link>
@@ -227,8 +252,8 @@ export default function Footer() {
227
252
  ))}
228
253
  </div>
229
254
 
230
- <div className="mt-12 border-t border-gray-200 pt-8">
231
- <p className="text-center text-sm text-gray-500">
255
+ <div className="mt-12 border-t border-border pt-8">
256
+ <p className="text-center text-sm text-muted-foreground">
232
257
  &copy; {new Date().getFullYear()} ${escapeJsx(displayName)}. All rights reserved.
233
258
  </p>
234
259
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"website-components.js","sourceRoot":"","sources":["../../../src/generators/templates/website-components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"website-components.js","sourceRoot":"","sources":["../../../src/generators/templates/website-components.ts"],"names":[],"mappings":"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"}
@@ -14,10 +14,24 @@ export declare function generateNextConfig(): string;
14
14
  * Generate website tsconfig.json
15
15
  */
16
16
  export declare function generateWebsiteTsconfig(): string;
17
+ /**
18
+ * Options for generating the Tailwind config
19
+ */
20
+ export interface TailwindConfigOptions {
21
+ /** Primary brand color (hex) to generate color scale from */
22
+ primaryColor?: string;
23
+ /** Whether to import workspace design-tokens preset */
24
+ workspaceMode?: boolean;
25
+ /** Project name (for workspace preset import path) */
26
+ projectName?: string;
27
+ }
17
28
  /**
18
29
  * Generate Tailwind config for website
30
+ *
31
+ * @param options - Optional configuration for brand colors and workspace mode
32
+ * @returns Tailwind config source code
19
33
  */
20
- export declare function generateWebsiteTailwindConfig(): string;
34
+ export declare function generateWebsiteTailwindConfig(options?: TailwindConfigOptions): string;
21
35
  /**
22
36
  * Generate PostCSS config for website
23
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"website-config.d.ts","sourceRoot":"","sources":["../../../src/generators/templates/website-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAqCtE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAwC3C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CA6BhD;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,CAmCtD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAQrD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CA4ClD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAoBpD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAsBnD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAO/C"}
1
+ {"version":3,"file":"website-config.d.ts","sourceRoot":"","sources":["../../../src/generators/templates/website-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAqCtE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAwC3C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CA6BhD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CA4ErF;AAmGD;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAQrD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CA4ClD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAoBpD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAsBnD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAO/C"}