cmssy-cli 0.5.1 → 0.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 (37) hide show
  1. package/dist/cli.js +7 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/build.d.ts.map +1 -1
  4. package/dist/commands/build.js +67 -8
  5. package/dist/commands/build.js.map +1 -1
  6. package/dist/commands/create.d.ts.map +1 -1
  7. package/dist/commands/create.js +124 -70
  8. package/dist/commands/create.js.map +1 -1
  9. package/dist/commands/dev.d.ts.map +1 -1
  10. package/dist/commands/dev.js +178 -22
  11. package/dist/commands/dev.js.map +1 -1
  12. package/dist/commands/init.d.ts.map +1 -1
  13. package/dist/commands/init.js +80 -71
  14. package/dist/commands/init.js.map +1 -1
  15. package/dist/commands/migrate.d.ts +2 -0
  16. package/dist/commands/migrate.d.ts.map +1 -0
  17. package/dist/commands/migrate.js +225 -0
  18. package/dist/commands/migrate.js.map +1 -0
  19. package/dist/dev-ui/app.js +496 -0
  20. package/dist/dev-ui/index.html +443 -0
  21. package/dist/types/block-config.d.ts +40 -0
  22. package/dist/types/block-config.d.ts.map +1 -0
  23. package/dist/types/block-config.js +3 -0
  24. package/dist/types/block-config.js.map +1 -0
  25. package/dist/utils/block-config.d.ts +10 -0
  26. package/dist/utils/block-config.d.ts.map +1 -0
  27. package/dist/utils/block-config.js +191 -0
  28. package/dist/utils/block-config.js.map +1 -0
  29. package/dist/utils/field-schema.d.ts +10 -0
  30. package/dist/utils/field-schema.d.ts.map +1 -0
  31. package/dist/utils/field-schema.js +155 -0
  32. package/dist/utils/field-schema.js.map +1 -0
  33. package/dist/utils/type-generator.d.ts +3 -0
  34. package/dist/utils/type-generator.d.ts.map +1 -0
  35. package/dist/utils/type-generator.js +67 -0
  36. package/dist/utils/type-generator.js.map +1 -0
  37. package/package.json +8 -3
@@ -6,7 +6,10 @@ import express from "express";
6
6
  import fs from "fs-extra";
7
7
  import ora from "ora";
8
8
  import path from "path";
9
+ import { fileURLToPath } from "url";
9
10
  import { getPackageJson, loadConfig } from "../utils/cmssy-config.js";
11
+ import { loadBlockConfig, validateSchema, } from "../utils/block-config.js";
12
+ import { generateTypes } from "../utils/type-generator.js";
10
13
  export async function devCommand(options) {
11
14
  const spinner = ora("Starting development server...").start();
12
15
  try {
@@ -25,6 +28,7 @@ export async function devCommand(options) {
25
28
  await buildAllResources(resources, config);
26
29
  // Create Express server
27
30
  const app = express();
31
+ app.use(express.json()); // Parse JSON bodies
28
32
  // SSE clients for hot reload
29
33
  const sseClients = [];
30
34
  // SSE endpoint for hot reload
@@ -43,7 +47,57 @@ export async function devCommand(options) {
43
47
  const watcher = setupWatcher(resources, config, sseClients);
44
48
  // Serve static files
45
49
  app.use("/assets", express.static(path.join(process.cwd(), ".cmssy", "dev")));
46
- // API endpoint to list resources
50
+ // Serve dev UI static files
51
+ const __filename = fileURLToPath(import.meta.url);
52
+ const __dirname = path.dirname(__filename);
53
+ const devUiPath = path.join(__dirname, "../dev-ui");
54
+ app.use("/dev-ui", express.static(devUiPath));
55
+ // API: Get all blocks with schema
56
+ app.get("/api/blocks", (_req, res) => {
57
+ const blockList = resources.map((r) => ({
58
+ type: r.type,
59
+ name: r.name,
60
+ displayName: r.displayName,
61
+ description: r.description,
62
+ category: r.category,
63
+ schema: r.blockConfig?.schema || {},
64
+ }));
65
+ res.json(blockList);
66
+ });
67
+ // API: Get preview data for a block
68
+ app.get("/api/preview/:blockName", (req, res) => {
69
+ const { blockName } = req.params;
70
+ const resource = resources.find((r) => r.name === blockName);
71
+ if (!resource) {
72
+ res.status(404).json({ error: "Block not found" });
73
+ return;
74
+ }
75
+ res.json(resource.previewData);
76
+ });
77
+ // API: Save preview data for a block
78
+ app.post("/api/preview/:blockName", (req, res) => {
79
+ const { blockName } = req.params;
80
+ const newPreviewData = req.body;
81
+ const resource = resources.find((r) => r.name === blockName);
82
+ if (!resource) {
83
+ res.status(404).json({ error: "Block not found" });
84
+ return;
85
+ }
86
+ // Update in-memory preview data
87
+ resource.previewData = newPreviewData;
88
+ // Save to preview.json
89
+ const previewPath = path.join(resource.path, "preview.json");
90
+ try {
91
+ fs.writeJsonSync(previewPath, newPreviewData, { spaces: 2 });
92
+ // NO SSE reload for preview.json changes - UI handles updates via postMessage
93
+ // SSE reload is only for source code changes (handled by watcher)
94
+ res.json({ success: true });
95
+ }
96
+ catch (error) {
97
+ res.status(500).json({ error: error.message });
98
+ }
99
+ });
100
+ // API endpoint to list resources (legacy)
47
101
  app.get("/api/resources", (_req, res) => {
48
102
  const resourceList = resources.map((r) => ({
49
103
  type: r.type,
@@ -54,10 +108,21 @@ export async function devCommand(options) {
54
108
  }));
55
109
  res.json(resourceList);
56
110
  });
57
- // Preview page for a specific resource
111
+ // Preview page for a specific resource (simplified route)
112
+ app.get("/preview/:name", async (req, res) => {
113
+ const { name } = req.params;
114
+ const resource = resources.find((r) => r.name === name);
115
+ if (!resource) {
116
+ res.status(404).send("Resource not found");
117
+ return;
118
+ }
119
+ const html = generatePreviewHTML(resource, config);
120
+ res.send(html);
121
+ });
122
+ // Legacy preview route
58
123
  app.get("/preview/:type/:name", async (req, res) => {
59
- const { type, name } = req.params;
60
- const resource = resources.find((r) => r.type === type && r.name === name);
124
+ const { name } = req.params;
125
+ const resource = resources.find((r) => r.name === name);
61
126
  if (!resource) {
62
127
  res.status(404).send("Resource not found");
63
128
  return;
@@ -65,10 +130,10 @@ export async function devCommand(options) {
65
130
  const html = generatePreviewHTML(resource, config);
66
131
  res.send(html);
67
132
  });
68
- // Home page with resource list
133
+ // Home page - Serve interactive UI
69
134
  app.get("/", (_req, res) => {
70
- const html = generateIndexHTML(resources);
71
- res.send(html);
135
+ const indexPath = path.join(devUiPath, "index.html");
136
+ res.sendFile(indexPath);
72
137
  });
73
138
  // Start server
74
139
  app.listen(port, () => {
@@ -117,21 +182,43 @@ async function scanResources() {
117
182
  .map((dirent) => dirent.name);
118
183
  for (const blockName of blockDirs) {
119
184
  const blockPath = path.join(blocksDir, blockName);
185
+ // Try loading block.config.ts
186
+ const blockConfig = await loadBlockConfig(blockPath);
187
+ if (!blockConfig) {
188
+ // Check if package.json has cmssy (old format)
189
+ const pkg = getPackageJson(blockPath);
190
+ if (pkg && pkg.cmssy) {
191
+ console.warn(chalk.yellow(`Warning: Block "${blockName}" uses legacy package.json format. Run: cmssy migrate ${blockName}`));
192
+ }
193
+ continue;
194
+ }
195
+ // Validate schema
196
+ const validation = await validateSchema(blockConfig.schema, blockPath);
197
+ if (!validation.valid) {
198
+ console.warn(chalk.yellow(`\nValidation warnings in ${blockName}:`));
199
+ validation.errors.forEach((err) => console.warn(chalk.yellow(` - ${err}`)));
200
+ continue;
201
+ }
202
+ // Load package.json for name and version
120
203
  const pkg = getPackageJson(blockPath);
121
- if (!pkg || !pkg.cmssy)
204
+ if (!pkg || !pkg.name || !pkg.version) {
205
+ console.warn(chalk.yellow(`Warning: Block "${blockName}" must have package.json with name and version`));
122
206
  continue;
207
+ }
123
208
  const previewPath = path.join(blockPath, "preview.json");
124
209
  const previewData = fs.existsSync(previewPath)
125
210
  ? fs.readJsonSync(previewPath)
126
- : pkg.cmssy.defaultContent || {};
211
+ : {};
127
212
  resources.push({
128
213
  type: "block",
129
214
  name: blockName,
130
215
  path: blockPath,
131
- displayName: pkg.cmssy.displayName || blockName,
132
- description: pkg.description,
133
- category: pkg.cmssy.category,
216
+ displayName: blockConfig.name || blockName,
217
+ description: blockConfig.description || pkg.description,
218
+ category: blockConfig.category,
134
219
  previewData,
220
+ blockConfig,
221
+ packageJson: pkg,
135
222
  });
136
223
  }
137
224
  }
@@ -144,21 +231,43 @@ async function scanResources() {
144
231
  .map((dirent) => dirent.name);
145
232
  for (const templateName of templateDirs) {
146
233
  const templatePath = path.join(templatesDir, templateName);
234
+ // Try loading block.config.ts
235
+ const blockConfig = await loadBlockConfig(templatePath);
236
+ if (!blockConfig) {
237
+ // Check if package.json has cmssy (old format)
238
+ const pkg = getPackageJson(templatePath);
239
+ if (pkg && pkg.cmssy) {
240
+ console.warn(chalk.yellow(`Warning: Template "${templateName}" uses legacy package.json format. Run: cmssy migrate ${templateName}`));
241
+ }
242
+ continue;
243
+ }
244
+ // Validate schema
245
+ const validation = await validateSchema(blockConfig.schema, templatePath);
246
+ if (!validation.valid) {
247
+ console.warn(chalk.yellow(`\nValidation warnings in ${templateName}:`));
248
+ validation.errors.forEach((err) => console.warn(chalk.yellow(` - ${err}`)));
249
+ continue;
250
+ }
251
+ // Load package.json for name and version
147
252
  const pkg = getPackageJson(templatePath);
148
- if (!pkg || !pkg.cmssy)
253
+ if (!pkg || !pkg.name || !pkg.version) {
254
+ console.warn(chalk.yellow(`Warning: Template "${templateName}" must have package.json with name and version`));
149
255
  continue;
256
+ }
150
257
  const previewPath = path.join(templatePath, "preview.json");
151
258
  const previewData = fs.existsSync(previewPath)
152
259
  ? fs.readJsonSync(previewPath)
153
- : pkg.cmssy.defaultContent || {};
260
+ : {};
154
261
  resources.push({
155
262
  type: "template",
156
263
  name: templateName,
157
264
  path: templatePath,
158
- displayName: pkg.cmssy.displayName || templateName,
159
- description: pkg.description,
160
- category: pkg.cmssy.category,
265
+ displayName: blockConfig.name || templateName,
266
+ description: blockConfig.description || pkg.description,
267
+ category: blockConfig.category,
161
268
  previewData,
269
+ blockConfig,
270
+ packageJson: pkg,
162
271
  });
163
272
  }
164
273
  }
@@ -238,6 +347,12 @@ function setupWatcher(resources, config, sseClients) {
238
347
  const watcher = chokidar.watch(watchPaths, {
239
348
  persistent: true,
240
349
  ignoreInitial: true,
350
+ ignored: [
351
+ '**/preview.json', // Ignore preview.json changes (handled via postMessage)
352
+ '**/.cmssy/**',
353
+ '**/node_modules/**',
354
+ '**/.git/**',
355
+ ],
241
356
  awaitWriteFinish: {
242
357
  stabilityThreshold: 100,
243
358
  pollInterval: 100,
@@ -249,6 +364,15 @@ function setupWatcher(resources, config, sseClients) {
249
364
  });
250
365
  watcher.on("change", async (filepath) => {
251
366
  console.log(chalk.yellow(`\n📝 File changed: ${filepath}`));
367
+ // IGNORE preview.json changes - handled via postMessage for instant updates
368
+ if (filepath.endsWith("preview.json")) {
369
+ console.log(chalk.gray(` Skipping preview.json (props updated via UI)`));
370
+ return;
371
+ }
372
+ // Check if it's a block.config.ts file
373
+ if (filepath.endsWith("block.config.ts")) {
374
+ console.log(chalk.blue(`⚙️ Configuration changed, reloading and regenerating types...`));
375
+ }
252
376
  // Extract resource name from path (e.g., "blocks/hero/src/Hero.tsx" -> "hero")
253
377
  const pathParts = filepath.split(path.sep);
254
378
  const blockOrTemplateIndex = pathParts.indexOf("blocks") !== -1
@@ -259,6 +383,19 @@ function setupWatcher(resources, config, sseClients) {
259
383
  const resourceName = pathParts[blockOrTemplateIndex + 1];
260
384
  const resource = resources.find((r) => r.name === resourceName);
261
385
  if (resource) {
386
+ // Reload block.config.ts if it changed
387
+ if (filepath.endsWith("block.config.ts")) {
388
+ const blockConfig = await loadBlockConfig(resource.path);
389
+ if (blockConfig) {
390
+ resource.blockConfig = blockConfig;
391
+ resource.displayName = blockConfig.name || resource.name;
392
+ resource.description = blockConfig.description;
393
+ resource.category = blockConfig.category;
394
+ // Regenerate types
395
+ await generateTypes(resource.path, blockConfig.schema);
396
+ console.log(chalk.green(`✓ Types regenerated for ${resource.name}`));
397
+ }
398
+ }
262
399
  console.log(chalk.blue(`♻ Rebuilding ${resource.name}...`));
263
400
  await buildResource(resource, config, devDir);
264
401
  console.log(chalk.green(`✓ ${resource.name} rebuilt\n`));
@@ -455,7 +592,7 @@ function generatePreviewHTML(resource, config) {
455
592
  <body>
456
593
  <div class="preview-header">
457
594
  <div class="preview-title">${resource.displayName}</div>
458
- <a href="/" class="preview-back">← Back to Home</a>
595
+ <a href="/" class="preview-back" target="_parent">← Back to Home</a>
459
596
  </div>
460
597
  <div class="preview-container">
461
598
  <div id="preview-root"></div>
@@ -464,17 +601,36 @@ function generatePreviewHTML(resource, config) {
464
601
  <script type="module">
465
602
  import module from '${jsPath}';
466
603
  const element = document.getElementById('preview-root');
467
- const props = ${JSON.stringify(resource.previewData)};
468
- module.mount(element, props);
604
+ let props = ${JSON.stringify(resource.previewData)};
605
+ let context = module.mount(element, props);
606
+
607
+ // Listen for prop updates from parent (no reload, just re-render)
608
+ window.addEventListener('message', (event) => {
609
+ if (event.data.type === 'UPDATE_PROPS') {
610
+ console.log('⚡ Hot update: Props changed');
611
+ props = event.data.props;
612
+
613
+ // Use update method if available (no unmount = no blink!)
614
+ if (module.update && context) {
615
+ module.update(element, props, context);
616
+ } else {
617
+ // Fallback: unmount and remount (causes blink)
618
+ if (context && module.unmount) {
619
+ module.unmount(element, context);
620
+ }
621
+ context = module.mount(element, props);
622
+ }
623
+ }
624
+ });
469
625
  </script>
470
626
 
471
- <!-- Hot Reload SSE -->
627
+ <!-- Hot Reload SSE (only for code changes) -->
472
628
  <script>
473
629
  const evtSource = new EventSource('/events');
474
630
  evtSource.onmessage = function(event) {
475
631
  const data = JSON.parse(event.data);
476
632
  if (data.type === 'reload') {
477
- console.log('🔄 Hot reload: Changes detected, reloading...');
633
+ console.log('🔄 Hot reload: Code changed, reloading...');
478
634
  window.location.reload();
479
635
  }
480
636
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAOA,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAWD,wBAAsB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,iBAijBrE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAQA,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAWD,wBAAsB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,iBAgkBrE"}
@@ -4,6 +4,7 @@ import fs from "fs-extra";
4
4
  import inquirer from "inquirer";
5
5
  import ora from "ora";
6
6
  import path from "path";
7
+ import { generateTypes } from "../utils/type-generator.js";
7
8
  export async function initCommand(name, options) {
8
9
  console.log(chalk.blue.bold("\n🔨 Cmssy - Initialize Project\n"));
9
10
  const answers = await inquirer.prompt([
@@ -94,13 +95,11 @@ export async function initCommand(name, options) {
94
95
  version: "1.0.0",
95
96
  type: "module",
96
97
  scripts: {
97
- dev: "cmssy dev -p 3000",
98
+ dev: "cmssy dev",
98
99
  build: "cmssy build",
99
100
  },
100
101
  dependencies: {},
101
- devDependencies: {
102
- "cmssy-cli": "^0.5.0",
103
- },
102
+ devDependencies: {},
104
103
  };
105
104
  // Add Tailwind CSS v4 if selected
106
105
  if (answers.useTailwind) {
@@ -144,6 +143,9 @@ export async function initCommand(name, options) {
144
143
  esModuleInterop: true,
145
144
  allowSyntheticDefaultImports: true,
146
145
  forceConsistentCasingInFileNames: true,
146
+ paths: {
147
+ "cmssy-cli/config": ["./node_modules/cmssy-cli/config"],
148
+ },
147
149
  },
148
150
  include: ["blocks/**/*", "templates/**/*"],
149
151
  exclude: ["node_modules", "dist", "public"],
@@ -193,11 +195,11 @@ Cmssy project for building reusable UI blocks and templates.
193
195
  # Install dependencies
194
196
  npm install
195
197
 
196
- # Start development server with hot reload (http://localhost:3000)
198
+ # Start development server with hot reload (defaults to http://localhost:3000)
197
199
  npm run dev
198
200
 
199
201
  # Or specify a custom port
200
- npm run dev -- -p 3002
202
+ cmssy dev -p 3002
201
203
 
202
204
  # Create a new block
203
205
  cmssy create block my-block
@@ -298,18 +300,9 @@ For more information, visit: https://cmssy.io/docs
298
300
  if (answers.framework === "react") {
299
301
  // Create React example with or without Tailwind
300
302
  const heroComponent = answers.useTailwind
301
- ? `interface HeroContent {
302
- heading?: string;
303
- subheading?: string;
304
- ctaText?: string;
305
- ctaUrl?: string;
306
- }
303
+ ? `import { BlockContent } from './block';
307
304
 
308
- interface HeroProps {
309
- content: HeroContent;
310
- }
311
-
312
- export default function Hero({ content }: HeroProps) {
305
+ export default function Hero({ content }: { content: BlockContent }) {
313
306
  const {
314
307
  heading = 'Welcome to Cmssy',
315
308
  subheading = 'Build reusable UI blocks with any framework',
@@ -333,18 +326,9 @@ export default function Hero({ content }: HeroProps) {
333
326
  );
334
327
  }
335
328
  `
336
- : `interface HeroContent {
337
- heading?: string;
338
- subheading?: string;
339
- ctaText?: string;
340
- ctaUrl?: string;
341
- }
329
+ : `import { BlockContent } from './block';
342
330
 
343
- interface HeroProps {
344
- content: HeroContent;
345
- }
346
-
347
- export default function Hero({ content }: HeroProps) {
331
+ export default function Hero({ content }: { content: BlockContent }) {
348
332
  const {
349
333
  heading = 'Welcome to Cmssy',
350
334
  subheading = 'Build reusable UI blocks with any framework',
@@ -381,6 +365,11 @@ export default {
381
365
  return { root };
382
366
  },
383
367
 
368
+ update(_element: HTMLElement, props: any, ctx: BlockContext): void {
369
+ // Re-render with new props (no unmount = no blink!)
370
+ ctx.root.render(<Hero content={props} />);
371
+ },
372
+
384
373
  unmount(_element: HTMLElement, ctx: BlockContext): void {
385
374
  ctx.root.unmount();
386
375
  }
@@ -430,7 +419,7 @@ export default {
430
419
  }
431
420
  `;
432
421
  fs.writeFileSync(path.join(exampleBlockPath, "src", "index.css"), cssFile);
433
- // Create package.json for block
422
+ // Create minimal package.json for block
434
423
  const blockPackageJson = {
435
424
  name: `@${answers.projectName}/blocks.hero`,
436
425
  version: "1.0.0",
@@ -439,50 +428,45 @@ export default {
439
428
  name: answers.authorName,
440
429
  email: answers.authorEmail,
441
430
  },
442
- cmssy: {
443
- packageType: "block",
444
- displayName: "Hero Section",
445
- category: "marketing",
446
- tags: ["hero", "landing", "cta"],
447
- pricing: {
448
- licenseType: "free",
449
- },
450
- schemaFields: [
451
- {
452
- key: "heading",
453
- type: "text",
454
- label: "Main Heading",
455
- required: true,
456
- placeholder: "Welcome to Cmssy",
457
- },
458
- {
459
- key: "subheading",
460
- type: "text",
461
- label: "Subheading",
462
- placeholder: "Build reusable UI blocks",
463
- },
464
- {
465
- key: "ctaText",
466
- type: "string",
467
- label: "CTA Button Text",
468
- placeholder: "Get Started",
469
- },
470
- {
471
- key: "ctaUrl",
472
- type: "link",
473
- label: "CTA Button URL",
474
- placeholder: "#",
475
- },
476
- ],
477
- defaultContent: {
478
- heading: "Welcome to Cmssy",
479
- subheading: "Build reusable UI blocks with any framework",
480
- ctaText: "Get Started",
481
- ctaUrl: "#",
482
- },
483
- },
484
431
  };
485
432
  fs.writeFileSync(path.join(exampleBlockPath, "package.json"), JSON.stringify(blockPackageJson, null, 2) + "\n");
433
+ // Create block.config.ts
434
+ const blockConfigContent = `import { defineBlock } from 'cmssy-cli/config';
435
+
436
+ export default defineBlock({
437
+ name: 'Hero Section',
438
+ description: 'Hero section block with heading and CTA button',
439
+ category: 'marketing',
440
+ tags: ['hero', 'landing', 'cta'],
441
+
442
+ schema: {
443
+ heading: {
444
+ type: 'singleLine',
445
+ label: 'Main Heading',
446
+ required: true,
447
+ defaultValue: 'Welcome to Cmssy',
448
+ },
449
+ subheading: {
450
+ type: 'singleLine',
451
+ label: 'Subheading',
452
+ defaultValue: 'Build reusable UI blocks with any framework',
453
+ },
454
+ ctaText: {
455
+ type: 'singleLine',
456
+ label: 'CTA Button Text',
457
+ defaultValue: 'Get Started',
458
+ },
459
+ ctaUrl: {
460
+ type: 'link',
461
+ label: 'CTA Button URL',
462
+ defaultValue: '#',
463
+ },
464
+ },
465
+
466
+ pricing: { licenseType: 'free' },
467
+ });
468
+ `;
469
+ fs.writeFileSync(path.join(exampleBlockPath, "block.config.ts"), blockConfigContent);
486
470
  // Create preview.json for dev server
487
471
  const previewData = {
488
472
  heading: "Welcome to Cmssy",
@@ -491,6 +475,31 @@ export default {
491
475
  ctaUrl: "#",
492
476
  };
493
477
  fs.writeFileSync(path.join(exampleBlockPath, "preview.json"), JSON.stringify(previewData, null, 2) + "\n");
478
+ // Generate types for hero block
479
+ const heroSchema = {
480
+ heading: {
481
+ type: "singleLine",
482
+ label: "Main Heading",
483
+ required: true,
484
+ defaultValue: "Welcome to Cmssy",
485
+ },
486
+ subheading: {
487
+ type: "singleLine",
488
+ label: "Subheading",
489
+ defaultValue: "Build reusable UI blocks with any framework",
490
+ },
491
+ ctaText: {
492
+ type: "singleLine",
493
+ label: "CTA Button Text",
494
+ defaultValue: "Get Started",
495
+ },
496
+ ctaUrl: {
497
+ type: "link",
498
+ label: "CTA Button URL",
499
+ defaultValue: "#",
500
+ },
501
+ };
502
+ await generateTypes(exampleBlockPath, heroSchema);
494
503
  spinner.succeed("Example hero block created");
495
504
  // Initialize git
496
505
  if (answers.initGit) {