@buoy-design/cli 0.1.15 → 0.1.17
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/package.json +1 -1
- package/dist/commands/build.d.ts +0 -3
- package/dist/commands/build.d.ts.map +0 -1
- package/dist/commands/build.js +0 -487
- package/dist/commands/build.js.map +0 -1
- package/dist/commands/init.d.ts +0 -3
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -881
- package/dist/commands/init.js.map +0 -1
package/package.json
CHANGED
package/dist/commands/build.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4FpC,wBAAgB,kBAAkB,IAAI,OAAO,CAuC5C"}
|
package/dist/commands/build.js
DELETED
|
@@ -1,487 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import { writeFileSync, existsSync, readFileSync, mkdirSync } from 'fs';
|
|
3
|
-
import { writeFile } from 'fs/promises';
|
|
4
|
-
import { resolve, relative } from 'path';
|
|
5
|
-
import { homedir } from 'os';
|
|
6
|
-
import chalk from 'chalk';
|
|
7
|
-
import { spinner, success, error, info, warning, header, keyValue, newline } from '../output/reporters.js';
|
|
8
|
-
import { ProjectDetector } from '../detect/project-detector.js';
|
|
9
|
-
import { DesignSystemArchitect } from '../services/architect.js';
|
|
10
|
-
import { GitHubArchitectClient, parseRepoString } from '../integrations/index.js';
|
|
11
|
-
const STYLE_PRESETS = {
|
|
12
|
-
minimal: {
|
|
13
|
-
name: 'Minimal & Clean',
|
|
14
|
-
description: 'Subtle colors, generous whitespace, thin borders',
|
|
15
|
-
colors: { primary: '#0f172a', secondary: '#64748b', accent: '#3b82f6', neutral: '#f8fafc' },
|
|
16
|
-
borderRadius: '0.375rem',
|
|
17
|
-
spacing: 'spacious',
|
|
18
|
-
},
|
|
19
|
-
bold: {
|
|
20
|
-
name: 'Bold & Vibrant',
|
|
21
|
-
description: 'Strong colors, high contrast, prominent elements',
|
|
22
|
-
colors: { primary: '#7c3aed', secondary: '#ec4899', accent: '#f59e0b', neutral: '#1e1b4b' },
|
|
23
|
-
borderRadius: '0.75rem',
|
|
24
|
-
spacing: 'comfortable',
|
|
25
|
-
},
|
|
26
|
-
soft: {
|
|
27
|
-
name: 'Soft & Friendly',
|
|
28
|
-
description: 'Pastel tones, rounded corners, warm feel',
|
|
29
|
-
colors: { primary: '#6366f1', secondary: '#a78bfa', accent: '#f472b6', neutral: '#faf5ff' },
|
|
30
|
-
borderRadius: '1rem',
|
|
31
|
-
spacing: 'comfortable',
|
|
32
|
-
},
|
|
33
|
-
corporate: {
|
|
34
|
-
name: 'Corporate & Professional',
|
|
35
|
-
description: 'Conservative palette, structured layout, trust signals',
|
|
36
|
-
colors: { primary: '#1e40af', secondary: '#475569', accent: '#059669', neutral: '#f1f5f9' },
|
|
37
|
-
borderRadius: '0.25rem',
|
|
38
|
-
spacing: 'compact',
|
|
39
|
-
},
|
|
40
|
-
};
|
|
41
|
-
const BUOY_CONFIG_DIR = resolve(homedir(), '.buoy');
|
|
42
|
-
const BUOY_CONFIG_FILE = resolve(BUOY_CONFIG_DIR, 'config.json');
|
|
43
|
-
function loadGlobalConfig() {
|
|
44
|
-
try {
|
|
45
|
-
if (existsSync(BUOY_CONFIG_FILE)) {
|
|
46
|
-
return JSON.parse(readFileSync(BUOY_CONFIG_FILE, 'utf-8'));
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
// Ignore errors, return empty config
|
|
51
|
-
}
|
|
52
|
-
return {};
|
|
53
|
-
}
|
|
54
|
-
function saveGlobalConfig(config) {
|
|
55
|
-
if (!existsSync(BUOY_CONFIG_DIR)) {
|
|
56
|
-
mkdirSync(BUOY_CONFIG_DIR, { recursive: true });
|
|
57
|
-
}
|
|
58
|
-
writeFileSync(BUOY_CONFIG_FILE, JSON.stringify(config, null, 2));
|
|
59
|
-
}
|
|
60
|
-
function getAnthropicApiKey() {
|
|
61
|
-
// Check environment variable first
|
|
62
|
-
if (process.env.ANTHROPIC_API_KEY) {
|
|
63
|
-
return process.env.ANTHROPIC_API_KEY;
|
|
64
|
-
}
|
|
65
|
-
// Check global config
|
|
66
|
-
const config = loadGlobalConfig();
|
|
67
|
-
return config.anthropicApiKey || null;
|
|
68
|
-
}
|
|
69
|
-
export function createBuildCommand() {
|
|
70
|
-
const cmd = new Command('build')
|
|
71
|
-
.description('Build a design system from your codebase or from scratch')
|
|
72
|
-
.option('--fresh', 'Generate a fresh design system instead of extracting from code')
|
|
73
|
-
.option('--style <style>', 'Style preset for fresh build: minimal, bold, soft, corporate')
|
|
74
|
-
.option('--primary-color <color>', 'Primary brand color (hex)')
|
|
75
|
-
.option('--framework <framework>', 'Target framework: react, vue, svelte, vanilla')
|
|
76
|
-
.option('--output <path>', 'Output directory or file path', '.')
|
|
77
|
-
.option('--extend <file>', 'Extend existing token file')
|
|
78
|
-
.option('--set-key <key>', 'Set your Anthropic API key')
|
|
79
|
-
.option('--no-ai', 'Skip AI analysis (use heuristics only)')
|
|
80
|
-
.option('--pr', 'Create a GitHub PR with the generated tokens')
|
|
81
|
-
.option('--github-token <token>', 'GitHub token for PR creation (or use GITHUB_TOKEN env)')
|
|
82
|
-
.option('--github-repo <repo>', 'GitHub repo in owner/repo format (or use GITHUB_REPOSITORY env)')
|
|
83
|
-
.option('--json', 'Output as JSON')
|
|
84
|
-
.action(async (options) => {
|
|
85
|
-
// Handle setting API key
|
|
86
|
-
if (options.setKey) {
|
|
87
|
-
const config = loadGlobalConfig();
|
|
88
|
-
config.anthropicApiKey = options.setKey;
|
|
89
|
-
saveGlobalConfig(config);
|
|
90
|
-
success('Anthropic API key saved to ~/.buoy/config.json');
|
|
91
|
-
info('You can now run: buoy build');
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
const cwd = process.cwd();
|
|
95
|
-
// Fresh mode: Generate new design system with AI
|
|
96
|
-
if (options.fresh) {
|
|
97
|
-
await buildFreshDesignSystem(cwd, options);
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
// Default mode: Analyze codebase and extract tokens
|
|
101
|
-
await buildFromCodebase(cwd, options);
|
|
102
|
-
});
|
|
103
|
-
return cmd;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Build design system by analyzing codebase (default mode)
|
|
107
|
-
* Extracts tokens from hardcoded values found in code
|
|
108
|
-
*/
|
|
109
|
-
async function buildFromCodebase(cwd, options) {
|
|
110
|
-
const spin = spinner('Analyzing codebase...');
|
|
111
|
-
try {
|
|
112
|
-
// Initialize architect
|
|
113
|
-
const architect = new DesignSystemArchitect();
|
|
114
|
-
// Run analysis
|
|
115
|
-
const result = await architect.analyze({
|
|
116
|
-
projectRoot: cwd,
|
|
117
|
-
noAI: !options.ai,
|
|
118
|
-
onProgress: (msg) => {
|
|
119
|
-
spin.text = msg;
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
spin.stop();
|
|
123
|
-
const { diagnosis } = result;
|
|
124
|
-
// JSON output
|
|
125
|
-
if (options.json) {
|
|
126
|
-
console.log(JSON.stringify({
|
|
127
|
-
diagnosis,
|
|
128
|
-
generatedTokens: result.generatedTokensFile
|
|
129
|
-
}, null, 2));
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
// Display diagnosis
|
|
133
|
-
header('Design System Analysis');
|
|
134
|
-
newline();
|
|
135
|
-
// Maturity score with visual
|
|
136
|
-
const scoreBar = createScoreBar(diagnosis.maturityScore);
|
|
137
|
-
console.log(`${chalk.bold('Maturity Score:')} ${scoreBar} ${diagnosis.maturityScore}/100`);
|
|
138
|
-
console.log(`${chalk.bold('Level:')} ${formatMaturityLevel(diagnosis.maturityLevel)}`);
|
|
139
|
-
newline();
|
|
140
|
-
// CSS Analysis
|
|
141
|
-
console.log(chalk.bold.underline('What We Found'));
|
|
142
|
-
keyValue('Unique Colors', String(diagnosis.cssAnalysis.uniqueColors));
|
|
143
|
-
keyValue('Unique Spacing Values', String(diagnosis.cssAnalysis.uniqueSpacing));
|
|
144
|
-
keyValue('Unique Fonts', String(diagnosis.cssAnalysis.uniqueFonts));
|
|
145
|
-
keyValue('Tokenization', `${diagnosis.cssAnalysis.tokenizationScore}%`);
|
|
146
|
-
keyValue('Hardcoded Values', String(diagnosis.cssAnalysis.hardcodedValues));
|
|
147
|
-
newline();
|
|
148
|
-
// Recommendations
|
|
149
|
-
if (diagnosis.recommendations.length > 0) {
|
|
150
|
-
console.log(chalk.bold.underline('Recommendations'));
|
|
151
|
-
for (const rec of diagnosis.recommendations) {
|
|
152
|
-
const priorityIcon = rec.priority === 'high' ? chalk.red('!')
|
|
153
|
-
: rec.priority === 'medium' ? chalk.yellow('~')
|
|
154
|
-
: chalk.blue('-');
|
|
155
|
-
console.log(` ${priorityIcon} ${chalk.bold(rec.title)}`);
|
|
156
|
-
console.log(` ${rec.description}`);
|
|
157
|
-
newline();
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
// Suggested tokens preview
|
|
161
|
-
if (diagnosis.suggestedTokens.length > 0) {
|
|
162
|
-
console.log(chalk.bold.underline('Generated Tokens (Preview)'));
|
|
163
|
-
const colorTokens = diagnosis.suggestedTokens.filter((t) => t.category === 'color').slice(0, 5);
|
|
164
|
-
const spacingTokens = diagnosis.suggestedTokens.filter((t) => t.category === 'spacing').slice(0, 5);
|
|
165
|
-
if (colorTokens.length > 0) {
|
|
166
|
-
console.log(' Colors:');
|
|
167
|
-
for (const token of colorTokens) {
|
|
168
|
-
console.log(` ${chalk.cyan(token.name)}: ${token.value} ${chalk.dim(`(replaces ${token.usageCount} values)`)}`);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
if (spacingTokens.length > 0) {
|
|
172
|
-
console.log(' Spacing:');
|
|
173
|
-
for (const token of spacingTokens) {
|
|
174
|
-
console.log(` ${chalk.cyan(token.name)}: ${token.value} ${chalk.dim(`(replaces ${token.usageCount} values)`)}`);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
newline();
|
|
178
|
-
}
|
|
179
|
-
// Output to file if requested
|
|
180
|
-
if (options.output && options.output !== '.') {
|
|
181
|
-
await writeFile(options.output, result.generatedTokensFile);
|
|
182
|
-
success(`Generated tokens written to ${options.output}`);
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
// Create PR if requested
|
|
186
|
-
if (options.pr) {
|
|
187
|
-
const token = (options.githubToken || process.env.GITHUB_TOKEN);
|
|
188
|
-
const repo = (options.githubRepo || process.env.GITHUB_REPOSITORY);
|
|
189
|
-
if (!token || !repo) {
|
|
190
|
-
warning('GitHub token and repo required for PR creation.');
|
|
191
|
-
info('Provide --github-token and --github-repo, or set GITHUB_TOKEN and GITHUB_REPOSITORY env vars');
|
|
192
|
-
newline();
|
|
193
|
-
// Still output the tokens
|
|
194
|
-
info('Generated design-tokens.css:');
|
|
195
|
-
console.log(chalk.gray('─'.repeat(50)));
|
|
196
|
-
console.log(result.generatedTokensFile);
|
|
197
|
-
console.log(chalk.gray('─'.repeat(50)));
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
spin.start();
|
|
201
|
-
spin.text = 'Creating PR...';
|
|
202
|
-
try {
|
|
203
|
-
const { owner, repo: repoName } = parseRepoString(repo);
|
|
204
|
-
const client = new GitHubArchitectClient({
|
|
205
|
-
token,
|
|
206
|
-
owner,
|
|
207
|
-
repo: repoName
|
|
208
|
-
});
|
|
209
|
-
const pr = await client.createDesignTokensPR(result.generatedTokensFile, result.prDescription);
|
|
210
|
-
spin.stop();
|
|
211
|
-
success(`Created PR #${pr.number}`);
|
|
212
|
-
info(`View at: ${pr.url}`);
|
|
213
|
-
}
|
|
214
|
-
catch (err) {
|
|
215
|
-
spin.stop();
|
|
216
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
217
|
-
error(`Failed to create PR: ${msg}`);
|
|
218
|
-
// Fallback: output tokens
|
|
219
|
-
info('Generated tokens:');
|
|
220
|
-
console.log(result.generatedTokensFile);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
// Just output the tokens
|
|
225
|
-
info('Generated design-tokens.css:');
|
|
226
|
-
console.log(chalk.gray('─'.repeat(50)));
|
|
227
|
-
console.log(result.generatedTokensFile);
|
|
228
|
-
console.log(chalk.gray('─'.repeat(50)));
|
|
229
|
-
newline();
|
|
230
|
-
info('Run with --pr to create a GitHub PR, or --output <path> to save to file');
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
catch (err) {
|
|
234
|
-
spin.stop();
|
|
235
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
236
|
-
error(`Build failed: ${message}`);
|
|
237
|
-
process.exit(1);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Build fresh design system with AI (--fresh mode)
|
|
242
|
-
* Generates new tokens from scratch based on style presets
|
|
243
|
-
*/
|
|
244
|
-
async function buildFreshDesignSystem(cwd, options) {
|
|
245
|
-
// Check for API key
|
|
246
|
-
const apiKey = getAnthropicApiKey();
|
|
247
|
-
if (!apiKey) {
|
|
248
|
-
error('Anthropic API key required for --fresh mode');
|
|
249
|
-
console.log('');
|
|
250
|
-
info('Set your API key with one of these methods:');
|
|
251
|
-
console.log('');
|
|
252
|
-
console.log(chalk.cyan(' Option 1: ') + 'Environment variable');
|
|
253
|
-
console.log(chalk.dim(' export ANTHROPIC_API_KEY=sk-ant-...'));
|
|
254
|
-
console.log('');
|
|
255
|
-
console.log(chalk.cyan(' Option 2: ') + 'Save to Buoy config');
|
|
256
|
-
console.log(chalk.dim(' buoy build --set-key sk-ant-...'));
|
|
257
|
-
console.log('');
|
|
258
|
-
info('Get your API key at: https://console.anthropic.com/');
|
|
259
|
-
return;
|
|
260
|
-
}
|
|
261
|
-
const spin = spinner('Analyzing project...');
|
|
262
|
-
try {
|
|
263
|
-
// Detect project info
|
|
264
|
-
const detector = new ProjectDetector(cwd);
|
|
265
|
-
const projectInfo = await detector.detect();
|
|
266
|
-
// Determine framework
|
|
267
|
-
let framework = options.framework;
|
|
268
|
-
if (!framework && projectInfo.frameworks.length > 0) {
|
|
269
|
-
const f = projectInfo.frameworks[0];
|
|
270
|
-
framework = f.name;
|
|
271
|
-
spin.stop();
|
|
272
|
-
info(`Detected framework: ${chalk.cyan(f.name)}`);
|
|
273
|
-
spin.start();
|
|
274
|
-
}
|
|
275
|
-
framework = framework || 'vanilla';
|
|
276
|
-
// Determine style
|
|
277
|
-
const style = options.style || 'minimal';
|
|
278
|
-
const preset = STYLE_PRESETS[style] || STYLE_PRESETS.minimal;
|
|
279
|
-
spin.text = 'Generating design system with Claude...';
|
|
280
|
-
// Call Claude API
|
|
281
|
-
const designSystem = await generateDesignSystem(apiKey, {
|
|
282
|
-
framework,
|
|
283
|
-
style: preset,
|
|
284
|
-
primaryColor: options.primaryColor,
|
|
285
|
-
projectName: projectInfo.name,
|
|
286
|
-
existingTokens: options.extend ? loadExistingTokens(options.extend) : undefined,
|
|
287
|
-
});
|
|
288
|
-
spin.stop();
|
|
289
|
-
// Write output files
|
|
290
|
-
const outputDir = resolve(cwd, options.output || '.');
|
|
291
|
-
header('Generated Design System');
|
|
292
|
-
newline();
|
|
293
|
-
// Write tokens.json
|
|
294
|
-
const tokensPath = resolve(outputDir, 'tokens.json');
|
|
295
|
-
writeFileSync(tokensPath, JSON.stringify(designSystem.tokens, null, 2));
|
|
296
|
-
success(`Created ${relative(cwd, tokensPath)}`);
|
|
297
|
-
// Write CSS variables
|
|
298
|
-
const cssPath = resolve(outputDir, 'tokens.css');
|
|
299
|
-
writeFileSync(cssPath, designSystem.css);
|
|
300
|
-
success(`Created ${relative(cwd, cssPath)}`);
|
|
301
|
-
// Write Tailwind config if applicable
|
|
302
|
-
if (framework === 'react' || framework === 'nextjs' || framework === 'vue' || framework === 'svelte') {
|
|
303
|
-
const tailwindPath = resolve(outputDir, 'tailwind.tokens.js');
|
|
304
|
-
writeFileSync(tailwindPath, designSystem.tailwind);
|
|
305
|
-
success(`Created ${relative(cwd, tailwindPath)}`);
|
|
306
|
-
}
|
|
307
|
-
newline();
|
|
308
|
-
info('Next steps:');
|
|
309
|
-
info(' 1. Review the generated tokens');
|
|
310
|
-
info(' 2. Import tokens.css in your app');
|
|
311
|
-
info(' 3. Run ' + chalk.cyan('buoy status') + ' to check alignment');
|
|
312
|
-
}
|
|
313
|
-
catch (err) {
|
|
314
|
-
spin.stop();
|
|
315
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
316
|
-
error(`Build failed: ${message}`);
|
|
317
|
-
if (message.includes('401') || message.includes('authentication')) {
|
|
318
|
-
info('Your API key may be invalid. Check it at https://console.anthropic.com/');
|
|
319
|
-
}
|
|
320
|
-
process.exit(1);
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
function createScoreBar(score) {
|
|
324
|
-
const filled = Math.round(score / 10);
|
|
325
|
-
const empty = 10 - filled;
|
|
326
|
-
const color = score >= 60 ? chalk.green
|
|
327
|
-
: score >= 40 ? chalk.yellow
|
|
328
|
-
: chalk.red;
|
|
329
|
-
return color('█'.repeat(filled)) + chalk.gray('░'.repeat(empty));
|
|
330
|
-
}
|
|
331
|
-
function formatMaturityLevel(level) {
|
|
332
|
-
const levels = {
|
|
333
|
-
'none': chalk.red('None'),
|
|
334
|
-
'emerging': chalk.yellow('Emerging'),
|
|
335
|
-
'defined': chalk.blue('Defined'),
|
|
336
|
-
'managed': chalk.cyan('Managed'),
|
|
337
|
-
'optimized': chalk.green('Optimized')
|
|
338
|
-
};
|
|
339
|
-
return levels[level] || level;
|
|
340
|
-
}
|
|
341
|
-
function loadExistingTokens(filePath) {
|
|
342
|
-
try {
|
|
343
|
-
const content = readFileSync(filePath, 'utf-8');
|
|
344
|
-
return JSON.parse(content);
|
|
345
|
-
}
|
|
346
|
-
catch {
|
|
347
|
-
return undefined;
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
async function generateDesignSystem(apiKey, options) {
|
|
351
|
-
const prompt = buildPrompt(options);
|
|
352
|
-
const response = await fetch('https://api.anthropic.com/v1/messages', {
|
|
353
|
-
method: 'POST',
|
|
354
|
-
headers: {
|
|
355
|
-
'Content-Type': 'application/json',
|
|
356
|
-
'x-api-key': apiKey,
|
|
357
|
-
'anthropic-version': '2023-06-01',
|
|
358
|
-
},
|
|
359
|
-
body: JSON.stringify({
|
|
360
|
-
model: 'claude-sonnet-4-20250514',
|
|
361
|
-
max_tokens: 4096,
|
|
362
|
-
messages: [
|
|
363
|
-
{
|
|
364
|
-
role: 'user',
|
|
365
|
-
content: prompt,
|
|
366
|
-
},
|
|
367
|
-
],
|
|
368
|
-
}),
|
|
369
|
-
});
|
|
370
|
-
if (!response.ok) {
|
|
371
|
-
const errorBody = await response.text();
|
|
372
|
-
throw new Error(`Anthropic API error: ${response.status} - ${errorBody}`);
|
|
373
|
-
}
|
|
374
|
-
const data = await response.json();
|
|
375
|
-
const textContent = data.content.find(c => c.type === 'text');
|
|
376
|
-
if (!textContent?.text) {
|
|
377
|
-
throw new Error('No response from Claude');
|
|
378
|
-
}
|
|
379
|
-
// Parse the response to extract JSON blocks
|
|
380
|
-
return parseClaudeResponse(textContent.text);
|
|
381
|
-
}
|
|
382
|
-
function buildPrompt(options) {
|
|
383
|
-
const primaryColor = options.primaryColor || options.style.colors.primary;
|
|
384
|
-
return `You are a design system expert. Generate a complete design token system for a ${options.framework} project called "${options.projectName}".
|
|
385
|
-
|
|
386
|
-
Style: ${options.style.name}
|
|
387
|
-
Description: ${options.style.description}
|
|
388
|
-
Primary Color: ${primaryColor}
|
|
389
|
-
|
|
390
|
-
${options.existingTokens ? `Extend these existing tokens:\n${JSON.stringify(options.existingTokens, null, 2)}\n` : ''}
|
|
391
|
-
|
|
392
|
-
Generate a comprehensive design token system with:
|
|
393
|
-
1. Color palette (primary, secondary, accent, neutral, semantic colors like success/error/warning)
|
|
394
|
-
2. Typography scale (font sizes, line heights, font weights)
|
|
395
|
-
3. Spacing scale (consistent increments)
|
|
396
|
-
4. Border radii
|
|
397
|
-
5. Shadows
|
|
398
|
-
6. Breakpoints
|
|
399
|
-
|
|
400
|
-
Respond with exactly three code blocks:
|
|
401
|
-
|
|
402
|
-
\`\`\`json
|
|
403
|
-
{
|
|
404
|
-
"colors": { ... },
|
|
405
|
-
"typography": { ... },
|
|
406
|
-
"spacing": { ... },
|
|
407
|
-
"radii": { ... },
|
|
408
|
-
"shadows": { ... },
|
|
409
|
-
"breakpoints": { ... }
|
|
410
|
-
}
|
|
411
|
-
\`\`\`
|
|
412
|
-
|
|
413
|
-
\`\`\`css
|
|
414
|
-
:root {
|
|
415
|
-
/* CSS variables here */
|
|
416
|
-
}
|
|
417
|
-
\`\`\`
|
|
418
|
-
|
|
419
|
-
\`\`\`javascript
|
|
420
|
-
// Tailwind theme extension
|
|
421
|
-
module.exports = {
|
|
422
|
-
theme: {
|
|
423
|
-
extend: { ... }
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
\`\`\`
|
|
427
|
-
|
|
428
|
-
Be thorough and include semantic color tokens for UI states. Use the primary color to derive a harmonious palette.`;
|
|
429
|
-
}
|
|
430
|
-
function parseClaudeResponse(response) {
|
|
431
|
-
// Extract JSON block
|
|
432
|
-
const jsonMatch = response.match(/```json\s*([\s\S]*?)```/);
|
|
433
|
-
const cssMatch = response.match(/```css\s*([\s\S]*?)```/);
|
|
434
|
-
const jsMatch = response.match(/```javascript\s*([\s\S]*?)```/) || response.match(/```js\s*([\s\S]*?)```/);
|
|
435
|
-
let tokens = {};
|
|
436
|
-
let css = '';
|
|
437
|
-
let tailwind = '';
|
|
438
|
-
if (jsonMatch?.[1]) {
|
|
439
|
-
try {
|
|
440
|
-
tokens = JSON.parse(jsonMatch[1].trim());
|
|
441
|
-
}
|
|
442
|
-
catch {
|
|
443
|
-
// Use empty tokens if parsing fails
|
|
444
|
-
tokens = { error: 'Failed to parse generated tokens' };
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
if (cssMatch?.[1]) {
|
|
448
|
-
css = cssMatch[1].trim();
|
|
449
|
-
}
|
|
450
|
-
else {
|
|
451
|
-
css = generateFallbackCss(tokens);
|
|
452
|
-
}
|
|
453
|
-
if (jsMatch?.[1]) {
|
|
454
|
-
tailwind = jsMatch[1].trim();
|
|
455
|
-
}
|
|
456
|
-
else {
|
|
457
|
-
tailwind = generateFallbackTailwind(tokens);
|
|
458
|
-
}
|
|
459
|
-
return { tokens, css, tailwind };
|
|
460
|
-
}
|
|
461
|
-
function generateFallbackCss(tokens) {
|
|
462
|
-
const lines = ['/* Generated by buoy build */', ':root {'];
|
|
463
|
-
const flattenObject = (obj, prefix = '') => {
|
|
464
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
465
|
-
const varName = prefix ? `${prefix}-${key}` : key;
|
|
466
|
-
if (typeof value === 'object' && value !== null) {
|
|
467
|
-
flattenObject(value, varName);
|
|
468
|
-
}
|
|
469
|
-
else {
|
|
470
|
-
lines.push(` --${varName}: ${value};`);
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
};
|
|
474
|
-
flattenObject(tokens);
|
|
475
|
-
lines.push('}');
|
|
476
|
-
return lines.join('\n');
|
|
477
|
-
}
|
|
478
|
-
function generateFallbackTailwind(tokens) {
|
|
479
|
-
return `// Generated by buoy build
|
|
480
|
-
/** @type {import('tailwindcss').Config} */
|
|
481
|
-
module.exports = {
|
|
482
|
-
theme: {
|
|
483
|
-
extend: ${JSON.stringify(tokens, null, 4).replace(/\n/g, '\n ')}
|
|
484
|
-
}
|
|
485
|
-
};`;
|
|
486
|
-
}
|
|
487
|
-
//# sourceMappingURL=build.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAivBpC,wBAAgB,iBAAiB,IAAI,OAAO,CAkT3C"}
|