@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.mjs CHANGED
@@ -1769,15 +1769,26 @@ var stringTokenTypes = /* @__PURE__ */ new Set([
1769
1769
  "FontFamily",
1770
1770
  "FontWeight"
1771
1771
  ]);
1772
- function areTokenTypesCompatible(lhs, rhs) {
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
- fileId: z58.string().optional(),
2928
- valid: z58.boolean(),
2929
- format: FigmaNodeRenderFormat.default("Png"),
2930
- // Asset data
2931
- assetId: z58.string().optional(),
2932
- assetScale: z58.number().optional(),
2933
- assetWidth: z58.number().optional(),
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: source.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,