@bilalba/fig-mcp 1.1.3 → 1.1.5

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.
@@ -0,0 +1,580 @@
1
+ /**
2
+ * Instance Resolver - Extracts and resolves INSTANCE content from symbolOverrides
3
+ *
4
+ * INSTANCE nodes in .fig files reference SYMBOL (component) definitions.
5
+ * The actual content (text, colors, sizes) is stored in symbolOverrides,
6
+ * which use internal guidPaths that don't map directly to tree node GUIDs.
7
+ *
8
+ * This module provides helpers to:
9
+ * 1. Extract meaningful content from INSTANCE overrides
10
+ * 2. Build a resolved representation for rendering/display
11
+ */
12
+ import { formatGUID } from "./kiwi-parser.js";
13
+ /**
14
+ * Extract Color from a paint object
15
+ */
16
+ function extractColor(paint) {
17
+ if (!paint || typeof paint !== "object")
18
+ return undefined;
19
+ const p = paint;
20
+ if (p.visible === false)
21
+ return undefined;
22
+ const color = p.color;
23
+ if (!color)
24
+ return undefined;
25
+ return {
26
+ r: color.r ?? 0,
27
+ g: color.g ?? 0,
28
+ b: color.b ?? 0,
29
+ a: color.a ?? 1,
30
+ };
31
+ }
32
+ function guidPathToString(path) {
33
+ const guids = path?.guids;
34
+ if (!guids)
35
+ return "";
36
+ return guids
37
+ .map((g) => {
38
+ const guid = g;
39
+ return `${guid.sessionID}:${guid.localID}`;
40
+ })
41
+ .join(">");
42
+ }
43
+ function parseGUID(value) {
44
+ if (!value || typeof value !== "object")
45
+ return undefined;
46
+ const guid = value;
47
+ const sessionID = guid.sessionID;
48
+ const localID = guid.localID;
49
+ if (typeof sessionID !== "number" || typeof localID !== "number")
50
+ return undefined;
51
+ return { sessionID, localID };
52
+ }
53
+ function buildOverridePathMap(root, rawNodeIndex, nodeIndex) {
54
+ const pathMap = new Map();
55
+ const symbolStack = new Set();
56
+ const walk = (node, path, skipOverrideKey) => {
57
+ const nodeId = formatGUID(node.guid);
58
+ const raw = rawNodeIndex.get(nodeId);
59
+ const overrideKey = raw?.overrideKey;
60
+ const overrideKeyString = overrideKey ? `${overrideKey.sessionID}:${overrideKey.localID}` : null;
61
+ const nextPath = overrideKeyString && !skipOverrideKey ? [...path, overrideKeyString] : path;
62
+ if (overrideKeyString && !skipOverrideKey) {
63
+ const fullPath = nextPath.join(">");
64
+ pathMap.set(fullPath, nodeId);
65
+ if (nextPath.length > 1) {
66
+ pathMap.set(nextPath.slice(1).join(">"), nodeId);
67
+ }
68
+ }
69
+ if (node.type === "INSTANCE" &&
70
+ node.symbolData?.symbolID) {
71
+ const symbolId = formatGUID(node.symbolData.symbolID);
72
+ const symbolNode = nodeIndex.get(symbolId);
73
+ if (symbolNode?.children && !symbolStack.has(symbolId)) {
74
+ symbolStack.add(symbolId);
75
+ for (const child of symbolNode.children) {
76
+ walk(child, nextPath, false);
77
+ }
78
+ symbolStack.delete(symbolId);
79
+ }
80
+ }
81
+ if (node.children) {
82
+ for (const child of node.children) {
83
+ walk(child, nextPath, false);
84
+ }
85
+ }
86
+ };
87
+ walk(root, [], false);
88
+ return pathMap;
89
+ }
90
+ function buildOverrideData(instance, rawNodeChange) {
91
+ const overrides = new Map();
92
+ const sceneNode = instance;
93
+ const rawSymbolData = rawNodeChange?.symbolData;
94
+ const symbolOverrides = (rawSymbolData?.symbolOverrides || sceneNode.symbolData?.symbolOverrides || []);
95
+ const derivedSymbolData = (rawNodeChange?.derivedSymbolData || []);
96
+ const upsert = (path) => {
97
+ if (!overrides.has(path)) {
98
+ overrides.set(path, {});
99
+ }
100
+ return overrides.get(path);
101
+ };
102
+ for (const override of symbolOverrides) {
103
+ if (!override || typeof override !== "object")
104
+ continue;
105
+ const o = override;
106
+ const path = guidPathToString(o.guidPath);
107
+ if (!path)
108
+ continue;
109
+ const entry = upsert(path);
110
+ if (typeof o.characters === "string") {
111
+ entry.characters = o.characters;
112
+ }
113
+ if (Array.isArray(o.fillPaints)) {
114
+ entry.fillPaints = o.fillPaints;
115
+ }
116
+ if (Array.isArray(o.strokePaints)) {
117
+ entry.strokePaints = o.strokePaints;
118
+ }
119
+ if (typeof o.cornerRadius === "number") {
120
+ entry.cornerRadius = o.cornerRadius;
121
+ }
122
+ if (o.rectangleTopLeftCornerRadius || o.rectangleTopRightCornerRadius || o.rectangleBottomRightCornerRadius || o.rectangleBottomLeftCornerRadius) {
123
+ entry.rectangleCornerRadius = {
124
+ topLeft: o.rectangleTopLeftCornerRadius,
125
+ topRight: o.rectangleTopRightCornerRadius,
126
+ bottomRight: o.rectangleBottomRightCornerRadius,
127
+ bottomLeft: o.rectangleBottomLeftCornerRadius,
128
+ };
129
+ }
130
+ if (typeof o.fontSize === "number") {
131
+ entry.fontSize = o.fontSize;
132
+ }
133
+ if (o.fontName && typeof o.fontName === "object") {
134
+ entry.fontName = o.fontName;
135
+ }
136
+ if (typeof o.textAlignHorizontal === "string") {
137
+ entry.textAlignHorizontal = o.textAlignHorizontal;
138
+ }
139
+ if (o.lineHeight && typeof o.lineHeight === "object") {
140
+ entry.lineHeight = o.lineHeight;
141
+ }
142
+ if (typeof o.textAutoResize === "string") {
143
+ entry.textAutoResize = o.textAutoResize;
144
+ }
145
+ if (o.size && typeof o.size === "object") {
146
+ const size = o.size;
147
+ entry.size = { x: size.x ?? 0, y: size.y ?? 0 };
148
+ }
149
+ const propAssignments = o.componentPropAssignments;
150
+ if (propAssignments) {
151
+ for (const assign of propAssignments) {
152
+ if (!assign || typeof assign !== "object")
153
+ continue;
154
+ const a = assign;
155
+ const value = a.value;
156
+ const textValue = value?.textValue;
157
+ const characters = textValue?.characters;
158
+ const boolValue = value?.boolValue;
159
+ const guidValue = parseGUID(value?.guidValue);
160
+ const def = a.defID;
161
+ if (def) {
162
+ if (!entry.componentPropAssignments)
163
+ entry.componentPropAssignments = [];
164
+ entry.componentPropAssignments.push({
165
+ defId: `${def.sessionID}:${def.localID}`,
166
+ characters: characters,
167
+ visible: typeof boolValue === "boolean" ? boolValue : undefined,
168
+ symbolId: guidValue,
169
+ });
170
+ }
171
+ else if (characters) {
172
+ entry.characters = characters;
173
+ }
174
+ }
175
+ }
176
+ }
177
+ for (const derived of derivedSymbolData) {
178
+ if (!derived || typeof derived !== "object")
179
+ continue;
180
+ const d = derived;
181
+ const path = guidPathToString(d.guidPath);
182
+ if (!path)
183
+ continue;
184
+ const entry = upsert(path);
185
+ if (d.size && typeof d.size === "object") {
186
+ const size = d.size;
187
+ entry.size = { x: size.x ?? 0, y: size.y ?? 0 };
188
+ }
189
+ if (d.derivedTextData) {
190
+ entry.derivedTextData = d.derivedTextData;
191
+ }
192
+ if (d.fillGeometry) {
193
+ entry.fillGeometry = d.fillGeometry;
194
+ }
195
+ if (d.strokeGeometry) {
196
+ entry.strokeGeometry = d.strokeGeometry;
197
+ }
198
+ if (d.transform && typeof d.transform === "object") {
199
+ const t = d.transform;
200
+ entry.transform = {
201
+ m00: t.m00 ?? 1,
202
+ m01: t.m01 ?? 0,
203
+ m02: t.m02 ?? 0,
204
+ m10: t.m10 ?? 0,
205
+ m11: t.m11 ?? 1,
206
+ m12: t.m12 ?? 0,
207
+ };
208
+ }
209
+ }
210
+ return overrides;
211
+ }
212
+ function applyOverrideToNode(node, override) {
213
+ if (override.characters) {
214
+ node.characters = override.characters;
215
+ }
216
+ if (override.fillPaints) {
217
+ node.fills = override.fillPaints;
218
+ }
219
+ if (override.strokePaints) {
220
+ node.strokes = override.strokePaints;
221
+ }
222
+ if (override.cornerRadius !== undefined) {
223
+ node.cornerRadius = override.cornerRadius;
224
+ }
225
+ else if (override.rectangleCornerRadius) {
226
+ node.cornerRadius = {
227
+ topLeft: override.rectangleCornerRadius.topLeft ?? 0,
228
+ topRight: override.rectangleCornerRadius.topRight ?? 0,
229
+ bottomRight: override.rectangleCornerRadius.bottomRight ?? 0,
230
+ bottomLeft: override.rectangleCornerRadius.bottomLeft ?? 0,
231
+ };
232
+ }
233
+ if (override.size) {
234
+ node.width = override.size.x;
235
+ node.height = override.size.y;
236
+ node.size = { x: override.size.x, y: override.size.y };
237
+ }
238
+ if (override.derivedTextData) {
239
+ node.derivedTextData = override.derivedTextData;
240
+ }
241
+ if (override.fillGeometry) {
242
+ node.fillGeometry = override.fillGeometry;
243
+ }
244
+ if (override.strokeGeometry) {
245
+ node.strokeGeometry = override.strokeGeometry;
246
+ }
247
+ if (override.transform) {
248
+ node.transform = override.transform;
249
+ }
250
+ if (override.visible !== undefined) {
251
+ node.visible = override.visible;
252
+ }
253
+ if (override.overrideSymbolId) {
254
+ if (!node.symbolData)
255
+ node.symbolData = {};
256
+ node.symbolData.symbolID = override.overrideSymbolId;
257
+ node.children = undefined;
258
+ }
259
+ if (override.fontName ||
260
+ override.fontSize !== undefined ||
261
+ override.lineHeight?.value !== undefined ||
262
+ override.textAutoResize) {
263
+ const style = { ...(node.style ?? {}) };
264
+ if (override.fontName?.family) {
265
+ style.fontFamily = override.fontName.family;
266
+ }
267
+ if (override.fontSize !== undefined) {
268
+ style.fontSize = override.fontSize;
269
+ }
270
+ if (override.textAlignHorizontal === "LEFT" ||
271
+ override.textAlignHorizontal === "CENTER" ||
272
+ override.textAlignHorizontal === "RIGHT" ||
273
+ override.textAlignHorizontal === "JUSTIFIED") {
274
+ style.textAlignHorizontal = override.textAlignHorizontal;
275
+ }
276
+ if (override.lineHeight?.value !== undefined) {
277
+ style.lineHeightPx = override.lineHeight.value;
278
+ }
279
+ if (override.textAutoResize === "NONE" ||
280
+ override.textAutoResize === "HEIGHT" ||
281
+ override.textAutoResize === "WIDTH_AND_HEIGHT" ||
282
+ override.textAutoResize === "TRUNCATE") {
283
+ style.textAutoResize = override.textAutoResize;
284
+ }
285
+ node.style = style;
286
+ }
287
+ }
288
+ function applyComponentPropAssignments(instanceNodeId, assignments, nodeIndex, rawNodeIndex, overrideByNodeId) {
289
+ const instanceNode = nodeIndex.get(instanceNodeId);
290
+ if (!instanceNode?.symbolData?.symbolID)
291
+ return;
292
+ const symbolId = formatGUID(instanceNode.symbolData.symbolID);
293
+ const symbolNode = nodeIndex.get(symbolId);
294
+ if (!symbolNode)
295
+ return;
296
+ const byDefId = new Map();
297
+ for (const assign of assignments) {
298
+ byDefId.set(assign.defId, {
299
+ characters: assign.characters,
300
+ visible: assign.visible,
301
+ symbolId: assign.symbolId,
302
+ });
303
+ }
304
+ const walk = (node) => {
305
+ const nodeId = formatGUID(node.guid);
306
+ const raw = rawNodeIndex.get(nodeId);
307
+ const refs = raw?.componentPropRefs;
308
+ if (refs) {
309
+ for (const ref of refs) {
310
+ const def = ref.defID;
311
+ if (!def)
312
+ continue;
313
+ const defId = `${def.sessionID}:${def.localID}`;
314
+ const assignment = byDefId.get(defId);
315
+ if (assignment) {
316
+ const existing = overrideByNodeId.get(nodeId) ?? {};
317
+ if (ref.componentPropNodeField === "TEXT_DATA" && assignment.characters) {
318
+ overrideByNodeId.set(nodeId, { ...existing, characters: assignment.characters });
319
+ }
320
+ else if (ref.componentPropNodeField === "VISIBLE" && assignment.visible !== undefined) {
321
+ overrideByNodeId.set(nodeId, { ...existing, visible: assignment.visible });
322
+ }
323
+ else if (ref.componentPropNodeField === "OVERRIDDEN_SYMBOL_ID" && assignment.symbolId) {
324
+ overrideByNodeId.set(nodeId, { ...existing, overrideSymbolId: assignment.symbolId });
325
+ }
326
+ }
327
+ }
328
+ }
329
+ if (node.children) {
330
+ for (const child of node.children) {
331
+ walk(child);
332
+ }
333
+ }
334
+ };
335
+ walk(symbolNode);
336
+ }
337
+ function cloneWithOverrides(node, overrideByNodeId, nodeIndex, symbolStack) {
338
+ const nodeId = formatGUID(node.guid);
339
+ const clone = { ...node };
340
+ const override = overrideByNodeId.get(nodeId);
341
+ if (override) {
342
+ applyOverrideToNode(clone, override);
343
+ }
344
+ let children = "children" in clone ? clone.children : undefined;
345
+ let expandedSymbolId = null;
346
+ if ((!children || children.length === 0) &&
347
+ clone.type === "INSTANCE" &&
348
+ clone.symbolData?.symbolID) {
349
+ const symbolId = formatGUID(clone.symbolData.symbolID);
350
+ const symbolNode = nodeIndex.get(symbolId);
351
+ if (symbolNode?.children && !symbolStack.has(symbolId)) {
352
+ symbolStack.add(symbolId);
353
+ expandedSymbolId = symbolId;
354
+ children = symbolNode.children;
355
+ }
356
+ }
357
+ if (children && children.length > 0) {
358
+ clone.children = children.map(child => cloneWithOverrides(child, overrideByNodeId, nodeIndex, symbolStack));
359
+ }
360
+ if (expandedSymbolId) {
361
+ symbolStack.delete(expandedSymbolId);
362
+ }
363
+ return clone;
364
+ }
365
+ /**
366
+ * Resolve INSTANCE children by cloning the symbol subtree and applying overrides.
367
+ */
368
+ export function resolveInstanceChildren(instance, symbolNode, rawNodeIndex, nodeIndex) {
369
+ const instanceRaw = rawNodeIndex.get(formatGUID(instance.guid));
370
+ if (!instanceRaw)
371
+ return null;
372
+ const overrideData = buildOverrideData(instance, instanceRaw);
373
+ if (overrideData.size === 0)
374
+ return null;
375
+ const pathMap = buildOverridePathMap(symbolNode, rawNodeIndex, nodeIndex);
376
+ const overrideByNodeId = new Map();
377
+ for (const [path, data] of overrideData.entries()) {
378
+ const nodeId = pathMap.get(path);
379
+ if (!nodeId)
380
+ continue;
381
+ const existing = overrideByNodeId.get(nodeId);
382
+ overrideByNodeId.set(nodeId, existing ? { ...existing, ...data } : data);
383
+ }
384
+ if (overrideByNodeId.size === 0)
385
+ return null;
386
+ const topLevelAssignmentsRaw = instanceRaw.componentPropAssignments;
387
+ if (topLevelAssignmentsRaw) {
388
+ const assignments = [];
389
+ for (const assign of topLevelAssignmentsRaw) {
390
+ if (!assign || typeof assign !== "object")
391
+ continue;
392
+ const a = assign;
393
+ const def = a.defID;
394
+ const value = a.value;
395
+ const textValue = value?.textValue;
396
+ const characters = textValue?.characters;
397
+ const boolValue = value?.boolValue;
398
+ const guidValue = parseGUID(value?.guidValue);
399
+ if (def) {
400
+ assignments.push({
401
+ defId: `${def.sessionID}:${def.localID}`,
402
+ characters,
403
+ visible: typeof boolValue === "boolean" ? boolValue : undefined,
404
+ symbolId: guidValue,
405
+ });
406
+ }
407
+ }
408
+ if (assignments.length > 0) {
409
+ applyComponentPropAssignments(formatGUID(instance.guid), assignments, nodeIndex, rawNodeIndex, overrideByNodeId);
410
+ }
411
+ }
412
+ for (const [nodeId, data] of overrideByNodeId.entries()) {
413
+ if (data.componentPropAssignments && data.componentPropAssignments.length > 0) {
414
+ applyComponentPropAssignments(nodeId, data.componentPropAssignments, nodeIndex, rawNodeIndex, overrideByNodeId);
415
+ }
416
+ }
417
+ const clonedSymbol = cloneWithOverrides(symbolNode, overrideByNodeId, nodeIndex, new Set());
418
+ return clonedSymbol.children ? clonedSymbol.children : null;
419
+ }
420
+ /**
421
+ * Extract content from an INSTANCE node's symbolOverrides
422
+ */
423
+ export function extractInstanceContent(instance, rawNodeChange) {
424
+ const sceneNode = instance;
425
+ const symbolData = sceneNode.symbolData;
426
+ if (!symbolData?.symbolID) {
427
+ return null;
428
+ }
429
+ const symbolId = formatGUID(symbolData.symbolID);
430
+ const textContent = [];
431
+ const elements = [];
432
+ const sizes = new Map();
433
+ // Get raw symbolOverrides and derivedSymbolData
434
+ const rawSymbolData = rawNodeChange?.symbolData;
435
+ const symbolOverrides = (rawSymbolData?.symbolOverrides || symbolData.symbolOverrides || []);
436
+ const derivedSymbolData = (rawNodeChange?.derivedSymbolData || []);
437
+ // Extract sizes from derivedSymbolData
438
+ for (const derived of derivedSymbolData) {
439
+ if (!derived || typeof derived !== "object")
440
+ continue;
441
+ const d = derived;
442
+ const guids = d.guidPath?.guids;
443
+ const size = d.size;
444
+ if (guids && size) {
445
+ const path = guids.map((g) => {
446
+ const guid = g;
447
+ return `${guid.sessionID}:${guid.localID}`;
448
+ }).join(">");
449
+ sizes.set(path, { x: size.x, y: size.y });
450
+ }
451
+ }
452
+ // Extract content from symbolOverrides
453
+ for (const override of symbolOverrides) {
454
+ if (!override || typeof override !== "object")
455
+ continue;
456
+ const o = override;
457
+ const guidPath = guidPathToString(o.guidPath);
458
+ // Extract text from componentPropAssignments
459
+ const propAssignments = o.componentPropAssignments;
460
+ if (propAssignments) {
461
+ for (const assign of propAssignments) {
462
+ if (!assign || typeof assign !== "object")
463
+ continue;
464
+ const a = assign;
465
+ const value = a.value;
466
+ const textValue = value?.textValue;
467
+ const characters = textValue?.characters;
468
+ if (characters) {
469
+ // Get fill color for this text if available
470
+ const fills = o.fillPaints;
471
+ const fillColor = fills?.[0] ? extractColor(fills[0]) : undefined;
472
+ textContent.push({
473
+ text: characters,
474
+ guidPath,
475
+ fillColor,
476
+ });
477
+ // Also add as visual element
478
+ const size = sizes.get(guidPath);
479
+ elements.push({
480
+ type: "text",
481
+ guidPath,
482
+ text: characters,
483
+ size,
484
+ fillColor,
485
+ fontSize: o.fontSize,
486
+ fontFamily: o.fontName?.family,
487
+ });
488
+ }
489
+ }
490
+ }
491
+ // Extract direct text override (characters field)
492
+ if (o.characters && typeof o.characters === "string") {
493
+ const fills = o.fillPaints;
494
+ const fillColor = fills?.[0] ? extractColor(fills[0]) : undefined;
495
+ textContent.push({
496
+ text: o.characters,
497
+ guidPath,
498
+ fillColor,
499
+ });
500
+ }
501
+ // Extract rectangle/frame overrides (fills, strokes, cornerRadius)
502
+ const fillPaints = o.fillPaints;
503
+ const strokePaints = o.strokePaints;
504
+ const cornerRadius = o.cornerRadius;
505
+ if ((fillPaints || strokePaints) && !propAssignments) {
506
+ const fillColor = fillPaints?.[0] ? extractColor(fillPaints[0]) : undefined;
507
+ const strokeColor = strokePaints?.[0] ? extractColor(strokePaints[0]) : undefined;
508
+ const size = sizes.get(guidPath);
509
+ if (fillColor || strokeColor) {
510
+ elements.push({
511
+ type: "rectangle",
512
+ guidPath,
513
+ size,
514
+ fillColor,
515
+ strokeColor,
516
+ cornerRadius,
517
+ });
518
+ }
519
+ }
520
+ }
521
+ // Also extract from top-level componentPropAssignments
522
+ const topLevelAssignments = rawNodeChange?.componentPropAssignments;
523
+ if (topLevelAssignments) {
524
+ for (const assign of topLevelAssignments) {
525
+ if (!assign || typeof assign !== "object")
526
+ continue;
527
+ const a = assign;
528
+ const value = a.value;
529
+ const textValue = value?.textValue;
530
+ const characters = textValue?.characters;
531
+ if (characters) {
532
+ textContent.push({
533
+ text: characters,
534
+ guidPath: "top-level",
535
+ });
536
+ }
537
+ }
538
+ }
539
+ return {
540
+ instance,
541
+ symbolId,
542
+ textContent,
543
+ elements,
544
+ sizes,
545
+ };
546
+ }
547
+ /**
548
+ * Get a flat list of all text content in an INSTANCE
549
+ */
550
+ export function getInstanceTextList(resolved) {
551
+ return resolved.textContent.map(t => t.text);
552
+ }
553
+ /**
554
+ * Format instance content for display
555
+ */
556
+ export function formatInstanceContent(resolved) {
557
+ const lines = [];
558
+ lines.push(`INSTANCE of ${resolved.symbolId}`);
559
+ if (resolved.textContent.length > 0) {
560
+ lines.push("Text content:");
561
+ for (const text of resolved.textContent) {
562
+ lines.push(` - "${text.text}"`);
563
+ }
564
+ }
565
+ if (resolved.elements.length > 0) {
566
+ lines.push("Visual elements:");
567
+ for (const el of resolved.elements) {
568
+ if (el.type === "text") {
569
+ const sizeStr = el.size ? ` [${el.size.x}x${el.size.y}]` : "";
570
+ lines.push(` - Text: "${el.text}"${sizeStr}`);
571
+ }
572
+ else {
573
+ const sizeStr = el.size ? ` [${el.size.x}x${el.size.y}]` : "";
574
+ lines.push(` - Rectangle${sizeStr}`);
575
+ }
576
+ }
577
+ }
578
+ return lines.join("\n");
579
+ }
580
+ //# sourceMappingURL=instance-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-resolver.js","sourceRoot":"","sources":["../../src/parser/instance-resolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"kiwi-parser.d.ts","sourceRoot":"","sources":["../../src/parser/kiwi-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAGpC,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAW,YAAY,EAAE,MAAM,YAAY,CAAC;AAMxE,eAAO,MAAM,UAAU,wBAAkB,CAAC;AAwC1C,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,cAAc,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,eAAe,EAAE,UAAU,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAmD7D;AA2BD;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAOnD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAGpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,QAAQ,CAoD5D;AAwDD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,GAAG,IAAI,CAyBzF;AAqND;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAStE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG;IAClD,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;KACxE,CAAC,CAAC;CACJ,CAcA"}
1
+ {"version":3,"file":"kiwi-parser.d.ts","sourceRoot":"","sources":["../../src/parser/kiwi-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAGpC,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAW,YAAY,EAAE,MAAM,YAAY,CAAC;AAMxE,eAAO,MAAM,UAAU,wBAAkB,CAAC;AAwC1C,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,cAAc,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,eAAe,EAAE,UAAU,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAmD7D;AA2BD;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAOnD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAGpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,QAAQ,CAoD5D;AAwDD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,GAAG,IAAI,CAyBzF;AA+ND;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAStE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG;IAClD,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;KACxE,CAAC,CAAC;CACJ,CAcA"}
@@ -445,6 +445,15 @@ function convertToFigNode(raw) {
445
445
  nodeRecord["y"] = transform["m12"];
446
446
  }
447
447
  }
448
+ // Preserve symbolData for INSTANCE nodes (references the component/symbol this instance is based on)
449
+ const symbolData = obj["symbolData"];
450
+ if (symbolData) {
451
+ const symbolIdRaw = symbolData["symbolID"];
452
+ nodeRecord["symbolData"] = {
453
+ symbolID: symbolIdRaw ? parseGUID(symbolIdRaw) : undefined,
454
+ symbolOverrides: symbolData["symbolOverrides"],
455
+ };
456
+ }
448
457
  // Handle children
449
458
  const children = obj["children"];
450
459
  if (Array.isArray(children)) {