@terrazzo/token-tools 0.0.3 → 0.0.5

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/color.d.ts CHANGED
@@ -1,7 +1,25 @@
1
1
  import 'culori/css';
2
2
  import { type Color } from 'culori/fn';
3
- import type { ColorSpace, ColorValueNormalized } from './types.js';
3
+ import type { ColorSpace, ColorTokenNormalized, ColorValueNormalized } from './types.js';
4
4
  export declare const CULORI_TO_CSS: Record<Extract<Color['mode'], 'a98' | 'lab' | 'lch' | 'oklab' | 'oklch' | 'hsl' | 'hsv' | 'hwb' | 'lrgb' | 'p3' | 'prophoto' | 'rec2020' | 'rgb' | 'xyz50' | 'xyz65'>, ColorSpace>;
5
- export declare const CSS_TO_CULORI: Record<string, string>;
5
+ export declare const CSS_TO_CULORI: {
6
+ a98: string;
7
+ 'display-p3': string;
8
+ hsl: string;
9
+ hsv: string;
10
+ hwb: string;
11
+ lab: string;
12
+ lch: string;
13
+ oklab: string;
14
+ oklch: string;
15
+ 'prophoto-rgb': string;
16
+ rec2020: string;
17
+ srgb: string;
18
+ 'srgb-linear': string;
19
+ 'xyz-d50': string;
20
+ 'xyz-d65': string;
21
+ };
6
22
  /** Parse any color */
7
23
  export declare function parseColor(color: string): ColorValueNormalized;
24
+ /** Convert a color token to a Culori color */
25
+ export declare function tokenToCulori(token: ColorTokenNormalized): Color | undefined;
package/dist/color.js CHANGED
@@ -17,10 +17,23 @@ export const CULORI_TO_CSS = {
17
17
  xyz50: 'xyz-d50',
18
18
  xyz65: 'xyz-d65',
19
19
  };
20
- export const CSS_TO_CULORI = {};
21
- for (const k in CULORI_TO_CSS) {
22
- CSS_TO_CULORI[CULORI_TO_CSS[k]] = k;
23
- }
20
+ export const CSS_TO_CULORI = {
21
+ a98: 'a98',
22
+ 'display-p3': 'p3',
23
+ hsl: 'hsl',
24
+ hsv: 'hsv',
25
+ hwb: 'hwb',
26
+ lab: 'lab',
27
+ lch: 'lch',
28
+ oklab: 'oklab',
29
+ oklch: 'oklch',
30
+ 'prophoto-rgb': 'prophoto',
31
+ rec2020: 'rec2020',
32
+ srgb: 'rgb',
33
+ 'srgb-linear': 'lrgb',
34
+ 'xyz-d50': 'xyz50',
35
+ 'xyz-d65': 'xyz65',
36
+ };
24
37
  /** Parse any color */
25
38
  export function parseColor(color) {
26
39
  const result = parse(color);
@@ -76,4 +89,57 @@ export function parseColor(color) {
76
89
  alpha: result.alpha ?? 1,
77
90
  };
78
91
  }
92
+ /** Convert a color token to a Culori color */
93
+ export function tokenToCulori(token) {
94
+ if (token.$type !== 'color') {
95
+ return undefined;
96
+ }
97
+ switch (token.$value.colorSpace) {
98
+ case 'a98':
99
+ case 'display-p3':
100
+ case 'prophoto-rgb':
101
+ case 'rec2020':
102
+ case 'srgb':
103
+ case 'srgb-linear': {
104
+ const [r, g, b] = token.$value.channels;
105
+ return {
106
+ mode: CSS_TO_CULORI[token.$value.colorSpace] || token.$value.colorSpace,
107
+ r,
108
+ g,
109
+ b,
110
+ alpha: token.$value.alpha,
111
+ };
112
+ }
113
+ case 'hsl': {
114
+ const [h, s, l] = token.$value.channels;
115
+ return { mode: 'hsl', h, s, l, alpha: token.$value.alpha };
116
+ }
117
+ case 'hsv': {
118
+ const [h, s, v] = token.$value.channels;
119
+ return { mode: 'hsv', h, s, v, alpha: token.$value.alpha };
120
+ }
121
+ case 'hwb': {
122
+ const [h, w, b] = token.$value.channels;
123
+ return { mode: 'hwb', h, w, b, alpha: token.$value.alpha };
124
+ }
125
+ case 'lab':
126
+ case 'oklab': {
127
+ const [l, a, b] = token.$value.channels;
128
+ return { mode: token.$value.colorSpace, l, a, b, alpha: token.$value.alpha };
129
+ }
130
+ case 'lch':
131
+ case 'oklch': {
132
+ const [l, c, h] = token.$value.channels;
133
+ return { mode: token.$value.colorSpace, l, c, h, alpha: token.$value.alpha };
134
+ }
135
+ case 'xyz-d50': {
136
+ const [x, y, z] = token.$value.channels;
137
+ return { mode: 'xyz50', x, y, z, alpha: token.$value.alpha };
138
+ }
139
+ case 'xyz-d65': {
140
+ const [x, y, z] = token.$value.channels;
141
+ return { mode: 'xyz65', x, y, z, alpha: token.$value.alpha };
142
+ }
143
+ }
144
+ }
79
145
  //# sourceMappingURL=color.js.map
package/dist/color.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"color.js","sourceRoot":"","sources":["../src/color.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../src/color.ts"],"names":[],"mappings":"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"}
package/dist/css/color.js CHANGED
@@ -1,72 +1,27 @@
1
- import { clampChroma, formatCss, displayable } from 'culori';
2
- import { CSS_TO_CULORI, parseColor } from '../color.js';
1
+ import { displayable, formatCss, toGamut } from 'culori';
2
+ import { parseColor, tokenToCulori } from '../color.js';
3
3
  import { defaultAliasTransform } from './lib.js';
4
4
  /** Convert color value to CSS string */
5
5
  export function transformColorValue(value, { aliasOf, transformAlias = defaultAliasTransform } = {}) {
6
6
  if (aliasOf) {
7
7
  return transformAlias(aliasOf);
8
8
  }
9
- const { colorSpace, channels, alpha } = typeof value === 'string' ? parseColor(value) : value;
10
- const color = { mode: CSS_TO_CULORI[colorSpace], alpha };
11
- switch (color.mode) {
12
- case 'a98':
13
- case 'rec2020':
14
- case 'p3':
15
- case 'prophoto':
16
- case 'lrgb':
17
- case 'rgb': {
18
- color.r = channels[0];
19
- color.g = channels[1];
20
- color.b = channels[2];
21
- break;
22
- }
23
- case 'hsl': {
24
- color.h = channels[0];
25
- color.s = channels[1];
26
- color.l = channels[2];
27
- break;
28
- }
29
- case 'hsv': {
30
- color.h = channels[0];
31
- color.s = channels[1];
32
- color.v = channels[2];
33
- break;
34
- }
35
- case 'hwb': {
36
- color.h = channels[0];
37
- color.w = channels[1];
38
- color.b = channels[2];
39
- break;
40
- }
41
- case 'lab':
42
- case 'oklab': {
43
- color.l = channels[0];
44
- color.a = channels[1];
45
- color.b = channels[2];
46
- break;
47
- }
48
- case 'lch':
49
- case 'oklch': {
50
- color.l = channels[0];
51
- color.c = channels[1];
52
- color.h = channels[2];
53
- break;
54
- }
55
- case 'xyz50':
56
- case 'xyz65': {
57
- color.x = channels[0];
58
- color.y = channels[1];
59
- color.z = channels[2];
60
- break;
61
- }
9
+ const { colorSpace, channels, alpha = 1 } = typeof value === 'string' ? parseColor(value) : value;
10
+ const color = tokenToCulori({
11
+ $type: 'color',
12
+ $value: { colorSpace, channels, alpha },
13
+ mode: { '.': { $type: 'color', $value: { colorSpace, channels, alpha } } },
14
+ });
15
+ if (!color) {
16
+ throw new Error(`Can’t convert color ${JSON.stringify(value)} to Culori color`);
62
17
  }
63
18
  return displayable(color)
64
19
  ? formatCss(color)
65
20
  : {
66
21
  '.': formatCss(color),
67
- srgb: (typeof value === 'object' && value.hex) || formatCss(clampChroma(color, color.mode, 'rgb')),
68
- p3: formatCss(clampChroma(color, color.mode, 'p3')),
69
- rec2020: formatCss(clampChroma(color, color.mode, 'rec2020')),
22
+ srgb: (typeof value === 'object' && value.hex) || formatCss(toGamut('rgb', 'oklch')(color)),
23
+ p3: formatCss(toGamut('p3', 'oklch')(color)),
24
+ rec2020: formatCss(toGamut('rec2020', 'oklch')(color)),
70
25
  };
71
26
  }
72
27
  //# sourceMappingURL=color.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"color.js","sourceRoot":"","sources":["../../src/css/color.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../../src/css/color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,EAAoB,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAInE,wCAAwC;AACxC,MAAM,UAAU,mBAAmB,CACjC,KAA0B,EAC1B,EAAE,OAAO,EAAE,cAAc,GAAG,qBAAqB,KAAyD,EAAE;IAE5G,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClG,MAAM,KAAK,GAAG,aAAa,CAAC;QAC1B,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE;QACvC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;KACxC,CAAC,CAAC;IAEtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,WAAW,CAAC,KAAK,CAAC;QACvB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;QAClB,CAAC,CAAC;YACE,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC;YACrB,IAAI,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,CAAU,CAAC;YACpG,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,CAAU,CAAC;YACrD,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,KAAK,CAAU,CAAC;SAChE,CAAC;AACR,CAAC"}
@@ -1,7 +1,7 @@
1
- import type { CubicBézierValue } from '../types.js';
1
+ import type { CubicBezierValue } from '../types.js';
2
2
  import { type IDGenerator } from './lib.js';
3
3
  /** Convert cubicBezier value to CSS */
4
- export declare function transformCubicBezierValue(value: CubicBézierValue, { aliasOf, partialAliasOf, transformAlias, }?: {
4
+ export declare function transformCubicBezierValue(value: CubicBezierValue, { aliasOf, partialAliasOf, transformAlias, }?: {
5
5
  aliasOf?: string;
6
6
  partialAliasOf?: [string | undefined, string | undefined, string | undefined, string | undefined];
7
7
  transformAlias?: IDGenerator;
@@ -1,5 +1,7 @@
1
1
  import type { TokenNormalized } from '../types.js';
2
2
  import type { IDGenerator } from './lib.js';
3
+ import { transformCubicBezierValue } from './cubic-bezier.js';
4
+ import { transformDurationValue } from './duration.js';
3
5
  export * from './boolean.js';
4
6
  export * from './border.js';
5
7
  export * from './color.js';
@@ -23,7 +25,7 @@ export interface TransformCSSValueOptions {
23
25
  }
24
26
  /** Main CSS Transform */
25
27
  export declare function transformCSSValue<T extends TokenNormalized>(token: T, { mode, transformAlias }: TransformCSSValueOptions): string | Record<string, string> | import("./color.js").WideGamutColorValue | {
26
- duration: string;
27
- delay: string;
28
- 'timing-function': string;
28
+ duration: ReturnType<typeof transformDurationValue>;
29
+ delay: ReturnType<typeof transformDurationValue>;
30
+ 'timing-function': ReturnType<typeof transformCubicBezierValue>;
29
31
  } | undefined;
@@ -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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"}
package/dist/id.d.ts CHANGED
@@ -2,6 +2,8 @@
2
2
  export declare function isAlias(value: unknown): boolean;
3
3
  /** Match token against globs */
4
4
  export declare function isTokenMatch(tokenID: string, globPatterns: string[]): boolean;
5
+ /** Same as isTokenMatch but returns the matching pattern */
6
+ export declare function getTokenMatch(tokenId: string, globPatterns: string[]): string | undefined;
5
7
  /** Make an alias */
6
8
  export declare function makeAlias(input: string): string;
7
9
  /** Parse an alias */
package/dist/id.js CHANGED
@@ -11,6 +11,14 @@ export function isAlias(value) {
11
11
  export function isTokenMatch(tokenID, globPatterns) {
12
12
  return wcmatch(globPatterns)(tokenID);
13
13
  }
14
+ /** Same as isTokenMatch but returns the matching pattern */
15
+ export function getTokenMatch(tokenId, globPatterns) {
16
+ for (const pattern of globPatterns) {
17
+ if (wcmatch(pattern)(tokenId)) {
18
+ return pattern;
19
+ }
20
+ }
21
+ }
14
22
  /** Make an alias */
15
23
  export function makeAlias(input) {
16
24
  return input.replace(/^\{?([^}]+)\}?$/, '{$1}');
package/dist/id.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"id.js","sourceRoot":"","sources":["../src/id.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAErC,MAAM,QAAQ,GAAG,eAAe,CAAC;AAEjC,yCAAyC;AACzC,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,YAAsB;IAClE,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,qBAAqB;AACrB,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;AAC5G,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,OAAO,CAAC,EAAU;IAChC,MAAM,cAAc,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC;AAC7F,CAAC"}
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../src/id.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAErC,MAAM,QAAQ,GAAG,eAAe,CAAC;AAEjC,yCAAyC;AACzC,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,YAAsB;IAClE,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,YAAsB;IACnE,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;AACH,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,qBAAqB;AACrB,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;AAC5G,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,OAAO,CAAC,EAAU;IAChC,MAAM,cAAc,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC;AAC7F,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @module @cobalt-ui/core
2
+ * @module @terrazzo/token-tools
3
3
  * @license MIT License
4
4
  *
5
5
  * Copyright (c) 2021 Drew Powers
package/dist/types.d.ts CHANGED
@@ -3,7 +3,7 @@ export interface TokenCore<E extends {} = Record<string, unknown>> {
3
3
  $description?: string;
4
4
  $extensions?: E;
5
5
  }
6
- export type Token = BooleanToken | BorderToken | ColorToken | CubicBézierToken | DimensionToken | DurationToken | FontFamilyToken | FontWeightToken | GradientToken | LinkToken | NumberToken | ShadowToken | StringToken | StringToken | TransitionToken | TypographyToken | StrokeStyleToken;
6
+ export type Token = BooleanToken | BorderToken | ColorToken | CubicBezierToken | DimensionToken | DurationToken | FontFamilyToken | FontWeightToken | GradientToken | LinkToken | NumberToken | ShadowToken | StringToken | StringToken | TransitionToken | TypographyToken | StrokeStyleToken;
7
7
  export type AliasValue = string;
8
8
  /**
9
9
  * 8.? Boolean (beta)
@@ -38,11 +38,11 @@ export type ColorValue = string | {
38
38
  alpha?: number;
39
39
  hex?: string;
40
40
  };
41
- export interface CubicBézierToken extends TokenCore {
41
+ export interface CubicBezierToken extends TokenCore {
42
42
  $type: 'cubicBezier';
43
- $value: CubicBézierValue | AliasValue;
43
+ $value: CubicBezierValue | AliasValue;
44
44
  }
45
- export type CubicBézierValue = [number, number, number, number];
45
+ export type CubicBezierValue = [number, number, number, number];
46
46
  /**
47
47
  * 8.2 Dimension
48
48
  */
@@ -50,7 +50,7 @@ export interface DimensionToken extends TokenCore {
50
50
  $type: 'dimension';
51
51
  $value: string | AliasValue;
52
52
  }
53
- export type DimensionValue = `${number}px` | `${number}em` | `${number}rem`;
53
+ export type DimensionValue = `${number}px` | `${number}em` | `${number}rem` | '0';
54
54
  /**
55
55
  * 8.5 Duration
56
56
  */
@@ -147,7 +147,7 @@ export interface TransitionToken extends TokenCore {
147
147
  export interface TransitionValue {
148
148
  duration: DurationValue | AliasValue;
149
149
  delay: DurationValue | AliasValue;
150
- timingFunction: CubicBézierValue | AliasValue;
150
+ timingFunction: CubicBezierValue | AliasValue;
151
151
  }
152
152
  /**
153
153
  * 9.7 Typography
@@ -174,7 +174,7 @@ export interface TypographyValue {
174
174
  lineHeight?: DimensionValue | NumberValue | AliasValue;
175
175
  textDecoration?: string;
176
176
  textTransform?: string;
177
- [key: string]: any;
177
+ [key: string]: unknown;
178
178
  }
179
179
  export interface GroupCore {
180
180
  $description?: string;
@@ -198,7 +198,7 @@ export interface TokenNormalizedCore {
198
198
  tokens: string[];
199
199
  };
200
200
  }
201
- export type TokenNormalized = BooleanTokenNormalized | BorderTokenNormalized | ColorTokenNormalized | CubicBézierTokenNormalized | DimensionTokenNormalized | DurationTokenNormalized | FontFamilyTokenNormalized | FontWeightTokenNormalized | GradientTokenNormalized | LinkTokenNormalized | NumberTokenNormalized | ShadowTokenNormalized | StringTokenNormalized | StrokeStyleTokenNormalized | TransitionTokenNormalized | TypographyTokenNormalized;
201
+ export type TokenNormalized = BooleanTokenNormalized | BorderTokenNormalized | ColorTokenNormalized | CubicBezierTokenNormalized | DimensionTokenNormalized | DurationTokenNormalized | FontFamilyTokenNormalized | FontWeightTokenNormalized | GradientTokenNormalized | LinkTokenNormalized | NumberTokenNormalized | ShadowTokenNormalized | StringTokenNormalized | StrokeStyleTokenNormalized | TransitionTokenNormalized | TypographyTokenNormalized;
202
202
  export interface BooleanTokenNormalized extends TokenNormalizedCore {
203
203
  $type: 'boolean';
204
204
  $value: BooleanValue;
@@ -239,13 +239,13 @@ export interface ColorValueNormalized {
239
239
  hex?: string;
240
240
  }
241
241
  export type ColorSpace = 'a98' | 'display-p3' | 'hsb' | 'hsl' | 'hsv' | 'hwb' | 'lab' | 'lch' | 'oklab' | 'oklch' | 'prophoto-rgb' | 'rec2020' | 'srgb-linear' | 'srgb' | 'xyz-d50' | 'xyz-d65';
242
- export interface CubicBézierTokenNormalized extends TokenNormalizedCore {
242
+ export interface CubicBezierTokenNormalized extends TokenNormalizedCore {
243
243
  $type: 'cubicBezier';
244
- $value: CubicBézierValue;
244
+ $value: CubicBezierValue;
245
245
  aliasOf?: string;
246
246
  partialAliasOf?: [string | undefined, string | undefined, string | undefined, string | undefined];
247
- mode: Record<string, CubicBézierTokenNormalized | undefined>;
248
- originalValue: CubicBézierToken;
247
+ mode: Record<string, CubicBezierTokenNormalized | undefined>;
248
+ originalValue: CubicBezierToken;
249
249
  }
250
250
  export interface DimensionTokenNormalized extends TokenNormalizedCore {
251
251
  $type: 'dimension';
@@ -352,7 +352,7 @@ export interface TransitionTokenNormalized extends TokenNormalizedCore {
352
352
  export interface TransitionValueNormalized {
353
353
  duration: DurationValue;
354
354
  delay: DurationValue;
355
- timingFunction: CubicBézierValue;
355
+ timingFunction: CubicBezierValue;
356
356
  }
357
357
  export interface TypographyTokenNormalized extends TokenNormalizedCore {
358
358
  $type: 'typography';
@@ -380,5 +380,5 @@ export interface TypographyValueNormalized {
380
380
  lineHeight?: DimensionValue | NumberValue;
381
381
  textDecoration?: string;
382
382
  textTransform?: string;
383
- [key: string]: any;
383
+ [key: string]: unknown;
384
384
  }
package/package.json CHANGED
@@ -1,18 +1,16 @@
1
1
  {
2
2
  "name": "@terrazzo/token-tools",
3
3
  "description": "Various utilities for token types",
4
- "version": "0.0.3",
4
+ "version": "0.0.5",
5
5
  "author": {
6
6
  "name": "Drew Powers",
7
7
  "email": "drew@pow.rs"
8
8
  },
9
9
  "keywords": [
10
10
  "design tokens",
11
- "design tokens community group",
12
- "design tokens format module",
13
11
  "dtcg",
14
12
  "cli",
15
- "w3c design tokens",
13
+ "w3c",
16
14
  "design system",
17
15
  "typescript",
18
16
  "sass",
@@ -22,6 +20,11 @@
22
20
  "linting",
23
21
  "lint"
24
22
  ],
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/terrazzoapp/terrazzo.git",
26
+ "directory": "./packages/token-tools/"
27
+ },
25
28
  "license": "MIT",
26
29
  "type": "module",
27
30
  "main": "./dist/index.js",
@@ -32,23 +35,22 @@
32
35
  "./*": "./*"
33
36
  },
34
37
  "dependencies": {
35
- "@humanwhocodes/momoa": "^3.0",
36
- "culori": "^4.0",
37
- "scule": "^1.3",
38
- "wildcard-match": "^5.1"
38
+ "@humanwhocodes/momoa": "^3.1.1",
39
+ "culori": "^4.0.1",
40
+ "scule": "^1.3.0",
41
+ "wildcard-match": "^5.1.3"
39
42
  },
40
43
  "devDependencies": {
41
- "@types/culori": "^2.1"
44
+ "@types/culori": "^2.1.1"
42
45
  },
43
46
  "scripts": {
44
- "build": "pnpm run build:clean && pnpm run build:ts && pnpm run build:license",
45
- "build:clean": "del dist",
47
+ "build": "pnpm run build:clean && pnpm run build:ts && pnpm -w run inject-license @terrazzo/token-tools dist/index.js",
48
+ "build:clean": "del-cli dist",
46
49
  "build:ts": "tsc -p tsconfig.build.json",
47
- "build:license": "node ../../scripts/inject-license.js @cobalt-ui/core dist/index.js",
48
- "dev": "pnpm run --parallel \"/^dev:.*/\"",
50
+ "dev": "pnpm --filter @terrazzo/token-tools run --parallel \"/^dev:.*/\"",
49
51
  "lint": "biome check .",
50
52
  "dev:ts": "tsc -p tsconfig.build.json --watch",
51
- "test": "pnpm run \"/^test:.*/\"",
53
+ "test": "pnpm --filter @terrazzo/token-tools run \"/^test:.*/\"",
52
54
  "test:js": "vitest run",
53
55
  "test:ts": "tsc --noEmit"
54
56
  }
package/src/color.ts DELETED
@@ -1,102 +0,0 @@
1
- import 'culori/css';
2
- import { type Color, parse } from 'culori/fn';
3
- import type { ColorSpace, ColorValueNormalized } from './types.js';
4
-
5
- export const CULORI_TO_CSS: Record<
6
- Extract<
7
- Color['mode'],
8
- | 'a98'
9
- | 'lab'
10
- | 'lch'
11
- | 'oklab'
12
- | 'oklch'
13
- | 'hsl'
14
- | 'hsv'
15
- | 'hwb'
16
- | 'lrgb'
17
- | 'p3'
18
- | 'prophoto'
19
- | 'rec2020'
20
- | 'rgb'
21
- | 'xyz50'
22
- | 'xyz65'
23
- >,
24
- ColorSpace
25
- > = {
26
- a98: 'a98',
27
- hsl: 'hsl',
28
- hsv: 'hsv',
29
- hwb: 'hwb',
30
- lab: 'lab',
31
- lch: 'lch',
32
- lrgb: 'srgb-linear',
33
- oklab: 'oklab',
34
- oklch: 'oklch',
35
- p3: 'display-p3',
36
- prophoto: 'prophoto-rgb',
37
- rec2020: 'rec2020',
38
- rgb: 'srgb',
39
- xyz50: 'xyz-d50',
40
- xyz65: 'xyz-d65',
41
- };
42
-
43
- export const CSS_TO_CULORI: Record<string, string> = {};
44
- for (const k in CULORI_TO_CSS) {
45
- CSS_TO_CULORI[CULORI_TO_CSS[k as keyof typeof CULORI_TO_CSS]] = k;
46
- }
47
-
48
- /** Parse any color */
49
- export function parseColor(color: string): ColorValueNormalized {
50
- const result = parse(color);
51
- if (!result) {
52
- throw new Error(`Unable to parse color "${color}"`);
53
- }
54
- if (!(result.mode in CULORI_TO_CSS)) {
55
- throw new Error(`Unsupported color space: ${result.mode}`);
56
- }
57
- const colorSpace = CULORI_TO_CSS[result.mode as keyof typeof CULORI_TO_CSS];
58
- let channels: [number, number, number] = [0, 0, 0];
59
- switch (result.mode) {
60
- case 'a98':
61
- case 'rec2020':
62
- case 'p3':
63
- case 'prophoto':
64
- case 'lrgb':
65
- case 'rgb': {
66
- channels = [result.r, result.g, result.b];
67
- break;
68
- }
69
- case 'hsl': {
70
- channels = [result.h ?? 0, result.s, result.l];
71
- break;
72
- }
73
- case 'hsv': {
74
- channels = [result.h ?? 0, result.s, result.v];
75
- break;
76
- }
77
- case 'hwb': {
78
- channels = [result.h ?? 0, result.w, result.b];
79
- break;
80
- }
81
- case 'lab':
82
- case 'oklab': {
83
- channels = [result.l, result.a, result.b];
84
- break;
85
- }
86
- case 'lch':
87
- case 'oklch': {
88
- channels = [result.l, result.c, result.h ?? 0];
89
- break;
90
- }
91
- case 'xyz50':
92
- case 'xyz65': {
93
- channels = [result.x, result.y, result.z];
94
- break;
95
- }
96
- }
97
- return {
98
- colorSpace,
99
- channels,
100
- alpha: result.alpha ?? 1,
101
- };
102
- }
@@ -1,15 +0,0 @@
1
- import { type IDGenerator, defaultAliasTransform } from './lib.js';
2
-
3
- /** Convert boolean value to CSS string */
4
- export function transformBooleanValue(
5
- value: boolean,
6
- { aliasOf, transformAlias = defaultAliasTransform }: { aliasOf?: string; transformAlias?: IDGenerator } = {},
7
- ): string {
8
- if (aliasOf) {
9
- return transformAlias(aliasOf);
10
- }
11
- if (typeof value !== 'boolean') {
12
- throw new Error(`Expected boolean, received ${typeof value} "${value}"`);
13
- }
14
- return value ? '1' : '0';
15
- }