@supernova-studio/model 0.58.27 → 0.59.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +433 -351
- package/dist/index.d.ts +433 -351
- package/dist/index.js +57 -25
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +53 -21
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/dsm/elements/data/figma-node-reference.ts +45 -17
- package/src/dsm/elements/raw-element.ts +19 -1
- package/src/dsm/elements/tokens.ts +11 -5
- package/src/dsm/import/support/import-context.ts +1 -0
- package/src/feature-flags/feature-flags.ts +1 -0
package/dist/index.mjs
CHANGED
|
@@ -1769,15 +1769,26 @@ var stringTokenTypes = /* @__PURE__ */ new Set([
|
|
|
1769
1769
|
"FontFamily",
|
|
1770
1770
|
"FontWeight"
|
|
1771
1771
|
]);
|
|
1772
|
-
|
|
1772
|
+
var fallbackNumberValue = 14;
|
|
1773
|
+
function areTokenTypesCompatible(lhs, rhs, isNonCompatibleTypeChangesEnabled = false) {
|
|
1773
1774
|
if (lhs === rhs)
|
|
1774
1775
|
return true;
|
|
1775
1776
|
if (numberTokenTypes.has(lhs) && numberTokenTypes.has(rhs))
|
|
1776
1777
|
return true;
|
|
1777
1778
|
if (stringTokenTypes.has(lhs) && stringTokenTypes.has(rhs))
|
|
1778
1779
|
return true;
|
|
1780
|
+
if (isNonCompatibleTypeChangesEnabled && stringTokenTypes.has(lhs) && numberTokenTypes.has(rhs))
|
|
1781
|
+
return true;
|
|
1779
1782
|
return false;
|
|
1780
1783
|
}
|
|
1784
|
+
function castStringToDimensionValue(lhs, rhs, value) {
|
|
1785
|
+
if (stringTokenTypes.has(lhs) && numberTokenTypes.has(rhs) && value) {
|
|
1786
|
+
const newValue = Number.parseFloat(value?.toString() ?? "");
|
|
1787
|
+
const measure = Number.isNaN(newValue) ? fallbackNumberValue : newValue;
|
|
1788
|
+
return { unit: "Pixels", measure };
|
|
1789
|
+
}
|
|
1790
|
+
return value;
|
|
1791
|
+
}
|
|
1781
1792
|
var DesignElementCategory = z40.enum([
|
|
1782
1793
|
"Token",
|
|
1783
1794
|
"Component",
|
|
@@ -2920,23 +2931,33 @@ function recursiveFigmaFileStructureToMap(node, map) {
|
|
|
2920
2931
|
|
|
2921
2932
|
// src/dsm/elements/data/figma-node-reference.ts
|
|
2922
2933
|
import { z as z58 } from "zod";
|
|
2934
|
+
var FigmaNodeRenderState = z58.enum(["InProgress", "Success", "Failed"]);
|
|
2923
2935
|
var FigmaNodeRenderFormat = z58.enum(["Png", "Svg"]);
|
|
2936
|
+
var FigmaNodeRenderErrorType = z58.enum(["MissingIntegration", "NodeNotFound", "RenderError"]);
|
|
2937
|
+
var FigmaNodeRelinkData = z58.object({
|
|
2938
|
+
fileId: z58.string()
|
|
2939
|
+
});
|
|
2940
|
+
var FigmaNodeRenderedImage = z58.object({
|
|
2941
|
+
resourceId: z58.string(),
|
|
2942
|
+
format: FigmaNodeRenderFormat,
|
|
2943
|
+
scale: nullishToOptional(z58.number()),
|
|
2944
|
+
width: nullishToOptional(z58.number()),
|
|
2945
|
+
height: nullishToOptional(z58.number()),
|
|
2946
|
+
url: nullishToOptional(z58.string()),
|
|
2947
|
+
originKey: nullishToOptional(z58.string())
|
|
2948
|
+
});
|
|
2949
|
+
var FigmaNodeRenderError = z58.object({
|
|
2950
|
+
type: FigmaNodeRenderErrorType
|
|
2951
|
+
});
|
|
2924
2952
|
var FigmaNodeReferenceData = z58.object({
|
|
2925
|
-
structureElementId: z58.string(),
|
|
2926
2953
|
nodeId: z58.string(),
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
2931
|
-
|
|
2932
|
-
|
|
2933
|
-
|
|
2934
|
-
assetHeight: z58.number().optional(),
|
|
2935
|
-
assetUrl: z58.string().optional(),
|
|
2936
|
-
assetOriginKey: z58.string().optional()
|
|
2937
|
-
});
|
|
2938
|
-
var FigmaNodeReferenceElementData = z58.object({
|
|
2939
|
-
value: FigmaNodeReferenceData
|
|
2954
|
+
format: FigmaNodeRenderFormat,
|
|
2955
|
+
scale: nullishToOptional(z58.number()),
|
|
2956
|
+
renderState: FigmaNodeRenderState,
|
|
2957
|
+
renderedImage: FigmaNodeRenderedImage.optional(),
|
|
2958
|
+
renderError: FigmaNodeRenderError.optional(),
|
|
2959
|
+
hasSource: z58.boolean(),
|
|
2960
|
+
relinkData: FigmaNodeRelinkData.optional()
|
|
2940
2961
|
});
|
|
2941
2962
|
|
|
2942
2963
|
// src/dsm/elements/data/font-family.ts
|
|
@@ -3384,13 +3405,17 @@ function extractTokenTypedData(source) {
|
|
|
3384
3405
|
data: source.data
|
|
3385
3406
|
};
|
|
3386
3407
|
}
|
|
3387
|
-
function convertTokenTypedData(source, type) {
|
|
3388
|
-
if (!areTokenTypesCompatible(source.type, type)) {
|
|
3408
|
+
function convertTokenTypedData(source, type, isNonCompatibleTypeChangesEnabled) {
|
|
3409
|
+
if (!areTokenTypesCompatible(source.type, type, isNonCompatibleTypeChangesEnabled)) {
|
|
3389
3410
|
throw SupernovaException.invalidOperation(`Cannot convert token from ${source.type} to ${type}`);
|
|
3390
3411
|
}
|
|
3412
|
+
const data = source.data;
|
|
3413
|
+
if (isNonCompatibleTypeChangesEnabled) {
|
|
3414
|
+
data.value = castStringToDimensionValue(source.type, type, source.data.value);
|
|
3415
|
+
}
|
|
3391
3416
|
return {
|
|
3392
3417
|
type,
|
|
3393
|
-
data
|
|
3418
|
+
data
|
|
3394
3419
|
};
|
|
3395
3420
|
}
|
|
3396
3421
|
function isImportedDesignToken(designToken) {
|
|
@@ -3687,7 +3712,8 @@ var FigmaImportBaseContext = z91.object({
|
|
|
3687
3712
|
var FeatureFlagsKeepAliases = z91.object({
|
|
3688
3713
|
isTypographyPropsKeepAliasesEnabled: z91.boolean().default(false),
|
|
3689
3714
|
isGradientPropsKeepAliasesEnabled: z91.boolean().default(false),
|
|
3690
|
-
isShadowPropsKeepAliasesEnabled: z91.boolean().default(false)
|
|
3715
|
+
isShadowPropsKeepAliasesEnabled: z91.boolean().default(false),
|
|
3716
|
+
isNonCompatibleTypeChangesEnabled: z91.boolean().default(false)
|
|
3691
3717
|
});
|
|
3692
3718
|
var FigmaImportContextWithSourcesState = FigmaImportBaseContext.extend({
|
|
3693
3719
|
sourcesWithMissingAccess: z91.array(z91.string()).default([]),
|
|
@@ -5397,7 +5423,8 @@ var FlaggedFeature = z170.enum([
|
|
|
5397
5423
|
"VariablesOrder",
|
|
5398
5424
|
"TypographyPropsKeepAliases",
|
|
5399
5425
|
"GradientPropsKeepAliases",
|
|
5400
|
-
"ShadowPropsKeepAliases"
|
|
5426
|
+
"ShadowPropsKeepAliases",
|
|
5427
|
+
"NonCompatibleTypeChanges"
|
|
5401
5428
|
]);
|
|
5402
5429
|
var FeatureFlagMap = z170.record(FlaggedFeature, z170.boolean());
|
|
5403
5430
|
var FeatureFlag = z170.object({
|
|
@@ -5806,9 +5833,13 @@ export {
|
|
|
5806
5833
|
FigmaImportContextWithSourcesState,
|
|
5807
5834
|
FigmaNodeReference,
|
|
5808
5835
|
FigmaNodeReferenceData,
|
|
5809
|
-
FigmaNodeReferenceElementData,
|
|
5810
5836
|
FigmaNodeReferenceOrigin,
|
|
5837
|
+
FigmaNodeRelinkData,
|
|
5838
|
+
FigmaNodeRenderError,
|
|
5839
|
+
FigmaNodeRenderErrorType,
|
|
5811
5840
|
FigmaNodeRenderFormat,
|
|
5841
|
+
FigmaNodeRenderState,
|
|
5842
|
+
FigmaNodeRenderedImage,
|
|
5812
5843
|
FigmaPngRenderImportModel,
|
|
5813
5844
|
FigmaRenderFormat,
|
|
5814
5845
|
FigmaRenderImportModel,
|
|
@@ -6184,6 +6215,7 @@ export {
|
|
|
6184
6215
|
areShallowObjectsEqual,
|
|
6185
6216
|
areTokenTypesCompatible,
|
|
6186
6217
|
buildConstantEnum,
|
|
6218
|
+
castStringToDimensionValue,
|
|
6187
6219
|
chunkedArray,
|
|
6188
6220
|
convertTokenTypedData,
|
|
6189
6221
|
defaultDocumentationItemConfigurationV1,
|