@calibrate-ds/core 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/LICENSE +201 -0
  2. package/dist/__tests__/compare-components.test.js +146 -0
  3. package/dist/__tests__/compare-components.test.js.map +1 -1
  4. package/dist/__tests__/compare-tokens.test.d.ts +2 -0
  5. package/dist/__tests__/compare-tokens.test.d.ts.map +1 -0
  6. package/dist/__tests__/compare-tokens.test.js +76 -0
  7. package/dist/__tests__/compare-tokens.test.js.map +1 -0
  8. package/dist/diff/compare-components.d.ts.map +1 -1
  9. package/dist/diff/compare-components.js +168 -19
  10. package/dist/diff/compare-components.js.map +1 -1
  11. package/dist/diff/compare-tokens.d.ts.map +1 -1
  12. package/dist/diff/compare-tokens.js +76 -21
  13. package/dist/diff/compare-tokens.js.map +1 -1
  14. package/dist/diff/format-diff-summary.d.ts.map +1 -1
  15. package/dist/diff/format-diff-summary.js +18 -2
  16. package/dist/diff/format-diff-summary.js.map +1 -1
  17. package/dist/docs/generate-component-stories.d.ts.map +1 -1
  18. package/dist/docs/generate-component-stories.js +21 -0
  19. package/dist/docs/generate-component-stories.js.map +1 -1
  20. package/dist/doctor/check-component.d.ts.map +1 -1
  21. package/dist/doctor/check-component.js +18 -0
  22. package/dist/doctor/check-component.js.map +1 -1
  23. package/dist/icons/enrich-bitmap-assets.d.ts +14 -0
  24. package/dist/icons/enrich-bitmap-assets.d.ts.map +1 -0
  25. package/dist/icons/enrich-bitmap-assets.js +100 -0
  26. package/dist/icons/enrich-bitmap-assets.js.map +1 -0
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +1 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/normalizer/classify-group-intent.d.ts +32 -0
  32. package/dist/normalizer/classify-group-intent.d.ts.map +1 -0
  33. package/dist/normalizer/classify-group-intent.js +76 -0
  34. package/dist/normalizer/classify-group-intent.js.map +1 -0
  35. package/dist/normalizer/index.d.ts +2 -0
  36. package/dist/normalizer/index.d.ts.map +1 -1
  37. package/dist/normalizer/index.js +2 -0
  38. package/dist/normalizer/index.js.map +1 -1
  39. package/dist/normalizer/instance-resolver.d.ts.map +1 -1
  40. package/dist/normalizer/instance-resolver.js +17 -1
  41. package/dist/normalizer/instance-resolver.js.map +1 -1
  42. package/dist/normalizer/normalize-components.d.ts.map +1 -1
  43. package/dist/normalizer/normalize-components.js +23 -3
  44. package/dist/normalizer/normalize-components.js.map +1 -1
  45. package/dist/normalizer/sanitize-property-names.d.ts +27 -0
  46. package/dist/normalizer/sanitize-property-names.d.ts.map +1 -0
  47. package/dist/normalizer/sanitize-property-names.js +163 -0
  48. package/dist/normalizer/sanitize-property-names.js.map +1 -0
  49. package/dist/prompt/generate-component-prompt.d.ts.map +1 -1
  50. package/dist/prompt/generate-component-prompt.js +5 -2
  51. package/dist/prompt/generate-component-prompt.js.map +1 -1
  52. package/package.json +4 -3
@@ -0,0 +1,100 @@
1
+ import * as fs from "node:fs/promises";
2
+ import * as path from "node:path";
3
+ import { resolveDSPaths } from "../filesystem/resolve-ds-paths.js";
4
+ /**
5
+ * Walks every component's layout tree (renderTree + baseRenderTree + childNodes)
6
+ * looking for nodes whose rawStyles.fills carries an IMAGE entry — the audit's
7
+ * Gap #6 case (profile photos, screenshots, raster assets that previously
8
+ * vanished from the generated output). Each unique image is exported via the
9
+ * Figma /images endpoint as PNG, written to <packageRoot>/src/assets/, and
10
+ * the source node is tagged with a workspace-relative `imageAssetPath`.
11
+ *
12
+ * Best-effort: a batch export failure logs a warning and continues so a
13
+ * partial scan still produces useful output.
14
+ */
15
+ export async function enrichBitmapAssets(model, fileKey, token, config) {
16
+ const detected = [];
17
+ for (const comp of model.components) {
18
+ for (const root of relevantTrees(comp))
19
+ collectImageFillNodes(root, detected);
20
+ }
21
+ if (detected.length === 0)
22
+ return;
23
+ // Dedup by Figma node ID — the same instance can appear in multiple trees.
24
+ const byNodeId = new Map();
25
+ for (const d of detected) {
26
+ const list = byNodeId.get(d.nodeId) ?? [];
27
+ list.push(d);
28
+ byNodeId.set(d.nodeId, list);
29
+ }
30
+ const nodeIds = [...byNodeId.keys()];
31
+ const { packageRoot, workspaceRoot } = resolveDSPaths(config);
32
+ const assetsDir = path.join(packageRoot, "src", "assets");
33
+ await fs.mkdir(assetsDir, { recursive: true });
34
+ // Resolve URLs via the existing Figma image-export endpoint.
35
+ let urlMap = {};
36
+ try {
37
+ const { getImageExports } = await import("@calibrate-ds/figma-client");
38
+ urlMap = await getImageExports({ fileKey, nodeIds, format: "png", token });
39
+ }
40
+ catch (e) {
41
+ console.warn(`[PTB] Bitmap export request failed: ${e.message}`);
42
+ return;
43
+ }
44
+ await Promise.all(Object.entries(urlMap).map(async ([nodeId, url]) => {
45
+ if (!url)
46
+ return;
47
+ const targets = byNodeId.get(nodeId) ?? [];
48
+ if (targets.length === 0)
49
+ return;
50
+ // Stable filename keyed off Figma node id so re-scans overwrite the
51
+ // same path. Strip ':' which is illegal on Windows and ugly on URLs.
52
+ const safeName = `${nodeId.replace(/:/g, "-")}.png`;
53
+ const filePath = path.join(assetsDir, safeName);
54
+ try {
55
+ const res = await fetch(url);
56
+ if (!res.ok)
57
+ return;
58
+ const buf = Buffer.from(await res.arrayBuffer());
59
+ await fs.writeFile(filePath, buf);
60
+ }
61
+ catch (e) {
62
+ console.warn(`[PTB] Bitmap download failed for ${nodeId}: ${e.message}`);
63
+ return;
64
+ }
65
+ // Workspace-relative path so consumers see the same string regardless
66
+ // of where their tsconfig roots them. Generators recompute a
67
+ // component-relative path when emitting the <img src> at write time.
68
+ const relPath = path.relative(workspaceRoot, filePath).replace(/\\/g, "/");
69
+ for (const t of targets)
70
+ t.node.imageAssetPath = relPath;
71
+ }));
72
+ }
73
+ function collectImageFillNodes(node, out) {
74
+ const fills = node.rawStyles?.fills;
75
+ if (fills && Array.isArray(fills)) {
76
+ const img = fills.find(f => f && f.type === "IMAGE" && typeof f.imageRef === "string");
77
+ if (img) {
78
+ // We need a Figma node ID for the export endpoint; layout-tree
79
+ // nodes record this on `componentId` for instances or fall back
80
+ // to the source node id when one was preserved during scan.
81
+ const nodeId = node.figmaNodeId ?? node.componentId ?? node.id;
82
+ if (typeof nodeId === "string" && nodeId.length > 0) {
83
+ out.push({ nodeId, imageRef: img.imageRef, node });
84
+ }
85
+ }
86
+ }
87
+ for (const child of node.children ?? [])
88
+ collectImageFillNodes(child, out);
89
+ }
90
+ function relevantTrees(comp) {
91
+ const trees = [];
92
+ if (comp.layoutTree)
93
+ trees.push(comp.layoutTree);
94
+ if (comp.renderTree && comp.renderTree !== comp.layoutTree)
95
+ trees.push(comp.renderTree);
96
+ if (comp.baseRenderTree && comp.baseRenderTree !== comp.layoutTree)
97
+ trees.push(comp.baseRenderTree);
98
+ return trees;
99
+ }
100
+ //# sourceMappingURL=enrich-bitmap-assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enrich-bitmap-assets.js","sourceRoot":"","sources":["../../src/icons/enrich-bitmap-assets.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -27,5 +27,6 @@ export * from "./ai/index.js";
27
27
  export * from "./doctor/index.js";
28
28
  export * from "./docs/index.js";
29
29
  export * from "./icons/enrich-icon-svgs.js";
30
+ export * from "./icons/enrich-bitmap-assets.js";
30
31
  export * from "./design-tool/index.js";
31
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AAErC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AAErC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -27,5 +27,6 @@ export * from "./ai/index.js";
27
27
  export * from "./doctor/index.js";
28
28
  export * from "./docs/index.js";
29
29
  export * from "./icons/enrich-icon-svgs.js";
30
+ export * from "./icons/enrich-bitmap-assets.js";
30
31
  export * from "./design-tool/index.js";
31
32
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AAErC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AAErC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { LayoutTreeNode } from "@calibrate-ds/shared-types";
2
+ /**
3
+ * Walks a layout tree and tags container nodes whose immediate children are
4
+ * sibling instances with identical recipes — the case that prompted audit
5
+ * Gap #8 ("three identical <BtnWeb> ellipsis buttons in a row, no hint").
6
+ *
7
+ * Heuristic intent classification:
8
+ *
9
+ * state-showcase layout direction is row, every sibling is the same
10
+ * componentId, AND at least one variant axis differs
11
+ * between siblings (the showcase is *demonstrating*
12
+ * variants side-by-side). Generator should keep one
13
+ * canonical instance.
14
+ *
15
+ * instance-list direction is column, ≥3 identical-recipe siblings.
16
+ * Long vertical lists in Figma are almost always
17
+ * "this becomes a `.map()`" in code.
18
+ *
19
+ * menu-group 2+ identical-recipe siblings that don't match either
20
+ * of the above (typical icon-bar / button-group).
21
+ * Generator renders each child as-is.
22
+ *
23
+ * unknown analysis didn't have enough signal — leave the
24
+ * decision to the generator (it currently defaults to
25
+ * "menu-group" behavior, which is the safest fallback).
26
+ *
27
+ * Mutates the tree in place, only setting `groupIntent` on container nodes
28
+ * where a meaningful classification could be derived. Nodes that don't
29
+ * match the criteria are left untouched.
30
+ */
31
+ export declare function classifyGroupIntent(tree: LayoutTreeNode | undefined): void;
32
+ //# sourceMappingURL=classify-group-intent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classify-group-intent.d.ts","sourceRoot":"","sources":["../../src/normalizer/classify-group-intent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI,CAY1E"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Walks a layout tree and tags container nodes whose immediate children are
3
+ * sibling instances with identical recipes — the case that prompted audit
4
+ * Gap #8 ("three identical <BtnWeb> ellipsis buttons in a row, no hint").
5
+ *
6
+ * Heuristic intent classification:
7
+ *
8
+ * state-showcase layout direction is row, every sibling is the same
9
+ * componentId, AND at least one variant axis differs
10
+ * between siblings (the showcase is *demonstrating*
11
+ * variants side-by-side). Generator should keep one
12
+ * canonical instance.
13
+ *
14
+ * instance-list direction is column, ≥3 identical-recipe siblings.
15
+ * Long vertical lists in Figma are almost always
16
+ * "this becomes a `.map()`" in code.
17
+ *
18
+ * menu-group 2+ identical-recipe siblings that don't match either
19
+ * of the above (typical icon-bar / button-group).
20
+ * Generator renders each child as-is.
21
+ *
22
+ * unknown analysis didn't have enough signal — leave the
23
+ * decision to the generator (it currently defaults to
24
+ * "menu-group" behavior, which is the safest fallback).
25
+ *
26
+ * Mutates the tree in place, only setting `groupIntent` on container nodes
27
+ * where a meaningful classification could be derived. Nodes that don't
28
+ * match the criteria are left untouched.
29
+ */
30
+ export function classifyGroupIntent(tree) {
31
+ if (!tree)
32
+ return;
33
+ const visit = (node) => {
34
+ const kids = node.children ?? [];
35
+ if (kids.length >= 2 && node.type === "container") {
36
+ const intent = inferIntentForChildren(kids, node);
37
+ if (intent)
38
+ node.groupIntent = intent;
39
+ }
40
+ for (const child of kids)
41
+ visit(child);
42
+ };
43
+ visit(tree);
44
+ }
45
+ function inferIntentForChildren(kids, parent) {
46
+ // Only classify when every child is an instance pointing at the same
47
+ // componentId. A mixed group is structural composition, not repetition.
48
+ const componentIds = kids.map(k => k.componentId).filter((id) => !!id);
49
+ if (componentIds.length !== kids.length)
50
+ return null;
51
+ const first = componentIds[0];
52
+ if (!componentIds.every(id => id === first))
53
+ return null;
54
+ // Compare variant selections — if any axis differs across siblings, this
55
+ // is a state showcase (designer demonstrating variants side by side).
56
+ const allAxes = new Set();
57
+ for (const k of kids) {
58
+ for (const axis of Object.keys(k.variantSelection ?? {}))
59
+ allAxes.add(axis);
60
+ }
61
+ let varies = false;
62
+ for (const axis of allAxes) {
63
+ const values = new Set(kids.map(k => k.variantSelection?.[axis] ?? ""));
64
+ if (values.size > 1) {
65
+ varies = true;
66
+ break;
67
+ }
68
+ }
69
+ if (varies && (parent.layout?.direction === "row"))
70
+ return "state-showcase";
71
+ // No variant differences. Direction + count drive the call.
72
+ if (parent.layout?.direction === "column" && kids.length >= 3)
73
+ return "instance-list";
74
+ return "menu-group";
75
+ }
76
+ //# sourceMappingURL=classify-group-intent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classify-group-intent.js","sourceRoot":"","sources":["../../src/normalizer/classify-group-intent.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAgC;IAChE,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,MAAM,KAAK,GAAG,CAAC,IAAoB,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAClD,IAAI,MAAM;gBAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1C,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI;YAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAC3B,IAAsB,EACtB,MAAsB;IAEtB,qEAAqE;IACrE,wEAAwE;IACxE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrF,IAAI,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzD,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACnB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxE,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC;YAAC,MAAM;QAAC,CAAC;IAClD,CAAC;IAED,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,KAAK,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC;IAE5E,4DAA4D;IAC5D,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,eAAe,CAAC;IAEtF,OAAO,YAAY,CAAC;AACxB,CAAC"}
@@ -4,4 +4,6 @@ export * from "./classify-entities.js";
4
4
  export * from "./normalize-components.js";
5
5
  export * from "./normalize-composites.js";
6
6
  export * from "./normalize-instances.js";
7
+ export * from "./sanitize-property-names.js";
8
+ export * from "./classify-group-intent.js";
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/normalizer/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/normalizer/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC"}
@@ -4,4 +4,6 @@ export * from "./classify-entities.js";
4
4
  export * from "./normalize-components.js";
5
5
  export * from "./normalize-composites.js";
6
6
  export * from "./normalize-instances.js";
7
+ export * from "./sanitize-property-names.js";
8
+ export * from "./classify-group-intent.js";
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/normalizer/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/normalizer/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"instance-resolver.d.ts","sourceRoot":"","sources":["../../src/normalizer/instance-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAsB,mBAAmB,EAA2L,MAAM,4BAA4B,CAAC;AACrT,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA4B1C;;;;GAIG;AACH,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,cAAc,EACpB,UAAU,GAAE,mBAAmB,EAAO,EACtC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACvC,qBAAqB,GAAG,SAAS,CAsCnC;AA+hBD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,QAwBhI"}
1
+ {"version":3,"file":"instance-resolver.d.ts","sourceRoot":"","sources":["../../src/normalizer/instance-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAsB,mBAAmB,EAA2L,MAAM,4BAA4B,CAAC;AACrT,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA4B1C;;;;GAIG;AACH,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,cAAc,EACpB,UAAU,GAAE,mBAAmB,EAAO,EACtC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACvC,qBAAqB,GAAG,SAAS,CAsCnC;AAgjBD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,QAwBhI"}
@@ -458,6 +458,21 @@ function doResolveInstanceRecipe(node, components = [], tokenIndex) {
458
458
  return;
459
459
  processedNames.add(cleanName);
460
460
  const { renderPattern, visibilityBehavior } = computeSlotRender(kind, visible, prop, textContent, dependency);
461
+ // Audit Gap #7: explicit renderAs so consumers don't have to infer
462
+ // whether to pass `children`, a typed prop, or accept the design-owned
463
+ // subtree as-is. The visibilityBehavior already encodes this implicitly;
464
+ // renderAs surfaces it as a discriminated union for downstream tooling.
465
+ let renderAs;
466
+ if (prop) {
467
+ renderAs = { mode: "prop", name: prop };
468
+ }
469
+ else {
470
+ // No prop = the slot is design-owned (fixed visible subtree like an
471
+ // embedded icon, or a hidden node that doesn't render). Treat as
472
+ // a named slot rather than as React children — children is reserved
473
+ // for explicit children-policy slots on composite roots.
474
+ renderAs = { mode: "slot", name: cleanName };
475
+ }
461
476
  slotContract[cleanName] = {
462
477
  kind,
463
478
  visible,
@@ -465,7 +480,8 @@ function doResolveInstanceRecipe(node, components = [], tokenIndex) {
465
480
  textContent,
466
481
  dependency,
467
482
  renderPattern,
468
- visibilityBehavior
483
+ visibilityBehavior,
484
+ renderAs,
469
485
  };
470
486
  };
471
487
  textNodes.forEach(tn => {
@@ -1 +1 @@
1
- {"version":3,"file":"instance-resolver.js","sourceRoot":"","sources":["../../src/normalizer/instance-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instance-resolver.js","sourceRoot":"","sources":["../../src/normalizer/instance-resolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-components.d.ts","sourceRoot":"","sources":["../../src/normalizer/normalize-components.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAA8E,eAAe,EAAuF,MAAM,4BAA4B,CAAC;AACxP,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA8DnE;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,iBAAiB,EAAE,CAAC,gBAAgB,GAAG,eAAe,CAAC,EAAE,EACzD,SAAS,EAAE,kBAAkB,EAC7B,MAAM,GAAE,eAAe,EAAO,GAC/B,mBAAmB,EAAE,CA+BvB;AAGD,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,gBAAgB,GAAG,eAAe,EAC1C,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,eAAe,EAAE,EACzB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACtC,mBAAmB,CA2ErB;AA0YD;;GAEG;AACH,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAYzF"}
1
+ {"version":3,"file":"normalize-components.d.ts","sourceRoot":"","sources":["../../src/normalizer/normalize-components.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAA8E,eAAe,EAAuF,MAAM,4BAA4B,CAAC;AACxP,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAgEnE;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,iBAAiB,EAAE,CAAC,gBAAgB,GAAG,eAAe,CAAC,EAAE,EACzD,SAAS,EAAE,kBAAkB,EAC7B,MAAM,GAAE,eAAe,EAAO,GAC/B,mBAAmB,EAAE,CA+BvB;AAGD,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,gBAAgB,GAAG,eAAe,EAC1C,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,eAAe,EAAE,EACzB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACtC,mBAAmB,CA0FrB;AAgZD;;GAEG;AACH,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAYzF"}
@@ -3,6 +3,8 @@ import { isIconComponent } from "../icons/enrich-icon-svgs.js";
3
3
  import { buildComparableSnapshot, diffVariantAgainstBaseline } from "./variant-diff.js";
4
4
  import { rgbToHex } from "./helpers.js";
5
5
  import { relinkTreeRecipes } from "./instance-resolver.js";
6
+ import { applyLeakedPropertyRename } from "./sanitize-property-names.js";
7
+ import { classifyGroupIntent } from "./classify-group-intent.js";
6
8
  function normalizeTokenId(id) {
7
9
  if (!id)
8
10
  return "";
@@ -122,7 +124,7 @@ export function normalizeComponent(entity, lookupMap, tokens, tokenIndex) {
122
124
  : isFormCtrl ? "formControl"
123
125
  : dependencies.length > 0 ? "composite"
124
126
  : "layout";
125
- return {
127
+ const component = {
126
128
  id: internalId,
127
129
  designToolNodeId: entity.id,
128
130
  kind: {
@@ -150,6 +152,18 @@ export function normalizeComponent(entity, lookupMap, tokens, tokenIndex) {
150
152
  dependencyInstances,
151
153
  reactions: entity.reactions,
152
154
  };
155
+ // Rewrites text-type property names whose comparable form matches a piece
156
+ // of layer text content — Figma's "default the property name to its text"
157
+ // behavior is the canonical source of `alexandraDavis?: string` leaks. The
158
+ // original Figma identity is preserved on `property.figmaName` for any
159
+ // round-trip tooling. See sanitize-property-names.ts for the heuristic.
160
+ applyLeakedPropertyRename(component);
161
+ // Tags container nodes that contain repeated identical-recipe siblings so
162
+ // the generator can distinguish a state-showcase (drop duplicates) from a
163
+ // genuine list (map over data) from an icon-button cluster (render each).
164
+ // Audit Gap #8: previously the generator emitted N literal copies blind.
165
+ classifyGroupIntent(component.layoutTree);
166
+ return component;
153
167
  }
154
168
  /**
155
169
  * Parses variant selection from Figma node name (e.g. "Primary=sm, Effect=Default")
@@ -233,12 +247,15 @@ function extractSizeMetadata(node, tokens, tokenIndex) {
233
247
  return undefined;
234
248
  const toDesignValue = (val, boundVar, axis) => {
235
249
  let resolvedToken;
250
+ let boundToken;
236
251
  if (boundVar?.id) {
237
252
  resolvedToken = resolveTokenById(boundVar.id, tokenIndex);
238
253
  }
239
254
  if (!resolvedToken && boundVar?.name) {
240
255
  resolvedToken = { name: boundVar.name, id: boundVar.id };
241
256
  }
257
+ if (boundVar?.id)
258
+ boundToken = resolvedToken;
242
259
  let mode = "fixed";
243
260
  if (node.layoutMode === "HORIZONTAL") {
244
261
  if (axis === "horizontal") {
@@ -276,7 +293,7 @@ function extractSizeMetadata(node, tokens, tokenIndex) {
276
293
  mode = "fixed";
277
294
  }
278
295
  }
279
- return { rawValue: val, resolvedToken, mode };
296
+ return { rawValue: val, resolvedToken, boundToken, mode };
280
297
  };
281
298
  return {
282
299
  width: toDesignValue(width, node.boundVariables?.width, "horizontal"),
@@ -289,16 +306,19 @@ function extractLayoutMetadata(node, tokens, tokenIndex) {
289
306
  return undefined;
290
307
  const toDesignValue = (val, boundVar) => {
291
308
  let resolvedToken;
309
+ let boundToken;
292
310
  if (boundVar?.id) {
293
311
  resolvedToken = resolveTokenById(boundVar.id, tokenIndex);
294
312
  }
295
313
  if (!resolvedToken && boundVar?.name) {
296
314
  resolvedToken = { name: boundVar.name, id: boundVar.id };
297
315
  }
316
+ if (boundVar?.id)
317
+ boundToken = resolvedToken;
298
318
  if (!resolvedToken) {
299
319
  resolvedToken = resolveTokenByValue(val, tokens);
300
320
  }
301
- return { rawValue: val, resolvedToken };
321
+ return { rawValue: val, resolvedToken, boundToken };
302
322
  };
303
323
  const isAutoGap = node.primaryAxisAlignItems === "SPACE_BETWEEN";
304
324
  const gapVal = isAutoGap