@terrazzo/plugin-css 0.0.4 → 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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # 💠 @terrazzo/plugin-css
1
+ # @terrazzo/plugin-css
2
2
 
3
3
  CSS codegen plugin for @terrazzo/cli. Generate CSS using DTCG tokens.
4
4
 
package/dist/build.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { isTokenMatch } from '@terrazzo/token-tools';
2
2
  import { generateShorthand } from '@terrazzo/token-tools/css';
3
- import { printRules } from './lib.js';
3
+ import { printRules, FORMAT_ID } from './lib.js';
4
4
  const P3_MQ = '@media (color-gamut: p3)';
5
5
  const REC2020_MQ = '@media (color-gamut: rec2020)';
6
6
  export default function buildFormat({ getTransforms, exclude, modeSelectors }) {
7
7
  const rules = [];
8
8
  // :root
9
- const rootTokens = getTransforms({ format: 'css', mode: '.' });
9
+ const rootTokens = getTransforms({ format: FORMAT_ID, mode: '.' });
10
10
  if (rootTokens.length) {
11
11
  const rootRule = { selectors: [':root'], declarations: {} };
12
12
  // note: "nestedQuery" was designed specifically for higher-gamut colors to
package/dist/build.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { Plugin } from '@terrazzo/parser';
2
2
  import { type CSSPluginOptions } from './lib.js';
3
+ export * from './build.js';
3
4
  export * from './lib.js';
4
- export default function cssPlugin({ filename, exclude, variableName, modeSelectors, }?: CSSPluginOptions): Plugin;
5
+ export default function cssPlugin({ filename, exclude, variableName, modeSelectors, transform: customTransform, }?: CSSPluginOptions): Plugin;
package/dist/index.js CHANGED
@@ -22,22 +22,40 @@
22
22
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
23
  * SOFTWARE.
24
24
  */
25
- import { makeCSSVar } from '@terrazzo/token-tools/css';
26
- import { FILE_PREFIX } from './lib.js';
27
- import transformValue from './transform.js';
25
+ import { makeCSSVar, transformCSSValue } from '@terrazzo/token-tools/css';
26
+ import { FILE_PREFIX, FORMAT_ID } from './lib.js';
28
27
  import buildFormat from './build.js';
28
+ import { validateCustomTransform } from '@terrazzo/token-tools';
29
+ export * from './build.js';
29
30
  export * from './lib.js';
30
- export default function cssPlugin({ filename = './index.css', exclude, variableName, modeSelectors, } = {}) {
31
+ export default function cssPlugin({ filename = './index.css', exclude, variableName, modeSelectors, transform: customTransform, } = {}) {
31
32
  const transformName = (id) => variableName?.(id) || makeCSSVar(id);
32
33
  const transformAlias = (id) => `var(${transformName(id)})`;
33
34
  return {
34
35
  name: '@terrazzo/plugin-css',
35
- async transform({ tokens, setTransform }) {
36
+ async transform({ tokens, getTransforms, setTransform }) {
37
+ // skip work if another .css plugin has already run
38
+ const cssTokens = getTransforms({ format: FORMAT_ID, id: '*', mode: '*' });
39
+ if (cssTokens.length) {
40
+ return;
41
+ }
36
42
  for (const id in tokens) {
37
- if (!Object.hasOwn(tokens, id)) {
38
- continue;
43
+ const token = tokens[id];
44
+ const localID = transformName(id);
45
+ for (const mode in token.mode) {
46
+ if (customTransform) {
47
+ const value = customTransform(token, mode);
48
+ if (value !== undefined && value !== null) {
49
+ validateCustomTransform(value, { $type: token.$type });
50
+ setTransform(id, { format: FORMAT_ID, localID, value, mode });
51
+ continue;
52
+ }
53
+ }
54
+ const transformedValue = transformCSSValue(token, { mode, transformAlias });
55
+ if (transformedValue !== undefined) {
56
+ setTransform(id, { format: FORMAT_ID, localID, value: transformedValue, mode });
57
+ }
39
58
  }
40
- transformValue(tokens[id], { id, localID: transformName(id), setTransform, transformAlias });
41
59
  }
42
60
  },
43
61
  async build({ getTransforms, outputFile }) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAyB,MAAM,UAAU,CAAC;AAC9D,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,WAAW,MAAM,YAAY,CAAC;AAErC,cAAc,UAAU,CAAC;AAEzB,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,QAAQ,GAAG,aAAa,EACxB,OAAO,EACP,YAAY,EACZ,aAAa,MACO,EAAE;IACtB,MAAM,aAAa,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,cAAc,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,OAAO,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC;IAEnE,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE;YACtC,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;oBAC/B,SAAS;gBACX,CAAC;gBACD,cAAc,CAAC,MAAM,CAAC,EAAE,CAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE;YACvC,MAAM,MAAM,GAAa,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC3C,MAAM,CAAC,IAAI,CACT,WAAW,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,EACtD,IAAI,CACL,CAAC;YACF,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,SAAS,EAAyB,MAAM,UAAU,CAAC;AACzE,OAAO,WAAW,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AAEzB,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,QAAQ,GAAG,aAAa,EACxB,OAAO,EACP,YAAY,EACZ,aAAa,EACb,SAAS,EAAE,eAAe,MACN,EAAE;IACtB,MAAM,aAAa,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,cAAc,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,OAAO,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC;IAEnE,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE;YACrD,mDAAmD;YACnD,MAAM,SAAS,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3E,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;gBAClC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC9B,IAAI,eAAe,EAAE,CAAC;wBACpB,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;wBAC3C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;4BAC1C,uBAAuB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;4BACvD,YAAY,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;4BAC9D,SAAS;wBACX,CAAC;oBACH,CAAC;oBAED,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;oBAC5E,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;wBACnC,YAAY,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;oBAClF,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE;YACvC,MAAM,MAAM,GAAa,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC3C,MAAM,CAAC,IAAI,CACT,WAAW,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,EACtD,IAAI,CACL,CAAC;YACF,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/lib.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { TokenNormalized, TokenTransformed } from '@terrazzo/parser';
1
2
  export declare const FORMAT_ID = "css";
2
3
  export declare const FILE_PREFIX = "/* -------------------------------------------\n * Autogenerated by \u26CB Terrazzo. DO NOT EDIT!\n * ------------------------------------------- */";
3
4
  export interface CSSPluginOptions {
@@ -9,6 +10,8 @@ export interface CSSPluginOptions {
9
10
  modeSelectors?: ModeSelector[];
10
11
  /** Control the final CSS variable name */
11
12
  variableName?: (name: string) => string;
13
+ /** Override certain token values */
14
+ transform?: (token: TokenNormalized, mode: string) => TokenTransformed['value'];
12
15
  }
13
16
  export interface ModeSelector {
14
17
  /** The name of the mode to match */
package/dist/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@terrazzo/plugin-css",
3
3
  "description": "Generate CSS from your design tokens schema (requires @terrazzo/cli)",
4
- "version": "0.0.4",
4
+ "version": "0.0.5",
5
5
  "author": {
6
6
  "name": "Drew Powers",
7
7
  "email": "drew@pow.rs"
@@ -27,12 +27,12 @@
27
27
  "culori": "^3.3.0",
28
28
  "mime": "^3.0.0",
29
29
  "svgo": "^3.3.2",
30
- "@terrazzo/parser": "^0.0.6",
31
- "@terrazzo/token-tools": "^0.0.2"
30
+ "@terrazzo/parser": "^0.0.7",
31
+ "@terrazzo/token-tools": "^0.0.3"
32
32
  },
33
33
  "devDependencies": {
34
34
  "yaml": "^2.4.3",
35
- "@terrazzo/cli": "^0.0.6"
35
+ "@terrazzo/cli": "^0.0.7"
36
36
  },
37
37
  "scripts": {
38
38
  "build": "pnpm run build:clean && pnpm run build:ts && pnpm run build:license",
package/src/build.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { BuildHookOptions } from '@terrazzo/parser';
2
2
  import { isTokenMatch } from '@terrazzo/token-tools';
3
3
  import { generateShorthand } from '@terrazzo/token-tools/css';
4
- import { type CSSPluginOptions, type CSSRule, printRules } from './lib.js';
4
+ import { type CSSPluginOptions, type CSSRule, printRules, FORMAT_ID } from './lib.js';
5
5
 
6
6
  const P3_MQ = '@media (color-gamut: p3)';
7
7
  const REC2020_MQ = '@media (color-gamut: rec2020)';
@@ -16,7 +16,7 @@ export default function buildFormat({ getTransforms, exclude, modeSelectors }: B
16
16
  const rules: CSSRule[] = [];
17
17
 
18
18
  // :root
19
- const rootTokens = getTransforms({ format: 'css', mode: '.' });
19
+ const rootTokens = getTransforms({ format: FORMAT_ID, mode: '.' });
20
20
  if (rootTokens.length) {
21
21
  const rootRule: CSSRule = { selectors: [':root'], declarations: {} };
22
22
  // note: "nestedQuery" was designed specifically for higher-gamut colors to
package/src/index.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  import type { Plugin } from '@terrazzo/parser';
2
- import { makeCSSVar } from '@terrazzo/token-tools/css';
3
- import { FILE_PREFIX, type CSSPluginOptions } from './lib.js';
4
- import transformValue from './transform.js';
2
+ import { makeCSSVar, transformCSSValue } from '@terrazzo/token-tools/css';
3
+ import { FILE_PREFIX, FORMAT_ID, type CSSPluginOptions } from './lib.js';
5
4
  import buildFormat from './build.js';
5
+ import { validateCustomTransform } from '@terrazzo/token-tools';
6
6
 
7
+ export * from './build.js';
7
8
  export * from './lib.js';
8
9
 
9
10
  export default function cssPlugin({
@@ -11,18 +12,38 @@ export default function cssPlugin({
11
12
  exclude,
12
13
  variableName,
13
14
  modeSelectors,
15
+ transform: customTransform,
14
16
  }: CSSPluginOptions = {}): Plugin {
15
17
  const transformName = (id: string) => variableName?.(id) || makeCSSVar(id);
16
18
  const transformAlias = (id: string) => `var(${transformName(id)})`;
17
19
 
18
20
  return {
19
21
  name: '@terrazzo/plugin-css',
20
- async transform({ tokens, setTransform }) {
22
+ async transform({ tokens, getTransforms, setTransform }) {
23
+ // skip work if another .css plugin has already run
24
+ const cssTokens = getTransforms({ format: FORMAT_ID, id: '*', mode: '*' });
25
+ if (cssTokens.length) {
26
+ return;
27
+ }
28
+
21
29
  for (const id in tokens) {
22
- if (!Object.hasOwn(tokens, id)) {
23
- continue;
30
+ const token = tokens[id]!;
31
+ const localID = transformName(id);
32
+ for (const mode in token.mode) {
33
+ if (customTransform) {
34
+ const value = customTransform(token, mode);
35
+ if (value !== undefined && value !== null) {
36
+ validateCustomTransform(value, { $type: token.$type });
37
+ setTransform(id, { format: FORMAT_ID, localID, value, mode });
38
+ continue;
39
+ }
40
+ }
41
+
42
+ const transformedValue = transformCSSValue(token, { mode, transformAlias });
43
+ if (transformedValue !== undefined) {
44
+ setTransform(id, { format: FORMAT_ID, localID, value: transformedValue, mode });
45
+ }
24
46
  }
25
- transformValue(tokens[id]!, { id, localID: transformName(id), setTransform, transformAlias });
26
47
  }
27
48
  },
28
49
  async build({ getTransforms, outputFile }) {
package/src/lib.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import type { TokenNormalized, TokenTransformed } from '@terrazzo/parser';
2
+
1
3
  export const FORMAT_ID = 'css';
2
4
 
3
5
  export const FILE_PREFIX = `/* -------------------------------------------
@@ -13,6 +15,8 @@ export interface CSSPluginOptions {
13
15
  modeSelectors?: ModeSelector[];
14
16
  /** Control the final CSS variable name */
15
17
  variableName?: (name: string) => string;
18
+ /** Override certain token values */
19
+ transform?: (token: TokenNormalized, mode: string) => TokenTransformed['value'];
16
20
  }
17
21
 
18
22
  export interface ModeSelector {
@@ -1,8 +0,0 @@
1
- import type { TokenNormalized, TransformHookOptions } from '@terrazzo/parser';
2
- export interface TransformValueOptions {
3
- transformAlias: (id: string) => string;
4
- id: string;
5
- localID: string;
6
- setTransform: TransformHookOptions['setTransform'];
7
- }
8
- export default function transformValue(token: TokenNormalized, { id, localID, transformAlias, setTransform }: TransformValueOptions): void;
package/dist/transform.js DELETED
@@ -1,199 +0,0 @@
1
- import { transformBooleanValue, transformBorderValue, transformColorValue, transformCubicBezierValue, transformDimensionValue, transformDurationValue, transformFontFamilyValue, transformFontWeightValue, transformGradientValue, transformLinkValue, transformNumberValue, transformShadowValue, transformStringValue, transformStrokeStyleValue, transformTransitionValue, transformTypographyValue, } from '@terrazzo/token-tools/css';
2
- import { FORMAT_ID } from './lib.js';
3
- export default function transformValue(token, { id, localID, transformAlias, setTransform }) {
4
- switch (token.$type) {
5
- case 'boolean': {
6
- for (const mode in token.mode) {
7
- const { $value, aliasOf } = token.mode[mode];
8
- setTransform(id, {
9
- format: FORMAT_ID,
10
- localID,
11
- value: transformBooleanValue($value, { aliasOf, transformAlias }),
12
- mode,
13
- });
14
- }
15
- break;
16
- }
17
- case 'border': {
18
- for (const mode in token.mode) {
19
- const { $value, aliasOf, partialAliasOf } = token.mode[mode];
20
- setTransform(id, {
21
- format: FORMAT_ID,
22
- localID,
23
- value: transformBorderValue($value, { aliasOf, partialAliasOf, transformAlias }),
24
- mode,
25
- });
26
- }
27
- break;
28
- }
29
- case 'color': {
30
- for (const mode in token.mode) {
31
- const { $value, aliasOf } = token.mode[mode];
32
- setTransform(id, {
33
- format: FORMAT_ID,
34
- localID,
35
- value: transformColorValue($value, { aliasOf, transformAlias }),
36
- mode,
37
- });
38
- }
39
- break;
40
- }
41
- case 'cubicBezier': {
42
- for (const mode in token.mode) {
43
- const { $value, aliasOf, partialAliasOf } = token.mode[mode];
44
- setTransform(id, {
45
- format: FORMAT_ID,
46
- localID,
47
- value: transformCubicBezierValue($value, { aliasOf, partialAliasOf, transformAlias }),
48
- mode,
49
- });
50
- }
51
- break;
52
- }
53
- case 'dimension': {
54
- for (const mode in token.mode) {
55
- const { $value, aliasOf } = token.mode[mode];
56
- setTransform(id, {
57
- format: FORMAT_ID,
58
- localID,
59
- value: transformDimensionValue($value, { aliasOf, transformAlias }),
60
- mode,
61
- });
62
- }
63
- break;
64
- }
65
- case 'duration': {
66
- for (const mode in token.mode) {
67
- const { $value, aliasOf } = token.mode[mode];
68
- setTransform(id, {
69
- format: FORMAT_ID,
70
- localID,
71
- value: transformDurationValue($value, { aliasOf, transformAlias }),
72
- mode,
73
- });
74
- }
75
- break;
76
- }
77
- case 'fontFamily': {
78
- for (const mode in token.mode) {
79
- const { $value, aliasOf, partialAliasOf } = token.mode[mode];
80
- setTransform(id, {
81
- format: FORMAT_ID,
82
- localID,
83
- value: transformFontFamilyValue($value, { aliasOf, partialAliasOf, transformAlias }),
84
- mode,
85
- });
86
- }
87
- break;
88
- }
89
- case 'fontWeight': {
90
- for (const mode in token.mode) {
91
- const { $value, aliasOf } = token.mode[mode];
92
- setTransform(id, {
93
- format: FORMAT_ID,
94
- localID,
95
- value: transformFontWeightValue($value, { aliasOf, transformAlias }),
96
- mode,
97
- });
98
- }
99
- break;
100
- }
101
- case 'gradient': {
102
- for (const mode in token.mode) {
103
- const { $value, aliasOf, partialAliasOf } = token.mode[mode];
104
- setTransform(id, {
105
- format: FORMAT_ID,
106
- localID,
107
- value: transformGradientValue($value, { aliasOf, partialAliasOf, transformAlias }),
108
- mode,
109
- });
110
- }
111
- break;
112
- }
113
- case 'link': {
114
- for (const mode in token.mode) {
115
- const { $value, aliasOf } = token.mode[mode];
116
- setTransform(id, {
117
- format: FORMAT_ID,
118
- localID,
119
- value: transformLinkValue($value, { aliasOf, transformAlias }),
120
- mode,
121
- });
122
- }
123
- break;
124
- }
125
- case 'number': {
126
- for (const mode in token.mode) {
127
- const { $value, aliasOf } = token.mode[mode];
128
- setTransform(id, {
129
- format: FORMAT_ID,
130
- localID,
131
- value: transformNumberValue($value, { aliasOf, transformAlias }),
132
- mode,
133
- });
134
- }
135
- break;
136
- }
137
- case 'shadow': {
138
- for (const mode in token.mode) {
139
- const { $value, aliasOf, partialAliasOf } = token.mode[mode];
140
- setTransform(id, {
141
- format: FORMAT_ID,
142
- localID,
143
- value: transformShadowValue($value, { aliasOf, partialAliasOf, transformAlias }),
144
- mode,
145
- });
146
- }
147
- break;
148
- }
149
- case 'string': {
150
- for (const mode in token.mode) {
151
- const { $value, aliasOf } = token.mode[mode];
152
- setTransform(id, {
153
- format: FORMAT_ID,
154
- localID,
155
- value: transformStringValue($value, { aliasOf, transformAlias }),
156
- mode,
157
- });
158
- }
159
- break;
160
- }
161
- case 'strokeStyle': {
162
- for (const mode in token.mode) {
163
- const { $value, aliasOf } = token.mode[mode];
164
- setTransform(id, {
165
- format: FORMAT_ID,
166
- localID,
167
- value: transformStrokeStyleValue($value, { aliasOf, transformAlias }),
168
- mode,
169
- });
170
- }
171
- break;
172
- }
173
- case 'transition': {
174
- for (const mode in token.mode) {
175
- const { $value, aliasOf, partialAliasOf } = token.mode[mode];
176
- setTransform(id, {
177
- format: FORMAT_ID,
178
- localID,
179
- value: transformTransitionValue($value, { aliasOf, partialAliasOf, transformAlias }),
180
- mode,
181
- });
182
- }
183
- break;
184
- }
185
- case 'typography': {
186
- for (const mode in token.mode) {
187
- const { $value, aliasOf, partialAliasOf } = token.mode[mode];
188
- setTransform(id, {
189
- format: FORMAT_ID,
190
- localID,
191
- value: transformTypographyValue($value, { aliasOf, partialAliasOf, transformAlias }),
192
- mode,
193
- });
194
- }
195
- break;
196
- }
197
- }
198
- }
199
- //# sourceMappingURL=transform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"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"}
package/src/transform.ts DELETED
@@ -1,227 +0,0 @@
1
- import type { TokenNormalized, TransformHookOptions } from '@terrazzo/parser';
2
- import {
3
- transformBooleanValue,
4
- transformBorderValue,
5
- transformColorValue,
6
- transformCubicBezierValue,
7
- transformDimensionValue,
8
- transformDurationValue,
9
- transformFontFamilyValue,
10
- transformFontWeightValue,
11
- transformGradientValue,
12
- transformLinkValue,
13
- transformNumberValue,
14
- transformShadowValue,
15
- transformStringValue,
16
- transformStrokeStyleValue,
17
- transformTransitionValue,
18
- transformTypographyValue,
19
- } from '@terrazzo/token-tools/css';
20
- import { FORMAT_ID } from './lib.js';
21
-
22
- export interface TransformValueOptions {
23
- transformAlias: (id: string) => string;
24
- id: string;
25
- localID: string;
26
- setTransform: TransformHookOptions['setTransform'];
27
- }
28
-
29
- export default function transformValue(
30
- token: TokenNormalized,
31
- { id, localID, transformAlias, setTransform }: TransformValueOptions,
32
- ): void {
33
- switch (token.$type) {
34
- case 'boolean': {
35
- for (const mode in token.mode) {
36
- const { $value, aliasOf } = token.mode[mode]!;
37
- setTransform(id, {
38
- format: FORMAT_ID,
39
- localID,
40
- value: transformBooleanValue($value, { aliasOf, transformAlias }),
41
- mode,
42
- });
43
- }
44
- break;
45
- }
46
- case 'border': {
47
- for (const mode in token.mode) {
48
- const { $value, aliasOf, partialAliasOf } = token.mode[mode]!;
49
- setTransform(id, {
50
- format: FORMAT_ID,
51
- localID,
52
- value: transformBorderValue($value, { aliasOf, partialAliasOf, transformAlias }),
53
- mode,
54
- });
55
- }
56
- break;
57
- }
58
- case 'color': {
59
- for (const mode in token.mode) {
60
- const { $value, aliasOf } = token.mode[mode]!;
61
- setTransform(id, {
62
- format: FORMAT_ID,
63
- localID,
64
- value: transformColorValue($value, { aliasOf, transformAlias }),
65
- mode,
66
- });
67
- }
68
- break;
69
- }
70
- case 'cubicBezier': {
71
- for (const mode in token.mode) {
72
- const { $value, aliasOf, partialAliasOf } = token.mode[mode]!;
73
- setTransform(id, {
74
- format: FORMAT_ID,
75
- localID,
76
- value: transformCubicBezierValue($value, { aliasOf, partialAliasOf, transformAlias }),
77
- mode,
78
- });
79
- }
80
- break;
81
- }
82
- case 'dimension': {
83
- for (const mode in token.mode) {
84
- const { $value, aliasOf } = token.mode[mode]!;
85
- setTransform(id, {
86
- format: FORMAT_ID,
87
- localID,
88
- value: transformDimensionValue($value, { aliasOf, transformAlias }),
89
- mode,
90
- });
91
- }
92
- break;
93
- }
94
- case 'duration': {
95
- for (const mode in token.mode) {
96
- const { $value, aliasOf } = token.mode[mode]!;
97
- setTransform(id, {
98
- format: FORMAT_ID,
99
- localID,
100
- value: transformDurationValue($value, { aliasOf, transformAlias }),
101
- mode,
102
- });
103
- }
104
- break;
105
- }
106
- case 'fontFamily': {
107
- for (const mode in token.mode) {
108
- const { $value, aliasOf, partialAliasOf } = token.mode[mode]!;
109
- setTransform(id, {
110
- format: FORMAT_ID,
111
- localID,
112
- value: transformFontFamilyValue($value, { aliasOf, partialAliasOf, transformAlias }),
113
- mode,
114
- });
115
- }
116
- break;
117
- }
118
- case 'fontWeight': {
119
- for (const mode in token.mode) {
120
- const { $value, aliasOf } = token.mode[mode]!;
121
- setTransform(id, {
122
- format: FORMAT_ID,
123
- localID,
124
- value: transformFontWeightValue($value, { aliasOf, transformAlias }),
125
- mode,
126
- });
127
- }
128
- break;
129
- }
130
- case 'gradient': {
131
- for (const mode in token.mode) {
132
- const { $value, aliasOf, partialAliasOf } = token.mode[mode]!;
133
- setTransform(id, {
134
- format: FORMAT_ID,
135
- localID,
136
- value: transformGradientValue($value, { aliasOf, partialAliasOf, transformAlias }),
137
- mode,
138
- });
139
- }
140
- break;
141
- }
142
- case 'link': {
143
- for (const mode in token.mode) {
144
- const { $value, aliasOf } = token.mode[mode]!;
145
- setTransform(id, {
146
- format: FORMAT_ID,
147
- localID,
148
- value: transformLinkValue($value, { aliasOf, transformAlias }),
149
- mode,
150
- });
151
- }
152
- break;
153
- }
154
- case 'number': {
155
- for (const mode in token.mode) {
156
- const { $value, aliasOf } = token.mode[mode]!;
157
- setTransform(id, {
158
- format: FORMAT_ID,
159
- localID,
160
- value: transformNumberValue($value, { aliasOf, transformAlias }),
161
- mode,
162
- });
163
- }
164
- break;
165
- }
166
- case 'shadow': {
167
- for (const mode in token.mode) {
168
- const { $value, aliasOf, partialAliasOf } = token.mode[mode]!;
169
- setTransform(id, {
170
- format: FORMAT_ID,
171
- localID,
172
- value: transformShadowValue($value, { aliasOf, partialAliasOf, transformAlias }),
173
- mode,
174
- });
175
- }
176
- break;
177
- }
178
- case 'string': {
179
- for (const mode in token.mode) {
180
- const { $value, aliasOf } = token.mode[mode]!;
181
- setTransform(id, {
182
- format: FORMAT_ID,
183
- localID,
184
- value: transformStringValue($value, { aliasOf, transformAlias }),
185
- mode,
186
- });
187
- }
188
- break;
189
- }
190
- case 'strokeStyle': {
191
- for (const mode in token.mode) {
192
- const { $value, aliasOf } = token.mode[mode]!;
193
- setTransform(id, {
194
- format: FORMAT_ID,
195
- localID,
196
- value: transformStrokeStyleValue($value, { aliasOf, transformAlias }),
197
- mode,
198
- });
199
- }
200
- break;
201
- }
202
- case 'transition': {
203
- for (const mode in token.mode) {
204
- const { $value, aliasOf, partialAliasOf } = token.mode[mode]!;
205
- setTransform(id, {
206
- format: FORMAT_ID,
207
- localID,
208
- value: transformTransitionValue($value, { aliasOf, partialAliasOf, transformAlias }),
209
- mode,
210
- });
211
- }
212
- break;
213
- }
214
- case 'typography': {
215
- for (const mode in token.mode) {
216
- const { $value, aliasOf, partialAliasOf } = token.mode[mode]!;
217
- setTransform(id, {
218
- format: FORMAT_ID,
219
- localID,
220
- value: transformTypographyValue($value, { aliasOf, partialAliasOf, transformAlias }),
221
- mode,
222
- });
223
- }
224
- break;
225
- }
226
- }
227
- }