@terrazzo/token-tools 0.0.1 → 0.0.3

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.
Files changed (92) hide show
  1. package/dist/color.d.ts +1 -9
  2. package/dist/color.js.map +1 -1
  3. package/dist/css/boolean.d.ts +6 -0
  4. package/dist/css/boolean.js +12 -0
  5. package/dist/css/boolean.js.map +1 -0
  6. package/dist/css/border.d.ts +13 -0
  7. package/dist/css/border.js +30 -0
  8. package/dist/css/border.js.map +1 -0
  9. package/dist/css/color.d.ts +13 -0
  10. package/dist/css/color.js +72 -0
  11. package/dist/css/color.js.map +1 -0
  12. package/dist/css/cubic-bezier.d.ts +8 -0
  13. package/dist/css/cubic-bezier.js +11 -0
  14. package/dist/css/cubic-bezier.js.map +1 -0
  15. package/dist/css/dimension.d.ts +6 -0
  16. package/dist/css/dimension.js +12 -0
  17. package/dist/css/dimension.js.map +1 -0
  18. package/dist/css/duration.d.ts +6 -0
  19. package/dist/css/duration.js +12 -0
  20. package/dist/css/duration.js.map +1 -0
  21. package/dist/css/font-family.d.ts +7 -0
  22. package/dist/css/font-family.js +22 -0
  23. package/dist/css/font-family.js.map +1 -0
  24. package/dist/css/font-weight.d.ts +6 -0
  25. package/dist/css/font-weight.js +9 -0
  26. package/dist/css/font-weight.js.map +1 -0
  27. package/dist/css/gradient.d.ts +9 -0
  28. package/dist/css/gradient.js +24 -0
  29. package/dist/css/gradient.js.map +1 -0
  30. package/dist/css/index.d.ts +25 -156
  31. package/dist/css/index.js +91 -290
  32. package/dist/css/index.js.map +1 -1
  33. package/dist/css/lib.d.ts +24 -0
  34. package/dist/css/lib.js +36 -0
  35. package/dist/css/lib.js.map +1 -0
  36. package/dist/css/link.d.ts +6 -0
  37. package/dist/css/link.js +9 -0
  38. package/dist/css/link.js.map +1 -0
  39. package/dist/css/number.d.ts +6 -0
  40. package/dist/css/number.js +6 -0
  41. package/dist/css/number.js.map +1 -0
  42. package/dist/css/shadow.d.ts +14 -0
  43. package/dist/css/shadow.js +42 -0
  44. package/dist/css/shadow.js.map +1 -0
  45. package/dist/css/string.d.ts +6 -0
  46. package/dist/css/string.js +8 -0
  47. package/dist/css/string.js.map +1 -0
  48. package/dist/css/stroke-style.d.ts +7 -0
  49. package/dist/css/stroke-style.js +9 -0
  50. package/dist/css/stroke-style.js.map +1 -0
  51. package/dist/css/transition.d.ts +14 -0
  52. package/dist/css/transition.js +21 -0
  53. package/dist/css/transition.js.map +1 -0
  54. package/dist/css/typography.d.ts +7 -0
  55. package/dist/css/typography.js +38 -0
  56. package/dist/css/typography.js.map +1 -0
  57. package/dist/index.d.ts +2 -0
  58. package/dist/index.js +2 -0
  59. package/dist/index.js.map +1 -1
  60. package/dist/js/index.d.ts +12 -0
  61. package/dist/js/index.js +16 -0
  62. package/dist/js/index.js.map +1 -0
  63. package/dist/transform.d.ts +6 -0
  64. package/dist/transform.js +17 -0
  65. package/dist/transform.js.map +1 -0
  66. package/dist/types.d.ts +384 -0
  67. package/dist/types.js +2 -0
  68. package/dist/types.js.map +1 -0
  69. package/package.json +9 -5
  70. package/src/color.ts +1 -27
  71. package/src/css/boolean.ts +15 -0
  72. package/src/css/border.ts +46 -0
  73. package/src/css/color.ts +80 -0
  74. package/src/css/cubic-bezier.ts +23 -0
  75. package/src/css/dimension.ts +15 -0
  76. package/src/css/duration.ts +15 -0
  77. package/src/css/font-family.ts +32 -0
  78. package/src/css/font-weight.ts +12 -0
  79. package/src/css/gradient.ts +42 -0
  80. package/src/css/index.ts +104 -500
  81. package/src/css/lib.ts +54 -0
  82. package/src/css/link.ts +12 -0
  83. package/src/css/number.ts +9 -0
  84. package/src/css/shadow.ts +75 -0
  85. package/src/css/string.ts +11 -0
  86. package/src/css/stroke-style.ts +13 -0
  87. package/src/css/transition.ts +41 -0
  88. package/src/css/typography.ts +44 -0
  89. package/src/index.ts +2 -0
  90. package/src/js/index.ts +31 -0
  91. package/src/transform.ts +23 -0
  92. package/src/types.ts +524 -0
package/dist/css/index.js CHANGED
@@ -1,305 +1,106 @@
1
- import { formatCss, clampChroma } from 'culori';
2
- import { kebabCase } from 'scule';
3
- import { CSS_TO_CULORI, parseColor } from '../color.js';
4
- export const defaultAliasTransform = (id) => `var(${makeCSSVar(id)})`;
5
- /** Convert boolean value to CSS string */
6
- export function transformBooleanValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
7
- if (aliasOf) {
8
- return transformAlias(aliasOf);
9
- }
10
- if (typeof value !== 'boolean') {
11
- throw new Error(`Expected boolean, received ${typeof value} "${value}"`);
12
- }
13
- return value ? '1' : '0';
14
- }
15
- /** Generate shorthand CSS for select token types */
16
- export function generateShorthand({ $type, localID }) {
17
- switch ($type) {
1
+ import { transformBooleanValue } from './boolean.js';
2
+ import { transformBorderValue } from './border.js';
3
+ import { transformColorValue } from './color.js';
4
+ import { transformCubicBezierValue } from './cubic-bezier.js';
5
+ import { transformDimensionValue } from './dimension.js';
6
+ import { transformDurationValue } from './duration.js';
7
+ import { transformFontFamilyValue } from './font-family.js';
8
+ import { transformFontWeightValue } from './font-weight.js';
9
+ import { transformGradientValue } from './gradient.js';
10
+ import { transformNumberValue } from './number.js';
11
+ import { transformLinkValue } from './link.js';
12
+ import { transformShadowValue } from './shadow.js';
13
+ import { transformStringValue } from './string.js';
14
+ import { transformTypographyValue } from './typography.js';
15
+ import { transformTransitionValue } from './transition.js';
16
+ import { transformStrokeStyleValue } from './stroke-style.js';
17
+ export * from './boolean.js';
18
+ export * from './border.js';
19
+ export * from './color.js';
20
+ export * from './cubic-bezier.js';
21
+ export * from './dimension.js';
22
+ export * from './duration.js';
23
+ export * from './font-family.js';
24
+ export * from './font-weight.js';
25
+ export * from './gradient.js';
26
+ export * from './lib.js';
27
+ export * from './link.js';
28
+ export * from './number.js';
29
+ export * from './shadow.js';
30
+ export * from './string.js';
31
+ export * from './stroke-style.js';
32
+ export * from './transition.js';
33
+ export * from './typography.js';
34
+ /** Main CSS Transform */
35
+ export function transformCSSValue(token, { mode, transformAlias }) {
36
+ if (!token.mode[mode]) {
37
+ return;
38
+ }
39
+ switch (token.$type) {
40
+ case 'boolean': {
41
+ const { $value, aliasOf } = token.mode[mode];
42
+ return transformBooleanValue($value, { aliasOf, transformAlias });
43
+ }
18
44
  case 'border': {
19
- return ['width', 'style', 'color'].map((p) => makeCSSVar(`${localID}-${p}`, { wrapVar: true })).join(' ');
45
+ const { $value, aliasOf, partialAliasOf } = token.mode[mode];
46
+ return transformBorderValue($value, { aliasOf, partialAliasOf, transformAlias });
20
47
  }
21
- case 'transition': {
22
- return ['duration', 'delay', 'timing-function']
23
- .map((p) => makeCSSVar(`${localID}-${p}`, { wrapVar: true }))
24
- .join(' ');
48
+ case 'color': {
49
+ const { $value, aliasOf } = token.mode[mode];
50
+ return transformColorValue($value, { aliasOf, transformAlias });
25
51
  }
26
- // note: "typography" is not set in shorthand because it can often unset values unintentionally.
27
- // @see https://developer.mozilla.org/en-US/docs/Web/CSS/font
28
- }
29
- }
30
- /** Convert border value to multiple CSS values */
31
- export function transformBorderValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, }) {
32
- if (aliasOf) {
33
- return transformCompositeAlias(value, { aliasOf, transformAlias });
34
- }
35
- return {
36
- width: partialAliasOf?.width
37
- ? transformAlias(partialAliasOf.width)
38
- : transformDimensionValue(value.width, { transformAlias }),
39
- color: partialAliasOf?.color
40
- ? transformAlias(partialAliasOf.color)
41
- : transformColorValue(value.color, { transformAlias }),
42
- style: partialAliasOf?.style
43
- ? transformAlias(partialAliasOf.style)
44
- : transformStrokeStyleValue(value.style, { transformAlias }),
45
- };
46
- }
47
- /** Convert color value to CSS string */
48
- export function transformColorValue(value,
49
- /** (optional) Clamp gamut to `srgb` or `p3` gamut (default: don’t clamp) */
50
- { aliasOf, gamut, transformAlias = defaultAliasTransform, } = {}) {
51
- if (aliasOf) {
52
- return transformAlias(aliasOf);
53
- }
54
- const { colorSpace, channels, alpha } = typeof value === 'string' ? parseColor(value) : value;
55
- let color = { mode: CSS_TO_CULORI[colorSpace], alpha };
56
- switch (color.mode) {
57
- case 'a98':
58
- case 'rec2020':
59
- case 'p3':
60
- case 'prophoto':
61
- case 'lrgb':
62
- case 'rgb': {
63
- color.r = channels[0];
64
- color.g = channels[1];
65
- color.b = channels[2];
66
- break;
52
+ case 'cubicBezier': {
53
+ const { $value, aliasOf, partialAliasOf } = token.mode[mode];
54
+ return transformCubicBezierValue($value, { aliasOf, partialAliasOf, transformAlias });
67
55
  }
68
- case 'hsl': {
69
- color.h = channels[0];
70
- color.s = channels[1];
71
- color.l = channels[2];
72
- break;
56
+ case 'dimension': {
57
+ const { $value, aliasOf } = token.mode[mode];
58
+ return transformDimensionValue($value, { aliasOf, transformAlias });
73
59
  }
74
- case 'hsv': {
75
- color.h = channels[0];
76
- color.s = channels[1];
77
- color.v = channels[2];
78
- break;
60
+ case 'duration': {
61
+ const { $value, aliasOf } = token.mode[mode];
62
+ return transformDurationValue($value, { aliasOf, transformAlias });
79
63
  }
80
- case 'hwb': {
81
- color.h = channels[0];
82
- color.w = channels[1];
83
- color.b = channels[2];
84
- break;
64
+ case 'fontFamily': {
65
+ const { $value, aliasOf, partialAliasOf } = token.mode[mode];
66
+ return transformFontFamilyValue($value, { aliasOf, partialAliasOf, transformAlias });
85
67
  }
86
- case 'lab':
87
- case 'oklab': {
88
- color.l = channels[0];
89
- color.a = channels[1];
90
- color.b = channels[2];
91
- break;
68
+ case 'fontWeight': {
69
+ const { $value, aliasOf } = token.mode[mode];
70
+ return transformFontWeightValue($value, { aliasOf, transformAlias });
92
71
  }
93
- case 'lch':
94
- case 'oklch': {
95
- color.l = channels[0];
96
- color.c = channels[1];
97
- color.h = channels[2];
98
- break;
72
+ case 'gradient': {
73
+ const { $value, aliasOf, partialAliasOf } = token.mode[mode];
74
+ return transformGradientValue($value, { aliasOf, partialAliasOf, transformAlias });
99
75
  }
100
- case 'xyz50':
101
- case 'xyz65': {
102
- color.x = channels[0];
103
- color.y = channels[1];
104
- color.z = channels[2];
105
- break;
76
+ case 'link': {
77
+ const { $value, aliasOf } = token.mode[mode];
78
+ return transformLinkValue($value, { aliasOf, transformAlias });
106
79
  }
107
- }
108
- if (gamut === 'srgb') {
109
- color = clampChroma(color, color.mode, 'rgb');
110
- }
111
- else if (gamut === 'p3') {
112
- color = clampChroma(color, color.mode, 'p3');
113
- }
114
- return formatCss(color);
115
- }
116
- /** Convert cubicBezier value to CSS */
117
- export function transformCubicBezierValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, } = {}) {
118
- if (aliasOf) {
119
- return transformAlias(aliasOf);
120
- }
121
- return `cubic-bezier(${value
122
- .map((v, i) => (partialAliasOf?.[i] ? transformAlias(partialAliasOf[i]) : v))
123
- .join(', ')})`;
124
- }
125
- /** Build object of alias values */
126
- export function transformCompositeAlias(value, { aliasOf, transformAlias = defaultAliasTransform }) {
127
- const output = {};
128
- for (const key in value) {
129
- output[kebabCase(key)] = transformAlias(`${aliasOf}-${key}`);
130
- }
131
- return output;
132
- }
133
- /** Convert dimension value to CSS */
134
- export function transformDimensionValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
135
- if (aliasOf) {
136
- return transformAlias(aliasOf);
137
- }
138
- if (typeof value === 'number') {
139
- return value === 0 ? '0' : `${value}px`;
140
- }
141
- return value;
142
- }
143
- /** Convert duration value to CSS */
144
- export function transformDurationValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
145
- if (aliasOf) {
146
- return transformAlias(aliasOf);
147
- }
148
- if (typeof value === 'number' || String(Number.parseFloat(value)) === value) {
149
- return `${value}ms`;
150
- }
151
- return value;
152
- }
153
- export const FONT_FAMILY_KEYWORDS = new Set([
154
- 'sans-serif',
155
- 'serif',
156
- 'monospace',
157
- 'system-ui',
158
- 'ui-monospace',
159
- '-apple-system',
160
- ]);
161
- export function transformFontFamilyValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, } = {}) {
162
- if (aliasOf) {
163
- return transformAlias(aliasOf);
164
- }
165
- return (typeof value === 'string' ? [value] : value)
166
- .map((fontName, i) => partialAliasOf?.[i]
167
- ? transformAlias(partialAliasOf[i])
168
- : FONT_FAMILY_KEYWORDS.has(fontName)
169
- ? fontName
170
- : `"${fontName}"`)
171
- .join(', ');
172
- }
173
- /** Convert fontWeight value to CSS */
174
- export function transformFontWeightValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
175
- if (aliasOf) {
176
- return transformAlias(aliasOf);
177
- }
178
- return String(value);
179
- }
180
- /** Convert gradient value to CSS */
181
- export function transformGradientValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, } = {}) {
182
- if (aliasOf) {
183
- return transformAlias(aliasOf);
184
- }
185
- return value
186
- .map(({ color, position }, i) => [
187
- partialAliasOf?.[i]?.color ? transformAlias(partialAliasOf[i].color) : transformColorValue(color),
188
- partialAliasOf?.[i]?.position ? transformAlias(String(partialAliasOf[i].position)) : `${100 * position}%`,
189
- ].join(' '))
190
- .join(', ');
191
- }
192
- /** Convert link value to CSS */
193
- export function transformLinkValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
194
- if (aliasOf) {
195
- return transformAlias(aliasOf);
196
- }
197
- return `url("${value}")`;
198
- }
199
- /** Convert number value to CSS */
200
- export function transformNumberValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
201
- return aliasOf ? transformAlias(aliasOf) : String(value);
202
- }
203
- /** Convert shadow subvalue to CSS */
204
- export function transformShadowLayer(value, { partialAliasOf, transformAlias = defaultAliasTransform, } = {}) {
205
- return [
206
- partialAliasOf?.offsetX
207
- ? transformAlias(partialAliasOf.offsetX)
208
- : transformDimensionValue(value.offsetX, { transformAlias }),
209
- partialAliasOf?.offsetY
210
- ? transformAlias(partialAliasOf.offsetY)
211
- : transformDimensionValue(value.offsetY, { transformAlias }),
212
- partialAliasOf?.blur
213
- ? transformAlias(partialAliasOf.blur)
214
- : transformDimensionValue(value.blur, { transformAlias }),
215
- partialAliasOf?.spread
216
- ? transformAlias(partialAliasOf.spread)
217
- : transformDimensionValue(value.spread, { transformAlias }),
218
- partialAliasOf?.color ? transformAlias(partialAliasOf.color) : transformColorValue(value.color, { transformAlias }),
219
- ].join(' ');
220
- }
221
- /** Convert shadow value to CSS */
222
- export function transformShadowValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, } = {}) {
223
- if (aliasOf) {
224
- return transformAlias(aliasOf);
225
- }
226
- return value
227
- .map((v, i) => transformShadowLayer(v, { partialAliasOf: partialAliasOf?.[i], transformAlias }))
228
- .join(', ');
229
- }
230
- /** Convert string value to CSS */
231
- export function transformStringValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
232
- // this seems like a useless function—because it is—but this is a placeholder
233
- // that can handle unexpected values in the future should any arise
234
- return aliasOf ? transformAlias(aliasOf) : String(value);
235
- }
236
- /** Convert strokeStyle value to CSS */
237
- export function transformStrokeStyleValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
238
- if (aliasOf) {
239
- return transformAlias(aliasOf);
240
- }
241
- return typeof value === 'string' ? value : 'dashed'; // CSS doesn’t have `dash-array`; it’s just "dashed"
242
- }
243
- /** Convert transition value to multiple CSS values */
244
- export function transformTransitionValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, } = {}) {
245
- if (aliasOf) {
246
- return transformCompositeAlias(value, { aliasOf, transformAlias });
247
- }
248
- return {
249
- duration: partialAliasOf?.duration
250
- ? transformAlias(partialAliasOf.duration)
251
- : transformDurationValue(value.duration, { transformAlias }),
252
- delay: partialAliasOf?.delay
253
- ? transformAlias(partialAliasOf.delay)
254
- : transformDurationValue(value.delay, { transformAlias }),
255
- 'timing-function': partialAliasOf?.timingFunction
256
- ? transformAlias(partialAliasOf.timingFunction)
257
- : transformCubicBezierValue(value.timingFunction, { transformAlias }),
258
- };
259
- }
260
- /** Convert typography value to multiple CSS values */
261
- export function transformTypographyValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, } = {}) {
262
- const output = {};
263
- if (aliasOf) {
264
- return transformCompositeAlias(value, { aliasOf, transformAlias });
265
- }
266
- for (const [property, subvalue] of Object.entries(value)) {
267
- let transformedValue;
268
- if (partialAliasOf?.[property]) {
269
- transformedValue = transformAlias(partialAliasOf[property]);
80
+ case 'number': {
81
+ const { $value, aliasOf } = token.mode[mode];
82
+ return transformNumberValue($value, { aliasOf, transformAlias });
270
83
  }
271
- else {
272
- switch (property) {
273
- case 'fontFamily': {
274
- transformedValue = transformFontFamilyValue(subvalue, { transformAlias });
275
- break;
276
- }
277
- case 'fontSize':
278
- case 'fontWeight': {
279
- transformedValue = transformFontWeightValue(subvalue, { transformAlias });
280
- break;
281
- }
282
- default: {
283
- transformedValue = transformStringValue(subvalue, { transformAlias });
284
- break;
285
- }
286
- }
84
+ case 'shadow': {
85
+ const { $value, aliasOf, partialAliasOf } = token.mode[mode];
86
+ return transformShadowValue($value, { aliasOf, partialAliasOf, transformAlias });
87
+ }
88
+ case 'string': {
89
+ const { $value, aliasOf } = token.mode[mode];
90
+ return transformStringValue($value, { aliasOf, transformAlias });
91
+ }
92
+ case 'strokeStyle': {
93
+ const { $value, aliasOf } = token.mode[mode];
94
+ return transformStrokeStyleValue($value, { aliasOf, transformAlias });
95
+ }
96
+ case 'transition': {
97
+ const { $value, aliasOf, partialAliasOf } = token.mode[mode];
98
+ return transformTransitionValue($value, { aliasOf, partialAliasOf, transformAlias });
99
+ }
100
+ case 'typography': {
101
+ const { $value, aliasOf, partialAliasOf } = token.mode[mode];
102
+ return transformTypographyValue($value, { aliasOf, partialAliasOf, transformAlias });
287
103
  }
288
- output[kebabCase(property)] = transformedValue;
289
- }
290
- return output;
291
- }
292
- const CSS_VAR_RE = /(?:(\p{Uppercase_Letter}?\p{Lowercase_Letter}+|\p{Uppercase_Letter}+|\p{Number}+|[\u{80}-\u{10FFFF}]+|_)|.)/u;
293
- /**
294
- * Generate a valid CSS variable from any string
295
- * Code by @dfrankland
296
- */
297
- export function makeCSSVar(name, { prefix, wrapVar = false } = {}) {
298
- let property = name.split(CSS_VAR_RE).filter(Boolean).join('-');
299
- if (prefix && !property.startsWith(`${prefix}-`)) {
300
- property = `${prefix}-${property}`;
301
104
  }
302
- const finalProperty = `--${property}`.toLocaleLowerCase();
303
- return wrapVar ? `var(${finalProperty})` : finalProperty;
304
105
  }
305
106
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/css/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/css/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /** Function that generates a var(…) statement */
2
+ export type IDGenerator = (id: string) => string;
3
+ export declare const defaultAliasTransform: (id: string) => string;
4
+ /** Generate shorthand CSS for select token types */
5
+ export declare function generateShorthand({ $type, localID }: {
6
+ $type: string;
7
+ localID: string;
8
+ }): string | undefined;
9
+ /** Build object of alias values */
10
+ export declare function transformCompositeAlias<T extends {}>(value: T, { aliasOf, transformAlias }: {
11
+ aliasOf: string;
12
+ transformAlias?: IDGenerator;
13
+ }): Record<string, string>;
14
+ export interface MakeCSSVarOptions {
15
+ /** Prefix with string */
16
+ prefix?: string;
17
+ /** Wrap with `var(…)` (default: false) */
18
+ wrapVar?: boolean;
19
+ }
20
+ /**
21
+ * Generate a valid CSS variable from any string
22
+ * Code by @dfrankland
23
+ */
24
+ export declare function makeCSSVar(name: string, { prefix, wrapVar }?: MakeCSSVarOptions): string;
@@ -0,0 +1,36 @@
1
+ import { kebabCase } from 'scule';
2
+ export const defaultAliasTransform = (id) => `var(${makeCSSVar(id)})`;
3
+ /** Generate shorthand CSS for select token types */
4
+ export function generateShorthand({ $type, localID }) {
5
+ switch ($type) {
6
+ case 'transition': {
7
+ return ['duration', 'delay', 'timing-function']
8
+ .map((p) => makeCSSVar(`${localID}-${p}`, { wrapVar: true }))
9
+ .join(' ');
10
+ }
11
+ // note: "typography" is not set in shorthand because it can often unset values unintentionally.
12
+ // @see https://developer.mozilla.org/en-US/docs/Web/CSS/font
13
+ }
14
+ }
15
+ /** Build object of alias values */
16
+ export function transformCompositeAlias(value, { aliasOf, transformAlias = defaultAliasTransform }) {
17
+ const output = {};
18
+ for (const key in value) {
19
+ output[kebabCase(key)] = transformAlias(`${aliasOf}-${key}`);
20
+ }
21
+ return output;
22
+ }
23
+ const CSS_VAR_RE = /(?:(\p{Uppercase_Letter}?\p{Lowercase_Letter}+|\p{Uppercase_Letter}+|\p{Number}+|[\u{80}-\u{10FFFF}]+|_)|.)/u;
24
+ /**
25
+ * Generate a valid CSS variable from any string
26
+ * Code by @dfrankland
27
+ */
28
+ export function makeCSSVar(name, { prefix, wrapVar = false } = {}) {
29
+ let property = name.split(CSS_VAR_RE).filter(Boolean).join('-');
30
+ if (prefix && !property.startsWith(`${prefix}-`)) {
31
+ property = `${prefix}-${property}`;
32
+ }
33
+ const finalProperty = `--${property}`.toLocaleLowerCase();
34
+ return wrapVar ? `var(${finalProperty})` : finalProperty;
35
+ }
36
+ //# sourceMappingURL=lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/css/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKlC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,OAAO,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC;AAE9E,oDAAoD;AACpD,MAAM,UAAU,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAsC;IACtF,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,iBAAiB,CAAC;iBAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC5D,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;QACD,gGAAgG;QAChG,6DAA6D;IAC/D,CAAC;AACH,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,uBAAuB,CACrC,KAAQ,EACR,EAAE,OAAO,EAAE,cAAc,GAAG,qBAAqB,EAAqD;IAEtG,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,MAAiC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,GACd,8GAA8G,CAAC;AASjH;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,KAAK,KAAwB,EAAE;IAC1F,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChE,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,QAAQ,GAAG,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC;IACrC,CAAC;IACD,MAAM,aAAa,GAAG,KAAK,QAAQ,EAAE,CAAC,iBAAiB,EAAE,CAAC;IAC1D,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,aAAa,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type IDGenerator } from './lib.js';
2
+ /** Convert link value to CSS */
3
+ export declare function transformLinkValue(value: string, { aliasOf, transformAlias }?: {
4
+ aliasOf?: string;
5
+ transformAlias?: IDGenerator;
6
+ }): string;
@@ -0,0 +1,9 @@
1
+ import { defaultAliasTransform } from './lib.js';
2
+ /** Convert link value to CSS */
3
+ export function transformLinkValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
4
+ if (aliasOf) {
5
+ return transformAlias(aliasOf);
6
+ }
7
+ return `url("${value}")`;
8
+ }
9
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/css/link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEnE,gCAAgC;AAChC,MAAM,UAAU,kBAAkB,CAChC,KAAa,EACb,EAAE,OAAO,EAAE,cAAc,GAAG,qBAAqB,KAAyD,EAAE;IAE5G,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,QAAQ,KAAK,IAAI,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type IDGenerator } from './lib.js';
2
+ /** Convert number value to CSS */
3
+ export declare function transformNumberValue(value: number, { aliasOf, transformAlias }?: {
4
+ aliasOf?: string;
5
+ transformAlias?: IDGenerator;
6
+ }): string;
@@ -0,0 +1,6 @@
1
+ import { defaultAliasTransform } from './lib.js';
2
+ /** Convert number value to CSS */
3
+ export function transformNumberValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
4
+ return aliasOf ? transformAlias(aliasOf) : String(value);
5
+ }
6
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/css/number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEnE,kCAAkC;AAClC,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,EAAE,OAAO,EAAE,cAAc,GAAG,qBAAqB,KAAyD,EAAE;IAE5G,OAAO,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { ShadowTokenNormalized, ShadowValueNormalized } from '../types';
2
+ import { type IDGenerator } from './lib.js';
3
+ /** Convert shadow subvalue to CSS */
4
+ export declare function transformShadowLayer(value: ShadowValueNormalized, { color, partialAliasOf, transformAlias, }: {
5
+ color: string;
6
+ partialAliasOf?: Partial<Record<keyof ShadowValueNormalized, string>>;
7
+ transformAlias?: IDGenerator;
8
+ }): string | Record<string, string>;
9
+ /** Convert shadow value to CSS */
10
+ export declare function transformShadowValue(value: ShadowTokenNormalized['$value'], { aliasOf, partialAliasOf, transformAlias, }?: {
11
+ aliasOf?: string;
12
+ partialAliasOf?: Partial<Record<keyof ShadowValueNormalized, string>>[];
13
+ transformAlias?: IDGenerator;
14
+ }): string | Record<string, string>;
@@ -0,0 +1,42 @@
1
+ import { transformColorValue } from './color.js';
2
+ import { transformDimensionValue } from './dimension.js';
3
+ import { defaultAliasTransform } from './lib.js';
4
+ /** Convert shadow subvalue to CSS */
5
+ export function transformShadowLayer(value, { color, partialAliasOf, transformAlias = defaultAliasTransform, }) {
6
+ const offsetX = partialAliasOf?.offsetX
7
+ ? transformAlias(partialAliasOf.offsetX)
8
+ : transformDimensionValue(value.offsetX, { transformAlias });
9
+ const offsetY = partialAliasOf?.offsetY
10
+ ? transformAlias(partialAliasOf.offsetY)
11
+ : transformDimensionValue(value.offsetY, { transformAlias });
12
+ const blur = partialAliasOf?.blur
13
+ ? transformAlias(partialAliasOf.blur)
14
+ : transformDimensionValue(value.blur, { transformAlias });
15
+ const spread = partialAliasOf?.spread
16
+ ? transformAlias(partialAliasOf.spread)
17
+ : transformDimensionValue(value.spread, { transformAlias });
18
+ return [offsetX, offsetY, blur, spread, color].join(' ');
19
+ }
20
+ /** Convert shadow value to CSS */
21
+ export function transformShadowValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, } = {}) {
22
+ if (aliasOf) {
23
+ return transformAlias(aliasOf);
24
+ }
25
+ const colors = value.map(({ color }, i) => partialAliasOf?.[i]?.color
26
+ ? transformAlias(partialAliasOf[i].color)
27
+ : transformColorValue(color, { transformAlias }));
28
+ const isHDR = colors.some((c) => typeof c === 'object');
29
+ const formatShadow = (colorKey) => value
30
+ .map((v, i) => transformShadowLayer(v, {
31
+ color: typeof colors[i] === 'string'
32
+ ? colors[i]
33
+ : colors[i][colorKey],
34
+ partialAliasOf: partialAliasOf?.[i],
35
+ transformAlias,
36
+ }))
37
+ .join(', ');
38
+ return !isHDR
39
+ ? formatShadow('.')
40
+ : { '.': formatShadow('.'), srgb: formatShadow('srgb'), p3: formatShadow('p3'), rec2020: formatShadow('rec2020') };
41
+ }
42
+ //# sourceMappingURL=shadow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow.js","sourceRoot":"","sources":["../../src/css/shadow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type IDGenerator } from './lib.js';
2
+ /** Convert string value to CSS */
3
+ export declare function transformStringValue(value: string | number | boolean, { aliasOf, transformAlias }?: {
4
+ aliasOf?: string;
5
+ transformAlias?: IDGenerator;
6
+ }): string;
@@ -0,0 +1,8 @@
1
+ import { defaultAliasTransform } from './lib.js';
2
+ /** Convert string value to CSS */
3
+ export function transformStringValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
4
+ // this seems like a useless function—because it is—but this is a placeholder
5
+ // that can handle unexpected values in the future should any arise
6
+ return aliasOf ? transformAlias(aliasOf) : String(value);
7
+ }
8
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/css/string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEnE,kCAAkC;AAClC,MAAM,UAAU,oBAAoB,CAClC,KAAgC,EAChC,EAAE,OAAO,EAAE,cAAc,GAAG,qBAAqB,KAAyD,EAAE;IAE5G,6EAA6E;IAC7E,mEAAmE;IACnE,OAAO,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { StrokeStyleValue } from '../types.js';
2
+ import { type IDGenerator } from './lib.js';
3
+ /** Convert strokeStyle value to CSS */
4
+ export declare function transformStrokeStyleValue(value: string | StrokeStyleValue, { aliasOf, transformAlias }?: {
5
+ aliasOf?: string;
6
+ transformAlias?: IDGenerator;
7
+ }): string;