@calibrate-ds/generator-react 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/generate-component-css.d.ts +8 -1
- package/dist/components/generate-component-css.d.ts.map +1 -1
- package/dist/components/generate-component-css.js +36 -5
- package/dist/components/generate-component-css.js.map +1 -1
- package/dist/components/generate-component-file.d.ts.map +1 -1
- package/dist/components/generate-component-file.js +71 -12
- package/dist/components/generate-component-file.js.map +1 -1
- package/dist/components/generate-composite-types.d.ts.map +1 -1
- package/dist/components/generate-composite-types.js +53 -15
- package/dist/components/generate-composite-types.js.map +1 -1
- package/dist/components/generate-types-file.d.ts.map +1 -1
- package/dist/components/generate-types-file.js +47 -15
- package/dist/components/generate-types-file.js.map +1 -1
- package/dist/components/icon-svg.d.ts +30 -0
- package/dist/components/icon-svg.d.ts.map +1 -0
- package/dist/components/icon-svg.js +111 -0
- package/dist/components/icon-svg.js.map +1 -0
- package/dist/components/layout-jsx.js +41 -1
- package/dist/components/layout-jsx.js.map +1 -1
- package/dist/components/token-reverse-lookup.d.ts +31 -0
- package/dist/components/token-reverse-lookup.d.ts.map +1 -0
- package/dist/components/token-reverse-lookup.js +109 -0
- package/dist/components/token-reverse-lookup.js.map +1 -0
- package/dist/components/write-components.d.ts.map +1 -1
- package/dist/components/write-components.js +142 -21
- package/dist/components/write-components.js.map +1 -1
- package/dist/tokens/generate-token-file-content.d.ts.map +1 -1
- package/dist/tokens/generate-token-file-content.js +6 -2
- package/dist/tokens/generate-token-file-content.js.map +1 -1
- package/package.json +3 -3
|
@@ -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;
|
|
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: ${
|
|
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: ${
|
|
80
|
+
cssContent += ` padding: ${tF};\n`;
|
|
50
81
|
}
|
|
51
82
|
else if (t === b && r === l) {
|
|
52
|
-
cssContent += ` padding: ${
|
|
83
|
+
cssContent += ` padding: ${tF} ${rF};\n`;
|
|
53
84
|
}
|
|
54
85
|
else {
|
|
55
|
-
cssContent += ` padding: ${
|
|
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":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;
|
|
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;
|
|
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
|
-
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
|
|
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":"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"}
|
|
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-composite-types.d.ts","sourceRoot":"","sources":["../../src/components/generate-composite-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"generate-composite-types.d.ts","sourceRoot":"","sources":["../../src/components/generate-composite-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAsC,MAAM,4BAA4B,CAAC;AAIrH;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CA8EpG"}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import { createNamingStrategy, normalizeIconDisplayName, isIconComponent } from "@calibrate-ds/core";
|
|
2
|
-
|
|
3
|
-
return name.replace(/[^a-zA-Z0-9_$]/g, "");
|
|
4
|
-
}
|
|
5
|
-
function sanitizeOptionName(option) {
|
|
6
|
-
return option.replace(/["']/g, "");
|
|
7
|
-
}
|
|
2
|
+
import { normalizePropName, sanitizeOptionName } from "./helpers.js";
|
|
8
3
|
/**
|
|
9
4
|
* Builds composite scaffolding interfaces explicitly allowing children injection
|
|
10
5
|
* mimicking standard UI containers dynamically mapping surface variants if they exist.
|
|
@@ -15,21 +10,64 @@ export function generateCompositeTypesFile(component, config) {
|
|
|
15
10
|
const componentName = namingStrategy.formatComponentName(resolvedName);
|
|
16
11
|
let output = `import type * as React from "react";\n\n`;
|
|
17
12
|
const variantProps = [];
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
const seenPropNames = new Set();
|
|
14
|
+
const pushTypeAndProp = (cleanName, typeName, bodyDecl) => {
|
|
15
|
+
if (seenPropNames.has(cleanName))
|
|
16
|
+
return;
|
|
17
|
+
seenPropNames.add(cleanName);
|
|
18
|
+
output += bodyDecl;
|
|
19
|
+
variantProps.push(` ${cleanName}?: ${typeName};`);
|
|
20
|
+
};
|
|
21
|
+
// Read variant axes first (modern field) — these are the Figma Component Set dimensions.
|
|
22
|
+
// Legacy composites still carry the old `variants` shape, handled below as fallback.
|
|
23
|
+
if (component.variantAxes && component.variantAxes.length > 0) {
|
|
24
|
+
component.variantAxes.forEach((ax) => {
|
|
25
|
+
const cleanName = normalizePropName(ax.name);
|
|
26
|
+
const typeName = `${componentName}${cleanName.charAt(0).toUpperCase() + cleanName.slice(1)}`;
|
|
27
|
+
if (ax.type === "boolean") {
|
|
28
|
+
pushTypeAndProp(cleanName, typeName, `export type ${typeName} = boolean;\n`);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
const union = (ax.options || []).map((opt) => `"${sanitizeOptionName(opt)}"`).join(" | ");
|
|
32
|
+
pushTypeAndProp(cleanName, typeName, `export type ${typeName} = ${union || "string"};\n`);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
// Component-level properties (instance swap, boolean, text, enum).
|
|
37
|
+
if (component.properties && component.properties.length > 0) {
|
|
38
|
+
component.properties.forEach((p) => {
|
|
39
|
+
const cleanName = normalizePropName(p.name);
|
|
40
|
+
const typeName = `${componentName}${cleanName.charAt(0).toUpperCase() + cleanName.slice(1)}`;
|
|
41
|
+
if (p.type === "boolean") {
|
|
42
|
+
pushTypeAndProp(cleanName, typeName, `export type ${typeName} = boolean;\n`);
|
|
43
|
+
}
|
|
44
|
+
else if (p.type === "text") {
|
|
45
|
+
pushTypeAndProp(cleanName, typeName, `export type ${typeName} = string;\n`);
|
|
46
|
+
}
|
|
47
|
+
else if (p.type === "instance") {
|
|
48
|
+
pushTypeAndProp(cleanName, typeName, `export type ${typeName} = React.ReactNode;\n`);
|
|
49
|
+
}
|
|
50
|
+
else if (p.type === "enum") {
|
|
51
|
+
const union = (p.options || []).map((opt) => `"${sanitizeOptionName(opt)}"`).join(" | ");
|
|
52
|
+
pushTypeAndProp(cleanName, typeName, `export type ${typeName} = ${union || "string"};\n`);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
else if (component.variants && component.variants.length > 0) {
|
|
57
|
+
// Legacy fallback for older snapshots not yet re-scanned.
|
|
20
58
|
component.variants.forEach((v) => {
|
|
21
|
-
const cleanName =
|
|
59
|
+
const cleanName = normalizePropName(v.name);
|
|
22
60
|
const typeName = `${componentName}${cleanName.charAt(0).toUpperCase() + cleanName.slice(1)}`;
|
|
23
61
|
if (v.type === "boolean") {
|
|
24
|
-
|
|
25
|
-
variantProps.push(` ${cleanName}?: ${typeName};`);
|
|
62
|
+
pushTypeAndProp(cleanName, typeName, `export type ${typeName} = boolean;\n`);
|
|
26
63
|
}
|
|
27
|
-
else
|
|
28
|
-
const union = v.options.map(opt => `"${sanitizeOptionName(opt)}"`).join(" | ");
|
|
29
|
-
|
|
30
|
-
variantProps.push(` ${cleanName}?: ${typeName};`);
|
|
64
|
+
else {
|
|
65
|
+
const union = (v.options || []).map((opt) => `"${sanitizeOptionName(opt)}"`).join(" | ");
|
|
66
|
+
pushTypeAndProp(cleanName, typeName, `export type ${typeName} = ${union || "string"};\n`);
|
|
31
67
|
}
|
|
32
68
|
});
|
|
69
|
+
}
|
|
70
|
+
if (seenPropNames.size > 0) {
|
|
33
71
|
output += "\n";
|
|
34
72
|
}
|
|
35
73
|
output += `export interface ${componentName}Props extends React.HTMLAttributes<HTMLDivElement> {\n`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-composite-types.js","sourceRoot":"","sources":["../../src/components/generate-composite-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-composite-types.js","sourceRoot":"","sources":["../../src/components/generate-composite-types.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;
|
|
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
|
-
|
|
20
|
-
variantProps.push(` ${cleanName}?: ${typeName};`);
|
|
56
|
+
pushTypeAndProp(cleanName, typeName, `export type ${typeName} = boolean;\n`);
|
|
21
57
|
}
|
|
22
58
|
else if (p.type === "text") {
|
|
23
|
-
|
|
24
|
-
variantProps.push(` ${cleanName}?: ${typeName};`);
|
|
59
|
+
pushTypeAndProp(cleanName, typeName, `export type ${typeName} = string;\n`);
|
|
25
60
|
}
|
|
26
61
|
else if (p.type === "instance") {
|
|
27
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AACA,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
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"}
|