@calibrate-ds/generator-react 0.1.5 → 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.
@@ -1,6 +1,13 @@
1
1
  import type { ComponentDefinition } from "@calibrate-ds/shared-types";
2
+ import type { TokenReverseLookup } from "./token-reverse-lookup.js";
2
3
  /**
3
4
  * Builds .module.css structure abstracting component `.root` classes natively interpreting style hooks matching variants intuitively inherently.
5
+ *
6
+ * When a token reverse-lookup is supplied, raw numeric gap/padding values that
7
+ * unambiguously match a spacing/radius/dimension token are rendered as the
8
+ * matching `var(--ptb-…)` reference. This restores token references for cases
9
+ * where the Figma scan did not produce an explicit `resolvedToken` binding —
10
+ * the audit's "hardcoded 867px" complaint stems from exactly that gap.
4
11
  */
5
- export declare function generateComponentCss(component: ComponentDefinition): string;
12
+ export declare function generateComponentCss(component: ComponentDefinition, lookup?: TokenReverseLookup): string;
6
13
  //# sourceMappingURL=generate-component-css.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-component-css.d.ts","sourceRoot":"","sources":["../../src/components/generate-component-css.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AA2BtE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,mBAAmB,GAAG,MAAM,CA4E3E"}
1
+ {"version":3,"file":"generate-component-css.d.ts","sourceRoot":"","sources":["../../src/components/generate-component-css.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAgDpE;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAChC,SAAS,EAAE,mBAAmB,EAC9B,MAAM,CAAC,EAAE,kBAAkB,GAC5B,MAAM,CAiFR"}
@@ -6,6 +6,27 @@ import { normalizeTokenVariablePart } from "@calibrate-ds/core";
6
6
  function normalizeCssVarName(name) {
7
7
  return normalizeTokenVariablePart(name);
8
8
  }
9
+ /**
10
+ * Formats a numeric layout value, preferring an unambiguous token reference
11
+ * when one resolves to the same value. Falls back to the literal `${n}px`.
12
+ * The scope hint narrows the lookup so a 12-spacing token doesn't substitute
13
+ * into a border-radius slot or vice versa.
14
+ */
15
+ function formatLength(value, scope, lookup) {
16
+ if (typeof value === "string")
17
+ return value;
18
+ if (typeof value !== "number")
19
+ return String(value);
20
+ if (lookup) {
21
+ const scopes = scope === "spacing-or-dimension"
22
+ ? ["spacing", "dimension"]
23
+ : [scope];
24
+ const match = lookup.lookup(scopes, value);
25
+ if (match)
26
+ return match;
27
+ }
28
+ return `${value}px`;
29
+ }
9
30
  /**
10
31
  * Maps Calibrate internal style slots into valid Web CSS property equivalents natively.
11
32
  */
@@ -23,8 +44,14 @@ const CSS_PROPERTY_MAP = {
23
44
  };
24
45
  /**
25
46
  * Builds .module.css structure abstracting component `.root` classes natively interpreting style hooks matching variants intuitively inherently.
47
+ *
48
+ * When a token reverse-lookup is supplied, raw numeric gap/padding values that
49
+ * unambiguously match a spacing/radius/dimension token are rendered as the
50
+ * matching `var(--ptb-…)` reference. This restores token references for cases
51
+ * where the Figma scan did not produce an explicit `resolvedToken` binding —
52
+ * the audit's "hardcoded 867px" complaint stems from exactly that gap.
26
53
  */
27
- export function generateComponentCss(component) {
54
+ export function generateComponentCss(component, lookup) {
28
55
  let cssContent = `.root {\n`;
29
56
  // Extract core generic flex-behaviors organically.
30
57
  cssContent += ` display: flex;\n`;
@@ -37,7 +64,7 @@ export function generateComponentCss(component) {
37
64
  }
38
65
  if (component.layout.gap) {
39
66
  const gapVal = typeof component.layout.gap === "object" ? (component.layout.gap.resolvedToken?.name || component.layout.gap.rawValue) : component.layout.gap;
40
- cssContent += ` gap: ${typeof gapVal === "number" ? gapVal + "px" : gapVal};\n`;
67
+ cssContent += ` gap: ${formatLength(gapVal, "spacing", lookup)};\n`;
41
68
  }
42
69
  if (component.layout.padding) {
43
70
  const { top, right, bottom, left } = component.layout.padding;
@@ -45,14 +72,18 @@ export function generateComponentCss(component) {
45
72
  const r = (right.resolvedToken?.name || right.rawValue);
46
73
  const b = (bottom.resolvedToken?.name || bottom.rawValue);
47
74
  const l = (left.resolvedToken?.name || left.rawValue);
75
+ const tF = formatLength(t, "spacing", lookup);
76
+ const rF = formatLength(r, "spacing", lookup);
77
+ const bF = formatLength(b, "spacing", lookup);
78
+ const lF = formatLength(l, "spacing", lookup);
48
79
  if (t === b && r === l && t === r) {
49
- cssContent += ` padding: ${typeof t === "number" ? t + "px" : t};\n`;
80
+ cssContent += ` padding: ${tF};\n`;
50
81
  }
51
82
  else if (t === b && r === l) {
52
- cssContent += ` padding: ${typeof t === "number" ? t + "px" : t} ${typeof r === "number" ? r + "px" : r};\n`;
83
+ cssContent += ` padding: ${tF} ${rF};\n`;
53
84
  }
54
85
  else {
55
- cssContent += ` padding: ${typeof t === "number" ? t + "px" : t} ${typeof r === "number" ? r + "px" : r} ${typeof b === "number" ? b + "px" : b} ${typeof l === "number" ? l + "px" : l};\n`;
86
+ cssContent += ` padding: ${tF} ${rF} ${bF} ${lF};\n`;
56
87
  }
57
88
  }
58
89
  // Typical defaults mapping align Main and Cross generic behaviors
@@ -1 +1 @@
1
- {"version":3,"file":"generate-component-css.js","sourceRoot":"","sources":["../../src/components/generate-component-css.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-component-css.js","sourceRoot":"","sources":["../../src/components/generate-component-css.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-component-file.d.ts","sourceRoot":"","sources":["../../src/components/generate-component-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAMpG;;;;GAIG;AACH,wBAAgB,qBAAqB,CACjC,SAAS,EAAE,mBAAmB,EAC9B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,iBAAiB,GACzB,MAAM,CAwOR"}
1
+ {"version":3,"file":"generate-component-file.d.ts","sourceRoot":"","sources":["../../src/components/generate-component-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAOpG;;;;GAIG;AACH,wBAAgB,qBAAqB,CACjC,SAAS,EAAE,mBAAmB,EAC9B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,iBAAiB,GACzB,MAAM,CAoSR"}
@@ -2,6 +2,7 @@ import { createNamingStrategy, normalizeIconDisplayName, isIconComponent } from
2
2
  import { normalizePropName, inferBaseElement, sanitizeOptionName, getCssModuleImportPath } from "./helpers.js";
3
3
  import { inferRelevantTokenCollections, resolveRelativeTokenImport, formatCollectionImportName, inferStyleSlots, selectTokensForSlots } from "./token-helpers.js";
4
4
  import { generateLayoutJSX } from "./layout-jsx.js";
5
+ import { parseIconSvg, renderIconJsx, defaultIconSize } from "./icon-svg.js";
5
6
  /**
6
7
  * Writes the structural boilerplate for a strictly validated React Component mapped
7
8
  * functionally tracking properties natively against standard `data-` mappings.
@@ -11,6 +12,30 @@ export function generateComponentFile(component, config, model) {
11
12
  const namingStrategy = createNamingStrategy(config.naming);
12
13
  const resolvedName = isIconComponent(component.name) ? normalizeIconDisplayName(component.name) : component.name;
13
14
  const componentName = namingStrategy.formatComponentName(resolvedName);
15
+ // Vector icons render real <svg> geometry extracted at scan time. Branch
16
+ // before any token/layout logic — icons don't carry layout trees, slot
17
+ // contracts, or token bindings, and the generic emitter below produces an
18
+ // empty-div placeholder for them. Font-symbol icons fall through to the
19
+ // default emitter because there is no usable path data.
20
+ const parsedIconSvg = isIconComponent(component.name) ? parseIconSvg(component) : null;
21
+ if (parsedIconSvg) {
22
+ const typesImport = config.framework.typescript
23
+ ? `import type { ${componentName}Props } from "./${componentName}.types.js";`
24
+ : "";
25
+ const propsSignature = config.framework.typescript
26
+ ? `{ size = ${defaultIconSize(parsedIconSvg.viewBox)}, className, ...props }: ${componentName}Props`
27
+ : `{ size = ${defaultIconSize(parsedIconSvg.viewBox)}, className, ...props }`;
28
+ const svgJsx = renderIconJsx(parsedIconSvg);
29
+ const chunks = [`import * as React from "react";`];
30
+ if (typesImport)
31
+ chunks.push(typesImport);
32
+ chunks.push(`export function ${componentName}(${propsSignature}) {
33
+ return (
34
+ ${svgJsx}
35
+ );
36
+ }`);
37
+ return chunks.join("\n\n") + "\n";
38
+ }
14
39
  const usesCssModules = config.generation?.cssFiles !== false;
15
40
  const typesImport = config.framework.typescript
16
41
  ? `import type { ${componentName}Props } from "./${componentName}.types.js";`
@@ -59,24 +84,58 @@ ${Object.entries(styleTokensMap).map(([slot, exactRef]) => ` ${slot}: ${exact
59
84
  ? `{ className, ...props }: ${componentName}Props`
60
85
  : `{ className, ...props }`;
61
86
  let returnBlock = "";
62
- // Build base properties to pass towards the root node seamlessly
87
+ // Build base properties to pass towards the root node seamlessly. Variant
88
+ // axes (from Component Sets) and component properties (instance-level
89
+ // overrides) both surface as typed props on the React component. The
90
+ // earlier code missed variantAxes entirely, so size/state/effect on Figma
91
+ // variant matrices never reached the leaf signature.
63
92
  let dataAtts = "";
64
93
  let destructuredVariants = "";
94
+ const dataAttrLines = [];
95
+ const destructuredNames = [];
96
+ const seenInComponent = new Set();
97
+ const recordVariantStyleProp = (cleanName) => {
98
+ if (seenInComponent.has(cleanName))
99
+ return;
100
+ seenInComponent.add(cleanName);
101
+ destructuredNames.push(cleanName);
102
+ dataAttrLines.push(`data-${cleanName.toLowerCase()}={${cleanName}}`);
103
+ };
104
+ const recordPropWithoutDataAttr = (cleanName) => {
105
+ if (seenInComponent.has(cleanName))
106
+ return;
107
+ seenInComponent.add(cleanName);
108
+ destructuredNames.push(cleanName);
109
+ };
110
+ if (component.variantAxes && component.variantAxes.length > 0) {
111
+ for (const ax of component.variantAxes) {
112
+ recordVariantStyleProp(normalizePropName(ax.name));
113
+ }
114
+ }
65
115
  if (component.properties && component.properties.length > 0) {
66
- dataAtts = component.properties
67
- .filter(p => p.type === "enum" || p.type === "boolean")
68
- .map(p => {
116
+ for (const p of component.properties) {
69
117
  const cleanName = normalizePropName(p.name);
70
- return `data-${cleanName.toLowerCase()}={${cleanName}}`;
71
- }).join("\n ");
72
- destructuredVariants = component.properties.map(p => normalizePropName(p.name)).join(", ");
118
+ if (p.type === "enum" || p.type === "boolean") {
119
+ recordVariantStyleProp(cleanName);
120
+ }
121
+ else {
122
+ // text and instance props are rendered in the JSX body (see
123
+ // layout-jsx renderLeafNode) — not as data-* selectors.
124
+ recordPropWithoutDataAttr(cleanName);
125
+ }
126
+ }
73
127
  }
74
128
  else if (component.variants && component.variants.length > 0) {
75
- dataAtts = component.variants.map(v => {
76
- const cleanName = normalizePropName(v.name);
77
- return `data-${cleanName.toLowerCase()}={${cleanName}}`;
78
- }).join("\n ");
79
- destructuredVariants = component.variants.map(v => normalizePropName(v.name)).join(", ");
129
+ // Legacy fallback when only the pre-split `variants` field is present.
130
+ for (const v of component.variants) {
131
+ recordVariantStyleProp(normalizePropName(v.name));
132
+ }
133
+ }
134
+ if (dataAttrLines.length > 0) {
135
+ dataAtts = dataAttrLines.join("\n ");
136
+ }
137
+ if (destructuredNames.length > 0) {
138
+ destructuredVariants = destructuredNames.join(", ");
80
139
  }
81
140
  const propsWithVariantsDef = destructuredVariants
82
141
  ? (config.framework.typescript ? `{ className, ${destructuredVariants}, ...props }: ${componentName}Props` : `{ className, ${destructuredVariants}, ...props }`)
@@ -1 +1 @@
1
- {"version":3,"file":"generate-component-file.js","sourceRoot":"","sources":["../../src/components/generate-component-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAClK,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACjC,SAA8B,EAC9B,MAAiB,EACjB,KAAwB;IAExB,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;IACjH,MAAM,aAAa,GAAG,cAAc,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAEvE,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,EAAE,QAAQ,KAAK,KAAK,CAAC;IAE7D,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU;QAC3C,CAAC,CAAC,iBAAiB,aAAa,mBAAmB,aAAa,aAAa;QAC7E,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,YAAY,GAAG,cAAc;QAC/B,CAAC,CAAC,uBAAuB,sBAAsB,CAAC,aAAa,CAAC,IAAI;QAClE,CAAC,CAAC,EAAE,CAAC;IAET,yCAAyC;IACzC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;IAC3C,MAAM,cAAc,GAAG,6BAA6B,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,YAAY,IAAI,EAAE,EAAE,eAAe,CAAC,CAAC;IACpH,IAAI,iBAAiB,GAAG,EAAE,CAAC;IAC3B,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,iBAAiB,GAAG,EAAE,CAAC;IAE3B,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,iBAAiB,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YAChD,MAAM,UAAU,GAAG,GAAG,0BAA0B,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC1E,MAAM,UAAU,GAAG,0BAA0B,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/D,OAAO,YAAY,UAAU,YAAY,UAAU,IAAI,CAAC;QAC5D,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,cAAc,GAAG;;;;;eAKV,aAAa;EAC1B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;CAE9H,CAAC;QAEM,gBAAgB;QAChB,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QACjF,MAAM,cAAc,GAAG,oBAAoB,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;QAEjG,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,iBAAiB,GAAG;;;;;eAKjB,aAAa;EAC1B,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;CAEjG,CAAC;QACM,CAAC;IACL,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAE/E,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU;QACxC,CAAC,CAAC,4BAA4B,aAAa,OAAO;QAClD,CAAC,CAAC,yBAAyB,CAAC;IAEhC,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,iEAAiE;IACjE,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,oBAAoB,GAAG,EAAE,CAAC;IAE9B,IAAI,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,QAAQ,GAAG,SAAS,CAAC,UAAU;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;aACtD,GAAG,CAAC,CAAC,CAAC,EAAE;YACL,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO,QAAQ,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,GAAG,CAAC;QAC5D,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE9B,oBAAoB,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/F,CAAC;SAAM,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAClC,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO,QAAQ,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,GAAG,CAAC;QAC5D,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE1B,oBAAoB,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,oBAAoB,GAAG,oBAAoB;QAC7C,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,oBAAoB,iBAAiB,aAAa,OAAO,CAAC,CAAC,CAAC,gBAAgB,oBAAoB,cAAc,CAAC;QAChK,CAAC,CAAC,QAAQ,CAAC;IAEf,yGAAyG;IACzG,MAAM,aAAa,GAAG,cAAc;QAChC,CAAC,CAAC,oDAAoD;QACtD,CAAC,CAAC,iBAAiB,CAAC;IACxB,IAAI,WAAW,GAAG,QAAQ;QACtB,CAAC,CAAC,cAAc,aAAa,kBAAkB,QAAQ,0BAA0B;QACjF,CAAC,CAAC,cAAc,aAAa,cAAc,CAAC;IAEhD,sFAAsF;IACtF,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACvB,IAAI,SAAS,GAAa,EAAE,CAAC;QAE7B,wDAAwD;QACxD,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACnE,IAAI,QAAQ,EAAE,CAAC;YACX,SAAS,CAAC,IAAI,CAAC,eAAe,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvE,CAAC;QAED,0EAA0E;QAC1E,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;YACjC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;YAEpC,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC3C,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAEjF,IAAI,aAAa,KAAK,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAClE,SAAS,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,iBAAiB,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAC1F,CAAC;gBACD,IAAI,GAAG,KAAK,QAAQ,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;oBACtF,SAAS,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,gBAAgB,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACxF,CAAC;gBACD,IAAI,GAAG,KAAK,OAAO,IAAI,CAAC,aAAa,KAAK,OAAO,IAAI,aAAa,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;oBAChH,SAAS,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,cAAc,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACtF,CAAC;gBACD,IAAI,GAAG,KAAK,OAAO,IAAI,CAAC,aAAa,KAAK,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;oBACvF,SAAS,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,iBAAiB,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAC1F,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,IAAI,OAAO,EAAE,CAAC;QACV,WAAW,GAAG,GAAG,OAAO,iBAAiB,WAAW,EAAE,CAAC;IAC3D,CAAC;IAED,IAAI,kBAAkB,GAAG,EAAE,CAAC;IAE5B,8DAA8D;IAC9D,IAAI,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACvB,mFAAmF;QACnF,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QAC5F,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC;QAE5B,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAE/E,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnB,0DAA0D;YAC1D,kBAAkB,GAAG,mBAAmB,WAAW,MAAM,QAAQ,qBAAqB,CAAC;QAC3F,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACrE,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;YACnD,yDAAyD;YACzD,kBAAkB,GAAG,mEAAmE,SAAS,KAAK,OAAO,mBAAmB,QAAQ,oBAAoB,CAAC;QACjK,CAAC;aAAM,CAAC;YACJ,mHAAmH;YACnH,kBAAkB,GAAG,gBAAgB,WAAW,MAAM,MAAM,CAAC,GAAG,kBAAkB,CAAC;QACvF,CAAC;QAED,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IACvC,CAAC;SAAM,CAAC;QACJ,6DAA6D;QAC7D,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEjE,IAAI,aAAa,EAAE,CAAC;YAChB,kBAAkB,GAAG,YAAY,GAAG,IAAI,WAAW,KAAK,CAAC;QAC7D,CAAC;aAAM,CAAC;YACJ,kBAAkB,GAAG,YAAY,GAAG,IAAI,WAAW;;;YAGnD,GAAG,GAAG,CAAC;QACX,CAAC;IACL,CAAC;IAED,0DAA0D;IAC1D,IAAI,kBAAkB,GAAG,EAAE,CAAC;IAC5B,IAAI,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE3G,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACnC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC3C,MAAM,WAAW,GAAG,CAAC,CAAC,OAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrF,OAAO,KAAK,QAAQ,MAAM,WAAW,IAAI,CAAC;YAC9C,CAAC,CAAC,CAAC;YAEH,kBAAkB,GAAG,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;QAC5J,CAAC;IACL,CAAC;SAAM,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,kBAAkB;QAClB,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC5C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5F,OAAO,KAAK,QAAQ,MAAM,WAAW,IAAI,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,kBAAkB,GAAG,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;IAC5J,CAAC;IAED,WAAW,GAAG,GAAG,kBAAkB,mBAAmB,aAAa,IAAI,oBAAoB;;EAE7F,kBAAkB;;EAElB,CAAC;IAEC,MAAM,YAAY,GAAG;QACjB,iCAAiC;KACpC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE;QAC3F,OAAO,YAAY,UAAU,YAAY,UAAU,OAAO,CAAC;IAC/D,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,IAAI,WAAW;QAAE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,YAAY;QAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,iBAAiB;QAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5D,IAAI,kBAAkB;QAAE,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC9D,IAAI,cAAc;QAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,IAAI,iBAAiB;QAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;IACnE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE/B,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"generate-component-file.js","sourceRoot":"","sources":["../../src/components/generate-component-file.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-types-file.d.ts","sourceRoot":"","sources":["../../src/components/generate-types-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAsC,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAIrH;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CA6D3F"}
1
+ {"version":3,"file":"generate-types-file.d.ts","sourceRoot":"","sources":["../../src/components/generate-types-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAsC,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAKrH;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CA6F3F"}
@@ -1,5 +1,6 @@
1
1
  import { createNamingStrategy, normalizeIconDisplayName, isIconComponent } from "@calibrate-ds/core";
2
2
  import { normalizePropName, sanitizeOptionName, inferBaseElement } from "./helpers.js";
3
+ import { parseIconSvg } from "./icon-svg.js";
3
4
  /**
4
5
  * Derives valid TypeScript union definitions from normalized model variants
5
6
  * and safely builds the primary `<ComponentName>Props` interface exposing
@@ -9,48 +10,79 @@ export function generateTypesFile(component, config) {
9
10
  const namingStrategy = createNamingStrategy(config.naming);
10
11
  const resolvedName = isIconComponent(component.name) ? normalizeIconDisplayName(component.name) : component.name;
11
12
  const componentName = namingStrategy.formatComponentName(resolvedName);
13
+ // Vector icons render as a real <svg>, so their props extend SVGAttributes
14
+ // rather than the generic span/div HTMLAttributes used elsewhere. Font-based
15
+ // icons fall through to the default emitter — they don't have path geometry.
16
+ if (isIconComponent(component.name) && parseIconSvg(component)) {
17
+ return `import type * as React from "react";
18
+
19
+ export interface ${componentName}Props extends React.SVGAttributes<SVGSVGElement> {
20
+ size?: number | string;
21
+ }
22
+ `;
23
+ }
12
24
  let output = `import type * as React from "react";\n\n`;
13
25
  const variantProps = [];
26
+ const seenPropNames = new Set();
27
+ const pushTypeAndProp = (cleanName, typeName, bodyDecl) => {
28
+ if (seenPropNames.has(cleanName))
29
+ return;
30
+ seenPropNames.add(cleanName);
31
+ output += bodyDecl;
32
+ variantProps.push(` ${cleanName}?: ${typeName};`);
33
+ };
34
+ // Variant axes come from a Figma Component Set's variant dimensions (size,
35
+ // state, etc.) and live on `variantAxes`. The earlier `properties`-only path
36
+ // dropped them silently, leaving composites unable to pass typed values to
37
+ // their leaves. Emit them first so they take precedence on a name collision.
38
+ if (component.variantAxes && component.variantAxes.length > 0) {
39
+ component.variantAxes.forEach((ax) => {
40
+ const cleanName = normalizePropName(ax.name);
41
+ const typeName = `${componentName}${cleanName.charAt(0).toUpperCase() + cleanName.slice(1)}`;
42
+ if (ax.type === "boolean") {
43
+ pushTypeAndProp(cleanName, typeName, `export type ${typeName} = boolean;\n`);
44
+ }
45
+ else {
46
+ const union = (ax.options || []).map((opt) => `"${sanitizeOptionName(opt)}"`).join(" | ");
47
+ pushTypeAndProp(cleanName, typeName, `export type ${typeName} = ${union || "string"};\n`);
48
+ }
49
+ });
50
+ }
14
51
  if (component.properties && component.properties.length > 0) {
15
52
  component.properties.forEach((p) => {
16
53
  const cleanName = normalizePropName(p.name);
17
54
  const typeName = `${componentName}${cleanName.charAt(0).toUpperCase() + cleanName.slice(1)}`;
18
55
  if (p.type === "boolean") {
19
- output += `export type ${typeName} = boolean;\n`;
20
- variantProps.push(` ${cleanName}?: ${typeName};`);
56
+ pushTypeAndProp(cleanName, typeName, `export type ${typeName} = boolean;\n`);
21
57
  }
22
58
  else if (p.type === "text") {
23
- output += `export type ${typeName} = string;\n`;
24
- variantProps.push(` ${cleanName}?: ${typeName};`);
59
+ pushTypeAndProp(cleanName, typeName, `export type ${typeName} = string;\n`);
25
60
  }
26
61
  else if (p.type === "instance") {
27
- output += `export type ${typeName} = React.ReactNode;\n`;
28
- variantProps.push(` ${cleanName}?: ${typeName};`);
62
+ pushTypeAndProp(cleanName, typeName, `export type ${typeName} = React.ReactNode;\n`);
29
63
  }
30
64
  else if (p.type === "enum") {
31
- // Convert options to string literal unions safely
32
65
  const union = (p.options || []).map((opt) => `"${sanitizeOptionName(opt)}"`).join(" | ");
33
- output += `export type ${typeName} = ${union || "string"};\n`;
34
- variantProps.push(` ${cleanName}?: ${typeName};`);
66
+ pushTypeAndProp(cleanName, typeName, `export type ${typeName} = ${union || "string"};\n`);
35
67
  }
36
68
  });
37
- output += "\n";
38
69
  }
39
70
  else if (component.variants && component.variants.length > 0) {
71
+ // Legacy fallback for older snapshots that haven't been re-scanned and
72
+ // still carry the pre-split `variants` shape.
40
73
  component.variants.forEach((v) => {
41
74
  const cleanName = normalizePropName(v.name);
42
75
  const typeName = `${componentName}${cleanName.charAt(0).toUpperCase() + cleanName.slice(1)}`;
43
76
  if (v.type === "boolean") {
44
- output += `export type ${typeName} = boolean;\n`;
45
- variantProps.push(` ${cleanName}?: ${typeName};`);
77
+ pushTypeAndProp(cleanName, typeName, `export type ${typeName} = boolean;\n`);
46
78
  }
47
79
  else if (v.type === "string" || v.type === "number") {
48
- // Convert options to string literal unions safely
49
80
  const union = (v.options || []).map((opt) => `"${sanitizeOptionName(opt)}"`).join(" | ");
50
- output += `export type ${typeName} = ${union || "string"};\n`;
51
- variantProps.push(` ${cleanName}?: ${typeName};`);
81
+ pushTypeAndProp(cleanName, typeName, `export type ${typeName} = ${union || "string"};\n`);
52
82
  }
53
83
  });
84
+ }
85
+ if (seenPropNames.size > 0) {
54
86
  output += "\n";
55
87
  }
56
88
  const { interfaceName } = inferBaseElement(component.name, component.categoryPath || "");
@@ -1 +1 @@
1
- {"version":3,"file":"generate-types-file.js","sourceRoot":"","sources":["../../src/components/generate-types-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-types-file.js","sourceRoot":"","sources":["../../src/components/generate-types-file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { ComponentDefinition } from "@calibrate-ds/shared-types";
2
+ export type ParsedIconSvg = {
3
+ viewBox: string;
4
+ innerContent: string;
5
+ };
6
+ /**
7
+ * The scan pipeline stores `iconSvg` as a JSON string of `{ viewBox, innerContent }`.
8
+ * Returns null when the field is absent, malformed, or marked as font-based.
9
+ */
10
+ export declare function parseIconSvg(component: ComponentDefinition): ParsedIconSvg | null;
11
+ /**
12
+ * Rewrites hyphenated SVG attribute names inside a raw SVG inner-content string to
13
+ * the camelCase forms React expects in JSX. Operates on attribute names only (the
14
+ * left side of `=`), so attribute values are preserved verbatim.
15
+ */
16
+ export declare function toReactSvgAttributes(raw: string): string;
17
+ /**
18
+ * Derives a sensible default size for the icon component's `size` prop from its
19
+ * viewBox. Square viewBoxes ("0 0 16 16" → 16) drive a single numeric default;
20
+ * non-square or unparseable viewBoxes fall back to 24, which matches Figma's
21
+ * most common icon canvas.
22
+ */
23
+ export declare function defaultIconSize(viewBox: string): number;
24
+ /**
25
+ * Produces the JSX body for an icon component: a single `<svg>` with the cleaned
26
+ * inner content embedded directly. Indentation is two spaces per level, with the
27
+ * caller-supplied `baseIndent` applied to the opening tag.
28
+ */
29
+ export declare function renderIconJsx(parsed: ParsedIconSvg, baseIndent?: string): string;
30
+ //# sourceMappingURL=icon-svg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-svg.d.ts","sourceRoot":"","sources":["../../src/components/icon-svg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,MAAM,aAAa,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,mBAAmB,GAAG,aAAa,GAAG,IAAI,CAajF;AA8BD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUxD;AAMD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASvD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CACzB,MAAM,EAAE,aAAa,EACrB,UAAU,GAAE,MAAmB,GAChC,MAAM,CAmBR"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * The scan pipeline stores `iconSvg` as a JSON string of `{ viewBox, innerContent }`.
3
+ * Returns null when the field is absent, malformed, or marked as font-based.
4
+ */
5
+ export function parseIconSvg(component) {
6
+ if (component.iconKind === "font-symbol")
7
+ return null;
8
+ if (!component.iconSvg)
9
+ return null;
10
+ try {
11
+ const obj = JSON.parse(component.iconSvg);
12
+ if (!obj || typeof obj.innerContent !== "string")
13
+ return null;
14
+ return {
15
+ viewBox: typeof obj.viewBox === "string" && obj.viewBox.length > 0 ? obj.viewBox : "0 0 24 24",
16
+ innerContent: obj.innerContent,
17
+ };
18
+ }
19
+ catch {
20
+ return null;
21
+ }
22
+ }
23
+ // SVG attributes that React expects in camelCase. The scan-time cleaner already
24
+ // rewrites `class=` and color literals; this list covers the remaining hyphenated
25
+ // attributes Figma exports commonly. Missing entries will still render — React 17+
26
+ // accepts kebab-case SVG attrs — but it will warn in dev mode.
27
+ const HYPHEN_TO_CAMEL = {
28
+ "fill-rule": "fillRule",
29
+ "clip-rule": "clipRule",
30
+ "clip-path": "clipPath",
31
+ "stroke-width": "strokeWidth",
32
+ "stroke-linecap": "strokeLinecap",
33
+ "stroke-linejoin": "strokeLinejoin",
34
+ "stroke-dasharray": "strokeDasharray",
35
+ "stroke-dashoffset": "strokeDashoffset",
36
+ "stroke-miterlimit": "strokeMiterlimit",
37
+ "stop-color": "stopColor",
38
+ "stop-opacity": "stopOpacity",
39
+ "fill-opacity": "fillOpacity",
40
+ "stroke-opacity": "strokeOpacity",
41
+ "text-anchor": "textAnchor",
42
+ "alignment-baseline": "alignmentBaseline",
43
+ "dominant-baseline": "dominantBaseline",
44
+ "font-family": "fontFamily",
45
+ "font-size": "fontSize",
46
+ "font-weight": "fontWeight",
47
+ "letter-spacing": "letterSpacing",
48
+ "xlink:href": "xlinkHref",
49
+ };
50
+ /**
51
+ * Rewrites hyphenated SVG attribute names inside a raw SVG inner-content string to
52
+ * the camelCase forms React expects in JSX. Operates on attribute names only (the
53
+ * left side of `=`), so attribute values are preserved verbatim.
54
+ */
55
+ export function toReactSvgAttributes(raw) {
56
+ let out = raw;
57
+ for (const [from, to] of Object.entries(HYPHEN_TO_CAMEL)) {
58
+ // Match the attribute name only when it sits in an attribute position:
59
+ // preceded by whitespace and followed by `=`. This avoids accidental
60
+ // hits inside path data or text content.
61
+ const re = new RegExp(`(\\s)${escapeRegex(from)}(=)`, "g");
62
+ out = out.replace(re, `$1${to}$2`);
63
+ }
64
+ return out;
65
+ }
66
+ function escapeRegex(s) {
67
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
68
+ }
69
+ /**
70
+ * Derives a sensible default size for the icon component's `size` prop from its
71
+ * viewBox. Square viewBoxes ("0 0 16 16" → 16) drive a single numeric default;
72
+ * non-square or unparseable viewBoxes fall back to 24, which matches Figma's
73
+ * most common icon canvas.
74
+ */
75
+ export function defaultIconSize(viewBox) {
76
+ const parts = viewBox.trim().split(/\s+/).map(Number);
77
+ if (parts.length === 4 && parts.every(n => Number.isFinite(n))) {
78
+ const width = parts[2];
79
+ const height = parts[3];
80
+ if (width > 0 && width === height)
81
+ return width;
82
+ if (width > 0)
83
+ return width;
84
+ }
85
+ return 24;
86
+ }
87
+ /**
88
+ * Produces the JSX body for an icon component: a single `<svg>` with the cleaned
89
+ * inner content embedded directly. Indentation is two spaces per level, with the
90
+ * caller-supplied `baseIndent` applied to the opening tag.
91
+ */
92
+ export function renderIconJsx(parsed, baseIndent = " ") {
93
+ const inner = toReactSvgAttributes(parsed.innerContent).trim();
94
+ const indentedInner = inner
95
+ .split("\n")
96
+ .map(line => (line.length === 0 ? line : `${baseIndent} ${line}`))
97
+ .join("\n");
98
+ return `${baseIndent}<svg
99
+ ${baseIndent} width={size}
100
+ ${baseIndent} height={size}
101
+ ${baseIndent} viewBox="${parsed.viewBox}"
102
+ ${baseIndent} fill="none"
103
+ ${baseIndent} xmlns="http://www.w3.org/2000/svg"
104
+ ${baseIndent} className={className}
105
+ ${baseIndent} aria-hidden={props["aria-label"] ? undefined : true}
106
+ ${baseIndent} {...props}
107
+ ${baseIndent}>
108
+ ${indentedInner}
109
+ ${baseIndent}</svg>`;
110
+ }
111
+ //# sourceMappingURL=icon-svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-svg.js","sourceRoot":"","sources":["../../src/components/icon-svg.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { normalizeFigmaName } from "@calibrate-ds/core";
2
- import { resolveRelativeImportTarget, resolveRelativeLayoutImport } from "./helpers.js";
2
+ import { resolveRelativeImportTarget, resolveRelativeLayoutImport, normalizePropName } from "./helpers.js";
3
3
  /**
4
4
  * Generates recursive Flexbox JSX structure from a normalized LayoutTreeNode.
5
5
  *
@@ -244,7 +244,25 @@ function tryResolveInstance(node, sourceComponent, model, namingStrategy) {
244
244
  */
245
245
  function renderLeafNode(node, sourceComponent, model, namingStrategy, indent) {
246
246
  const dependencies = new Map();
247
+ // Nodes with an exported bitmap (audit Gap #6) render as <img>. The src
248
+ // is a workspace-relative path the scan layer wrote next to the assets
249
+ // dir. Consumers wire this up to their bundler the same way they would
250
+ // any static asset import; we don't auto-import at generator time
251
+ // because that requires guessing the import alias / public path strategy.
252
+ const imageAssetPath = node.imageAssetPath;
253
+ if (typeof imageAssetPath === "string" && imageAssetPath.length > 0) {
254
+ const alt = escapeJsxString(node.name ?? "");
255
+ return { jsx: `${indent}<img src="${imageAssetPath}" alt="${alt}" />`, dependencies };
256
+ }
257
+ // The scan layer attaches propBinding / contentContract to leaf nodes that
258
+ // resolve to a typed prop on the parent component. When present, render the
259
+ // prop reference instead of the static literal — this is what turns the
260
+ // generated <span>Button</span> into <span>{btnText}</span>.
261
+ const propRef = resolvePropRef(node);
247
262
  if (node.role === "instance") {
263
+ if (propRef) {
264
+ return { jsx: `${indent}{${propRef}}`, dependencies };
265
+ }
248
266
  // Instance couldn't be resolved to a known component — emit a placeholder.
249
267
  // Use the naming strategy so the identifier is valid and matches any future resolution.
250
268
  const { baseName } = normalizeFigmaName(node.name || "Unknown");
@@ -252,14 +270,36 @@ function renderLeafNode(node, sourceComponent, model, namingStrategy, indent) {
252
270
  return { jsx: `${indent}{/* ptb: unresolved instance — ${instanceName} */}`, dependencies };
253
271
  }
254
272
  if (node.role === "text") {
273
+ if (propRef) {
274
+ return { jsx: `${indent}<span>{${propRef}}</span>`, dependencies };
275
+ }
255
276
  // Fallback explicit text placeholders organically matching HTML structural primitives
256
277
  return { jsx: `${indent}<span>${node.name || "Text"}</span>`, dependencies };
257
278
  }
258
279
  if (node.role === "icon") {
280
+ if (propRef) {
281
+ return { jsx: `${indent}{${propRef}}`, dependencies };
282
+ }
259
283
  // Fallback explicit abstract vector placeholders organically
260
284
  return { jsx: `${indent}<svg aria-label="${node.name || "icon"}" />`, dependencies };
261
285
  }
262
286
  // Generic fallback visually preserving space safely
263
287
  return { jsx: `${indent}<div data-role="${node.role || "unknown"}" />`, dependencies };
264
288
  }
289
+ /**
290
+ * Returns the camelCased prop identifier this leaf should render, or null when
291
+ * the scanner did not bind it to a typed prop. propBinding is preferred — it is
292
+ * the explicit slot-to-prop mapping. contentContract is the fallback for text
293
+ * nodes whose content is driven by a prop without an explicit binding entry.
294
+ */
295
+ function resolvePropRef(node) {
296
+ const raw = node.propBinding?.propName ?? node.contentContract?.propName;
297
+ if (!raw)
298
+ return null;
299
+ return normalizePropName(raw);
300
+ }
301
+ /** Escapes a string for safe embedding inside a JSX double-quoted attribute. */
302
+ function escapeJsxString(s) {
303
+ return s.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
304
+ }
265
305
  //# sourceMappingURL=layout-jsx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout-jsx.js","sourceRoot":"","sources":["../../src/components/layout-jsx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout-jsx.js","sourceRoot":"","sources":["../../src/components/layout-jsx.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAO3G;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC7B,IAAoB,EACpB,eAAoC,EACpC,KAAwB,EACxB,cAAmB,EACnB,cAAsB,CAAC;IAEvB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;IAEnD,mGAAmG;IACnG,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC3B,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACrH,IAAI,eAAe,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;YAC9C,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACzC,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,UAAU,KAAK,EAAE,YAAY,EAAE,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAChF,CAAC;IAED,oBAAoB;IACpB,MAAM,MAAM,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,mDAAmD;IAErF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YAClC,OAAO,GAAG,KAAK,CAAC;YAChB,WAAW,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,GAAG,OAAO,CAAC;YAClB,WAAW,GAAG,IAAI,CAAC;QACvB,CAAC;IACL,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,2BAA2B,CAAC,eAAe,EAAE,OAAc,EAAE,cAAc,CAAC,CAAC;QAChG,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,yBAAyB;IACzB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,IAAI,WAAW,EAAE,CAAC;QACd,MAAM,cAAc,GAAG,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,cAAc,EAAE,CAAC;YACjB,QAAQ,IAAI,cAAc,CAAC;QAC/B,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,uEAAuE;QACvE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,QAAQ,EAAE,CAAC;YACX,QAAQ,IAAI,YAAY,QAAQ,KAAK,CAAC;QAC1C,CAAC;IACL,CAAC;IAED,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,2CAA2C;IAEtF,wEAAwE;IACxE,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC3C,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;YACtG,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5D,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,WAAW,CAAC,GAAG,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,WAAW,GAAG,KAAK,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;IAC5D,CAAC;IAED,wDAAwD;IACxD,OAAO;QACH,GAAG,EAAE,GAAG,MAAM,IAAI,OAAO,GAAG,QAAQ,IAAI,WAAW,KAAK,OAAO,GAAG;QAClE,YAAY;KACf,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,4BAA4B,CAAC,MAAuB;IACzD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QACrH,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,QAAQ,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACV,IAAI,CAAC,KAAK,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACJ,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC5G,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5L,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACvB,QAAQ,MAAM,CAAC,aAAa,EAAE,CAAC;YAC3B,KAAK,QAAQ;gBACT,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC/B,MAAM;YACV,KAAK,eAAe;gBAChB,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBACtC,MAAM;YACV,KAAK,OAAO;gBACR,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACnC,MAAM;YACV,KAAK,KAAK;gBACN,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACjC,MAAM;QACd,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,QAAQ,MAAM,CAAC,cAAc,EAAE,CAAC;YAC5B,KAAK,QAAQ;gBACT,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC7B,MAAM;YACV,KAAK,OAAO;gBACR,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACjC,MAAM;YACV,KAAK,KAAK;gBACN,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC/B,MAAM;YACV,KAAK,UAAU;gBACX,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC/B,MAAM;QACd,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,MAAuB;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,MAAM,GAAa,CAAC,iBAAiB,CAAC,CAAC;IAE7C,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QACrH,MAAM,CAAC,IAAI,CAAC,QAAQ,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtD,uDAAuD;QACvD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9G,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9L,CAAC;IACL,CAAC;IAED,qDAAqD;IACrD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACvB,QAAQ,MAAM,CAAC,aAAa,EAAE,CAAC;YAC3B,KAAK,QAAQ;gBACT,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACxC,MAAM;YACV,KAAK,eAAe;gBAChB,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAC/C,MAAM;YACV,KAAK,OAAO;gBACR,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,MAAM;YACV,KAAK,KAAK;gBACN,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBAC1C,MAAM;QACd,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,QAAQ,MAAM,CAAC,cAAc,EAAE,CAAC;YAC5B,KAAK,QAAQ;gBACT,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACpC,MAAM;YACV,KAAK,OAAO;gBACR,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACxC,MAAM;YACV,KAAK,KAAK;gBACN,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBACtC,MAAM;YACV,KAAK,UAAU;gBACX,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBACtC,MAAM;QACd,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,kBAAkB,CACvB,IAAoB,EACpB,eAAoC,EACpC,KAAwB,EACxB,cAAmB;IAEnB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,EAAE,CAAC;IAExC,IAAI,eAAgD,CAAC;IAErD,mEAAmE;IACnE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5E,CAAC;IAED,qEAAqE;IACrE,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3E,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAEtF,IAAI,iBAAiB,EAAE,CAAC;YACpB,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACxC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC3D,MAAM,kBAAkB,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBAChF,OAAO,kBAAkB,KAAK,iBAAiB,CAAC;YACpD,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,uDAAuD;IACvD,IAAI,eAAe,IAAI,eAAe,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,cAAc,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,2BAA2B,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;QACjG,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IACvD,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACnB,IAAoB,EACpB,eAAoC,EACpC,KAAwB,EACxB,cAAmB,EACnB,MAAc;IAEd,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE/C,wEAAwE;IACxE,uEAAuE;IACvE,uEAAuE;IACvE,kEAAkE;IAClE,0EAA0E;IAC1E,MAAM,cAAc,GAAI,IAAY,CAAC,cAAc,CAAC;IACpD,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7C,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,aAAa,cAAc,UAAU,GAAG,MAAM,EAAE,YAAY,EAAE,CAAC;IAC1F,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,wEAAwE;IACxE,6DAA6D;IAC7D,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAErC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC3B,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,OAAO,GAAG,EAAE,YAAY,EAAE,CAAC;QAC1D,CAAC;QACD,2EAA2E;QAC3E,wFAAwF;QACxF,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAClE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,kCAAkC,YAAY,MAAM,EAAE,YAAY,EAAE,CAAC;IAChG,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACvB,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,UAAU,OAAO,UAAU,EAAE,YAAY,EAAE,CAAC;QACvE,CAAC;QACD,sFAAsF;QACtF,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,SAAS,IAAI,CAAC,IAAI,IAAI,MAAM,SAAS,EAAE,YAAY,EAAE,CAAC;IACjF,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACvB,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,OAAO,GAAG,EAAE,YAAY,EAAE,CAAC;QAC1D,CAAC;QACD,6DAA6D;QAC7D,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,oBAAoB,IAAI,CAAC,IAAI,IAAI,MAAM,MAAM,EAAE,YAAY,EAAE,CAAC;IACzF,CAAC;IAED,oDAAoD;IACpD,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,mBAAmB,IAAI,CAAC,IAAI,IAAI,SAAS,MAAM,EAAE,YAAY,EAAE,CAAC;AAC3F,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,IAAoB;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC;IACzE,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,gFAAgF;AAChF,SAAS,eAAe,CAAC,CAAS;IAC9B,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxG,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { DesignSystemModel, DesignToken, TokenCollection } from "@calibrate-ds/shared-types";
2
+ /**
3
+ * Token kinds that this reverse-lookup considers — numeric scalars only. Colors,
4
+ * typography, and shadows are excluded here because:
5
+ * - Figma already attaches an explicit token binding for color usage in 99% of
6
+ * cases, so reverse-lookup would be redundant.
7
+ * - Color values commonly collide across collections (multiple semantic aliases
8
+ * resolve to the same hex), making reverse-lookup unsafe without a slot hint.
9
+ * Numeric tokens (spacing, radius, dimension) are where the audit's "hardcoded
10
+ * 867px" complaint lives — those are the values worth recovering.
11
+ */
12
+ type LookupTokenType = "spacing" | "radius" | "dimension";
13
+ declare const LOOKUP_TYPES: ReadonlySet<DesignToken["type"]>;
14
+ /**
15
+ * A scoped value lookup. The scope key groups tokens by their semantic category
16
+ * (spacing vs radius vs dimension) so a spacing token that happens to share a
17
+ * numeric value with a radius token is never substituted into the wrong slot.
18
+ */
19
+ export type TokenReverseLookup = {
20
+ /** Try to map a numeric value to a `var(--ptb-…)` reference under a scope. Returns null when no unambiguous match. */
21
+ lookup(scope: LookupTokenType | LookupTokenType[], value: number): string | null;
22
+ };
23
+ /**
24
+ * Builds a value→css-var map for unambiguous numeric tokens. When a value
25
+ * resolves to multiple distinct tokens within the same type bucket the value
26
+ * is dropped — substituting one would silently pick a wrong semantic name.
27
+ */
28
+ export declare function buildTokenReverseLookup(model: DesignSystemModel): TokenReverseLookup;
29
+ export { LOOKUP_TYPES };
30
+ export type { TokenCollection };
31
+ //# sourceMappingURL=token-reverse-lookup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-reverse-lookup.d.ts","sourceRoot":"","sources":["../../src/components/token-reverse-lookup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGlG;;;;;;;;;GASG;AACH,KAAK,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAC1D,QAAA,MAAM,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAIjD,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,sHAAsH;IACtH,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACpF,CAAC;AA+CF;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAqDpF;AAID,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,109 @@
1
+ import { getPTBTokenVariableName } from "@calibrate-ds/core";
2
+ const LOOKUP_TYPES = new Set([
3
+ "spacing",
4
+ "radius",
5
+ "dimension",
6
+ ]);
7
+ /**
8
+ * Resolves a single token to its final numeric value by following aliases.
9
+ * Returns null for color/typography/shadow tokens, cycles, or unresolved refs.
10
+ * Self-contained so it can be used outside the css-emitter file without
11
+ * pulling in its `getActiveValue`/font helpers.
12
+ */
13
+ function resolveNumeric(token, byId, visited = new Set()) {
14
+ if (visited.has(token.id))
15
+ return null;
16
+ visited.add(token.id);
17
+ if (token.aliasTargetId) {
18
+ const target = byId.get(token.aliasTargetId);
19
+ return target ? resolveNumeric(target, byId, visited) : null;
20
+ }
21
+ const raw = token.value;
22
+ if (typeof raw === "number" && Number.isFinite(raw))
23
+ return raw;
24
+ if (typeof raw === "string") {
25
+ if (raw.startsWith("VariableID:")) {
26
+ const id = raw.replace(/^VariableID:/i, "");
27
+ const target = byId.get(id) || byId.get(raw);
28
+ return target ? resolveNumeric(target, byId, visited) : null;
29
+ }
30
+ const parsed = parseFloat(raw);
31
+ return Number.isFinite(parsed) ? parsed : null;
32
+ }
33
+ if (raw && typeof raw === "object") {
34
+ if ("id" in raw && typeof raw.id === "string") {
35
+ const id = raw.id.replace(/^VariableID:/i, "");
36
+ const target = byId.get(id) || byId.get(raw.id);
37
+ return target ? resolveNumeric(target, byId, visited) : null;
38
+ }
39
+ if ("value" in raw) {
40
+ return resolveNumeric({ ...token, value: raw.value }, byId, visited);
41
+ }
42
+ }
43
+ return null;
44
+ }
45
+ /**
46
+ * Builds a value→css-var map for unambiguous numeric tokens. When a value
47
+ * resolves to multiple distinct tokens within the same type bucket the value
48
+ * is dropped — substituting one would silently pick a wrong semantic name.
49
+ */
50
+ export function buildTokenReverseLookup(model) {
51
+ const byId = new Map();
52
+ const byStripped = new Map();
53
+ for (const col of model.tokens || []) {
54
+ for (const tok of col.tokens) {
55
+ byId.set(tok.id, tok);
56
+ const stripped = tok.id.replace(/^VariableID:/i, "");
57
+ if (stripped !== tok.id)
58
+ byStripped.set(stripped, tok);
59
+ }
60
+ }
61
+ // Merge stripped lookups in so alias resolution succeeds either way.
62
+ for (const [k, v] of byStripped) {
63
+ if (!byId.has(k))
64
+ byId.set(k, v);
65
+ }
66
+ // type → value → [varName, varName, ...]
67
+ const tally = new Map();
68
+ for (const t of LOOKUP_TYPES)
69
+ tally.set(t, new Map());
70
+ for (const col of model.tokens || []) {
71
+ for (const tok of col.tokens) {
72
+ if (!LOOKUP_TYPES.has(tok.type))
73
+ continue;
74
+ const value = resolveNumeric(tok, byId);
75
+ if (value === null)
76
+ continue;
77
+ const varName = getPTBTokenVariableName(col.name, tok.name);
78
+ const scope = tok.type;
79
+ const valueMap = tally.get(scope);
80
+ const names = valueMap.get(value) ?? new Set();
81
+ names.add(varName);
82
+ valueMap.set(value, names);
83
+ }
84
+ }
85
+ const resolved = new Map();
86
+ for (const [scope, valueMap] of tally) {
87
+ const out = new Map();
88
+ for (const [value, names] of valueMap) {
89
+ if (names.size === 1)
90
+ out.set(value, [...names][0]);
91
+ }
92
+ resolved.set(scope, out);
93
+ }
94
+ return {
95
+ lookup(scope, value) {
96
+ const scopes = Array.isArray(scope) ? scope : [scope];
97
+ for (const s of scopes) {
98
+ const match = resolved.get(s)?.get(value);
99
+ if (match)
100
+ return `var(${match})`;
101
+ }
102
+ return null;
103
+ },
104
+ };
105
+ }
106
+ // Re-export for callers that want to compute a one-off lookup without
107
+ // constructing the full map (e.g. unit tests, future inspector commands).
108
+ export { LOOKUP_TYPES };
109
+ //# sourceMappingURL=token-reverse-lookup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-reverse-lookup.js","sourceRoot":"","sources":["../../src/components/token-reverse-lookup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"write-components.d.ts","sourceRoot":"","sources":["../../src/components/write-components.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAQ/E,MAAM,MAAM,wBAAwB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,wBAAwB,EAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACjC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;CACvC,CAAC;AAEF,wBAAsB,eAAe,CACjC,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE,sBAAsB,GACjC,OAAO,CAAC,qBAAqB,CAAC,CA4LhC"}
1
+ {"version":3,"file":"write-components.d.ts","sourceRoot":"","sources":["../../src/components/write-components.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAS/E,MAAM,MAAM,wBAAwB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,wBAAwB,EAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACjC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;CACvC,CAAC;AAEF,wBAAsB,eAAe,CACjC,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE,sBAAsB,GACjC,OAAO,CAAC,qBAAqB,CAAC,CAyMhC"}
@@ -5,6 +5,7 @@ import { generateComponentFile } from "./generate-component-file.js";
5
5
  import { generateCompositeTypesFile } from "./generate-composite-types.js";
6
6
  import { generateCompositeFile } from "./generate-composite-file.js";
7
7
  import { generateComponentCss } from "./generate-component-css.js";
8
+ import { buildTokenReverseLookup } from "./token-reverse-lookup.js";
8
9
  import { resolveDSPaths, createNamingStrategy, normalizeIconDisplayName, isIconComponent } from "@calibrate-ds/core";
9
10
  export async function writeComponents(model, config, options) {
10
11
  const report = {
@@ -17,6 +18,10 @@ export async function writeComponents(model, config, options) {
17
18
  const useTypescript = config.framework.typescript;
18
19
  // Ensure output directories exist universally
19
20
  await fs.mkdir(componentsDir, { recursive: true });
21
+ // Build the value→token reverse-lookup once per writeComponents run so the
22
+ // CSS emitter can substitute var(--ptb-…) for unambiguous numeric values
23
+ // even when the Figma scan didn't attach an explicit resolvedToken binding.
24
+ const tokenLookup = buildTokenReverseLookup(model);
20
25
  const components = model.components || [];
21
26
  // Track for index Generation natively safely
22
27
  const indexExports = [];
@@ -107,7 +112,7 @@ export async function writeComponents(model, config, options) {
107
112
  report.skippedFiles.push(`${folderName}/${cssFileName}`);
108
113
  }
109
114
  catch {
110
- const cssContent = generateComponentCss(component);
115
+ const cssContent = generateComponentCss(component, tokenLookup);
111
116
  await fs.writeFile(cssFilePath, cssContent, "utf-8");
112
117
  report.createdFiles.push(`${folderName}/${cssFileName}`);
113
118
  }
@@ -141,9 +146,16 @@ export async function writeComponents(model, config, options) {
141
146
  ]
142
147
  });
143
148
  }
149
+ // Audit Bugs C + D: a component folder that has an index.ts on disk but
150
+ // isn't in model.components (hand-crafted, manifest-only, or generated by
151
+ // a previous run and then removed from Figma) was invisible to the root
152
+ // barrel. Walk the filesystem and merge any orphan exports before writing
153
+ // so the barrel reflects the actual shape of components/.
154
+ const indexExt = useTypescript ? "ts" : "js";
155
+ await mergeFilesystemBarrelExports(componentsDir, indexExt, indexExports, categoryIndexMap);
144
156
  // Pushing root components index.ts abstractly matching token pipeline cleanly
145
157
  // Since this acts as the dynamic CLI barrel, overwrite it safely on generate
146
- const rootIndexPath = path.join(componentsDir, `index.${useTypescript ? "ts" : "js"}`);
158
+ const rootIndexPath = path.join(componentsDir, `index.${indexExt}`);
147
159
  const indexContent = `/**
148
160
  * Generated Design System Components Root Index
149
161
  * Calibrate native safe mappings.
@@ -154,7 +166,7 @@ export async function writeComponents(model, config, options) {
154
166
  for (const [category, exports] of categoryIndexMap.entries()) {
155
167
  if (category === "__root_category_unassigned")
156
168
  continue;
157
- const categoryIndexPath = path.join(componentsDir, category, `index.${useTypescript ? "ts" : "js"}`);
169
+ const categoryIndexPath = path.join(componentsDir, category, `index.${indexExt}`);
158
170
  try {
159
171
  const existingStat = await fs.stat(categoryIndexPath);
160
172
  if (existingStat.isFile()) {
@@ -182,6 +194,105 @@ export async function writeComponents(model, config, options) {
182
194
  await writeLayoutPrimitives(componentsDir, useTypescript, report);
183
195
  return report;
184
196
  }
197
+ /**
198
+ * Scans the components directory for folders that contain an index.{ts,js,tsx,jsx}
199
+ * but are not already represented in the in-model exports/category map. Mutates
200
+ * `rootExports` and `categoryMap` to add the missing entries so the barrel
201
+ * reflects the actual filesystem (audit Bugs C + D: hand-crafted components
202
+ * and manifest-only entries were previously orphaned at the root).
203
+ *
204
+ * Layout assumptions match writeComponents above:
205
+ * components/<folder>/index.* → root export
206
+ * components/<category>/<folder>/index.* → category barrel + root export
207
+ */
208
+ async function mergeFilesystemBarrelExports(componentsDir, indexExt, rootExports, categoryMap) {
209
+ const seenRoot = new Set(rootExports);
210
+ const ensureRoot = (line) => {
211
+ if (!seenRoot.has(line)) {
212
+ seenRoot.add(line);
213
+ rootExports.push(line);
214
+ }
215
+ };
216
+ // Detects a component folder by the presence of index.ts/index.js/etc. A
217
+ // generated component always has one; hand-crafted components that follow
218
+ // the PTB folder convention will too. Folders without an index are
219
+ // ignored — they're scaffolding, not exportable surface.
220
+ const hasIndexFile = async (dir) => {
221
+ for (const candidate of ["index.ts", "index.js", "index.tsx", "index.jsx"]) {
222
+ try {
223
+ const stat = await fs.stat(path.join(dir, candidate));
224
+ if (stat.isFile())
225
+ return true;
226
+ }
227
+ catch { /* not found — try next */ }
228
+ }
229
+ return false;
230
+ };
231
+ let firstLevel;
232
+ try {
233
+ firstLevel = await fs.readdir(componentsDir);
234
+ }
235
+ catch {
236
+ return; // components dir doesn't exist yet — nothing to merge
237
+ }
238
+ for (const entry of firstLevel) {
239
+ // Skip dotfiles, the barrel itself, and the workspace's own index file
240
+ if (entry.startsWith(".") || entry.startsWith("index."))
241
+ continue;
242
+ const entryPath = path.join(componentsDir, entry);
243
+ let stat;
244
+ try {
245
+ stat = await fs.stat(entryPath);
246
+ }
247
+ catch {
248
+ continue;
249
+ }
250
+ if (!stat.isDirectory())
251
+ continue;
252
+ // Case A: component sits directly under componentsDir (no category)
253
+ if (await hasIndexFile(entryPath)) {
254
+ ensureRoot(`export * from "./${entry}/index.${indexExt === "ts" ? "js" : indexExt}";`);
255
+ continue;
256
+ }
257
+ // Case B: this folder is a category — descend one level
258
+ let inner;
259
+ try {
260
+ inner = await fs.readdir(entryPath);
261
+ }
262
+ catch {
263
+ continue;
264
+ }
265
+ const category = entry;
266
+ const categoryExports = categoryMap.get(category) ?? (() => {
267
+ const fresh = [];
268
+ categoryMap.set(category, fresh);
269
+ return fresh;
270
+ })();
271
+ const seenCategory = new Set(categoryExports);
272
+ for (const childEntry of inner) {
273
+ if (childEntry.startsWith(".") || childEntry.startsWith("index."))
274
+ continue;
275
+ const childPath = path.join(entryPath, childEntry);
276
+ let childStat;
277
+ try {
278
+ childStat = await fs.stat(childPath);
279
+ }
280
+ catch {
281
+ continue;
282
+ }
283
+ if (!childStat.isDirectory())
284
+ continue;
285
+ if (!(await hasIndexFile(childPath)))
286
+ continue;
287
+ const childLine = `export * from "./${childEntry}/index.${indexExt === "ts" ? "js" : indexExt}";`;
288
+ if (!seenCategory.has(childLine)) {
289
+ seenCategory.add(childLine);
290
+ categoryExports.push(childLine);
291
+ }
292
+ ensureRoot(`export * from "./${category}/${childEntry}/index.${indexExt === "ts" ? "js" : indexExt}";`);
293
+ }
294
+ }
295
+ }
185
296
  /**
186
297
  * Ensures structural placeholder primitives `<Row>`, `<Stack>`, and `<Grid>` natively exist inside projects dynamically modifying structural generic flexbox mappings.
187
298
  */
@@ -1 +1 @@
1
- {"version":3,"file":"write-components.js","sourceRoot":"","sources":["../../src/components/write-components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write-components.js","sourceRoot":"","sources":["../../src/components/write-components.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-token-file-content.d.ts","sourceRoot":"","sources":["../../src/tokens/generate-token-file-content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,CAwB5E"}
1
+ {"version":3,"file":"generate-token-file-content.d.ts","sourceRoot":"","sources":["../../src/tokens/generate-token-file-content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGlE;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,CA2B5E"}
@@ -1,8 +1,12 @@
1
+ import { formatCollectionImportName } from "../components/token-helpers.js";
1
2
  /**
2
3
  * Generates TypeScript constant file content for a Token Collection.
3
4
  */
4
5
  export function generateTokenFileContent(collection) {
5
- const safeName = collection.name.replace(/[^a-zA-Z0-9_]/g, "");
6
+ // Single source of truth for the export identifier — components import the same name
7
+ // via formatCollectionImportName, so any divergence here would surface as a TS error
8
+ // on every consumer file. See packages/generators/react/src/components/token-helpers.ts.
9
+ const exportIdent = `${formatCollectionImportName(collection.name)}Tokens`;
6
10
  let tokensContent = "";
7
11
  for (const t of collection.tokens) {
8
12
  // We output only the default mode explicitly initially for a clean shape based on the canonical value
@@ -20,7 +24,7 @@ export function generateTokenFileContent(collection) {
20
24
  * Do not edit. This file is auto-generated by Calibrate.
21
25
  */
22
26
 
23
- export const ${safeName}Tokens = {${tokensContent}
27
+ export const ${exportIdent} = {${tokensContent}
24
28
  } as const;
25
29
  `;
26
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate-token-file-content.js","sourceRoot":"","sources":["../../src/tokens/generate-token-file-content.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAA2B;IAClE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAE/D,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QAClC,sGAAsG;QACtG,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5E,aAAa,IAAI;KAChB,CAAC,CAAC,IAAI;WACA,CAAC,CAAC,EAAE;aACF,CAAC,CAAC,IAAI;aACN,CAAC,CAAC,IAAI;aACN,SAAS;KACjB,CAAC;IACJ,CAAC;IAED,OAAO;8BACqB,UAAU,CAAC,IAAI;;;;eAI9B,QAAQ,aAAa,aAAa;;CAEhD,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"generate-token-file-content.js","sourceRoot":"","sources":["../../src/tokens/generate-token-file-content.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE5E;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAA2B;IAClE,qFAAqF;IACrF,qFAAqF;IACrF,yFAAyF;IACzF,MAAM,WAAW,GAAG,GAAG,0BAA0B,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;IAE3E,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QAClC,sGAAsG;QACtG,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5E,aAAa,IAAI;KAChB,CAAC,CAAC,IAAI;WACA,CAAC,CAAC,EAAE;aACF,CAAC,CAAC,IAAI;aACN,CAAC,CAAC,IAAI;aACN,SAAS;KACjB,CAAC;IACJ,CAAC;IAED,OAAO;8BACqB,UAAU,CAAC,IAAI;;;;eAI9B,WAAW,OAAO,aAAa;;CAE7C,CAAC;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calibrate-ds/generator-react",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -20,8 +20,8 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "react": "^19.0.0",
23
- "@calibrate-ds/shared-types": "0.1.5",
24
- "@calibrate-ds/core": "0.1.5"
23
+ "@calibrate-ds/core": "^0.1.6",
24
+ "@calibrate-ds/shared-types": "^0.1.6"
25
25
  },
26
26
  "devDependencies": {
27
27
  "typescript": "^5.7.3",