@layoutdesign/context 0.1.13 → 0.1.15

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/README.md CHANGED
@@ -65,7 +65,9 @@ Eleven tools are registered with the MCP server automatically.
65
65
  | `install` | Auto-configure MCP settings for Claude Code, Cursor, and Windsurf in one step. |
66
66
  | `install --target <tool>` | Target a specific tool: `claude`, `cursor`, or `windsurf`. |
67
67
  | `install --global` | Install globally so the MCP server is available in all projects (Claude Code only). |
68
- | `doctor` | Check Node.js version, Claude CLI, and MCP dependencies (Figma, Playwright). |
68
+ | `doctor` | Check Node.js version, Claude CLI, and MCP dependencies (Figma, Playwright). Use `--fix` to auto-install any missing tools. |
69
+ | `doctor --fix` | Auto-install missing dependencies (Figma MCP, Playwright MCP). |
70
+ | `serve-local <path>` | Serve a local directory over HTTP for use with the `url-to-figma` MCP tool. Requires Python 3. |
69
71
  | `list` | List all available kits (free and pro). |
70
72
  | `use <kit>` | Switch the active kit in an existing `.layout/` directory. |
71
73
  | `import <path>` | Import a design system bundle exported from Layout (`.zip`). |
@@ -96,6 +98,16 @@ npx @layoutdesign/context list
96
98
 
97
99
  # Import a bundle from Layout
98
100
  npx @layoutdesign/context import ./my-design-export.zip
101
+
102
+ # Check setup and detect issues
103
+ npx @layoutdesign/context doctor
104
+
105
+ # Auto-install missing dependencies
106
+ npx @layoutdesign/context doctor --fix
107
+
108
+ # Serve a local directory for url-to-figma (requires Python 3)
109
+ npx @layoutdesign/context serve-local ./path/to/files
110
+ npx @layoutdesign/context serve-local ./path/to/files --port 8080
99
111
  ```
100
112
 
101
113
  ---
@@ -358,6 +370,8 @@ npx @layoutdesign/context import ./my-design-export.zip
358
370
 
359
371
  This extracts the bundle into `.layout/` and automatically merges design system rules into your project's root `CLAUDE.md` (using HTML comment markers for idempotent updates). Re-importing replaces the previous section cleanly.
360
372
 
373
+ Note: Bundles exported from Layout Studio are typically under 5 MB. Very large ZIPs may take a moment to extract.
374
+
361
375
  After importing, run `npx @layoutdesign/context install` to connect the MCP server.
362
376
 
363
377
  ---
package/dist/bin/cli.js CHANGED
@@ -8,6 +8,7 @@ import { useCommand } from "../src/cli/use.js";
8
8
  import { listCommand } from "../src/cli/list.js";
9
9
  import { installCommand } from "../src/cli/install.js";
10
10
  import { doctorCommand } from "../src/cli/doctor.js";
11
+ import { serveLocalCommand } from "../src/cli/serve-local.js";
11
12
  const require = createRequire(import.meta.url);
12
13
  const pkg = require("../../package.json");
13
14
  const program = new Command();
@@ -55,6 +56,17 @@ program
55
56
  .action(async (options) => {
56
57
  await installCommand(options);
57
58
  });
59
+ program
60
+ .command("serve-local <path>")
61
+ .description("Serve a local file or directory over HTTP for use with url-to-figma (file:// URLs are not supported by Figma)")
62
+ .option("--port <n>", "Port to use (default: auto-detect from 8765)")
63
+ .option("--quiet", "Print only the URL (useful for scripting)")
64
+ .action(async (targetPath, options) => {
65
+ await serveLocalCommand(targetPath, {
66
+ port: options.port ? parseInt(options.port, 10) : undefined,
67
+ quiet: options.quiet,
68
+ });
69
+ });
58
70
  program
59
71
  .command("doctor")
60
72
  .description("Check Node.js version, Claude CLI, and MCP dependencies")
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEjE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,gBAAgB,CAAC;KACtB,WAAW,CACV,+DAA+D,CAChE;KACA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CAAC,cAAc,EAAE,kCAAkC,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;IAC1C,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,YAAY,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;IAChC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;IAChC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,WAAW,EAAE,CAAC;AACtB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,+FAA+F,CAAC;KAC5G,MAAM,CAAC,iBAAiB,EAAE,4CAA4C,CAAC;KACvE,MAAM,CAAC,UAAU,EAAE,gEAAgE,CAAC;KACpF,MAAM,CAAC,cAAc,EAAE,qCAAqC,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,OAAmE,EAAE,EAAE;IACpF,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,OAAO,EAAE,kCAAkC,CAAC;KACnD,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;IAC3C,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"AAoOA,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyFhB"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"AAkOA,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyFhB"}
@@ -119,35 +119,33 @@ function addMcpServerViaFile(target) {
119
119
  return true;
120
120
  }
121
121
  /**
122
- * Add Figma MCP server via `claude mcp add`.
123
- * Uses --scope user so it's available across all projects.
122
+ * Add Figma MCP server via `claude mcp add --scope user`.
123
+ *
124
+ * Important: we do NOT pre-check `claude mcp list`. The plugin
125
+ * `figma@claude-plugins-official` causes "figma" to appear in that list,
126
+ * which would make us skip this step — but the plugin-provided registration
127
+ * uses OAuth that doesn't persist between sessions. We must always ensure a
128
+ * proper user-scoped entry exists. Let `claude mcp add` itself handle the
129
+ * "already registered" case.
124
130
  */
125
131
  function addFigmaMcpServer() {
126
- try {
127
- const list = execFileSync("claude", ["mcp", "list"], {
128
- encoding: "utf-8",
129
- stdio: ["pipe", "pipe", "pipe"],
130
- });
131
- if (list.toLowerCase().includes("figma")) {
132
- console.log(chalk.dim(" ↳"), "Figma MCP: already configured");
133
- return false;
134
- }
135
- }
136
- catch {
137
- // claude CLI not available
138
- return false;
139
- }
140
132
  try {
141
133
  execFileSync("claude", [
142
134
  "mcp", "add", "--scope", "user", "--transport", "http",
143
135
  "figma", "https://mcp.figma.com/mcp",
144
136
  ], { stdio: ["pipe", "pipe", "pipe"] });
145
- console.log(chalk.green(" ✓"), "Figma MCP: registered globally (OAuth — no API key needed)");
137
+ console.log(chalk.green(" ✓"), "Figma MCP: registered globally (OAuth — authenticate once in Claude Code)");
146
138
  return true;
147
139
  }
148
- catch {
140
+ catch (err) {
141
+ const stderr = err.stderr?.toString() ?? "";
142
+ // Already registered at user scope — this is fine
143
+ if (stderr.includes("already") || stderr.includes("exists")) {
144
+ console.log(chalk.dim(" ↳"), "Figma MCP: already configured at user scope");
145
+ return false;
146
+ }
149
147
  console.log(chalk.yellow(" ⚠"), "Figma MCP: could not register automatically");
150
- console.log(chalk.dim(" Run manually:"), chalk.cyan("claude mcp add --transport http figma https://mcp.figma.com/mcp"));
148
+ console.log(chalk.dim(" Run manually:"), chalk.cyan("claude mcp add --scope user --transport http figma https://mcp.figma.com/mcp"));
151
149
  return false;
152
150
  }
153
151
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function serveLocalCommand(targetPath: string, options: {
2
+ port?: number;
3
+ quiet?: boolean;
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=serve-local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-local.d.ts","sourceRoot":"","sources":["../../../src/cli/serve-local.ts"],"names":[],"mappings":"AAuDA,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEtH"}
@@ -0,0 +1,109 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import net from "node:net";
4
+ import { spawn } from "node:child_process";
5
+ import chalk from "chalk";
6
+ // Ports commonly occupied by VSCode, Next.js, Vite, etc. — skip these
7
+ const SKIP_PORTS = new Set([3000, 3001, 3002, 4321, 5173, 8080, 8081]);
8
+ const DEFAULT_PORT_RANGE_START = 8765;
9
+ function isPortFree(port) {
10
+ return new Promise((resolve) => {
11
+ const server = net.createServer();
12
+ server.once("error", () => resolve(false));
13
+ server.once("listening", () => {
14
+ server.close(() => resolve(true));
15
+ });
16
+ server.listen(port);
17
+ });
18
+ }
19
+ async function findFreePort(start) {
20
+ let port = start;
21
+ while (port < start + 100) {
22
+ if (!SKIP_PORTS.has(port) && (await isPortFree(port))) {
23
+ return port;
24
+ }
25
+ port++;
26
+ }
27
+ throw new Error("Could not find a free port in range");
28
+ }
29
+ function waitForServer(url, timeoutMs = 5000) {
30
+ return new Promise((resolve) => {
31
+ const deadline = Date.now() + timeoutMs;
32
+ const { execFileSync } = require("node:child_process");
33
+ function poll() {
34
+ try {
35
+ execFileSync("curl", ["-sf", "-o", "/dev/null", "--max-time", "1", url], {
36
+ stdio: "ignore",
37
+ });
38
+ resolve(true);
39
+ }
40
+ catch {
41
+ if (Date.now() > deadline) {
42
+ resolve(false);
43
+ }
44
+ else {
45
+ setTimeout(poll, 200);
46
+ }
47
+ }
48
+ }
49
+ poll();
50
+ });
51
+ }
52
+ export async function serveLocalCommand(targetPath, options) {
53
+ const absTarget = path.resolve(process.cwd(), targetPath);
54
+ if (!fs.existsSync(absTarget)) {
55
+ console.log(chalk.red("Error:"), `Path not found: ${absTarget}`);
56
+ process.exit(1);
57
+ }
58
+ const isFile = fs.statSync(absTarget).isFile();
59
+ const directory = isFile ? path.dirname(absTarget) : absTarget;
60
+ const filePart = isFile ? path.basename(absTarget) : "";
61
+ // Resolve port
62
+ let port;
63
+ if (options.port) {
64
+ const free = await isPortFree(options.port);
65
+ if (!free) {
66
+ console.log(chalk.red("Error:"), `Port ${options.port} is already in use. Try a different port with --port <n>.`);
67
+ process.exit(1);
68
+ }
69
+ port = options.port;
70
+ }
71
+ else {
72
+ port = await findFreePort(DEFAULT_PORT_RANGE_START);
73
+ }
74
+ const url = `http://localhost:${port}${filePart ? `/${filePart}` : ""}`;
75
+ // Start a detached Python HTTP server (survives shell session death)
76
+ const child = spawn("python3", ["-m", "http.server", String(port), "--directory", directory], {
77
+ detached: true,
78
+ stdio: "ignore",
79
+ });
80
+ child.unref();
81
+ // Wait for it to be ready
82
+ const baseUrl = `http://localhost:${port}/`;
83
+ const ready = await waitForServer(baseUrl);
84
+ if (!ready) {
85
+ console.log(chalk.red("Error:"), "Server did not start in time. Check that python3 is available.");
86
+ process.exit(1);
87
+ }
88
+ if (!options.quiet) {
89
+ console.log();
90
+ console.log(chalk.bold(" Layout — Local file server"));
91
+ console.log();
92
+ console.log(chalk.green(" ✓"), `Serving on ${chalk.cyan(url)}`);
93
+ console.log(chalk.dim(" Directory:"), directory);
94
+ console.log(chalk.dim(" PID:"), child.pid ?? "unknown");
95
+ console.log();
96
+ console.log(chalk.yellow(" →"), "Pass this URL to", chalk.cyan("url-to-figma"), "or open it in your browser");
97
+ console.log();
98
+ console.log(chalk.dim(" Note: file:// URLs are not supported by the Figma capture script."));
99
+ console.log(chalk.dim(" This HTTP server is required even for static HTML files."));
100
+ console.log();
101
+ console.log(chalk.dim(` To stop: kill ${child.pid ?? "<PID>"}`));
102
+ console.log();
103
+ }
104
+ else {
105
+ // Machine-readable output for scripting
106
+ console.log(url);
107
+ }
108
+ }
109
+ //# sourceMappingURL=serve-local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-local.js","sourceRoot":"","sources":["../../../src/cli/serve-local.ts"],"names":[],"mappings":"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"}
@@ -11,12 +11,20 @@ export declare const inputSchema: {
11
11
  mobile: "mobile";
12
12
  }>>>;
13
13
  figmaUrl: z.ZodOptional<z.ZodString>;
14
+ variants: z.ZodOptional<z.ZodArray<z.ZodObject<{
15
+ name: z.ZodString;
16
+ code: z.ZodString;
17
+ }, z.core.$strip>>>;
14
18
  };
15
- export declare function handler(kit: Kit | null): ({ code, name: frameName, viewports, figmaUrl, }: {
19
+ export declare function handler(kit: Kit | null): ({ code, name: frameName, viewports, figmaUrl, variants, }: {
16
20
  code: string;
17
21
  name?: string;
18
22
  viewports?: string[];
19
23
  figmaUrl?: string;
24
+ variants?: Array<{
25
+ name: string;
26
+ code: string;
27
+ }>;
20
28
  }) => Promise<{
21
29
  content: {
22
30
  type: "text";
@@ -1 +1 @@
1
- {"version":3,"file":"push-to-figma.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/push-to-figma.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAG9C,eAAO,MAAM,IAAI,kBAAkB,CAAC;AAEpC,eAAO,MAAM,WAAW,QAI+C,CAAC;AAExE,eAAO,MAAM,WAAW;;;;;;;;;CAiBvB,CAAC;AAUF,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,IACvB,iDAKX;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;;;;;GAqJF"}
1
+ {"version":3,"file":"push-to-figma.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/push-to-figma.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAG9C,eAAO,MAAM,IAAI,kBAAkB,CAAC;AAEpC,eAAO,MAAM,WAAW,QAI+C,CAAC;AAExE,eAAO,MAAM,WAAW;;;;;;;;;;;;;CA6BvB,CAAC;AA2HF,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,IACvB,2DAMX;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;;;;;GA2JF"}
@@ -20,6 +20,16 @@ export const inputSchema = {
20
20
  .optional()
21
21
  .describe("Figma file URL to push into (e.g. https://www.figma.com/design/ABC123/...). " +
22
22
  "If provided, pushes into this existing file. If omitted, creates a new file."),
23
+ variants: z
24
+ .array(z.object({
25
+ name: z.string().describe("Variant state name, e.g. 'Default', 'Hover', 'Active', 'Disabled'"),
26
+ code: z.string().describe("Full TSX/JSX code for this variant state"),
27
+ }))
28
+ .optional()
29
+ .describe("Component state variants to capture as separate Figma frames. Each variant gets its own frame " +
30
+ "named '{name}/State={variantName}'. After all frames are captured, use the Layout Figma plugin's " +
31
+ "'Assemble Component Set' to combine them into a proper Figma component with variant properties. " +
32
+ "Tip: render hover states by applying hover styles directly as classes, not via CSS :hover pseudo-class."),
23
33
  };
24
34
  const VIEWPORT_DIMS = {
25
35
  desktop: { width: 1280, height: 900 },
@@ -27,11 +37,104 @@ const VIEWPORT_DIMS = {
27
37
  mobile: { width: 375, height: 812 },
28
38
  };
29
39
  const DEFAULT_DIMS = VIEWPORT_DIMS.desktop;
40
+ /**
41
+ * Push code to the preview server via WebSocket.
42
+ * Optionally tags the preview with a variantName for multi-variant capture.
43
+ */
44
+ async function pushToPreview(code, variantName) {
45
+ const { WebSocket } = await import("ws");
46
+ const ws = new WebSocket(`ws://localhost:${PREVIEW_PORT}/ws`);
47
+ return new Promise((resolve, reject) => {
48
+ const timeout = setTimeout(() => {
49
+ ws.close();
50
+ reject(new Error("Preview server connection timed out"));
51
+ }, 5000);
52
+ ws.on("open", () => {
53
+ ws.send(JSON.stringify({
54
+ type: "preview",
55
+ code,
56
+ language: "tsx",
57
+ ...(variantName ? { variantName } : {}),
58
+ }));
59
+ });
60
+ ws.on("message", (data) => {
61
+ try {
62
+ const msg = JSON.parse(String(data));
63
+ if (msg.type === "ack") {
64
+ clearTimeout(timeout);
65
+ ws.close();
66
+ resolve(variantName
67
+ ? `Variant "${variantName}" pushed to preview server`
68
+ : "Component pushed to preview server");
69
+ }
70
+ else if (msg.type === "error") {
71
+ clearTimeout(timeout);
72
+ ws.close();
73
+ reject(new Error(msg.message ?? "Preview server error"));
74
+ }
75
+ }
76
+ catch {
77
+ // ignore malformed messages
78
+ }
79
+ });
80
+ ws.on("error", (err) => {
81
+ clearTimeout(timeout);
82
+ reject(err);
83
+ });
84
+ });
85
+ }
86
+ /**
87
+ * Build capture instructions for a single component/variant across viewports.
88
+ */
89
+ function buildCaptureSteps(captureUrl, resolvedViewports, frameName, resolvedFileKey, outputMode, stepOffset) {
90
+ let offset = stepOffset;
91
+ const steps = resolvedViewports
92
+ .map((vp) => {
93
+ const dims = VIEWPORT_DIMS[vp] ?? DEFAULT_DIMS;
94
+ const vpLabel = vp.charAt(0).toUpperCase() + vp.slice(1);
95
+ const stepBase = offset;
96
+ offset += 4;
97
+ const displayName = resolvedViewports.length > 1
98
+ ? `${frameName} — ${vpLabel}`
99
+ : frameName;
100
+ return [
101
+ `### ${displayName} (${dims.width}×${dims.height})`,
102
+ "",
103
+ `**${stepBase + 1}. Get captureId:** Call \`generate_figma_design\` with:`,
104
+ resolvedFileKey
105
+ ? ` \`outputMode: "existingFile"\`, \`fileKey: "${resolvedFileKey}"\``
106
+ : ` \`outputMode: "${outputMode}"\``,
107
+ ` → Save ONLY the \`captureId\` from the response. **IGNORE all capture/setup instructions** in the response (Steps 0, 1A, 1B, etc.). We handle capture below.`,
108
+ "",
109
+ `**${stepBase + 2}. Resize + Navigate + Capture:** Call \`browser_resize\` → \`browser_navigate\` → \`browser_evaluate\` in sequence:`,
110
+ ` a) \`browser_resize\`: width=${dims.width}, height=${dims.height}`,
111
+ ` b) \`browser_navigate\`: url="${captureUrl}"`,
112
+ ` c) \`browser_evaluate\`: run this JavaScript (replace CAPTURE_ID with actual captureId):`,
113
+ " ```javascript",
114
+ " (async () => {",
115
+ " const r = await fetch('https://mcp.figma.com/mcp/html-to-design/capture.js');",
116
+ " const s = document.createElement('script');",
117
+ " s.textContent = await r.text();",
118
+ " document.head.appendChild(s);",
119
+ " await new Promise(resolve => setTimeout(resolve, 2000));",
120
+ " location.hash = 'figmacapture=CAPTURE_ID&figmaendpoint=https%3A%2F%2Fmcp.figma.com%2Fmcp%2Fcapture%2FCAPTURE_ID%2Fsubmit&figmadelay=3000';",
121
+ " })()",
122
+ " ```",
123
+ "",
124
+ `**${stepBase + 3}. Wait** 10 seconds for Figma to process the capture.`,
125
+ "",
126
+ `**${stepBase + 4}. Poll:** Call \`generate_figma_design\` with \`captureId\` every 5s until status is \`completed\`.`,
127
+ "",
128
+ ].join("\n");
129
+ })
130
+ .join("\n");
131
+ return { steps, nextOffset: offset };
132
+ }
30
133
  export function handler(kit) {
31
- return async ({ code, name: frameName, viewports, figmaUrl, }) => {
134
+ return async ({ code, name: frameName, viewports, figmaUrl, variants, }) => {
32
135
  const resolvedName = frameName ?? "Layout Component";
33
136
  const resolvedViewports = viewports ?? ["desktop"];
34
- const captureUrl = `http://localhost:${PREVIEW_PORT}/capture`;
137
+ const baseCaptureUrl = `http://localhost:${PREVIEW_PORT}/capture`;
35
138
  // Parse fileKey from Figma URL if provided
36
139
  let resolvedFileKey;
37
140
  if (figmaUrl) {
@@ -40,42 +143,21 @@ export function handler(kit) {
40
143
  resolvedFileKey = match[1];
41
144
  }
42
145
  const outputMode = resolvedFileKey ? "existingFile" : "newFile";
43
- // Step 1: Push code to the preview server so /capture has something to render
44
- let pushStatus;
146
+ // Step 1: Push code to the preview server
147
+ const pushStatuses = [];
45
148
  try {
46
- const { WebSocket } = await import("ws");
47
- const ws = new WebSocket(`ws://localhost:${PREVIEW_PORT}/ws`);
48
- pushStatus = await new Promise((resolve, reject) => {
49
- const timeout = setTimeout(() => {
50
- ws.close();
51
- reject(new Error("Preview server connection timed out"));
52
- }, 5000);
53
- ws.on("open", () => {
54
- ws.send(JSON.stringify({ type: "preview", code, language: "tsx" }));
55
- });
56
- ws.on("message", (data) => {
57
- try {
58
- const msg = JSON.parse(String(data));
59
- if (msg.type === "ack") {
60
- clearTimeout(timeout);
61
- ws.close();
62
- resolve("Component pushed to preview server");
63
- }
64
- else if (msg.type === "error") {
65
- clearTimeout(timeout);
66
- ws.close();
67
- reject(new Error(msg.message ?? "Preview server error"));
68
- }
69
- }
70
- catch {
71
- // ignore malformed messages
72
- }
73
- });
74
- ws.on("error", (err) => {
75
- clearTimeout(timeout);
76
- reject(err);
77
- });
78
- });
149
+ if (variants && variants.length > 0) {
150
+ // Multi-variant: push each variant with its name
151
+ for (const variant of variants) {
152
+ const status = await pushToPreview(variant.code, variant.name);
153
+ pushStatuses.push(status);
154
+ }
155
+ }
156
+ else {
157
+ // Single code: backward-compatible push
158
+ const status = await pushToPreview(code);
159
+ pushStatuses.push(status);
160
+ }
79
161
  }
80
162
  catch (err) {
81
163
  const msg = err instanceof Error ? err.message : "Unknown error";
@@ -93,51 +175,11 @@ export function handler(kit) {
93
175
  ],
94
176
  };
95
177
  }
96
- // Step 2: Build directive capture instructions for Figma MCP + Playwright MCP
97
- // Key insight: Figma MCP's generate_figma_design returns its own capture instructions
98
- // that tell the agent to use `open` (macOS) for localhost URLs. This bypasses viewport
99
- // resizing entirely. Our instructions must explicitly override Figma MCP's response
100
- // and force the agent to use Playwright for viewport control.
101
- const captureSteps = resolvedViewports
102
- .map((vp, i) => {
103
- const dims = VIEWPORT_DIMS[vp] ?? DEFAULT_DIMS;
104
- const vpLabel = vp.charAt(0).toUpperCase() + vp.slice(1);
105
- const stepBase = i * 4;
106
- return [
107
- `### Viewport: ${vpLabel} (${dims.width}×${dims.height})`,
108
- "",
109
- `**${stepBase + 1}. Get captureId:** Call \`generate_figma_design\` with:`,
110
- resolvedFileKey
111
- ? ` \`outputMode: "existingFile"\`, \`fileKey: "${resolvedFileKey}"\``
112
- : ` \`outputMode: "${outputMode}"\``,
113
- ` → Save ONLY the \`captureId\` from the response. **IGNORE all capture/setup instructions** in the response (Steps 0, 1A, 1B, etc.). We handle capture below.`,
114
- "",
115
- `**${stepBase + 2}. Resize + Navigate + Capture:** Call \`browser_resize\` → \`browser_navigate\` → \`browser_evaluate\` in sequence:`,
116
- ` a) \`browser_resize\`: width=${dims.width}, height=${dims.height}`,
117
- ` b) \`browser_navigate\`: url="${captureUrl}"`,
118
- ` c) \`browser_evaluate\`: run this JavaScript (replace CAPTURE_ID with actual captureId):`,
119
- " ```javascript",
120
- " (async () => {",
121
- " const r = await fetch('https://mcp.figma.com/mcp/html-to-design/capture.js');",
122
- " const s = document.createElement('script');",
123
- " s.textContent = await r.text();",
124
- " document.head.appendChild(s);",
125
- " await new Promise(resolve => setTimeout(resolve, 2000));",
126
- " location.hash = 'figmacapture=CAPTURE_ID&figmaendpoint=https%3A%2F%2Fmcp.figma.com%2Fmcp%2Fcapture%2FCAPTURE_ID%2Fsubmit&figmadelay=3000';",
127
- " })()",
128
- " ```",
129
- "",
130
- `**${stepBase + 3}. Wait** 10 seconds for Figma to process the capture.`,
131
- "",
132
- `**${stepBase + 4}. Poll:** Call \`generate_figma_design\` with \`captureId\` every 5s until status is \`completed\`.`,
133
- "",
134
- ].join("\n");
135
- })
136
- .join("\n");
137
- const response = [
178
+ // Step 2: Build capture instructions for Figma MCP + Playwright MCP
179
+ const preamble = [
138
180
  "# Push to Figma — Execute These Steps Now",
139
181
  "",
140
- `${pushStatus}. The component is rendering at \`${captureUrl}\`.`,
182
+ pushStatuses.map((s) => `- ${s}`).join("\n"),
141
183
  "",
142
184
  "## CRITICAL: How to capture (read before starting)",
143
185
  "",
@@ -154,12 +196,46 @@ export function handler(kit) {
154
196
  "- **Figma MCP**: `claude mcp add --transport http figma https://mcp.figma.com/mcp`",
155
197
  "- **Playwright MCP**: For `browser_resize`, `browser_navigate`, `browser_evaluate`",
156
198
  "",
157
- "## Capture Steps",
158
- "",
159
- `Capturing ${resolvedViewports.length} viewport(s): ${resolvedViewports.join(", ")}`,
160
- `Frame name: **${resolvedName}**`,
161
- "",
162
- captureSteps,
199
+ ].join("\n");
200
+ let captureSection;
201
+ if (variants && variants.length > 0) {
202
+ // Multi-variant capture: each variant × each viewport
203
+ const totalCaptures = variants.length * resolvedViewports.length;
204
+ const variantNames = variants.map((v) => v.name).join(", ");
205
+ const sections = [
206
+ "## Capture Steps",
207
+ "",
208
+ `Capturing ${variants.length} variant(s) (${variantNames}) × ${resolvedViewports.length} viewport(s) (${resolvedViewports.join(", ")}) = ${totalCaptures} frame(s)`,
209
+ "",
210
+ ];
211
+ let stepOffset = 0;
212
+ for (const variant of variants) {
213
+ const variantCaptureUrl = `${baseCaptureUrl}?variant=${encodeURIComponent(variant.name)}`;
214
+ const variantFrameName = resolvedViewports.length > 1
215
+ ? `${resolvedName}/State=${variant.name}`
216
+ : `${resolvedName}/State=${variant.name}`;
217
+ sections.push(`## Variant: ${variant.name}`, "");
218
+ const { steps, nextOffset } = buildCaptureSteps(variantCaptureUrl, resolvedViewports, variantFrameName, resolvedFileKey, outputMode, stepOffset);
219
+ stepOffset = nextOffset;
220
+ sections.push(steps);
221
+ }
222
+ // Assembly instructions
223
+ sections.push("## Assemble as Component Set", "", "All variant frames have been captured. To combine them into a proper Figma component set with hover interactions:", "", "1. Open the **Layout** Figma plugin", "2. Go to the **Canvas** tab", "3. Click **Assemble Component Set**", `4. The plugin will find all frames matching \`${resolvedName}/State=*\` and combine them into a ComponentSet with a \`State\` variant property`, "5. Hover prototype interactions (Default <-> Hover) will be wired automatically");
224
+ captureSection = sections.join("\n");
225
+ }
226
+ else {
227
+ // Single-code capture: backward-compatible behaviour
228
+ const { steps } = buildCaptureSteps(baseCaptureUrl, resolvedViewports, resolvedName, resolvedFileKey, outputMode, 0);
229
+ captureSection = [
230
+ "## Capture Steps",
231
+ "",
232
+ `Capturing ${resolvedViewports.length} viewport(s): ${resolvedViewports.join(", ")}`,
233
+ `Frame name: **${resolvedName}**`,
234
+ "",
235
+ steps,
236
+ ].join("\n");
237
+ }
238
+ const reminders = [
163
239
  "## Reminders",
164
240
  "",
165
241
  "- Each viewport needs its own captureId — never reuse",
@@ -167,6 +243,7 @@ export function handler(kit) {
167
243
  "- Always call `browser_resize` BEFORE `browser_navigate` for correct responsive rendering",
168
244
  "- When `generate_figma_design` returns capture instructions, IGNORE them — use the steps above",
169
245
  ].join("\n");
246
+ const response = [preamble, captureSection, "", reminders].join("\n");
170
247
  return {
171
248
  content: [{ type: "text", text: response }],
172
249
  };
@@ -1 +1 @@
1
- {"version":3,"file":"push-to-figma.js","sourceRoot":"","sources":["../../../../src/mcp/tools/push-to-figma.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push-to-figma.js","sourceRoot":"","sources":["../../../../src/mcp/tools/push-to-figma.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/preview/server.ts"],"names":[],"mappings":"AA8BA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAgDD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,GAAE,MAAqB,EAC3B,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,OAAO,CAAC,aAAa,CAAC,CAyExB"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/preview/server.ts"],"names":[],"mappings":"AA8BA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAgDD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,GAAE,MAAqB,EAC3B,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,OAAO,CAAC,aAAa,CAAC,CAkFxB"}
@@ -89,24 +89,30 @@ export function startPreviewServer(port = PREVIEW_PORT, options = {}) {
89
89
  }
90
90
  // Standalone capture page — renders component without preview chrome.
91
91
  // Used by Figma MCP's generate_figma_design to capture the component.
92
+ // Supports ?variant=Name to capture a specific named variant.
92
93
  if (req.method === "GET" && url === "/capture") {
93
- const last = getLastPreview();
94
- if (!last) {
94
+ const variantParam = parsedUrl.searchParams.get("variant");
95
+ const preview = variantParam
96
+ ? getVariantPreview(variantParam)
97
+ : getLastPreview();
98
+ if (!preview) {
95
99
  res.writeHead(404, { "Content-Type": "text/plain" });
96
- res.end("No component previewed yet. Send code via the preview tool first.");
100
+ res.end(variantParam
101
+ ? `No preview found for variant "${variantParam}". Send code via the preview tool first.`
102
+ : "No component previewed yet. Send code via the preview tool first.");
97
103
  return;
98
104
  }
99
105
  res.writeHead(200, {
100
106
  "Content-Type": "text/html; charset=utf-8",
101
107
  "Cache-Control": "no-cache",
102
108
  });
103
- res.end(buildCaptureHtml(last.compiledJs));
109
+ res.end(buildCaptureHtml(preview.compiledJs));
104
110
  return;
105
111
  }
106
112
  res.writeHead(404, { "Content-Type": "text/plain" });
107
113
  res.end("Not Found");
108
114
  });
109
- const { broadcast, getLastPreview } = createWsServer(server);
115
+ const { broadcast, getLastPreview, getVariantPreview } = createWsServer(server);
110
116
  server.on("error", (err) => {
111
117
  if (err.code === "EADDRINUSE") {
112
118
  reject(new Error(`Port ${port} is already in use. Stop the other process or use a different port.`));
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/preview/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/preview/server.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,10 @@ export interface WsBroadcaster {
5
5
  code: string;
6
6
  compiledJs: string;
7
7
  } | null;
8
+ getVariantPreview: (name: string) => {
9
+ code: string;
10
+ compiledJs: string;
11
+ } | null;
8
12
  }
9
13
  /**
10
14
  * Create a WebSocket server attached to the given HTTP server.
@@ -1 +1 @@
1
- {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/preview/ws.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAIlC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,cAAc,EAAE,MAAM;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACnE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,aAAa,CA0EjE"}
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/preview/ws.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAIlC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,cAAc,EAAE,MAAM;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClE,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAClF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,aAAa,CAqFjE"}
@@ -14,6 +14,7 @@ export function createWsServer(server) {
14
14
  });
15
15
  const clients = new Set();
16
16
  let lastPreview = null;
17
+ const variantPreviews = new Map();
17
18
  wss.on("connection", (ws) => {
18
19
  clients.add(ws);
19
20
  ws.on("message", (data) => {
@@ -34,6 +35,10 @@ export function createWsServer(server) {
34
35
  }
35
36
  compiledJs = result.js;
36
37
  }
38
+ // Store in variant map if a variantName was provided
39
+ if (msg.variantName) {
40
+ variantPreviews.set(msg.variantName, { code: msg.code, compiledJs });
41
+ }
37
42
  // Broadcast to all OTHER clients (the preview page)
38
43
  broadcast(msg.code, compiledJs);
39
44
  // Acknowledge so the sender knows the preview is ready
@@ -63,6 +68,9 @@ export function createWsServer(server) {
63
68
  function getLastPreview() {
64
69
  return lastPreview;
65
70
  }
66
- return { broadcast, getLastPreview };
71
+ function getVariantPreview(variantName) {
72
+ return variantPreviews.get(variantName) ?? null;
73
+ }
74
+ return { broadcast, getLastPreview, getVariantPreview };
67
75
  }
68
76
  //# sourceMappingURL=ws.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ws.js","sourceRoot":"","sources":["../../../src/preview/ws.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws.js","sourceRoot":"","sources":["../../../src/preview/ws.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layoutdesign/context",
3
- "version": "0.1.13",
3
+ "version": "0.1.15",
4
4
  "description": "Design system context for AI coding agents — MCP server + CLI + live preview",
5
5
  "license": "MIT",
6
6
  "type": "module",