@mp3wizard/figma-console-mcp 1.32.3 → 1.34.1
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 +25 -17
- package/dist/cloudflare/core/cloud-websocket-connector.js +18 -0
- package/dist/cloudflare/core/design-system-manifest.js +19 -14
- package/dist/cloudflare/core/design-system-tools.js +43 -34
- package/dist/cloudflare/core/diagnose-tool.js +4 -0
- package/dist/cloudflare/core/enrichment/enrichment-service.js +11 -5
- package/dist/cloudflare/core/enrichment/style-resolver.js +38 -18
- package/dist/cloudflare/core/figma-api.js +118 -54
- package/dist/cloudflare/core/figma-tools.js +179 -63
- package/dist/cloudflare/core/port-discovery.js +404 -31
- package/dist/cloudflare/core/tokens/alias-resolver.js +75 -5
- package/dist/cloudflare/core/tokens/config.js +10 -0
- package/dist/cloudflare/core/tokens/dialect.js +232 -0
- package/dist/cloudflare/core/tokens/figma-converter.js +144 -16
- package/dist/cloudflare/core/tokens/formatters/css-vars.js +21 -12
- package/dist/cloudflare/core/tokens/formatters/dtcg.js +106 -30
- package/dist/cloudflare/core/tokens/formatters/json.js +28 -10
- package/dist/cloudflare/core/tokens/formatters/scss.js +19 -13
- package/dist/cloudflare/core/tokens/formatters/style-dictionary-v3.js +15 -9
- package/dist/cloudflare/core/tokens/formatters/tailwind-v4.js +14 -9
- package/dist/cloudflare/core/tokens/formatters/tokens-studio.js +11 -5
- package/dist/cloudflare/core/tokens/index.js +2 -1
- package/dist/cloudflare/core/tokens/parsers/dtcg.js +32 -5
- package/dist/cloudflare/core/tokens/schemas.js +4 -0
- package/dist/cloudflare/core/tokens-tools.js +1017 -88
- package/dist/cloudflare/core/version-tools.js +44 -3
- package/dist/cloudflare/core/websocket-connector.js +42 -0
- package/dist/cloudflare/core/websocket-server.js +99 -8
- package/dist/cloudflare/core/write-tools.js +355 -86
- package/dist/cloudflare/index.js +7 -7
- package/dist/core/design-system-manifest.d.ts +1 -0
- package/dist/core/design-system-manifest.d.ts.map +1 -1
- package/dist/core/design-system-manifest.js +19 -14
- package/dist/core/design-system-manifest.js.map +1 -1
- package/dist/core/design-system-tools.d.ts.map +1 -1
- package/dist/core/design-system-tools.js +43 -34
- package/dist/core/design-system-tools.js.map +1 -1
- package/dist/core/diagnose-tool.d.ts +8 -0
- package/dist/core/diagnose-tool.d.ts.map +1 -1
- package/dist/core/diagnose-tool.js +4 -0
- package/dist/core/diagnose-tool.js.map +1 -1
- package/dist/core/enrichment/enrichment-service.d.ts.map +1 -1
- package/dist/core/enrichment/enrichment-service.js +11 -5
- package/dist/core/enrichment/enrichment-service.js.map +1 -1
- package/dist/core/enrichment/style-resolver.d.ts +7 -2
- package/dist/core/enrichment/style-resolver.d.ts.map +1 -1
- package/dist/core/enrichment/style-resolver.js +38 -18
- package/dist/core/enrichment/style-resolver.js.map +1 -1
- package/dist/core/figma-api.d.ts +18 -9
- package/dist/core/figma-api.d.ts.map +1 -1
- package/dist/core/figma-api.js +118 -54
- package/dist/core/figma-api.js.map +1 -1
- package/dist/core/figma-connector.d.ts +12 -0
- package/dist/core/figma-connector.d.ts.map +1 -1
- package/dist/core/figma-tools.d.ts.map +1 -1
- package/dist/core/figma-tools.js +179 -63
- package/dist/core/figma-tools.js.map +1 -1
- package/dist/core/port-discovery.d.ts +40 -0
- package/dist/core/port-discovery.d.ts.map +1 -1
- package/dist/core/port-discovery.js +404 -31
- package/dist/core/port-discovery.js.map +1 -1
- package/dist/core/tokens/alias-resolver.d.ts +45 -3
- package/dist/core/tokens/alias-resolver.d.ts.map +1 -1
- package/dist/core/tokens/alias-resolver.js +75 -5
- package/dist/core/tokens/alias-resolver.js.map +1 -1
- package/dist/core/tokens/config.d.ts +28 -0
- package/dist/core/tokens/config.d.ts.map +1 -1
- package/dist/core/tokens/config.js +10 -0
- package/dist/core/tokens/config.js.map +1 -1
- package/dist/core/tokens/dialect.d.ts +107 -0
- package/dist/core/tokens/dialect.d.ts.map +1 -0
- package/dist/core/tokens/dialect.js +233 -0
- package/dist/core/tokens/dialect.js.map +1 -0
- package/dist/core/tokens/figma-converter.d.ts +23 -2
- package/dist/core/tokens/figma-converter.d.ts.map +1 -1
- package/dist/core/tokens/figma-converter.js +144 -16
- package/dist/core/tokens/figma-converter.js.map +1 -1
- package/dist/core/tokens/formatters/css-vars.d.ts.map +1 -1
- package/dist/core/tokens/formatters/css-vars.js +21 -12
- package/dist/core/tokens/formatters/css-vars.js.map +1 -1
- package/dist/core/tokens/formatters/dtcg.d.ts +2 -2
- package/dist/core/tokens/formatters/dtcg.d.ts.map +1 -1
- package/dist/core/tokens/formatters/dtcg.js +106 -30
- package/dist/core/tokens/formatters/dtcg.js.map +1 -1
- package/dist/core/tokens/formatters/json.d.ts.map +1 -1
- package/dist/core/tokens/formatters/json.js +28 -10
- package/dist/core/tokens/formatters/json.js.map +1 -1
- package/dist/core/tokens/formatters/scss.d.ts.map +1 -1
- package/dist/core/tokens/formatters/scss.js +19 -13
- package/dist/core/tokens/formatters/scss.js.map +1 -1
- package/dist/core/tokens/formatters/style-dictionary-v3.d.ts.map +1 -1
- package/dist/core/tokens/formatters/style-dictionary-v3.js +15 -9
- package/dist/core/tokens/formatters/style-dictionary-v3.js.map +1 -1
- package/dist/core/tokens/formatters/tailwind-v4.d.ts.map +1 -1
- package/dist/core/tokens/formatters/tailwind-v4.js +14 -9
- package/dist/core/tokens/formatters/tailwind-v4.js.map +1 -1
- package/dist/core/tokens/formatters/tokens-studio.d.ts.map +1 -1
- package/dist/core/tokens/formatters/tokens-studio.js +11 -5
- package/dist/core/tokens/formatters/tokens-studio.js.map +1 -1
- package/dist/core/tokens/index.d.ts +2 -1
- package/dist/core/tokens/index.d.ts.map +1 -1
- package/dist/core/tokens/index.js +2 -1
- package/dist/core/tokens/index.js.map +1 -1
- package/dist/core/tokens/parsers/dtcg.js +32 -5
- package/dist/core/tokens/parsers/dtcg.js.map +1 -1
- package/dist/core/tokens/schemas.d.ts +3 -0
- package/dist/core/tokens/schemas.d.ts.map +1 -1
- package/dist/core/tokens/schemas.js +4 -0
- package/dist/core/tokens/schemas.js.map +1 -1
- package/dist/core/tokens/types.d.ts +57 -1
- package/dist/core/tokens/types.d.ts.map +1 -1
- package/dist/core/tokens/types.js.map +1 -1
- package/dist/core/tokens-tools.d.ts +250 -7
- package/dist/core/tokens-tools.d.ts.map +1 -1
- package/dist/core/tokens-tools.js +1017 -88
- package/dist/core/tokens-tools.js.map +1 -1
- package/dist/core/version-tools.d.ts.map +1 -1
- package/dist/core/version-tools.js +44 -3
- package/dist/core/version-tools.js.map +1 -1
- package/dist/core/websocket-connector.d.ts +38 -0
- package/dist/core/websocket-connector.d.ts.map +1 -1
- package/dist/core/websocket-connector.js +42 -0
- package/dist/core/websocket-connector.js.map +1 -1
- package/dist/core/websocket-server.d.ts +23 -0
- package/dist/core/websocket-server.d.ts.map +1 -1
- package/dist/core/websocket-server.js +99 -8
- package/dist/core/websocket-server.js.map +1 -1
- package/dist/core/write-tools.d.ts.map +1 -1
- package/dist/core/write-tools.js +355 -86
- package/dist/core/write-tools.js.map +1 -1
- package/dist/local.d.ts +0 -1
- package/dist/local.d.ts.map +1 -1
- package/dist/local.js +253 -63
- package/dist/local.js.map +1 -1
- package/figma-desktop-bridge/code.js +382 -28
- package/figma-desktop-bridge/ui.html +578 -292
- package/package.json +2 -2
|
@@ -18,9 +18,14 @@
|
|
|
18
18
|
* - splitByMode emits one file per mode with just that mode's values.
|
|
19
19
|
* - splitByCollection emits one file per set.
|
|
20
20
|
*/
|
|
21
|
+
import { buildTokenIndex, referenceTargetPath } from "../alias-resolver.js";
|
|
21
22
|
export function formatCssVars(doc, opts) {
|
|
22
23
|
const warnings = [];
|
|
23
24
|
const files = [];
|
|
25
|
+
// Index over the WHOLE document (not per-file subsets) so set-qualified
|
|
26
|
+
// alias references ({set-slug.path}) resolve to their target token's own
|
|
27
|
+
// path when generating var(--...) names.
|
|
28
|
+
const tokenIndex = buildTokenIndex(doc, warnings);
|
|
24
29
|
const splitByMode = opts.target.splitByMode ?? false;
|
|
25
30
|
const splitByCollection = opts.target.splitByCollection ?? false;
|
|
26
31
|
const prefix = opts.target.prefix ?? "";
|
|
@@ -30,7 +35,7 @@ export function formatCssVars(doc, opts) {
|
|
|
30
35
|
for (const mode of set.modes) {
|
|
31
36
|
files.push({
|
|
32
37
|
path: filenameFor(opts, set, mode),
|
|
33
|
-
content: renderSingleSelector(doc.sets.filter((s) => s.name === set.name), mode, selectorFor(mode), prefix, warnings),
|
|
38
|
+
content: renderSingleSelector(doc.sets.filter((s) => s.name === set.name), mode, selectorFor(mode), prefix, tokenIndex, warnings),
|
|
34
39
|
});
|
|
35
40
|
}
|
|
36
41
|
}
|
|
@@ -45,7 +50,7 @@ export function formatCssVars(doc, opts) {
|
|
|
45
50
|
const setsWithMode = doc.sets.filter((s) => s.modes.includes(mode));
|
|
46
51
|
files.push({
|
|
47
52
|
path: filenameFor(opts, undefined, mode),
|
|
48
|
-
content: renderSingleSelector(setsWithMode, mode, selectorFor(mode), prefix, warnings),
|
|
53
|
+
content: renderSingleSelector(setsWithMode, mode, selectorFor(mode), prefix, tokenIndex, warnings),
|
|
49
54
|
});
|
|
50
55
|
}
|
|
51
56
|
}
|
|
@@ -54,7 +59,7 @@ export function formatCssVars(doc, opts) {
|
|
|
54
59
|
for (const set of doc.sets) {
|
|
55
60
|
files.push({
|
|
56
61
|
path: filenameFor(opts, set),
|
|
57
|
-
content: renderMultiSelector([set], prefix, warnings),
|
|
62
|
+
content: renderMultiSelector([set], prefix, tokenIndex, warnings),
|
|
58
63
|
});
|
|
59
64
|
}
|
|
60
65
|
}
|
|
@@ -62,7 +67,7 @@ export function formatCssVars(doc, opts) {
|
|
|
62
67
|
// Single file with everything.
|
|
63
68
|
files.push({
|
|
64
69
|
path: filenameFor(opts),
|
|
65
|
-
content: renderMultiSelector(doc.sets, prefix, warnings),
|
|
70
|
+
content: renderMultiSelector(doc.sets, prefix, tokenIndex, warnings),
|
|
66
71
|
});
|
|
67
72
|
}
|
|
68
73
|
return { files, warnings };
|
|
@@ -107,7 +112,7 @@ function selectorFor(mode) {
|
|
|
107
112
|
* Render all tokens across the given sets under a single selector. Used when
|
|
108
113
|
* one file holds one mode's worth of vars (splitByMode output).
|
|
109
114
|
*/
|
|
110
|
-
function renderSingleSelector(sets, mode, selector, prefix, warnings) {
|
|
115
|
+
function renderSingleSelector(sets, mode, selector, prefix, tokenIndex, warnings) {
|
|
111
116
|
const lines = [];
|
|
112
117
|
lines.push(`/* Generated by figma-console-mcp — do not edit by hand */`);
|
|
113
118
|
lines.push(`${selector} {`);
|
|
@@ -116,7 +121,7 @@ function renderSingleSelector(sets, mode, selector, prefix, warnings) {
|
|
|
116
121
|
const value = token.values[mode];
|
|
117
122
|
if (!value)
|
|
118
123
|
continue;
|
|
119
|
-
emitTokenLines(token, value, prefix, lines, warnings);
|
|
124
|
+
emitTokenLines(token, value, prefix, tokenIndex, lines, warnings);
|
|
120
125
|
}
|
|
121
126
|
}
|
|
122
127
|
lines.push(`}`);
|
|
@@ -127,7 +132,7 @@ function renderSingleSelector(sets, mode, selector, prefix, warnings) {
|
|
|
127
132
|
* Render multiple sets across multiple modes in one file. Each mode gets its
|
|
128
133
|
* own selector block.
|
|
129
134
|
*/
|
|
130
|
-
function renderMultiSelector(sets, prefix, warnings) {
|
|
135
|
+
function renderMultiSelector(sets, prefix, tokenIndex, warnings) {
|
|
131
136
|
const lines = [];
|
|
132
137
|
lines.push(`/* Generated by figma-console-mcp — do not edit by hand */`);
|
|
133
138
|
// Collect all (mode, selector) pairs across all sets.
|
|
@@ -148,7 +153,7 @@ function renderMultiSelector(sets, prefix, warnings) {
|
|
|
148
153
|
const value = token.values[mode];
|
|
149
154
|
if (!value)
|
|
150
155
|
continue;
|
|
151
|
-
emitTokenLines(token, value, prefix, lines, warnings);
|
|
156
|
+
emitTokenLines(token, value, prefix, tokenIndex, lines, warnings);
|
|
152
157
|
}
|
|
153
158
|
}
|
|
154
159
|
lines.push(`}`);
|
|
@@ -161,7 +166,7 @@ function renderMultiSelector(sets, prefix, warnings) {
|
|
|
161
166
|
* Primitives emit one line; composite tokens (typography, shadow) expand
|
|
162
167
|
* into multiple lines.
|
|
163
168
|
*/
|
|
164
|
-
function emitTokenLines(token, value, prefix, out, warnings) {
|
|
169
|
+
function emitTokenLines(token, value, prefix, tokenIndex, out, warnings) {
|
|
165
170
|
// Every path segment must be a valid CSS identifier — slugify each to
|
|
166
171
|
// normalize spaces, dots, and other special characters that show up in
|
|
167
172
|
// real Figma variable names (e.g. "tailwind colors/purple/50").
|
|
@@ -180,9 +185,13 @@ function emitTokenLines(token, value, prefix, out, warnings) {
|
|
|
180
185
|
out.push(` /* ${cssName}: skipped — cross-library alias to ${originalId} */`);
|
|
181
186
|
return;
|
|
182
187
|
}
|
|
183
|
-
// Alias → var(--other) so CSS cascading semantics are preserved.
|
|
184
|
-
//
|
|
185
|
-
|
|
188
|
+
// Alias → var(--other) so CSS cascading semantics are preserved.
|
|
189
|
+
// Resolve set-qualified references ({set-slug.path}) to the target
|
|
190
|
+
// token's own path via the index (the target's declaration is named
|
|
191
|
+
// from its path, without the set qualifier); bare/unresolvable refs
|
|
192
|
+
// fall back to the raw reference path. Either way the segments go
|
|
193
|
+
// through the same slugify treatment as the source.
|
|
194
|
+
const refPath = referenceTargetPath(value.reference, tokenIndex);
|
|
186
195
|
const targetCssName = pathToCssName(refPath);
|
|
187
196
|
out.push(` ${cssName}: var(--${prefix}${targetCssName});`);
|
|
188
197
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-vars.js","sourceRoot":"","sources":["../../../../src/core/tokens/formatters/css-vars.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"css-vars.js","sourceRoot":"","sources":["../../../../src/core/tokens/formatters/css-vars.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
* structured $value form. Aliases emit `"$value": "{path.to.target}"`.
|
|
20
20
|
*
|
|
21
21
|
* This formatter is the canonical output — the format every other
|
|
22
|
-
* formatter (CSS variables
|
|
23
|
-
*
|
|
22
|
+
* formatter (CSS variables, Tailwind v4/v3, SCSS, TS module, JSON
|
|
23
|
+
* flat/nested, Style Dictionary v3, Tokens Studio) ultimately derives from.
|
|
24
24
|
*/
|
|
25
25
|
import type { TokenDocument } from "../types.js";
|
|
26
26
|
import type { FormatOptions, FormatResult } from "./index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dtcg.d.ts","sourceRoot":"","sources":["../../../../src/core/tokens/formatters/dtcg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAEV,aAAa,EAGd,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"dtcg.d.ts","sourceRoot":"","sources":["../../../../src/core/tokens/formatters/dtcg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAEV,aAAa,EAGd,MAAM,aAAa,CAAC;AAQrB,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAoB9D,wBAAgB,UAAU,CACxB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,aAAa,GAClB,YAAY,CAmEd"}
|
|
@@ -19,11 +19,12 @@
|
|
|
19
19
|
* structured $value form. Aliases emit `"$value": "{path.to.target}"`.
|
|
20
20
|
*
|
|
21
21
|
* This formatter is the canonical output — the format every other
|
|
22
|
-
* formatter (CSS variables
|
|
23
|
-
*
|
|
22
|
+
* formatter (CSS variables, Tailwind v4/v3, SCSS, TS module, JSON
|
|
23
|
+
* flat/nested, Style Dictionary v3, Tokens Studio) ultimately derives from.
|
|
24
24
|
*/
|
|
25
25
|
import { FIGMA_MCP_EXTENSION_KEY } from "../types.js";
|
|
26
26
|
import { formatDtcgReference } from "../alias-resolver.js";
|
|
27
|
+
import { colorValueTo2025, dimensionLiteralTo2025, } from "../dialect.js";
|
|
27
28
|
export function formatDtcg(doc, opts) {
|
|
28
29
|
const warnings = [];
|
|
29
30
|
const files = [];
|
|
@@ -35,6 +36,9 @@ export function formatDtcg(doc, opts) {
|
|
|
35
36
|
// 4. neither → one file with everything
|
|
36
37
|
const splitByMode = opts.target.splitByMode ?? false;
|
|
37
38
|
const splitByCollection = opts.target.splitByCollection ?? false;
|
|
39
|
+
// Value-encoding dialect. 'legacy' (default) is byte-identical to the
|
|
40
|
+
// historical output; '2025' opts into DTCG 2025.10 object colors/dimensions.
|
|
41
|
+
const dialect = opts.target.dtcgDialect ?? "legacy";
|
|
38
42
|
if (splitByMode && splitByCollection) {
|
|
39
43
|
for (const set of doc.sets) {
|
|
40
44
|
for (const mode of set.modes) {
|
|
@@ -43,7 +47,7 @@ export function formatDtcg(doc, opts) {
|
|
|
43
47
|
.filter((t) => t !== null);
|
|
44
48
|
files.push({
|
|
45
49
|
path: filenameFor(opts, set, mode),
|
|
46
|
-
content: serializeAsDtcg({ sets: [{ ...set, modes: [mode], tokens: fileTokens }], meta: doc.meta }, warnings, mode),
|
|
50
|
+
content: serializeAsDtcg({ sets: [{ ...set, modes: [mode], tokens: fileTokens }], meta: doc.meta }, warnings, dialect, mode),
|
|
47
51
|
});
|
|
48
52
|
}
|
|
49
53
|
}
|
|
@@ -65,7 +69,7 @@ export function formatDtcg(doc, opts) {
|
|
|
65
69
|
}));
|
|
66
70
|
files.push({
|
|
67
71
|
path: filenameFor(opts, undefined, mode),
|
|
68
|
-
content: serializeAsDtcg({ sets: fileSets, meta: doc.meta }, warnings, mode),
|
|
72
|
+
content: serializeAsDtcg({ sets: fileSets, meta: doc.meta }, warnings, dialect, mode),
|
|
69
73
|
});
|
|
70
74
|
}
|
|
71
75
|
}
|
|
@@ -73,14 +77,14 @@ export function formatDtcg(doc, opts) {
|
|
|
73
77
|
for (const set of doc.sets) {
|
|
74
78
|
files.push({
|
|
75
79
|
path: filenameFor(opts, set),
|
|
76
|
-
content: serializeAsDtcg({ sets: [set], meta: doc.meta }, warnings),
|
|
80
|
+
content: serializeAsDtcg({ sets: [set], meta: doc.meta }, warnings, dialect),
|
|
77
81
|
});
|
|
78
82
|
}
|
|
79
83
|
}
|
|
80
84
|
else {
|
|
81
85
|
files.push({
|
|
82
86
|
path: filenameFor(opts),
|
|
83
|
-
content: serializeAsDtcg(doc, warnings),
|
|
87
|
+
content: serializeAsDtcg(doc, warnings, dialect),
|
|
84
88
|
});
|
|
85
89
|
}
|
|
86
90
|
return { files, warnings };
|
|
@@ -131,7 +135,7 @@ function slugify(s) {
|
|
|
131
135
|
* file represents — otherwise the parser sees only `$value` literals and
|
|
132
136
|
* labels them "Default", which breaks round-trip diffs on multi-mode files.
|
|
133
137
|
*/
|
|
134
|
-
function serializeAsDtcg(doc, warnings, fileMode) {
|
|
138
|
+
function serializeAsDtcg(doc, warnings, dialect, fileMode) {
|
|
135
139
|
// Build the nested DTCG group tree by walking every token's path and
|
|
136
140
|
// building groups along the way.
|
|
137
141
|
const tree = {};
|
|
@@ -176,7 +180,7 @@ function serializeAsDtcg(doc, warnings, fileMode) {
|
|
|
176
180
|
tree[setKey] = setGroup;
|
|
177
181
|
}
|
|
178
182
|
for (const token of set.tokens) {
|
|
179
|
-
writeTokenIntoTree(setGroup, token, set.modes, warnings);
|
|
183
|
+
writeTokenIntoTree(setGroup, token, set.modes, warnings, dialect, fileMode);
|
|
180
184
|
}
|
|
181
185
|
}
|
|
182
186
|
return JSON.stringify(sortKeys(tree), null, 2) + "\n";
|
|
@@ -193,20 +197,58 @@ function setKeyFor(set) {
|
|
|
193
197
|
/**
|
|
194
198
|
* Insert a token into the DTCG group tree at the right nested path.
|
|
195
199
|
* Creates intermediate groups as needed.
|
|
200
|
+
*
|
|
201
|
+
* Leaf/group name conflicts (a variable named "color" alongside
|
|
202
|
+
* "color/primary") are kept — the leaf is emitted under the reserved "@"
|
|
203
|
+
* key inside the group, flagged with `leafRemap: true` in its
|
|
204
|
+
* figma-console-mcp $extensions so the parser can restore the original
|
|
205
|
+
* name on round-trip. A warning names both sides of the conflict.
|
|
196
206
|
*/
|
|
197
|
-
function writeTokenIntoTree(root, token, setModes, warnings) {
|
|
207
|
+
function writeTokenIntoTree(root, token, setModes, warnings, dialect, fileMode) {
|
|
198
208
|
let cursor = root;
|
|
199
209
|
for (let i = 0; i < token.path.length - 1; i++) {
|
|
200
210
|
const segment = token.path[i];
|
|
201
211
|
let next = cursor[segment];
|
|
202
|
-
if (
|
|
212
|
+
if (next && isToken(next)) {
|
|
213
|
+
// A leaf token already occupies this segment and we need a group
|
|
214
|
+
// here. Keep both: demote the existing leaf to the reserved "@" key
|
|
215
|
+
// inside the new group.
|
|
216
|
+
const conflictPath = token.path.slice(0, i + 1).join("/");
|
|
217
|
+
warnings.push(`Name conflict: "${conflictPath}" is both a token and a group (needed by "${token.path.join("/")}"). Kept both — the leaf token "${conflictPath}" was emitted under "${conflictPath}/@" and round-trips back to its original name.`);
|
|
218
|
+
const group = { "@": markLeafRemap(next) };
|
|
219
|
+
cursor[segment] = group;
|
|
220
|
+
next = group;
|
|
221
|
+
}
|
|
222
|
+
else if (!next) {
|
|
203
223
|
next = {};
|
|
204
224
|
cursor[segment] = next;
|
|
205
225
|
}
|
|
206
226
|
cursor = next;
|
|
207
227
|
}
|
|
208
228
|
const leafKey = token.path[token.path.length - 1];
|
|
209
|
-
|
|
229
|
+
const rendered = renderToken(token, setModes, warnings, dialect, fileMode);
|
|
230
|
+
const existing = cursor[leafKey];
|
|
231
|
+
if (existing &&
|
|
232
|
+
typeof existing === "object" &&
|
|
233
|
+
!isToken(existing)) {
|
|
234
|
+
// A group already exists at this name (some other token nests under
|
|
235
|
+
// it). Keep both: emit this leaf under the reserved "@" key.
|
|
236
|
+
const conflictPath = token.path.join("/");
|
|
237
|
+
warnings.push(`Name conflict: token "${conflictPath}" collides with the group "${conflictPath}" (created by tokens nested under it). Kept both — the leaf was emitted under "${conflictPath}/@" and round-trips back to its original name.`);
|
|
238
|
+
existing["@"] = markLeafRemap(rendered);
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
cursor[leafKey] = rendered;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Flag a rendered leaf token as remapped under the reserved "@" key so the
|
|
245
|
+
* parser can strip that synthetic path segment on round-trip.
|
|
246
|
+
*/
|
|
247
|
+
function markLeafRemap(tok) {
|
|
248
|
+
const existing = tok.$extensions?.[FIGMA_MCP_EXTENSION_KEY] ?? {};
|
|
249
|
+
tok.$extensions ??= {};
|
|
250
|
+
tok.$extensions[FIGMA_MCP_EXTENSION_KEY] = { ...existing, leafRemap: true };
|
|
251
|
+
return tok;
|
|
210
252
|
}
|
|
211
253
|
function isToken(node) {
|
|
212
254
|
return "$value" in node;
|
|
@@ -215,11 +257,15 @@ function isToken(node) {
|
|
|
215
257
|
* Convert an internal Token to its DTCG-encoded leaf form.
|
|
216
258
|
*
|
|
217
259
|
* Single-mode token: emits `{ $value, $type, ... }`.
|
|
218
|
-
* Multi-mode token: emits
|
|
219
|
-
*
|
|
220
|
-
*
|
|
260
|
+
* Multi-mode token: emits the primary mode as `$value` and stashes BOTH the
|
|
261
|
+
* primary mode's name (`primaryMode`) and the remaining mode values
|
|
262
|
+
* (`modes`) under `$extensions["figma-console-mcp"]`, because vanilla DTCG
|
|
263
|
+
* doesn't have a native multi-mode encoding. The parser reads the same keys
|
|
264
|
+
* back, so a Light/Dark collection round-trips losslessly even without
|
|
265
|
+
* splitByMode. Callers who want one-file-per-mode should set splitByMode at
|
|
266
|
+
* the formatter level.
|
|
221
267
|
*/
|
|
222
|
-
function renderToken(token, setModes, warnings) {
|
|
268
|
+
function renderToken(token, setModes, warnings, dialect, fileMode) {
|
|
223
269
|
const result = {
|
|
224
270
|
$value: "",
|
|
225
271
|
$type: token.type,
|
|
@@ -228,23 +274,16 @@ function renderToken(token, setModes, warnings) {
|
|
|
228
274
|
result.$description = token.description;
|
|
229
275
|
const modeKeys = Object.keys(token.values);
|
|
230
276
|
const isSingleMode = modeKeys.length === 1;
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
// $value, stash the rest in $extensions for round-trip.
|
|
238
|
-
const primaryMode = setModes[0] in token.values ? setModes[0] : modeKeys[0];
|
|
239
|
-
result.$value = encodeValue(token.values[primaryMode], token, warnings);
|
|
240
|
-
const otherModes = {};
|
|
277
|
+
// Pick the primary mode: the set's first mode when the token has a value
|
|
278
|
+
// for it, otherwise the token's first mode.
|
|
279
|
+
const primaryMode = setModes[0] in token.values ? setModes[0] : modeKeys[0];
|
|
280
|
+
result.$value = encodeValue(token.values[primaryMode], token, warnings, dialect);
|
|
281
|
+
const otherModes = {};
|
|
282
|
+
if (!isSingleMode) {
|
|
241
283
|
for (const m of modeKeys) {
|
|
242
284
|
if (m === primaryMode)
|
|
243
285
|
continue;
|
|
244
|
-
otherModes[m] = encodeValue(token.values[m], token, warnings);
|
|
245
|
-
}
|
|
246
|
-
if (Object.keys(otherModes).length > 0) {
|
|
247
|
-
mergeExtension(result, "modes", otherModes);
|
|
286
|
+
otherModes[m] = encodeValue(token.values[m], token, warnings, dialect);
|
|
248
287
|
}
|
|
249
288
|
}
|
|
250
289
|
// Preserve any pre-existing extensions (e.g. studio.tokens, our own metadata).
|
|
@@ -258,9 +297,29 @@ function renderToken(token, setModes, warnings) {
|
|
|
258
297
|
}
|
|
259
298
|
}
|
|
260
299
|
}
|
|
300
|
+
// Mode round-trip metadata goes under OUR extension key (merged on top of
|
|
301
|
+
// any preserved figma-console-mcp payload so variableId etc. survive):
|
|
302
|
+
// - `primaryMode` whenever the parser couldn't otherwise recover the
|
|
303
|
+
// primary mode's name (i.e. it isn't covered by the file-level
|
|
304
|
+
// fileMode stamp and isn't the "Default" fallback).
|
|
305
|
+
// - `modes` with every non-primary mode's value for multi-mode tokens.
|
|
306
|
+
const needsPrimaryStash = primaryMode !== (fileMode ?? "Default");
|
|
307
|
+
const hasOtherModes = Object.keys(otherModes).length > 0;
|
|
308
|
+
if (needsPrimaryStash || hasOtherModes) {
|
|
309
|
+
const existing = result.$extensions?.[FIGMA_MCP_EXTENSION_KEY] ?? {};
|
|
310
|
+
mergeExtension(result, FIGMA_MCP_EXTENSION_KEY, {
|
|
311
|
+
...existing,
|
|
312
|
+
primaryMode,
|
|
313
|
+
...(hasOtherModes ? { modes: otherModes } : {}),
|
|
314
|
+
});
|
|
315
|
+
}
|
|
261
316
|
return result;
|
|
262
317
|
}
|
|
263
|
-
function encodeValue(value, token, warnings) {
|
|
318
|
+
function encodeValue(value, token, warnings, dialect) {
|
|
319
|
+
if (!value) {
|
|
320
|
+
warnings.push(`Token ${token.path.join(".")} has no mode values — emitting empty string.`);
|
|
321
|
+
return "";
|
|
322
|
+
}
|
|
264
323
|
if (value.reference) {
|
|
265
324
|
return formatDtcgReference(value.reference.replace(/^\{|\}$/g, "").split("."));
|
|
266
325
|
}
|
|
@@ -268,6 +327,23 @@ function encodeValue(value, token, warnings) {
|
|
|
268
327
|
warnings.push(`Token ${token.path.join(".")} has neither literal nor reference — emitting empty string.`);
|
|
269
328
|
return "";
|
|
270
329
|
}
|
|
330
|
+
// DTCG 2025.10 dialect: colors emit the object form (components from the
|
|
331
|
+
// converter's full-precision rawColor floats, hex kept as the interop
|
|
332
|
+
// courtesy field); dimension-typed bare numbers emit { value, unit: "px" }.
|
|
333
|
+
// duration already emits { value, unit: "ms" } in both dialects. Anything
|
|
334
|
+
// the encoders don't recognize keeps the legacy rendering.
|
|
335
|
+
if (dialect === "2025") {
|
|
336
|
+
if (token.type === "color") {
|
|
337
|
+
const encoded = colorValueTo2025(value);
|
|
338
|
+
if (encoded)
|
|
339
|
+
return encoded;
|
|
340
|
+
}
|
|
341
|
+
else if (token.type === "dimension") {
|
|
342
|
+
const encoded = dimensionLiteralTo2025(value.literal);
|
|
343
|
+
if (encoded)
|
|
344
|
+
return encoded;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
271
347
|
return value.literal;
|
|
272
348
|
}
|
|
273
349
|
function mergeExtension(token, key, payload) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dtcg.js","sourceRoot":"","sources":["../../../../src/core/tokens/formatters/dtcg.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dtcg.js","sourceRoot":"","sources":["../../../../src/core/tokens/formatters/dtcg.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../../src/core/tokens/formatters/json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAS,aAAa,EAAwB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../../src/core/tokens/formatters/json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAS,aAAa,EAAwB,MAAM,aAAa,CAAC;AAO9E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE9D,wBAAgB,cAAc,CAC5B,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,aAAa,GAClB,YAAY,CA0Bd;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,aAAa,GAClB,YAAY,CAuBd"}
|
|
@@ -31,11 +31,13 @@
|
|
|
31
31
|
* aliases get a `null` (caller can decide how to fill those in).
|
|
32
32
|
*/
|
|
33
33
|
import { buildTokenIndex, resolveAliasChain } from "../alias-resolver.js";
|
|
34
|
+
import { colorValueTo2025, dimensionLiteralTo2025, } from "../dialect.js";
|
|
34
35
|
export function formatJsonFlat(doc, opts) {
|
|
35
36
|
const warnings = [];
|
|
36
37
|
const files = [];
|
|
37
38
|
const splitByCollection = opts.target.splitByCollection ?? false;
|
|
38
39
|
const prefix = opts.target.prefix ?? "";
|
|
40
|
+
const dialect = opts.target.dtcgDialect ?? "legacy";
|
|
39
41
|
// Plain JSON has no native alias mechanism — resolve aliases to their
|
|
40
42
|
// literal target so consumers get usable values, not opaque `{ref}` strings.
|
|
41
43
|
const tokenIndex = buildTokenIndex(doc);
|
|
@@ -43,14 +45,14 @@ export function formatJsonFlat(doc, opts) {
|
|
|
43
45
|
for (const set of doc.sets) {
|
|
44
46
|
files.push({
|
|
45
47
|
path: filenameFor(opts, set, "flat"),
|
|
46
|
-
content: renderFlat([set], prefix, tokenIndex, warnings),
|
|
48
|
+
content: renderFlat([set], prefix, tokenIndex, warnings, dialect),
|
|
47
49
|
});
|
|
48
50
|
}
|
|
49
51
|
}
|
|
50
52
|
else {
|
|
51
53
|
files.push({
|
|
52
54
|
path: filenameFor(opts, undefined, "flat"),
|
|
53
|
-
content: renderFlat(doc.sets, prefix, tokenIndex, warnings),
|
|
55
|
+
content: renderFlat(doc.sets, prefix, tokenIndex, warnings, dialect),
|
|
54
56
|
});
|
|
55
57
|
}
|
|
56
58
|
return { files, warnings };
|
|
@@ -59,19 +61,20 @@ export function formatJsonNested(doc, opts) {
|
|
|
59
61
|
const warnings = [];
|
|
60
62
|
const files = [];
|
|
61
63
|
const splitByCollection = opts.target.splitByCollection ?? false;
|
|
64
|
+
const dialect = opts.target.dtcgDialect ?? "legacy";
|
|
62
65
|
const tokenIndex = buildTokenIndex(doc);
|
|
63
66
|
if (splitByCollection) {
|
|
64
67
|
for (const set of doc.sets) {
|
|
65
68
|
files.push({
|
|
66
69
|
path: filenameFor(opts, set, "nested"),
|
|
67
|
-
content: renderNested([set], tokenIndex, warnings),
|
|
70
|
+
content: renderNested([set], tokenIndex, warnings, dialect),
|
|
68
71
|
});
|
|
69
72
|
}
|
|
70
73
|
}
|
|
71
74
|
else {
|
|
72
75
|
files.push({
|
|
73
76
|
path: filenameFor(opts, undefined, "nested"),
|
|
74
|
-
content: renderNested(doc.sets, tokenIndex, warnings),
|
|
77
|
+
content: renderNested(doc.sets, tokenIndex, warnings, dialect),
|
|
75
78
|
});
|
|
76
79
|
}
|
|
77
80
|
return { files, warnings };
|
|
@@ -92,7 +95,7 @@ function slugify(s) {
|
|
|
92
95
|
.replace(/[^a-z0-9]+/g, "-")
|
|
93
96
|
.replace(/^-+|-+$/g, "");
|
|
94
97
|
}
|
|
95
|
-
function renderFlat(sets, prefix, tokenIndex, warnings) {
|
|
98
|
+
function renderFlat(sets, prefix, tokenIndex, warnings, dialect) {
|
|
96
99
|
const out = {};
|
|
97
100
|
for (const set of sets) {
|
|
98
101
|
const primaryMode = pickPrimaryMode(set.modes);
|
|
@@ -102,7 +105,7 @@ function renderFlat(sets, prefix, tokenIndex, warnings) {
|
|
|
102
105
|
const key = modeName === primaryMode
|
|
103
106
|
? baseName
|
|
104
107
|
: `${baseName}--${slugify(modeName)}`;
|
|
105
|
-
const resolved = resolveValue(value, token, modeName, tokenIndex, warnings);
|
|
108
|
+
const resolved = resolveValue(value, token, modeName, tokenIndex, warnings, dialect);
|
|
106
109
|
if (resolved !== undefined)
|
|
107
110
|
out[key] = resolved;
|
|
108
111
|
}
|
|
@@ -112,7 +115,7 @@ function renderFlat(sets, prefix, tokenIndex, warnings) {
|
|
|
112
115
|
const sorted = Object.fromEntries(Object.entries(out).sort(([a], [b]) => a.localeCompare(b)));
|
|
113
116
|
return JSON.stringify(sorted, null, 2) + "\n";
|
|
114
117
|
}
|
|
115
|
-
function renderNested(sets, tokenIndex, warnings) {
|
|
118
|
+
function renderNested(sets, tokenIndex, warnings, dialect) {
|
|
116
119
|
const out = {};
|
|
117
120
|
for (const set of sets) {
|
|
118
121
|
const isMultiMode = set.modes.length > 1;
|
|
@@ -131,7 +134,7 @@ function renderNested(sets, tokenIndex, warnings) {
|
|
|
131
134
|
if (isMultiMode) {
|
|
132
135
|
const modeValues = {};
|
|
133
136
|
for (const [modeName, value] of Object.entries(token.values)) {
|
|
134
|
-
const resolved = resolveValue(value, token, modeName, tokenIndex, warnings);
|
|
137
|
+
const resolved = resolveValue(value, token, modeName, tokenIndex, warnings, dialect);
|
|
135
138
|
if (resolved !== undefined)
|
|
136
139
|
modeValues[modeName] = resolved;
|
|
137
140
|
}
|
|
@@ -140,7 +143,7 @@ function renderNested(sets, tokenIndex, warnings) {
|
|
|
140
143
|
else {
|
|
141
144
|
const [onlyModeName, onlyValue] = Object.entries(token.values)[0] ?? [];
|
|
142
145
|
if (onlyValue) {
|
|
143
|
-
const resolved = resolveValue(onlyValue, token, onlyModeName, tokenIndex, warnings);
|
|
146
|
+
const resolved = resolveValue(onlyValue, token, onlyModeName, tokenIndex, warnings, dialect);
|
|
144
147
|
if (resolved !== undefined)
|
|
145
148
|
cursor[leafKey] = resolved;
|
|
146
149
|
}
|
|
@@ -152,7 +155,7 @@ function renderNested(sets, tokenIndex, warnings) {
|
|
|
152
155
|
function pickPrimaryMode(modes) {
|
|
153
156
|
return modes.find((m) => /^(default|light|value)$/i.test(m)) ?? modes[0];
|
|
154
157
|
}
|
|
155
|
-
function resolveValue(value, token, mode, tokenIndex, warnings) {
|
|
158
|
+
function resolveValue(value, token, mode, tokenIndex, warnings, dialect) {
|
|
156
159
|
let effective = value;
|
|
157
160
|
if (value.reference) {
|
|
158
161
|
effective = resolveAliasChain(value, mode, tokenIndex);
|
|
@@ -168,6 +171,21 @@ function resolveValue(value, token, mode, tokenIndex, warnings) {
|
|
|
168
171
|
if (!effective || effective.literal === undefined || effective.literal === null) {
|
|
169
172
|
return undefined;
|
|
170
173
|
}
|
|
174
|
+
// DTCG 2025.10 dialect (opt-in): colors emit the object form, dimensions
|
|
175
|
+
// emit { value, unit: "px" }. Legacy (default) keeps hex strings and
|
|
176
|
+
// "16px" strings — byte-identical to historical output.
|
|
177
|
+
if (dialect === "2025") {
|
|
178
|
+
if (token.type === "color") {
|
|
179
|
+
const encoded = colorValueTo2025(effective);
|
|
180
|
+
if (encoded)
|
|
181
|
+
return encoded;
|
|
182
|
+
}
|
|
183
|
+
else if (token.type === "dimension") {
|
|
184
|
+
const encoded = dimensionLiteralTo2025(effective.literal);
|
|
185
|
+
if (encoded)
|
|
186
|
+
return encoded;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
171
189
|
if (typeof effective.literal === "number") {
|
|
172
190
|
if (token.type === "dimension")
|
|
173
191
|
return `${effective.literal}px`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../../src/core/tokens/formatters/json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../../src/core/tokens/formatters/json.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scss.d.ts","sourceRoot":"","sources":["../../../../src/core/tokens/formatters/scss.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAS,aAAa,EAAwB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"scss.d.ts","sourceRoot":"","sources":["../../../../src/core/tokens/formatters/scss.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAS,aAAa,EAAwB,MAAM,aAAa,CAAC;AAE9E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE9D,wBAAgB,UAAU,CACxB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,aAAa,GAClB,YAAY,CA8Cd"}
|