@terrazzo/token-tools 0.0.9 → 0.1.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.
@@ -0,0 +1,16 @@
1
+
2
+ > @terrazzo/token-tools@0.1.0 build /home/runner/work/terrazzo/terrazzo/packages/token-tools
3
+ > pnpm run build:clean && pnpm run build:ts && pnpm -w run inject-license @terrazzo/token-tools dist/index.js
4
+
5
+
6
+ > @terrazzo/token-tools@0.1.0 build:clean /home/runner/work/terrazzo/terrazzo/packages/token-tools
7
+ > del-cli dist
8
+
9
+
10
+ > @terrazzo/token-tools@0.1.0 build:ts /home/runner/work/terrazzo/terrazzo/packages/token-tools
11
+ > tsc -p tsconfig.build.json
12
+
13
+
14
+ > @terrazzo/monorepo@ inject-license /home/runner/work/terrazzo/terrazzo
15
+ > node scripts/inject-license.js "@terrazzo/token-tools" "dist/index.js"
16
+
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @terrazzo/token-tools
2
2
 
3
+ ## 0.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#319](https://github.com/terrazzoapp/terrazzo/pull/319) [`e7f272d`](https://github.com/terrazzoapp/terrazzo/commit/e7f272defcd889f5a410fdbd30497cf704671b32) Thanks [@drwpow](https://github.com/drwpow)! - ⚠️ Breaking change: dimension and duration tokens normalize to object syntax in plugins (following upcoming changes in DTCG spec; see https://github.com/design-tokens/community-group/pull/244).
8
+
3
9
  ## 0.0.6
4
10
 
5
11
  ### Patch Changes
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
- # @cobalt-ui/token-tools
1
+ # @terrazzo/token-tools
2
2
 
3
3
  ## Install
4
4
 
5
5
  ```sh
6
- npm install @cobalt-ui/token-tools
6
+ npm install @terrazzo/token-tools
7
7
  ```
@@ -1,6 +1,7 @@
1
+ import type { AliasValue, DimensionValue } from '../types.js';
1
2
  import { type IDGenerator } from './lib.js';
2
3
  /** Convert dimension value to CSS */
3
- export declare function transformDimensionValue(value: number | string, { aliasOf, transformAlias }?: {
4
+ export declare function transformDimensionValue(value: DimensionValue | AliasValue, { aliasOf, transformAlias }?: {
4
5
  aliasOf?: string;
5
6
  transformAlias?: IDGenerator;
6
7
  }): string;
@@ -4,9 +4,9 @@ export function transformDimensionValue(value, { aliasOf, transformAlias = defau
4
4
  if (aliasOf) {
5
5
  return transformAlias(aliasOf);
6
6
  }
7
- if (typeof value === 'number') {
8
- return value === 0 ? '0' : `${value}px`;
7
+ else if (typeof value === 'string') {
8
+ throw new Error(`Could not resolve alias ${value}`);
9
9
  }
10
- return value === '0' || Number.parseFloat(value) === 0 ? '0' : value;
10
+ return value.value === 0 ? '0' : `${value.value}${value.unit}`;
11
11
  }
12
12
  //# sourceMappingURL=dimension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dimension.js","sourceRoot":"","sources":["../../src/css/dimension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEnE,qCAAqC;AACrC,MAAM,UAAU,uBAAuB,CACrC,KAAsB,EACtB,EAAE,OAAO,EAAE,cAAc,GAAG,qBAAqB,KAAyD,EAAE;IAE5G,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC;IAC1C,CAAC;IACD,OAAO,KAAK,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"dimension.js","sourceRoot":"","sources":["../../src/css/dimension.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEnE,qCAAqC;AACrC,MAAM,UAAU,uBAAuB,CACrC,KAAkC,EAClC,EAAE,OAAO,EAAE,cAAc,GAAG,qBAAqB,KAAyD,EAAE;IAE5G,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC"}
@@ -1,6 +1,7 @@
1
+ import type { AliasValue, DurationValue } from '../types.js';
1
2
  import { type IDGenerator } from './lib.js';
2
3
  /** Convert duration value to CSS */
3
- export declare function transformDurationValue(value: number | string, { aliasOf, transformAlias }?: {
4
+ export declare function transformDurationValue(value: DurationValue | AliasValue, { aliasOf, transformAlias }?: {
4
5
  aliasOf?: string;
5
6
  transformAlias?: IDGenerator;
6
7
  }): string;
@@ -4,9 +4,9 @@ export function transformDurationValue(value, { aliasOf, transformAlias = defaul
4
4
  if (aliasOf) {
5
5
  return transformAlias(aliasOf);
6
6
  }
7
- if (typeof value === 'number' || String(Number.parseFloat(value)) === value) {
8
- return `${value}ms`;
7
+ else if (typeof value === 'string') {
8
+ throw new Error(`Could not resolve alias ${value}`);
9
9
  }
10
- return value;
10
+ return value.value === 0 ? '0' : `${value.value}${value.unit}`;
11
11
  }
12
12
  //# sourceMappingURL=duration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../src/css/duration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEnE,oCAAoC;AACpC,MAAM,UAAU,sBAAsB,CACpC,KAAsB,EACtB,EAAE,OAAO,EAAE,cAAc,GAAG,qBAAqB,KAAyD,EAAE;IAE5G,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QAC5E,OAAO,GAAG,KAAK,IAAI,CAAC;IACtB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../src/css/duration.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEnE,oCAAoC;AACpC,MAAM,UAAU,sBAAsB,CACpC,KAAiC,EACjC,EAAE,OAAO,EAAE,cAAc,GAAG,qBAAqB,KAAyD,EAAE;IAE5G,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC"}
@@ -3,6 +3,7 @@ import { transformFontFamilyValue } from './font-family.js';
3
3
  import { transformFontWeightValue } from './font-weight.js';
4
4
  import { defaultAliasTransform, transformCompositeAlias } from './lib.js';
5
5
  import { transformStringValue } from './string.js';
6
+ import { transformDimensionValue } from './dimension.js';
6
7
  /** Convert typography value to multiple CSS values */
7
8
  export function transformTypographyValue(value, { aliasOf, partialAliasOf, transformAlias = defaultAliasTransform, } = {}) {
8
9
  const output = {};
@@ -20,7 +21,10 @@ export function transformTypographyValue(value, { aliasOf, partialAliasOf, trans
20
21
  transformedValue = transformFontFamilyValue(subvalue, { transformAlias });
21
22
  break;
22
23
  }
23
- case 'fontSize':
24
+ case 'fontSize': {
25
+ transformedValue = transformDimensionValue(subvalue, { transformAlias });
26
+ break;
27
+ }
24
28
  case 'fontWeight': {
25
29
  transformedValue = transformFontWeightValue(subvalue, { transformAlias });
26
30
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"typography.js","sourceRoot":"","sources":["../../src/css/typography.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAoB,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,sDAAsD;AACtD,MAAM,UAAU,wBAAwB,CACtC,KAAwC,EACxC,EACE,OAAO,EACP,cAAc,EACd,cAAc,GAAG,qBAAqB,MACqE,EAAE;IAE/G,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,uBAAuB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,IAAI,gBAAwB,CAAC;QAC7B,IAAI,cAAc,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,gBAAgB,GAAG,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAE,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,QAAQ,QAAQ,EAAE,CAAC;gBACjB,KAAK,YAAY,CAAC,CAAC,CAAC;oBAClB,gBAAgB,GAAG,wBAAwB,CAAC,QAAoB,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;oBACtF,MAAM;gBACR,CAAC;gBACD,KAAK,UAAU,CAAC;gBAChB,KAAK,YAAY,CAAC,CAAC,CAAC;oBAClB,gBAAgB,GAAG,wBAAwB,CAAC,QAAkB,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;oBACpF,MAAM;gBACR,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;oBACR,gBAAgB,GAAG,oBAAoB,CAAC,QAAkB,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;oBAChF,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,gBAAgB,CAAC;IACjD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"typography.js","sourceRoot":"","sources":["../../src/css/typography.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAoB,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,sDAAsD;AACtD,MAAM,UAAU,wBAAwB,CACtC,KAAwC,EACxC,EACE,OAAO,EACP,cAAc,EACd,cAAc,GAAG,qBAAqB,MACqE,EAAE;IAE/G,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,uBAAuB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,IAAI,gBAAwB,CAAC;QAC7B,IAAI,cAAc,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,gBAAgB,GAAG,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAE,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,QAAQ,QAAQ,EAAE,CAAC;gBACjB,KAAK,YAAY,CAAC,CAAC,CAAC;oBAClB,gBAAgB,GAAG,wBAAwB,CAAC,QAAoB,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;oBACtF,MAAM;gBACR,CAAC;gBACD,KAAK,UAAU,CAAC,CAAC,CAAC;oBAChB,gBAAgB,GAAG,uBAAuB,CAAC,QAAuC,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;oBACxG,MAAM;gBACR,CAAC;gBACD,KAAK,YAAY,CAAC,CAAC,CAAC;oBAClB,gBAAgB,GAAG,wBAAwB,CAAC,QAAkB,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;oBACpF,MAAM;gBACR,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;oBACR,gBAAgB,GAAG,oBAAoB,CAAC,QAAkB,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;oBAChF,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,gBAAgB,CAAC;IACjD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -48,17 +48,23 @@ export type CubicBezierValue = [number, number, number, number];
48
48
  */
49
49
  export interface DimensionToken extends TokenCore {
50
50
  $type: 'dimension';
51
- $value: string | AliasValue;
51
+ $value: DimensionValue | AliasValue;
52
+ }
53
+ export interface DimensionValue {
54
+ value: number;
55
+ unit: 'px' | 'em' | 'rem';
52
56
  }
53
- export type DimensionValue = `${number}px` | `${number}em` | `${number}rem` | '0';
54
57
  /**
55
58
  * 8.5 Duration
56
59
  */
57
60
  export interface DurationToken extends TokenCore {
58
61
  $type: 'duration';
59
- $value: string | AliasValue;
62
+ $value: DurationValue | AliasValue;
63
+ }
64
+ export interface DurationValue {
65
+ value: number;
66
+ unit: 'ms' | 's';
60
67
  }
61
- export type DurationValue = `${number}ms` | `${number}s`;
62
68
  /**
63
69
  * 9.6 Gradient
64
70
  */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@terrazzo/token-tools",
3
3
  "description": "Various utilities for token types",
4
- "version": "0.0.9",
4
+ "version": "0.1.0",
5
5
  "author": {
6
6
  "name": "Drew Powers",
7
7
  "email": "drew@pow.rs"
@@ -35,7 +35,7 @@
35
35
  "./*": "./*"
36
36
  },
37
37
  "dependencies": {
38
- "@humanwhocodes/momoa": "^3.2.0",
38
+ "@humanwhocodes/momoa": "^3.3.0",
39
39
  "culori": "^4.0.1",
40
40
  "scule": "^1.3.0",
41
41
  "wildcard-match": "^5.1.3"