@terrazzo/token-tools 2.0.0-beta.5 → 2.0.0-rc.0

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/css.d.ts CHANGED
@@ -1,6 +1,4 @@
1
- import { F as GradientTokenNormalized, Q as ShadowValueNormalized, S as DurationTokenNormalized, St as TypographyTokenNormalized, T as FontFamilyTokenNormalized, U as LinkTokenNormalized, X as ShadowTokenNormalized, dt as TokenNormalizedSet, et as StringTokenNormalized, f as ColorTokenNormalized, g as CubicBezierTokenNormalized, i as BooleanTokenNormalized, k as FontWeightTokenNormalized, lt as TokenNormalized, q as NumberTokenNormalized, rt as StrokeStyleTokenNormalized, s as BorderTokenNormalized, vt as TransitionTokenNormalized, y as DimensionTokenNormalized } from "./types-Cwbw-_yP.js";
2
- import "./color-DoUasWha.js";
3
-
1
+ import { F as GradientTokenNormalized, Q as ShadowValueNormalized, S as DurationTokenNormalized, St as TypographyTokenNormalized, T as FontFamilyTokenNormalized, U as LinkTokenNormalized, X as ShadowTokenNormalized, dt as TokenNormalizedSet, et as StringTokenNormalized, f as ColorTokenNormalized, ft as TokenTransformed, g as CubicBezierTokenNormalized, ht as TokenTransformedSingleValue, i as BooleanTokenNormalized, k as FontWeightTokenNormalized, lt as TokenNormalized, mt as TokenTransformedMultiValue, q as NumberTokenNormalized, rt as StrokeStyleTokenNormalized, s as BorderTokenNormalized, vt as TransitionTokenNormalized, y as DimensionTokenNormalized } from "./types-Cwbw-_yP.js";
4
2
  //#region src/css/lib.d.ts
5
3
  /** Function that generates a var(…) statement */
6
4
  type IDGenerator<T = TokenNormalized> = (token: T) => string;
@@ -35,6 +33,8 @@ declare function makeCSSVar(name: string, {
35
33
  interface TransformCSSValueOptions {
36
34
  /** Complete set of tokens (needed to resolve full and partial aliases) */
37
35
  tokensSet: TokenNormalizedSet;
36
+ /** Values of the current permutation */
37
+ permutation: Record<string, string>;
38
38
  transformAlias?: IDGenerator;
39
39
  /** Options for color tokens */
40
40
  color?: {
@@ -47,6 +47,14 @@ interface TransformCSSValueOptions {
47
47
  };
48
48
  }
49
49
  //#endregion
50
+ //#region src/css/boolean.d.ts
51
+ /** Convert boolean value to CSS string */
52
+ declare function transformBoolean(token: BooleanTokenNormalized, options: TransformCSSValueOptions): TokenTransformedSingleValue['value'];
53
+ //#endregion
54
+ //#region src/css/border.d.ts
55
+ /** Convert border value to multiple CSS values */
56
+ declare function transformBorder(token: BorderTokenNormalized, options: TransformCSSValueOptions): TokenTransformed['value'];
57
+ //#endregion
50
58
  //#region src/css/color.d.ts
51
59
  type WideGamutColorValue = {
52
60
  '.': string;
@@ -55,7 +63,7 @@ type WideGamutColorValue = {
55
63
  rec2020: string;
56
64
  };
57
65
  /** Convert color value to CSS string */
58
- declare function transformColor(token: ColorTokenNormalized, options: TransformCSSValueOptions): string | WideGamutColorValue;
66
+ declare function transformColor(token: ColorTokenNormalized, options: TransformCSSValueOptions): TokenTransformed['value'];
59
67
  declare const DEPTH_ROUNDING: {
60
68
  24: number;
61
69
  30: number;
@@ -64,52 +72,36 @@ declare const DEPTH_ROUNDING: {
64
72
  };
65
73
  type Depth = keyof typeof DEPTH_ROUNDING | 'unlimited';
66
74
  //#endregion
67
- //#region src/css/boolean.d.ts
68
- /** Convert boolean value to CSS string */
69
- declare function transformBoolean(token: BooleanTokenNormalized, {
70
- tokensSet,
71
- transformAlias
72
- }: TransformCSSValueOptions): string;
73
- //#endregion
74
- //#region src/css/border.d.ts
75
- /** Convert border value to multiple CSS values */
76
- declare function transformBorder(token: BorderTokenNormalized, options: TransformCSSValueOptions): string | {
77
- '.': string;
78
- srgb: string;
79
- p3: string;
80
- rec2020: string;
81
- };
82
- //#endregion
83
75
  //#region src/css/cubic-bezier.d.ts
84
76
  /** Convert cubicBezier value to CSS */
85
- declare function transformCubicBezier(token: CubicBezierTokenNormalized, options: TransformCSSValueOptions): string;
77
+ declare function transformCubicBezier(token: CubicBezierTokenNormalized, options: TransformCSSValueOptions): TokenTransformedSingleValue['value'];
86
78
  //#endregion
87
79
  //#region src/css/dimension.d.ts
88
80
  /** Convert dimension value to CSS */
89
- declare function transformDimension(token: DimensionTokenNormalized, options: TransformCSSValueOptions): string;
81
+ declare function transformDimension(token: DimensionTokenNormalized, options: TransformCSSValueOptions): TokenTransformedSingleValue['value'];
90
82
  //#endregion
91
83
  //#region src/css/duration.d.ts
92
84
  /** Convert duration value to CSS */
93
- declare function transformDuration(token: DurationTokenNormalized, options: TransformCSSValueOptions): string;
85
+ declare function transformDuration(token: DurationTokenNormalized, options: TransformCSSValueOptions): TokenTransformedSingleValue['value'];
94
86
  //#endregion
95
87
  //#region src/css/font-family.d.ts
96
- declare function transformFontFamily(token: FontFamilyTokenNormalized, options: TransformCSSValueOptions): string;
88
+ declare function transformFontFamily(token: FontFamilyTokenNormalized, options: TransformCSSValueOptions): TokenTransformedSingleValue['value'];
97
89
  //#endregion
98
90
  //#region src/css/font-weight.d.ts
99
91
  /** Convert fontWeight value to CSS */
100
- declare function transformFontWeight(token: FontWeightTokenNormalized, options: TransformCSSValueOptions): string;
92
+ declare function transformFontWeight(token: FontWeightTokenNormalized, options: TransformCSSValueOptions): TokenTransformedSingleValue['value'];
101
93
  //#endregion
102
94
  //#region src/css/gradient.d.ts
103
95
  /** Convert gradient value to CSS */
104
- declare function transformGradient(token: GradientTokenNormalized, options: TransformCSSValueOptions): string | WideGamutColorValue;
96
+ declare function transformGradient(token: GradientTokenNormalized, options: TransformCSSValueOptions): TokenTransformed['value'];
105
97
  //#endregion
106
98
  //#region src/css/link.d.ts
107
99
  /** Convert link value to CSS */
108
- declare function transformLink(token: LinkTokenNormalized, options: TransformCSSValueOptions): string;
100
+ declare function transformLink(token: LinkTokenNormalized, options: TransformCSSValueOptions): TokenTransformedSingleValue['value'];
109
101
  //#endregion
110
102
  //#region src/css/number.d.ts
111
103
  /** Convert number value to CSS */
112
- declare function transformNumber(token: NumberTokenNormalized, options: TransformCSSValueOptions): string;
104
+ declare function transformNumber(token: NumberTokenNormalized, options: TransformCSSValueOptions): TokenTransformedSingleValue['value'];
113
105
  //#endregion
114
106
  //#region src/css/shadow.d.ts
115
107
  /** Convert shadow subvalue to CSS */
@@ -118,27 +110,27 @@ declare function transformShadowLayer(value: ShadowValueNormalized, options: Tra
118
110
  partialAliasOf?: Partial<Record<keyof typeof value, string>>;
119
111
  }): string | Record<string, string>;
120
112
  /** Convert shadow value to CSS */
121
- declare function transformShadow(token: ShadowTokenNormalized, options: TransformCSSValueOptions): string | Record<string, string>;
113
+ declare function transformShadow(token: ShadowTokenNormalized, options: TransformCSSValueOptions): TokenTransformed['value'];
122
114
  //#endregion
123
115
  //#region src/css/string.d.ts
124
116
  /** Convert string value to CSS */
125
- declare function transformString(token: StringTokenNormalized, options: TransformCSSValueOptions): string;
117
+ declare function transformString(token: StringTokenNormalized, options: TransformCSSValueOptions): TokenTransformedSingleValue['value'];
126
118
  //#endregion
127
119
  //#region src/css/stroke-style.d.ts
128
120
  /** Convert strokeStyle value to CSS */
129
- declare function transformStrokeStyle(token: StrokeStyleTokenNormalized, options: TransformCSSValueOptions): string;
121
+ declare function transformStrokeStyle(token: StrokeStyleTokenNormalized, options: TransformCSSValueOptions): TokenTransformedSingleValue['value'];
130
122
  //#endregion
131
123
  //#region src/css/transition.d.ts
132
124
  /** Convert transition value to shorthand */
133
- declare function transformTransition(token: TransitionTokenNormalized, options: TransformCSSValueOptions): string;
125
+ declare function transformTransition(token: TransitionTokenNormalized, options: TransformCSSValueOptions): TokenTransformedSingleValue['value'];
134
126
  //#endregion
135
127
  //#region src/css/typography.d.ts
136
128
  /** Convert typography value to multiple CSS values */
137
- declare function transformTypography(token: TypographyTokenNormalized, options: TransformCSSValueOptions): Record<string, string>;
129
+ declare function transformTypography(token: TypographyTokenNormalized, options: TransformCSSValueOptions): TokenTransformedMultiValue['value'];
138
130
  //#endregion
139
131
  //#region src/css/index.d.ts
140
132
  /** Main CSS Transform */
141
- declare function transformCSSValue<T extends TokenNormalized = TokenNormalized>(token: T, options: TransformCSSValueOptions): string | WideGamutColorValue | Record<string, string>;
133
+ declare function transformCSSValue<T extends TokenNormalized = TokenNormalized>(token: T, options: TransformCSSValueOptions): string | Record<string, string>;
142
134
  //#endregion
143
- export { DEPTH_ROUNDING, Depth, IDGenerator, MakeCSSVarOptions, WideGamutColorValue, defaultAliasTransform, generateShorthand, makeCSSVar, transformBoolean, transformBorder, transformCSSValue, transformColor, transformCubicBezier, transformDimension, transformDuration, transformFontFamily, transformFontWeight, transformGradient, transformLink, transformNumber, transformShadow, transformShadowLayer, transformString, transformStrokeStyle, transformTransition, transformTypography };
135
+ export { DEPTH_ROUNDING, Depth, IDGenerator, MakeCSSVarOptions, TransformCSSValueOptions, WideGamutColorValue, defaultAliasTransform, generateShorthand, makeCSSVar, transformBoolean, transformBorder, transformCSSValue, transformColor, transformCubicBezier, transformDimension, transformDuration, transformFontFamily, transformFontWeight, transformGradient, transformLink, transformNumber, transformShadow, transformShadowLayer, transformString, transformStrokeStyle, transformTransition, transformTypography };
144
136
  //# sourceMappingURL=css.d.ts.map
package/dist/css.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"css.d.ts","names":[],"sources":["../src/css/lib.ts","../src/css/css-types.ts","../src/css/color.ts","../src/css/boolean.ts","../src/css/border.ts","../src/css/cubic-bezier.ts","../src/css/dimension.ts","../src/css/duration.ts","../src/css/font-family.ts","../src/css/font-weight.ts","../src/css/gradient.ts","../src/css/link.ts","../src/css/number.ts","../src/css/shadow.ts","../src/css/string.ts","../src/css/stroke-style.ts","../src/css/transition.ts","../src/css/typography.ts","../src/css/index.ts"],"mappings":";;;;;KAGY,WAAA,KAAgB,eAAA,KAAoB,KAAA,EAAO,CAAA;AAAA,iBAEvC,qBAAA,CAAsB,KAAA,EAAO,eAAA;AAF7C;AAAA,iBAUgB,iBAAA,CAAA;EAAoB,KAAA;EAAO;AAAA;EAAa,KAAA,EAAO,eAAA;EAAiB,OAAA;AAAA;AAAA,UAiC/D,iBAAA;EA3CsC;EA6CrD,MAAA;EA7CsD;;AAExD;;EAgDE,OAAA;AAAA;;AAxCF;;;iBA+CgB,UAAA,CAAW,IAAA;EAAgB,MAAA;EAAQ;AAAA,IAAmB,iBAAA;;;UCzDrD,wBAAA;;EAEf,SAAA,EAAW,kBAAA;EACX,cAAA,GAAiB,WAAA;EDHI;ECKrB,KAAA;IDLsB,oCCOpB,SAAA;IDPmD;;;;ICYnD,KAAA;EAAA;AAAA;;;KCTQ,mBAAA;EACV,GAAA;EACA,IAAA;EACA,EAAA;EACA,OAAA;AAAA;;iBAIc,cAAA,CACd,KAAA,EAAO,oBAAA,EACP,OAAA,EAAS,wBAAA,YACC,mBAAA;AAAA,cAwBC,cAAA;;;;;;KAOD,KAAA,gBAAqB,cAAA;;;;iBC3CjB,gBAAA,CACd,KAAA,EAAO,sBAAA;EACL,SAAA;EAAW;AAAA,GAA0C,wBAAA;;;;iBCQzC,eAAA,CAAgB,KAAA,EAAO,qBAAA,EAAuB,OAAA,EAAS,wBAAA;;;;;;;;;iBCVvD,oBAAA,CAAqB,KAAA,EAAO,0BAAA,EAA4B,OAAA,EAAS,wBAAA;;;;iBCAjE,kBAAA,CAAmB,KAAA,EAAO,wBAAA,EAA0B,OAAA,EAAS,wBAAA;;;;iBCA7D,iBAAA,CAAkB,KAAA,EAAO,uBAAA,EAAyB,OAAA,EAAS,wBAAA;;;iBCC3D,mBAAA,CAAoB,KAAA,EAAO,yBAAA,EAA2B,OAAA,EAAS,wBAAA;;;;iBCD/D,mBAAA,CAAoB,KAAA,EAAO,yBAAA,EAA2B,OAAA,EAAS,wBAAA;;;;iBCC/D,iBAAA,CACd,KAAA,EAAO,uBAAA,EACP,OAAA,EAAS,wBAAA,YACC,mBAAA;;;;iBCJI,aAAA,CAAc,KAAA,EAAO,mBAAA,EAAqB,OAAA,EAAS,wBAAA;;;;iBCAnD,eAAA,CAAgB,KAAA,EAAO,qBAAA,EAAuB,OAAA,EAAS,wBAAA;;;;iBCOvD,oBAAA,CACd,KAAA,EAAO,qBAAA,EACP,OAAA,EAAS,wBAAA;EACP,UAAA;EACA,cAAA,GAAiB,OAAA,CAAQ,MAAA,cAAoB,KAAA;AAAA,aAErC,MAAA;;iBAoBI,eAAA,CACd,KAAA,EAAO,qBAAA,EACP,OAAA,EAAS,wBAAA,YACC,MAAA;;;;iBCpCI,eAAA,CAAgB,KAAA,EAAO,qBAAA,EAAuB,OAAA,EAAS,wBAAA;;;;iBCAvD,oBAAA,CAAqB,KAAA,EAAO,0BAAA,EAA4B,OAAA,EAAS,wBAAA;;;;iBCEjE,mBAAA,CAAoB,KAAA,EAAO,yBAAA,EAA2B,OAAA,EAAS,wBAAA;;;;iBCY/D,mBAAA,CAAoB,KAAA,EAAO,yBAAA,EAA2B,OAAA,EAAS,wBAAA,GAAwB,MAAA;;;AjBNvG;AAAA,iBkByBgB,iBAAA,WAA4B,eAAA,GAAkB,eAAA,CAAA,CAC5D,KAAA,EAAO,CAAA,EACP,OAAA,EAAS,wBAAA,YAAwB,mBAAA,GAAA,MAAA"}
1
+ {"version":3,"file":"css.d.ts","names":[],"sources":["../src/css/lib.ts","../src/css/css-types.ts","../src/css/boolean.ts","../src/css/border.ts","../src/css/color.ts","../src/css/cubic-bezier.ts","../src/css/dimension.ts","../src/css/duration.ts","../src/css/font-family.ts","../src/css/font-weight.ts","../src/css/gradient.ts","../src/css/link.ts","../src/css/number.ts","../src/css/shadow.ts","../src/css/string.ts","../src/css/stroke-style.ts","../src/css/transition.ts","../src/css/typography.ts","../src/css/index.ts"],"mappings":";;;KAGY,WAAA,KAAgB,eAAA,KAAoB,KAAA,EAAO,CAAA;AAAA,iBAEvC,qBAAA,CAAsB,KAAA,EAAO,eAAA;AAF7C;AAAA,iBAUgB,iBAAA,CAAA;EAAoB,KAAA;EAAO;AAAA;EAAa,KAAA,EAAO,eAAA;EAAiB,OAAA;AAAA;AAAA,UAiC/D,iBAAA;EA3CsC;EA6CrD,MAAA;EA7CsD;;AAExD;;EAgDE,OAAA;AAAA;;AAxCF;;;iBA+CgB,UAAA,CAAW,IAAA;EAAgB,MAAA;EAAQ;AAAA,IAAmB,iBAAA;;;UCzDrD,wBAAA;;EAEf,SAAA,EAAW,kBAAA;EDFU;ECIrB,WAAA,EAAa,MAAA;EACb,cAAA,GAAiB,WAAA;EDLK;ECOtB,KAAA;IDPqD,oCCSnD,SAAA;IDToD;;AAExD;;ICYI,KAAA;EAAA;AAAA;;;;iBCZY,gBAAA,CACd,KAAA,EAAO,sBAAA,EACP,OAAA,EAAS,wBAAA,GACR,2BAAA;;;;iBCQa,eAAA,CACd,KAAA,EAAO,qBAAA,EACP,OAAA,EAAS,wBAAA,GACR,gBAAA;;;KCbS,mBAAA;EACV,GAAA;EACA,IAAA;EACA,EAAA;EACA,OAAA;AAAA;;iBAIc,cAAA,CACd,KAAA,EAAO,oBAAA,EACP,OAAA,EAAS,wBAAA,GACR,gBAAA;AAAA,cAwBU,cAAA;;;;;;KAOD,KAAA,gBAAqB,cAAA;;;;iBC3CjB,oBAAA,CACd,KAAA,EAAO,0BAAA,EACP,OAAA,EAAS,wBAAA,GACR,2BAAA;;;;iBCHa,kBAAA,CACd,KAAA,EAAO,wBAAA,EACP,OAAA,EAAS,wBAAA,GACR,2BAAA;;;;iBCHa,iBAAA,CACd,KAAA,EAAO,uBAAA,EACP,OAAA,EAAS,wBAAA,GACR,2BAAA;;;iBCFa,mBAAA,CACd,KAAA,EAAO,yBAAA,EACP,OAAA,EAAS,wBAAA,GACR,2BAAA;;;;iBCJa,mBAAA,CACd,KAAA,EAAO,yBAAA,EACP,OAAA,EAAS,wBAAA,GACR,2BAAA;;;;iBCFa,iBAAA,CACd,KAAA,EAAO,uBAAA,EACP,OAAA,EAAS,wBAAA,GACR,gBAAA;;;;iBCJa,aAAA,CACd,KAAA,EAAO,mBAAA,EACP,OAAA,EAAS,wBAAA,GACR,2BAAA;;;;iBCHa,eAAA,CACd,KAAA,EAAO,qBAAA,EACP,OAAA,EAAS,wBAAA,GACR,2BAAA;;;;iBCKa,oBAAA,CACd,KAAA,EAAO,qBAAA,EACP,OAAA,EAAS,wBAAA;EACP,UAAA;EACA,cAAA,GAAiB,OAAA,CAAQ,MAAA,cAAoB,KAAA;AAAA,aAErC,MAAA;;iBAoBI,eAAA,CACd,KAAA,EAAO,qBAAA,EACP,OAAA,EAAS,wBAAA,GACR,gBAAA;;;;iBCrCa,eAAA,CACd,KAAA,EAAO,qBAAA,EACP,OAAA,EAAS,wBAAA,GACR,2BAAA;;;;iBCHa,oBAAA,CACd,KAAA,EAAO,0BAAA,EACP,OAAA,EAAS,wBAAA,GACR,2BAAA;;;;iBCIa,mBAAA,CACd,KAAA,EAAO,yBAAA,EACP,OAAA,EAAS,wBAAA,GACR,2BAAA;;;;iBCKa,mBAAA,CACd,KAAA,EAAO,yBAAA,EACP,OAAA,EAAS,wBAAA,GACR,0BAAA;;;;iBCmCa,iBAAA,WAA4B,eAAA,GAAkB,eAAA,CAAA,CAC5D,KAAA,EAAO,CAAA,EACP,OAAA,EAAS,wBAAA,YAAwB,MAAA"}
package/dist/css.js CHANGED
@@ -49,8 +49,8 @@ function makeCSSVar(name, { prefix, wrapVar = false } = {}) {
49
49
  //#endregion
50
50
  //#region src/css/boolean.ts
51
51
  /** Convert boolean value to CSS string */
52
- function transformBoolean(token, { tokensSet, transformAlias = defaultAliasTransform }) {
53
- if (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);
52
+ function transformBoolean(token, options) {
53
+ if (token.aliasChain?.[0]) return (options.transformAlias ?? defaultAliasTransform)(options.tokensSet[token.aliasChain[0]]);
54
54
  return token.$value === true ? "1" : "0";
55
55
  }
56
56
 
@@ -243,6 +243,7 @@ function transformShadow(token, options) {
243
243
  const colors = token.$value.map((v, i) => token.partialAliasOf?.[i]?.color ? transformAlias(tokensSet[token.partialAliasOf[i].color]) : transformColor({ $value: v.color }, options));
244
244
  const isHDR = colors.some((c) => typeof c === "object");
245
245
  const formatShadow = (colorKey) => token.$value.map((v, i) => transformShadowLayer(v, {
246
+ ...options,
246
247
  tokensSet,
247
248
  colorValue: typeof colors[i] === "string" ? colors[i] : colors[i][colorKey],
248
249
  partialAliasOf: token.partialAliasOf?.[i],
@@ -314,26 +315,27 @@ function transformTypography(token, options) {
314
315
 
315
316
  //#endregion
316
317
  //#region src/css/index.ts
318
+ const TRANSFORMS = {
319
+ boolean: transformBoolean,
320
+ border: transformBorder,
321
+ color: transformColor,
322
+ cubicBezier: transformCubicBezier,
323
+ dimension: transformDimension,
324
+ duration: transformDuration,
325
+ fontFamily: transformFontFamily,
326
+ fontWeight: transformFontWeight,
327
+ gradient: transformGradient,
328
+ link: transformLink,
329
+ number: transformNumber,
330
+ shadow: transformShadow,
331
+ string: transformString,
332
+ strokeStyle: transformStrokeStyle,
333
+ transition: transformTransition,
334
+ typography: transformTypography
335
+ };
317
336
  /** Main CSS Transform */
318
337
  function transformCSSValue(token, options) {
319
- switch (token.$type) {
320
- case "boolean": return transformBoolean(token, options);
321
- case "border": return transformBorder(token, options);
322
- case "color": return transformColor(token, options);
323
- case "cubicBezier": return transformCubicBezier(token, options);
324
- case "dimension": return transformDimension(token, options);
325
- case "duration": return transformDuration(token, options);
326
- case "fontFamily": return transformFontFamily(token, options);
327
- case "fontWeight": return transformFontWeight(token, options);
328
- case "gradient": return transformGradient(token, options);
329
- case "link": return transformLink(token, options);
330
- case "number": return transformNumber(token, options);
331
- case "shadow": return transformShadow(token, options);
332
- case "string": return transformString(token, options);
333
- case "strokeStyle": return transformStrokeStyle(token, options);
334
- case "transition": return transformTransition(token, options);
335
- case "typography": return transformTypography(token, options);
336
- }
338
+ return TRANSFORMS[token.$type]?.(token, options);
337
339
  }
338
340
 
339
341
  //#endregion
package/dist/css.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"css.js","names":["convert"],"sources":["../src/css/lib.ts","../src/css/boolean.ts","../src/css/color.ts","../src/css/dimension.ts","../src/css/stroke-style.ts","../src/css/border.ts","../src/css/cubic-bezier.ts","../src/css/duration.ts","../src/css/font-family.ts","../src/css/font-weight.ts","../src/css/gradient.ts","../src/css/link.ts","../src/css/number.ts","../src/css/shadow.ts","../src/css/string.ts","../src/css/transition.ts","../src/css/typography.ts","../src/css/index.ts"],"sourcesContent":["import type { TokenNormalized } from '../types.js';\n\n/** Function that generates a var(…) statement */\nexport type IDGenerator<T = TokenNormalized> = (token: T) => string;\n\nexport function defaultAliasTransform(token: TokenNormalized) {\n if (!token) {\n throw new Error('Undefined token');\n }\n return `var(${makeCSSVar(token.id)})`;\n}\n\n/** Generate shorthand CSS for select token types */\nexport function generateShorthand({ token, localID }: { token: TokenNormalized; localID: string }): string | undefined {\n switch (token.$type) {\n case 'transition': {\n return ['duration', 'delay', 'timing-function']\n .map((p) => makeCSSVar(`${localID}-${p}`, { wrapVar: true }))\n .join(' ');\n }\n case 'typography': {\n const typeVar = (name: string) => makeCSSVar(`${localID}-${name}`, { wrapVar: true });\n // Note: typography tokens should have both of these properties, but this is just being defensive\n if ('font-size' in token.$value && 'font-family' in token.$value) {\n let output = '';\n for (const prop of ['font-style', 'font-variant', 'font-weight']) {\n if (prop in token.$value) {\n output += ` ${typeVar(prop)}`;\n }\n }\n let fontSizeVar = typeVar('font-size');\n if ('line-height' in token.$value) {\n fontSizeVar += `/${typeVar('line-height')}`;\n }\n output += ` ${fontSizeVar}`;\n output += ` ${typeVar('font-family')}`;\n return output.trim();\n }\n break;\n }\n }\n}\n\nconst CSS_VAR_RE =\n /(?:(\\p{Uppercase_Letter}?[\\p{Lowercase_Letter}\\p{Number}]+|[\\p{Uppercase_Letter}\\p{Number}]+|[\\u{80}-\\u{10FFFF}\\p{Number}]+)|.)/u;\n\nexport interface MakeCSSVarOptions {\n /** Prefix with string */\n prefix?: string;\n /**\n * Wrap with `var(…)`\n * @default false\n */\n wrapVar?: boolean;\n}\n\n/**\n * Generate a valid CSS variable from any string\n * Code by @dfrankland\n */\nexport function makeCSSVar(name: string, { prefix, wrapVar = false }: MakeCSSVarOptions = {}): string {\n if (typeof name !== 'string') {\n throw new Error(`makeCSSVar() Expected string, received ${name}`);\n }\n\n let property = name.split(CSS_VAR_RE).filter(Boolean).join('-');\n if (prefix && !property.startsWith(`${prefix}-`)) {\n property = `${prefix}-${property}`;\n }\n const finalProperty = `--${property}`.toLocaleLowerCase();\n return wrapVar ? `var(${finalProperty})` : finalProperty;\n}\n","import type { BooleanTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert boolean value to CSS string */\nexport function transformBoolean(\n token: BooleanTokenNormalized,\n { tokensSet, transformAlias = defaultAliasTransform }: TransformCSSValueOptions,\n): string {\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return token.$value === true ? '1' : '0';\n}\n","import { type ColorConstructor, to as convert, inGamut, serialize } from 'colorjs.io/fn';\nimport { parseColor, tokenToColor } from '../color.js';\nimport type { ColorTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\nexport type WideGamutColorValue = {\n '.': string;\n srgb: string;\n p3: string;\n rec2020: string;\n};\n\n/** Convert color value to CSS string */\nexport function transformColor(\n token: ColorTokenNormalized,\n options: TransformCSSValueOptions,\n): string | WideGamutColorValue {\n const { transformAlias = defaultAliasTransform, tokensSet } = options;\n\n const firstAlias = token.aliasChain?.[0];\n if (firstAlias && tokensSet[firstAlias]) {\n return transformAlias(tokensSet[firstAlias]);\n }\n\n const {\n colorSpace,\n components,\n alpha = 1,\n } = typeof token.$value === 'string' ? parseColor(token.$value) : token.$value;\n const color = tokenToColor({ colorSpace, components, alpha });\n\n if (!color) {\n throw new Error(`Can’t convert color ${JSON.stringify(token.$value)} to Culori color`);\n }\n\n return inGamut(color, 'srgb')\n ? serialize(color, { format: options.color?.legacyHex ? 'hex' : undefined })\n : downsample({ colorSpace, components, alpha }, color, options.color?.depth);\n}\n\nexport const DEPTH_ROUNDING = {\n 24: 4, // 24-bit almost fits into 3 decimal places, but not quite\n 30: 4,\n 36: 5,\n 48: 6,\n};\n\nexport type Depth = keyof typeof DEPTH_ROUNDING | 'unlimited';\n\n/**\n * Downsample color to srgb, display-p3, and rec2020 color spaces.\n */\nfunction downsample($value: ColorTokenNormalized['$value'], color: ColorConstructor, depth: Depth = 30) {\n const srgb = convert(color, $value.colorSpace, { inGamut: { space: 'srgb' } });\n const p3 = convert(color, $value.colorSpace, { inGamut: { space: 'p3' } });\n const rec2020 = convert(color, $value.colorSpace, { inGamut: { space: 'rec2020' } });\n if (typeof depth === 'number' && !DEPTH_ROUNDING[depth]) {\n throw new Error(`Invalid bit depth: ${depth}. Supported values: ${Object.keys(DEPTH_ROUNDING).join(', ')}`);\n }\n const precision = DEPTH_ROUNDING[depth as keyof typeof DEPTH_ROUNDING] || undefined;\n return {\n '.': serialize(color, { precision }),\n srgb: serialize(srgb, { precision }),\n p3: serialize(p3, { precision }),\n rec2020: serialize(rec2020, { precision }),\n };\n}\n","import type { DimensionTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert dimension value to CSS */\nexport function transformDimension(token: DimensionTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n return token.$value.value === 0 ? '0' : `${token.$value.value}${token.$value.unit}`;\n}\n","import type { StrokeStyleTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert strokeStyle value to CSS */\nexport function transformStrokeStyle(token: StrokeStyleTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return typeof token.$value === 'string' ? token.$value : 'dashed'; // CSS doesn’t have `dash-array`; it’s just \"dashed\"\n}\n","import { inGamut, parse } from 'colorjs.io/fn';\nimport '../color.js'; // load Color.js side-effects\nimport type {\n BorderTokenNormalized,\n ColorTokenNormalized,\n DimensionTokenNormalized,\n StrokeStyleTokenNormalized,\n} from '../types.js';\nimport { transformColor } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformDimension } from './dimension.js';\nimport { defaultAliasTransform } from './lib.js';\nimport { transformStrokeStyle } from './stroke-style.js';\n\n/** Convert border value to multiple CSS values */\nexport function transformBorder(token: BorderTokenNormalized, options: TransformCSSValueOptions) {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n const width = token.partialAliasOf?.width\n ? transformAlias(tokensSet[token.partialAliasOf.width]!)\n : transformDimension({ $value: token.$value.width } as DimensionTokenNormalized, options);\n const color = token.partialAliasOf?.color\n ? transformAlias(tokensSet[token.partialAliasOf.color]!)\n : transformColor({ $value: token.$value.color } as ColorTokenNormalized, options);\n const style = token.partialAliasOf?.style\n ? transformAlias(tokensSet[token.partialAliasOf.style]!)\n : transformStrokeStyle({ $value: token.$value.style } as StrokeStyleTokenNormalized, options);\n\n const formatBorder = (colorKey: string) =>\n [width, style, typeof color === 'string' ? color : color[colorKey as keyof typeof color]].join(' ');\n\n // Note: ../color.js has already loaded color spaces as side effects so we don’t need to load those again\n return typeof color === 'string' || inGamut(parse(color.p3), 'display-p3')\n ? formatBorder('.')\n : {\n '.': formatBorder('.'),\n srgb: formatBorder('srgb'),\n p3: formatBorder('p3'),\n rec2020: formatBorder('rec2020'),\n };\n}\n","import type { CubicBezierTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert cubicBezier value to CSS */\nexport function transformCubicBezier(token: CubicBezierTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return `cubic-bezier(${token.$value\n .map((v, i) => (token.partialAliasOf?.[i] ? transformAlias(tokensSet[token.partialAliasOf[i]]!) : v))\n .join(', ')})`;\n}\n","import type { DurationTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert duration value to CSS */\nexport function transformDuration(token: DurationTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n return `${token.$value.value}${token.$value.unit}`;\n}\n","import type { FontFamilyTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\nconst FONT_NAME_KEYWORD = /^[a-z-]+$/;\n\nexport function transformFontFamily(token: FontFamilyTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return token.$value.map((fontName) => (FONT_NAME_KEYWORD.test(fontName) ? fontName : `\"${fontName}\"`)).join(', ');\n}\n","import type { FontWeightTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert fontWeight value to CSS */\nexport function transformFontWeight(token: FontWeightTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return String(token.$value);\n}\n","import type { ColorTokenNormalized, GradientTokenNormalized } from '../types.js';\nimport { transformColor, type WideGamutColorValue } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert gradient value to CSS */\nexport function transformGradient(\n token: GradientTokenNormalized,\n options: TransformCSSValueOptions,\n): string | WideGamutColorValue {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n let isHDR = false;\n\n const colors: (string | WideGamutColorValue)[] = [];\n const positions: string[] = [];\n\n for (let i = 0; i < token.$value.length; i++) {\n const { color, position } = token.$value[i]!;\n const colorValue = token.partialAliasOf?.[i]?.color\n ? transformAlias(tokensSet[token.partialAliasOf[i]!.color!]!)\n : transformColor({ $value: color } as ColorTokenNormalized, options);\n if (typeof colorValue !== 'string') {\n isHDR = true;\n }\n colors.push(colorValue);\n positions.push(\n token.partialAliasOf?.[i]?.position\n ? transformAlias(tokensSet[token.partialAliasOf[i]!.position!]!)\n : `${100 * position}%`,\n );\n }\n\n function formatStop(i: number, colorKey = '.') {\n return `${typeof colors[i] === 'string' ? colors[i] : colors[i]![colorKey as keyof (typeof colors)[number]]} ${positions[i]}`;\n }\n\n return !isHDR\n ? token.$value.map((_, i) => formatStop(i, positions[i]!)).join(', ')\n : {\n '.': token.$value.map((_, i) => formatStop(i, '.')).join(', '),\n srgb: token.$value.map((_, i) => formatStop(i, 'srgb')).join(', '),\n p3: token.$value.map((_, i) => formatStop(i, 'p3')).join(', '),\n rec2020: token.$value.map((_, i) => formatStop(i, 'rec2020')).join(', '),\n };\n}\n","import type { LinkTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert link value to CSS */\nexport function transformLink(token: LinkTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return `url(\"${token.$value}\")`;\n}\n","import type { NumberTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert number value to CSS */\nexport function transformNumber(token: NumberTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return String(token.$value);\n}\n","import type {\n ColorTokenNormalized,\n DimensionTokenNormalized,\n ShadowTokenNormalized,\n ShadowValueNormalized,\n} from '../types.js';\nimport { transformColor } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformDimension } from './dimension.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert shadow subvalue to CSS */\nexport function transformShadowLayer(\n value: ShadowValueNormalized,\n options: TransformCSSValueOptions & {\n colorValue: string;\n partialAliasOf?: Partial<Record<keyof typeof value, string>>;\n },\n): string | Record<string, string> {\n const { tokensSet, colorValue, partialAliasOf, transformAlias = defaultAliasTransform } = options;\n const offsetX = partialAliasOf?.offsetX\n ? transformAlias(tokensSet[partialAliasOf.offsetX]!)\n : transformDimension({ $value: value.offsetX } as DimensionTokenNormalized, options);\n const offsetY = partialAliasOf?.offsetY\n ? transformAlias(tokensSet[partialAliasOf.offsetY]!)\n : transformDimension({ $value: value.offsetY } as DimensionTokenNormalized, options);\n const blur = partialAliasOf?.blur\n ? transformAlias(tokensSet[partialAliasOf.blur]!)\n : transformDimension({ $value: value.blur } as DimensionTokenNormalized, options);\n const spread = partialAliasOf?.spread\n ? transformAlias(tokensSet[partialAliasOf.spread]!)\n : transformDimension({ $value: value.spread } as DimensionTokenNormalized, options);\n const inset = value?.inset === true ? 'inset' : undefined;\n\n return [inset, offsetX, offsetY, blur, spread, colorValue].filter(Boolean).join(' ');\n}\n\n/** Convert shadow value to CSS */\nexport function transformShadow(\n token: ShadowTokenNormalized,\n options: TransformCSSValueOptions,\n): string | Record<string, string> {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n const colors = token.$value.map((v, i) =>\n token.partialAliasOf?.[i]?.color\n ? transformAlias(tokensSet[token.partialAliasOf[i]!.color!]!)\n : transformColor({ $value: v.color } as ColorTokenNormalized, options),\n );\n const isHDR = colors.some((c) => typeof c === 'object');\n\n const formatShadow = (colorKey: string) =>\n token.$value\n .map((v, i) =>\n transformShadowLayer(v, {\n tokensSet,\n colorValue:\n typeof colors[i] === 'string'\n ? (colors[i] as string)\n : colors[i]![colorKey as keyof (typeof colors)[number]]!,\n partialAliasOf: token.partialAliasOf?.[i],\n transformAlias,\n }),\n )\n .join(', ');\n\n return !isHDR\n ? formatShadow('.')\n : {\n '.': formatShadow('.'),\n srgb: formatShadow('srgb'),\n p3: formatShadow('p3'),\n rec2020: formatShadow('rec2020'),\n };\n}\n","import type { StringTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert string value to CSS */\nexport function transformString(token: StringTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n // this seems like a useless function—because it is—but this is a placeholder\n // that can handle unexpected values in the future should any arise\n return String(token.$value);\n}\n","import type { CubicBezierTokenNormalized, DurationTokenNormalized, TransitionTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformCubicBezier } from './cubic-bezier.js';\nimport { transformDuration } from './duration.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert transition value to shorthand */\nexport function transformTransition(token: TransitionTokenNormalized, options: TransformCSSValueOptions) {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n const duration = token.partialAliasOf?.duration\n ? transformAlias(tokensSet[token.partialAliasOf.duration]!)\n : transformDuration({ $value: token.$value.duration } as DurationTokenNormalized, options);\n const delay = token.partialAliasOf?.delay\n ? transformAlias(tokensSet[token.partialAliasOf.delay]!)\n : transformDuration({ $value: token.$value.delay } as DurationTokenNormalized, options);\n const timingFunction = token.partialAliasOf?.timingFunction\n ? transformAlias(tokensSet[token.partialAliasOf.timingFunction]!)\n : transformCubicBezier({ $value: token.$value.timingFunction } as CubicBezierTokenNormalized, options);\n\n return `${duration} ${delay} ${timingFunction}`;\n}\n","import { kebabCase } from '../string.js';\nimport type {\n DimensionTokenNormalized,\n FontFamilyTokenNormalized,\n FontWeightTokenNormalized,\n NumberTokenNormalized,\n StringTokenNormalized,\n TokenNormalized,\n TypographyTokenNormalized,\n} from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformDimension } from './dimension.js';\nimport { transformFontFamily } from './font-family.js';\nimport { transformFontWeight } from './font-weight.js';\nimport { defaultAliasTransform } from './lib.js';\nimport { transformNumber } from './number.js';\nimport { transformString } from './string.js';\n\n/** Convert typography value to multiple CSS values */\nexport function transformTypography(token: TypographyTokenNormalized, options: TransformCSSValueOptions) {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n const output: Record<string, string> = {};\n for (const [property, subvalue] of Object.entries(token.$value)) {\n let transformedValue: string;\n const aliasedID = token.aliasChain?.[0] ?? token.partialAliasOf?.[property];\n if (aliasedID) {\n const resolvedToken = tokensSet[aliasedID] as TypographyTokenNormalized;\n transformedValue = transformAlias(\n // if resolving against a typography token, inject the property as well\n resolvedToken.$type === 'typography' ? ({ id: `${aliasedID}-${property}` } as TokenNormalized) : resolvedToken,\n );\n } else {\n switch (property) {\n case 'fontFamily': {\n transformedValue = transformFontFamily({ $value: subvalue } as FontFamilyTokenNormalized, options);\n break;\n }\n case 'fontSize':\n case 'letterSpacing': {\n transformedValue = transformDimension({ $value: subvalue } as DimensionTokenNormalized, options);\n break;\n }\n case 'fontWeight': {\n transformedValue = transformFontWeight({ $value: subvalue } as FontWeightTokenNormalized, options);\n break;\n }\n case 'lineHeight': {\n if (typeof subvalue === 'number') {\n transformedValue = transformNumber({ $value: subvalue } as NumberTokenNormalized, options);\n } else {\n transformedValue = transformDimension({ $value: subvalue } as DimensionTokenNormalized, options);\n }\n break;\n }\n default: {\n // For other typography properties, dimensions are the only other likely token type\n if (subvalue && typeof subvalue === 'object' && 'value' in subvalue) {\n transformedValue = transformDimension({ $value: subvalue } as DimensionTokenNormalized, options);\n } else if (typeof subvalue === 'number') {\n // number is technically allowed for things like `paragraph-spacing: 0`\n transformedValue = transformNumber({ $value: subvalue } as NumberTokenNormalized, options);\n } else {\n transformedValue = transformString({ $value: subvalue } as StringTokenNormalized, options);\n }\n break;\n }\n }\n }\n output[kebabCase(property)] = transformedValue;\n }\n return output;\n}\n","import type { TokenNormalized } from '../types.js';\nimport { transformBoolean } from './boolean.js';\nimport { transformBorder } from './border.js';\nimport { transformColor } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformCubicBezier } from './cubic-bezier.js';\nimport { transformDimension } from './dimension.js';\nimport { transformDuration } from './duration.js';\nimport { transformFontFamily } from './font-family.js';\nimport { transformFontWeight } from './font-weight.js';\nimport { transformGradient } from './gradient.js';\nimport { transformLink } from './link.js';\nimport { transformNumber } from './number.js';\nimport { transformShadow } from './shadow.js';\nimport { transformString } from './string.js';\nimport { transformStrokeStyle } from './stroke-style.js';\nimport { transformTransition } from './transition.js';\nimport { transformTypography } from './typography.js';\n\nexport * from './boolean.js';\nexport * from './border.js';\nexport * from './color.js';\nexport * from './cubic-bezier.js';\nexport * from './dimension.js';\nexport * from './duration.js';\nexport * from './font-family.js';\nexport * from './font-weight.js';\nexport * from './gradient.js';\nexport * from './lib.js';\nexport * from './link.js';\nexport * from './number.js';\nexport * from './shadow.js';\nexport * from './string.js';\nexport * from './stroke-style.js';\nexport * from './transition.js';\nexport * from './typography.js';\n\n/** Main CSS Transform */\nexport function transformCSSValue<T extends TokenNormalized = TokenNormalized>(\n token: T,\n options: TransformCSSValueOptions,\n) {\n switch (token.$type) {\n case 'boolean': {\n return transformBoolean(token, options);\n }\n case 'border': {\n return transformBorder(token, options);\n }\n case 'color': {\n return transformColor(token, options);\n }\n case 'cubicBezier': {\n return transformCubicBezier(token, options);\n }\n case 'dimension': {\n return transformDimension(token, options);\n }\n case 'duration': {\n return transformDuration(token, options);\n }\n case 'fontFamily': {\n return transformFontFamily(token, options);\n }\n case 'fontWeight': {\n return transformFontWeight(token, options);\n }\n case 'gradient': {\n return transformGradient(token, options);\n }\n case 'link': {\n return transformLink(token, options);\n }\n case 'number': {\n return transformNumber(token, options);\n }\n case 'shadow': {\n return transformShadow(token, options);\n }\n case 'string': {\n return transformString(token, options);\n }\n case 'strokeStyle': {\n return transformStrokeStyle(token, options);\n }\n case 'transition': {\n return transformTransition(token, options);\n }\n case 'typography': {\n return transformTypography(token, options);\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"css.js","names":["convert"],"sources":["../src/css/lib.ts","../src/css/boolean.ts","../src/css/color.ts","../src/css/dimension.ts","../src/css/stroke-style.ts","../src/css/border.ts","../src/css/cubic-bezier.ts","../src/css/duration.ts","../src/css/font-family.ts","../src/css/font-weight.ts","../src/css/gradient.ts","../src/css/link.ts","../src/css/number.ts","../src/css/shadow.ts","../src/css/string.ts","../src/css/transition.ts","../src/css/typography.ts","../src/css/index.ts"],"sourcesContent":["import type { TokenNormalized } from '../types.js';\n\n/** Function that generates a var(…) statement */\nexport type IDGenerator<T = TokenNormalized> = (token: T) => string;\n\nexport function defaultAliasTransform(token: TokenNormalized) {\n if (!token) {\n throw new Error('Undefined token');\n }\n return `var(${makeCSSVar(token.id)})`;\n}\n\n/** Generate shorthand CSS for select token types */\nexport function generateShorthand({ token, localID }: { token: TokenNormalized; localID: string }): string | undefined {\n switch (token.$type) {\n case 'transition': {\n return ['duration', 'delay', 'timing-function']\n .map((p) => makeCSSVar(`${localID}-${p}`, { wrapVar: true }))\n .join(' ');\n }\n case 'typography': {\n const typeVar = (name: string) => makeCSSVar(`${localID}-${name}`, { wrapVar: true });\n // Note: typography tokens should have both of these properties, but this is just being defensive\n if ('font-size' in token.$value && 'font-family' in token.$value) {\n let output = '';\n for (const prop of ['font-style', 'font-variant', 'font-weight']) {\n if (prop in token.$value) {\n output += ` ${typeVar(prop)}`;\n }\n }\n let fontSizeVar = typeVar('font-size');\n if ('line-height' in token.$value) {\n fontSizeVar += `/${typeVar('line-height')}`;\n }\n output += ` ${fontSizeVar}`;\n output += ` ${typeVar('font-family')}`;\n return output.trim();\n }\n break;\n }\n }\n}\n\nconst CSS_VAR_RE =\n /(?:(\\p{Uppercase_Letter}?[\\p{Lowercase_Letter}\\p{Number}]+|[\\p{Uppercase_Letter}\\p{Number}]+|[\\u{80}-\\u{10FFFF}\\p{Number}]+)|.)/u;\n\nexport interface MakeCSSVarOptions {\n /** Prefix with string */\n prefix?: string;\n /**\n * Wrap with `var(…)`\n * @default false\n */\n wrapVar?: boolean;\n}\n\n/**\n * Generate a valid CSS variable from any string\n * Code by @dfrankland\n */\nexport function makeCSSVar(name: string, { prefix, wrapVar = false }: MakeCSSVarOptions = {}): string {\n if (typeof name !== 'string') {\n throw new Error(`makeCSSVar() Expected string, received ${name}`);\n }\n\n let property = name.split(CSS_VAR_RE).filter(Boolean).join('-');\n if (prefix && !property.startsWith(`${prefix}-`)) {\n property = `${prefix}-${property}`;\n }\n const finalProperty = `--${property}`.toLocaleLowerCase();\n return wrapVar ? `var(${finalProperty})` : finalProperty;\n}\n","import type { BooleanTokenNormalized, TokenTransformedSingleValue } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert boolean value to CSS string */\nexport function transformBoolean(\n token: BooleanTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformedSingleValue['value'] {\n if (token.aliasChain?.[0]) {\n return (options.transformAlias ?? defaultAliasTransform)(options.tokensSet[token.aliasChain[0]]!);\n }\n return token.$value === true ? '1' : '0';\n}\n","import { type ColorConstructor, to as convert, inGamut, serialize } from 'colorjs.io/fn';\nimport { parseColor, tokenToColor } from '../color.js';\nimport type { ColorTokenNormalized, TokenTransformed } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\nexport type WideGamutColorValue = {\n '.': string;\n srgb: string;\n p3: string;\n rec2020: string;\n};\n\n/** Convert color value to CSS string */\nexport function transformColor(\n token: ColorTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformed['value'] {\n const { transformAlias = defaultAliasTransform, tokensSet } = options;\n\n const firstAlias = token.aliasChain?.[0];\n if (firstAlias && tokensSet[firstAlias]) {\n return transformAlias(tokensSet[firstAlias]);\n }\n\n const {\n colorSpace,\n components,\n alpha = 1,\n } = typeof token.$value === 'string' ? parseColor(token.$value) : token.$value;\n const color = tokenToColor({ colorSpace, components, alpha });\n\n if (!color) {\n throw new Error(`Can’t convert color ${JSON.stringify(token.$value)} to Culori color`);\n }\n\n return inGamut(color, 'srgb')\n ? serialize(color, { format: options.color?.legacyHex ? 'hex' : undefined })\n : downsample({ colorSpace, components, alpha }, color, options.color?.depth);\n}\n\nexport const DEPTH_ROUNDING = {\n 24: 4, // 24-bit almost fits into 3 decimal places, but not quite\n 30: 4,\n 36: 5,\n 48: 6,\n};\n\nexport type Depth = keyof typeof DEPTH_ROUNDING | 'unlimited';\n\n/**\n * Downsample color to srgb, display-p3, and rec2020 color spaces.\n */\nfunction downsample($value: ColorTokenNormalized['$value'], color: ColorConstructor, depth: Depth = 30) {\n const srgb = convert(color, $value.colorSpace, { inGamut: { space: 'srgb' } });\n const p3 = convert(color, $value.colorSpace, { inGamut: { space: 'p3' } });\n const rec2020 = convert(color, $value.colorSpace, { inGamut: { space: 'rec2020' } });\n if (typeof depth === 'number' && !DEPTH_ROUNDING[depth]) {\n throw new Error(`Invalid bit depth: ${depth}. Supported values: ${Object.keys(DEPTH_ROUNDING).join(', ')}`);\n }\n const precision = DEPTH_ROUNDING[depth as keyof typeof DEPTH_ROUNDING] || undefined;\n return {\n '.': serialize(color, { precision }),\n srgb: serialize(srgb, { precision }),\n p3: serialize(p3, { precision }),\n rec2020: serialize(rec2020, { precision }),\n };\n}\n","import type { DimensionTokenNormalized, TokenTransformedSingleValue } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert dimension value to CSS */\nexport function transformDimension(\n token: DimensionTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformedSingleValue['value'] {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n return token.$value.value === 0 ? '0' : `${token.$value.value}${token.$value.unit}`;\n}\n","import type { StrokeStyleTokenNormalized, TokenTransformedSingleValue } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert strokeStyle value to CSS */\nexport function transformStrokeStyle(\n token: StrokeStyleTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformedSingleValue['value'] {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return typeof token.$value === 'string' ? token.$value : 'dashed'; // CSS doesn’t have `dash-array`; it’s just \"dashed\"\n}\n","import { inGamut, parse } from 'colorjs.io/fn';\nimport '../color.js'; // load Color.js side-effects\nimport type {\n BorderTokenNormalized,\n ColorTokenNormalized,\n DimensionTokenNormalized,\n StrokeStyleTokenNormalized,\n TokenTransformed,\n} from '../types.js';\nimport { transformColor } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformDimension } from './dimension.js';\nimport { defaultAliasTransform } from './lib.js';\nimport { transformStrokeStyle } from './stroke-style.js';\n\n/** Convert border value to multiple CSS values */\nexport function transformBorder(\n token: BorderTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformed['value'] {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n const width = token.partialAliasOf?.width\n ? transformAlias(tokensSet[token.partialAliasOf.width]!)\n : transformDimension({ $value: token.$value.width } as DimensionTokenNormalized, options);\n const color = token.partialAliasOf?.color\n ? transformAlias(tokensSet[token.partialAliasOf.color]!)\n : transformColor({ $value: token.$value.color } as ColorTokenNormalized, options);\n const style = token.partialAliasOf?.style\n ? transformAlias(tokensSet[token.partialAliasOf.style]!)\n : transformStrokeStyle({ $value: token.$value.style } as StrokeStyleTokenNormalized, options);\n\n const formatBorder = (colorKey: string) =>\n [width, style, typeof color === 'string' ? color : color[colorKey as keyof typeof color]].join(' ');\n\n // Note: ../color.js has already loaded color spaces as side effects so we don’t need to load those again\n return typeof color === 'string' || inGamut(parse(color.p3!), 'display-p3')\n ? formatBorder('.')\n : {\n '.': formatBorder('.'),\n srgb: formatBorder('srgb'),\n p3: formatBorder('p3'),\n rec2020: formatBorder('rec2020'),\n };\n}\n","import type { CubicBezierTokenNormalized, TokenTransformedSingleValue } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert cubicBezier value to CSS */\nexport function transformCubicBezier(\n token: CubicBezierTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformedSingleValue['value'] {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return `cubic-bezier(${token.$value\n .map((v, i) => (token.partialAliasOf?.[i] ? transformAlias(tokensSet[token.partialAliasOf[i]]!) : v))\n .join(', ')})`;\n}\n","import type { DurationTokenNormalized, TokenTransformedSingleValue } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert duration value to CSS */\nexport function transformDuration(\n token: DurationTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformedSingleValue['value'] {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n return `${token.$value.value}${token.$value.unit}`;\n}\n","import type { FontFamilyTokenNormalized, TokenTransformedSingleValue } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\nconst FONT_NAME_KEYWORD = /^[a-z-]+$/;\n\nexport function transformFontFamily(\n token: FontFamilyTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformedSingleValue['value'] {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return token.$value.map((fontName) => (FONT_NAME_KEYWORD.test(fontName) ? fontName : `\"${fontName}\"`)).join(', ');\n}\n","import type { FontWeightTokenNormalized, TokenTransformedSingleValue } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert fontWeight value to CSS */\nexport function transformFontWeight(\n token: FontWeightTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformedSingleValue['value'] {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return String(token.$value);\n}\n","import type { ColorTokenNormalized, GradientTokenNormalized, TokenTransformed } from '../types.js';\nimport { transformColor } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert gradient value to CSS */\nexport function transformGradient(\n token: GradientTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformed['value'] {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n let isHDR = false;\n\n const colors: TokenTransformed['value'][] = [];\n const positions: string[] = [];\n\n for (let i = 0; i < token.$value.length; i++) {\n const { color, position } = token.$value[i]!;\n const colorValue = token.partialAliasOf?.[i]?.color\n ? transformAlias(tokensSet[token.partialAliasOf[i]!.color!]!)\n : transformColor({ $value: color } as ColorTokenNormalized, options);\n if (typeof colorValue !== 'string') {\n isHDR = true;\n }\n colors.push(colorValue);\n positions.push(\n token.partialAliasOf?.[i]?.position\n ? transformAlias(tokensSet[token.partialAliasOf[i]!.position!]!)\n : `${100 * position}%`,\n );\n }\n\n function formatStop(i: number, colorKey = '.') {\n return `${typeof colors[i] === 'string' ? colors[i] : colors[i]![colorKey as keyof (typeof colors)[number]]} ${positions[i]}`;\n }\n\n return !isHDR\n ? token.$value.map((_, i) => formatStop(i, positions[i]!)).join(', ')\n : {\n '.': token.$value.map((_, i) => formatStop(i, '.')).join(', '),\n srgb: token.$value.map((_, i) => formatStop(i, 'srgb')).join(', '),\n p3: token.$value.map((_, i) => formatStop(i, 'p3')).join(', '),\n rec2020: token.$value.map((_, i) => formatStop(i, 'rec2020')).join(', '),\n };\n}\n","import type { LinkTokenNormalized, TokenTransformedSingleValue } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert link value to CSS */\nexport function transformLink(\n token: LinkTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformedSingleValue['value'] {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return `url(\"${token.$value}\")`;\n}\n","import type { NumberTokenNormalized, TokenTransformedSingleValue } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert number value to CSS */\nexport function transformNumber(\n token: NumberTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformedSingleValue['value'] {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return String(token.$value);\n}\n","import type {\n ColorTokenNormalized,\n DimensionTokenNormalized,\n ShadowTokenNormalized,\n ShadowValueNormalized,\n TokenTransformed,\n} from '../types.js';\nimport { transformColor } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformDimension } from './dimension.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert shadow subvalue to CSS */\nexport function transformShadowLayer(\n value: ShadowValueNormalized,\n options: TransformCSSValueOptions & {\n colorValue: string;\n partialAliasOf?: Partial<Record<keyof typeof value, string>>;\n },\n): string | Record<string, string> {\n const { tokensSet, colorValue, partialAliasOf, transformAlias = defaultAliasTransform } = options;\n const offsetX = partialAliasOf?.offsetX\n ? transformAlias(tokensSet[partialAliasOf.offsetX]!)\n : transformDimension({ $value: value.offsetX } as DimensionTokenNormalized, options);\n const offsetY = partialAliasOf?.offsetY\n ? transformAlias(tokensSet[partialAliasOf.offsetY]!)\n : transformDimension({ $value: value.offsetY } as DimensionTokenNormalized, options);\n const blur = partialAliasOf?.blur\n ? transformAlias(tokensSet[partialAliasOf.blur]!)\n : transformDimension({ $value: value.blur } as DimensionTokenNormalized, options);\n const spread = partialAliasOf?.spread\n ? transformAlias(tokensSet[partialAliasOf.spread]!)\n : transformDimension({ $value: value.spread } as DimensionTokenNormalized, options);\n const inset = value?.inset === true ? 'inset' : undefined;\n\n return [inset, offsetX, offsetY, blur, spread, colorValue].filter(Boolean).join(' ');\n}\n\n/** Convert shadow value to CSS */\nexport function transformShadow(\n token: ShadowTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformed['value'] {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n const colors = token.$value.map((v, i) =>\n token.partialAliasOf?.[i]?.color\n ? transformAlias(tokensSet[token.partialAliasOf[i]!.color!]!)\n : transformColor({ $value: v.color } as ColorTokenNormalized, options),\n );\n const isHDR = colors.some((c) => typeof c === 'object');\n\n const formatShadow = (colorKey: string) =>\n token.$value\n .map((v, i) =>\n transformShadowLayer(v, {\n ...options,\n tokensSet,\n colorValue:\n typeof colors[i] === 'string'\n ? (colors[i] as string)\n : colors[i]![colorKey as keyof (typeof colors)[number]]!,\n partialAliasOf: token.partialAliasOf?.[i],\n transformAlias,\n }),\n )\n .join(', ');\n\n return !isHDR\n ? formatShadow('.')\n : {\n '.': formatShadow('.'),\n srgb: formatShadow('srgb'),\n p3: formatShadow('p3'),\n rec2020: formatShadow('rec2020'),\n };\n}\n","import type { StringTokenNormalized, TokenTransformedSingleValue } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert string value to CSS */\nexport function transformString(\n token: StringTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformedSingleValue['value'] {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n // this seems like a useless function—because it is—but this is a placeholder\n // that can handle unexpected values in the future should any arise\n return String(token.$value);\n}\n","import type {\n CubicBezierTokenNormalized,\n DurationTokenNormalized,\n TokenTransformedSingleValue,\n TransitionTokenNormalized,\n} from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformCubicBezier } from './cubic-bezier.js';\nimport { transformDuration } from './duration.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert transition value to shorthand */\nexport function transformTransition(\n token: TransitionTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformedSingleValue['value'] {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n const duration = token.partialAliasOf?.duration\n ? transformAlias(tokensSet[token.partialAliasOf.duration]!)\n : transformDuration({ $value: token.$value.duration } as DurationTokenNormalized, options);\n const delay = token.partialAliasOf?.delay\n ? transformAlias(tokensSet[token.partialAliasOf.delay]!)\n : transformDuration({ $value: token.$value.delay } as DurationTokenNormalized, options);\n const timingFunction = token.partialAliasOf?.timingFunction\n ? transformAlias(tokensSet[token.partialAliasOf.timingFunction]!)\n : transformCubicBezier({ $value: token.$value.timingFunction } as CubicBezierTokenNormalized, options);\n\n return `${duration} ${delay} ${timingFunction}`;\n}\n","import { kebabCase } from '../string.js';\nimport type {\n DimensionTokenNormalized,\n FontFamilyTokenNormalized,\n FontWeightTokenNormalized,\n NumberTokenNormalized,\n StringTokenNormalized,\n TokenNormalized,\n TokenTransformedMultiValue,\n TypographyTokenNormalized,\n} from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformDimension } from './dimension.js';\nimport { transformFontFamily } from './font-family.js';\nimport { transformFontWeight } from './font-weight.js';\nimport { defaultAliasTransform } from './lib.js';\nimport { transformNumber } from './number.js';\nimport { transformString } from './string.js';\n\n/** Convert typography value to multiple CSS values */\nexport function transformTypography(\n token: TypographyTokenNormalized,\n options: TransformCSSValueOptions,\n): TokenTransformedMultiValue['value'] {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n const output: Record<string, string> = {};\n for (const [property, subvalue] of Object.entries(token.$value)) {\n let transformedValue: string;\n const aliasedID = token.aliasChain?.[0] ?? token.partialAliasOf?.[property];\n if (aliasedID) {\n const resolvedToken = tokensSet[aliasedID] as TypographyTokenNormalized;\n transformedValue = transformAlias(\n // if resolving against a typography token, inject the property as well\n resolvedToken.$type === 'typography' ? ({ id: `${aliasedID}-${property}` } as TokenNormalized) : resolvedToken,\n );\n } else {\n switch (property) {\n case 'fontFamily': {\n transformedValue = transformFontFamily({ $value: subvalue } as FontFamilyTokenNormalized, options);\n break;\n }\n case 'fontSize':\n case 'letterSpacing': {\n transformedValue = transformDimension({ $value: subvalue } as DimensionTokenNormalized, options);\n break;\n }\n case 'fontWeight': {\n transformedValue = transformFontWeight({ $value: subvalue } as FontWeightTokenNormalized, options);\n break;\n }\n case 'lineHeight': {\n if (typeof subvalue === 'number') {\n transformedValue = transformNumber({ $value: subvalue } as NumberTokenNormalized, options);\n } else {\n transformedValue = transformDimension({ $value: subvalue } as DimensionTokenNormalized, options);\n }\n break;\n }\n default: {\n // For other typography properties, dimensions are the only other likely token type\n if (subvalue && typeof subvalue === 'object' && 'value' in subvalue) {\n transformedValue = transformDimension({ $value: subvalue } as DimensionTokenNormalized, options);\n } else if (typeof subvalue === 'number') {\n // number is technically allowed for things like `paragraph-spacing: 0`\n transformedValue = transformNumber({ $value: subvalue } as NumberTokenNormalized, options);\n } else {\n transformedValue = transformString({ $value: subvalue } as StringTokenNormalized, options);\n }\n break;\n }\n }\n }\n output[kebabCase(property)] = transformedValue;\n }\n return output;\n}\n","import type { TokenNormalized } from '../types.js';\nimport { transformBoolean } from './boolean.js';\nimport { transformBorder } from './border.js';\nimport { transformColor } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformCubicBezier } from './cubic-bezier.js';\nimport { transformDimension } from './dimension.js';\nimport { transformDuration } from './duration.js';\nimport { transformFontFamily } from './font-family.js';\nimport { transformFontWeight } from './font-weight.js';\nimport { transformGradient } from './gradient.js';\nimport { transformLink } from './link.js';\nimport { transformNumber } from './number.js';\nimport { transformShadow } from './shadow.js';\nimport { transformString } from './string.js';\nimport { transformStrokeStyle } from './stroke-style.js';\nimport { transformTransition } from './transition.js';\nimport { transformTypography } from './typography.js';\n\nexport * from './boolean.js';\nexport * from './border.js';\nexport * from './color.js';\nexport * from './css-types.js';\nexport * from './cubic-bezier.js';\nexport * from './dimension.js';\nexport * from './duration.js';\nexport * from './font-family.js';\nexport * from './font-weight.js';\nexport * from './gradient.js';\nexport * from './lib.js';\nexport * from './link.js';\nexport * from './number.js';\nexport * from './shadow.js';\nexport * from './string.js';\nexport * from './stroke-style.js';\nexport * from './transition.js';\nexport * from './typography.js';\n\nconst TRANSFORMS = {\n boolean: transformBoolean,\n border: transformBorder,\n color: transformColor,\n cubicBezier: transformCubicBezier,\n dimension: transformDimension,\n duration: transformDuration,\n fontFamily: transformFontFamily,\n fontWeight: transformFontWeight,\n gradient: transformGradient,\n link: transformLink,\n number: transformNumber,\n shadow: transformShadow,\n string: transformString,\n strokeStyle: transformStrokeStyle,\n transition: transformTransition,\n typography: transformTypography,\n};\n\n/** Main CSS Transform */\nexport function transformCSSValue<T extends TokenNormalized = TokenNormalized>(\n token: T,\n options: TransformCSSValueOptions,\n) {\n return TRANSFORMS[token.$type]?.(token as any, options);\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@terrazzo/token-tools",
3
- "version": "2.0.0-beta.5",
3
+ "version": "2.0.0-rc.0",
4
4
  "description": "Various utilities for token types",
5
5
  "license": "MIT",
6
6
  "type": "module",