@terrazzo/token-tools 0.0.2 → 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 -162
  31. package/dist/css/index.js +93 -315
  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 +7 -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 +105 -539
  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,328 +1,106 @@
1
- import { clampChroma, formatCss, displayable } 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) {
18
- case 'transition': {
19
- return ['duration', 'delay', 'timing-function']
20
- .map((p) => makeCSSVar(`${localID}-${p}`, { wrapVar: true }))
21
- .join(' ');
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 });
22
43
  }
23
- // note: "typography" is not set in shorthand because it can often unset values unintentionally.
24
- // @see https://developer.mozilla.org/en-US/docs/Web/CSS/font
25
- }
26
- }
27
- /** Convert border value to multiple CSS values */
28
- export function transformBorderValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, }) {
29
- if (aliasOf) {
30
- return transformAlias(aliasOf);
31
- }
32
- const width = partialAliasOf?.width
33
- ? transformAlias(partialAliasOf.width)
34
- : transformDimensionValue(value.width, { transformAlias });
35
- const color = partialAliasOf?.color
36
- ? transformAlias(partialAliasOf.color)
37
- : transformColorValue(value.color, { transformAlias });
38
- const style = partialAliasOf?.style
39
- ? transformAlias(partialAliasOf.style)
40
- : transformStrokeStyleValue(value.style, { transformAlias });
41
- const formatBorder = (colorKey) => [width, style, typeof color === 'string' ? color : color[colorKey]].join(' ');
42
- return typeof color === 'string' || displayable(color.p3)
43
- ? formatBorder('.')
44
- : {
45
- '.': formatBorder('.'),
46
- srgb: formatBorder('srgb'),
47
- p3: formatBorder('p3'),
48
- rec2020: formatBorder('rec2020'),
49
- };
50
- }
51
- /** Convert color value to CSS string */
52
- export function transformColorValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
53
- if (aliasOf) {
54
- return transformAlias(aliasOf);
55
- }
56
- const { colorSpace, channels, alpha } = typeof value === 'string' ? parseColor(value) : value;
57
- const color = { mode: CSS_TO_CULORI[colorSpace], alpha };
58
- switch (color.mode) {
59
- case 'a98':
60
- case 'rec2020':
61
- case 'p3':
62
- case 'prophoto':
63
- case 'lrgb':
64
- case 'rgb': {
65
- color.r = channels[0];
66
- color.g = channels[1];
67
- color.b = channels[2];
68
- break;
44
+ case 'border': {
45
+ const { $value, aliasOf, partialAliasOf } = token.mode[mode];
46
+ return transformBorderValue($value, { aliasOf, partialAliasOf, transformAlias });
69
47
  }
70
- case 'hsl': {
71
- color.h = channels[0];
72
- color.s = channels[1];
73
- color.l = channels[2];
74
- break;
48
+ case 'color': {
49
+ const { $value, aliasOf } = token.mode[mode];
50
+ return transformColorValue($value, { aliasOf, transformAlias });
75
51
  }
76
- case 'hsv': {
77
- color.h = channels[0];
78
- color.s = channels[1];
79
- color.v = channels[2];
80
- break;
52
+ case 'cubicBezier': {
53
+ const { $value, aliasOf, partialAliasOf } = token.mode[mode];
54
+ return transformCubicBezierValue($value, { aliasOf, partialAliasOf, transformAlias });
81
55
  }
82
- case 'hwb': {
83
- color.h = channels[0];
84
- color.w = channels[1];
85
- color.b = channels[2];
86
- break;
56
+ case 'dimension': {
57
+ const { $value, aliasOf } = token.mode[mode];
58
+ return transformDimensionValue($value, { aliasOf, transformAlias });
87
59
  }
88
- case 'lab':
89
- case 'oklab': {
90
- color.l = channels[0];
91
- color.a = channels[1];
92
- color.b = channels[2];
93
- break;
60
+ case 'duration': {
61
+ const { $value, aliasOf } = token.mode[mode];
62
+ return transformDurationValue($value, { aliasOf, transformAlias });
94
63
  }
95
- case 'lch':
96
- case 'oklch': {
97
- color.l = channels[0];
98
- color.c = channels[1];
99
- color.h = channels[2];
100
- break;
64
+ case 'fontFamily': {
65
+ const { $value, aliasOf, partialAliasOf } = token.mode[mode];
66
+ return transformFontFamilyValue($value, { aliasOf, partialAliasOf, transformAlias });
101
67
  }
102
- case 'xyz50':
103
- case 'xyz65': {
104
- color.x = channels[0];
105
- color.y = channels[1];
106
- color.z = channels[2];
107
- break;
68
+ case 'fontWeight': {
69
+ const { $value, aliasOf } = token.mode[mode];
70
+ return transformFontWeightValue($value, { aliasOf, transformAlias });
108
71
  }
109
- }
110
- return displayable(color)
111
- ? formatCss(color)
112
- : {
113
- '.': formatCss(color),
114
- srgb: (typeof value === 'object' && value.hex) || formatCss(clampChroma(color, color.mode, 'rgb')),
115
- p3: formatCss(clampChroma(color, color.mode, 'p3')),
116
- rec2020: formatCss(clampChroma(color, color.mode, 'rec2020')),
117
- };
118
- }
119
- /** Convert cubicBezier value to CSS */
120
- export function transformCubicBezierValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, } = {}) {
121
- if (aliasOf) {
122
- return transformAlias(aliasOf);
123
- }
124
- return `cubic-bezier(${value
125
- .map((v, i) => (partialAliasOf?.[i] ? transformAlias(partialAliasOf[i]) : v))
126
- .join(', ')})`;
127
- }
128
- /** Build object of alias values */
129
- export function transformCompositeAlias(value, { aliasOf, transformAlias = defaultAliasTransform }) {
130
- const output = {};
131
- for (const key in value) {
132
- output[kebabCase(key)] = transformAlias(`${aliasOf}-${key}`);
133
- }
134
- return output;
135
- }
136
- /** Convert dimension value to CSS */
137
- export function transformDimensionValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
138
- if (aliasOf) {
139
- return transformAlias(aliasOf);
140
- }
141
- if (typeof value === 'number') {
142
- return value === 0 ? '0' : `${value}px`;
143
- }
144
- return value;
145
- }
146
- /** Convert duration value to CSS */
147
- export function transformDurationValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
148
- if (aliasOf) {
149
- return transformAlias(aliasOf);
150
- }
151
- if (typeof value === 'number' || String(Number.parseFloat(value)) === value) {
152
- return `${value}ms`;
153
- }
154
- return value;
155
- }
156
- export const FONT_FAMILY_KEYWORDS = new Set([
157
- 'sans-serif',
158
- 'serif',
159
- 'monospace',
160
- 'system-ui',
161
- 'ui-monospace',
162
- '-apple-system',
163
- ]);
164
- export function transformFontFamilyValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, } = {}) {
165
- if (aliasOf) {
166
- return transformAlias(aliasOf);
167
- }
168
- return (typeof value === 'string' ? [value] : value)
169
- .map((fontName, i) => partialAliasOf?.[i]
170
- ? transformAlias(partialAliasOf[i])
171
- : FONT_FAMILY_KEYWORDS.has(fontName)
172
- ? fontName
173
- : `"${fontName}"`)
174
- .join(', ');
175
- }
176
- /** Convert fontWeight value to CSS */
177
- export function transformFontWeightValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
178
- if (aliasOf) {
179
- return transformAlias(aliasOf);
180
- }
181
- return String(value);
182
- }
183
- /** Convert gradient value to CSS */
184
- export function transformGradientValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, } = {}) {
185
- if (aliasOf) {
186
- return transformAlias(aliasOf);
187
- }
188
- const colors = value.map(({ color }, i) => partialAliasOf?.[i]?.color ? transformAlias(partialAliasOf[i].color) : transformColorValue(color));
189
- const positions = value.map(({ position }, i) => partialAliasOf?.[i]?.position ? transformAlias(String(partialAliasOf[i].position)) : `${100 * position}%`);
190
- const isHDR = colors.some((c) => typeof c === 'object');
191
- const formatStop = (index, colorKey = '.') => [
192
- typeof colors[index] === 'string' ? colors[index] : colors[index][colorKey],
193
- positions[index],
194
- ].join(' ');
195
- return !isHDR
196
- ? value.map((_, i) => formatStop(i, positions[i])).join(', ')
197
- : {
198
- '.': value.map((_, i) => formatStop(i, '.')).join(', '),
199
- srgb: value.map((_, i) => formatStop(i, 'srgb')).join(', '),
200
- p3: value.map((_, i) => formatStop(i, 'p3')).join(', '),
201
- rec2020: value.map((_, i) => formatStop(i, 'rec2020')).join(', '),
202
- };
203
- }
204
- /** Convert link value to CSS */
205
- export function transformLinkValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
206
- if (aliasOf) {
207
- return transformAlias(aliasOf);
208
- }
209
- return `url("${value}")`;
210
- }
211
- /** Convert number value to CSS */
212
- export function transformNumberValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
213
- return aliasOf ? transformAlias(aliasOf) : String(value);
214
- }
215
- /** Convert shadow subvalue to CSS */
216
- export function transformShadowLayer(value, { color, partialAliasOf, transformAlias = defaultAliasTransform, }) {
217
- const offsetX = partialAliasOf?.offsetX
218
- ? transformAlias(partialAliasOf.offsetX)
219
- : transformDimensionValue(value.offsetX, { transformAlias });
220
- const offsetY = partialAliasOf?.offsetY
221
- ? transformAlias(partialAliasOf.offsetY)
222
- : transformDimensionValue(value.offsetY, { transformAlias });
223
- const blur = partialAliasOf?.blur
224
- ? transformAlias(partialAliasOf.blur)
225
- : transformDimensionValue(value.blur, { transformAlias });
226
- const spread = partialAliasOf?.spread
227
- ? transformAlias(partialAliasOf.spread)
228
- : transformDimensionValue(value.spread, { transformAlias });
229
- return [offsetX, offsetY, blur, spread, color].join(' ');
230
- }
231
- /** Convert shadow value to CSS */
232
- export function transformShadowValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, } = {}) {
233
- if (aliasOf) {
234
- return transformAlias(aliasOf);
235
- }
236
- const colors = value.map(({ color }, i) => partialAliasOf?.[i]?.color
237
- ? transformAlias(partialAliasOf[i].color)
238
- : transformColorValue(color, { transformAlias }));
239
- const isHDR = colors.some((c) => typeof c === 'object');
240
- const formatShadow = (colorKey) => value
241
- .map((v, i) => transformShadowLayer(v, {
242
- color: typeof colors[i] === 'string'
243
- ? colors[i]
244
- : colors[i][colorKey],
245
- partialAliasOf: partialAliasOf?.[i],
246
- transformAlias,
247
- }))
248
- .join(', ');
249
- return !isHDR
250
- ? formatShadow('.')
251
- : { '.': formatShadow('.'), srgb: formatShadow('srgb'), p3: formatShadow('p3'), rec2020: formatShadow('rec2020') };
252
- }
253
- /** Convert string value to CSS */
254
- export function transformStringValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
255
- // this seems like a useless function—because it is—but this is a placeholder
256
- // that can handle unexpected values in the future should any arise
257
- return aliasOf ? transformAlias(aliasOf) : String(value);
258
- }
259
- /** Convert strokeStyle value to CSS */
260
- export function transformStrokeStyleValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
261
- if (aliasOf) {
262
- return transformAlias(aliasOf);
263
- }
264
- return typeof value === 'string' ? value : 'dashed'; // CSS doesn’t have `dash-array`; it’s just "dashed"
265
- }
266
- /** Convert transition value to multiple CSS values */
267
- export function transformTransitionValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, } = {}) {
268
- if (aliasOf) {
269
- return transformCompositeAlias(value, { aliasOf, transformAlias });
270
- }
271
- return {
272
- duration: partialAliasOf?.duration
273
- ? transformAlias(partialAliasOf.duration)
274
- : transformDurationValue(value.duration, { transformAlias }),
275
- delay: partialAliasOf?.delay
276
- ? transformAlias(partialAliasOf.delay)
277
- : transformDurationValue(value.delay, { transformAlias }),
278
- 'timing-function': partialAliasOf?.timingFunction
279
- ? transformAlias(partialAliasOf.timingFunction)
280
- : transformCubicBezierValue(value.timingFunction, { transformAlias }),
281
- };
282
- }
283
- /** Convert typography value to multiple CSS values */
284
- export function transformTypographyValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, } = {}) {
285
- const output = {};
286
- if (aliasOf) {
287
- return transformCompositeAlias(value, { aliasOf, transformAlias });
288
- }
289
- for (const [property, subvalue] of Object.entries(value)) {
290
- let transformedValue;
291
- if (partialAliasOf?.[property]) {
292
- transformedValue = transformAlias(partialAliasOf[property]);
72
+ case 'gradient': {
73
+ const { $value, aliasOf, partialAliasOf } = token.mode[mode];
74
+ return transformGradientValue($value, { aliasOf, partialAliasOf, transformAlias });
293
75
  }
294
- else {
295
- switch (property) {
296
- case 'fontFamily': {
297
- transformedValue = transformFontFamilyValue(subvalue, { transformAlias });
298
- break;
299
- }
300
- case 'fontSize':
301
- case 'fontWeight': {
302
- transformedValue = transformFontWeightValue(subvalue, { transformAlias });
303
- break;
304
- }
305
- default: {
306
- transformedValue = transformStringValue(subvalue, { transformAlias });
307
- break;
308
- }
309
- }
76
+ case 'link': {
77
+ const { $value, aliasOf } = token.mode[mode];
78
+ return transformLinkValue($value, { aliasOf, transformAlias });
79
+ }
80
+ case 'number': {
81
+ const { $value, aliasOf } = token.mode[mode];
82
+ return transformNumberValue($value, { aliasOf, transformAlias });
83
+ }
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 });
310
103
  }
311
- output[kebabCase(property)] = transformedValue;
312
- }
313
- return output;
314
- }
315
- const CSS_VAR_RE = /(?:(\p{Uppercase_Letter}?\p{Lowercase_Letter}+|\p{Uppercase_Letter}+|\p{Number}+|[\u{80}-\u{10FFFF}]+|_)|.)/u;
316
- /**
317
- * Generate a valid CSS variable from any string
318
- * Code by @dfrankland
319
- */
320
- export function makeCSSVar(name, { prefix, wrapVar = false } = {}) {
321
- let property = name.split(CSS_VAR_RE).filter(Boolean).join('-');
322
- if (prefix && !property.startsWith(`${prefix}-`)) {
323
- property = `${prefix}-${property}`;
324
104
  }
325
- const finalProperty = `--${property}`.toLocaleLowerCase();
326
- return wrapVar ? `var(${finalProperty})` : finalProperty;
327
105
  }
328
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;