@hh.ru/magritte-design-tokens-utils 2.1.4 → 2.2.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.
package/cli/index.js CHANGED
@@ -6,6 +6,7 @@ import { purify } from '../purify.js';
6
6
  import 'style-dictionary';
7
7
  import '../tokenize.js';
8
8
  import 'change-case';
9
+ import 'spring-easing';
9
10
  import 'token-transformer';
10
11
  import '../constants.js';
11
12
 
package/cli/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/cli/index.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\nimport { tokenize } from '@hh.ru/magritte-design-tokens-utils/cli/tokenize';\nimport { filterThemeSets, prepareThemesTokens } from '@hh.ru/magritte-design-tokens-utils/prepare';\nimport { purify } from '@hh.ru/magritte-design-tokens-utils/purify';\nimport { Tokens } from '@hh.ru/magritte-design-tokens-utils/types';\n\nconst main = () => {\n if (process.argv.length < 3) {\n console.error('Missing required argument: file');\n process.exit(1);\n }\n const inputFile = process.argv[2];\n\n let tokens;\n try {\n tokens = fs.readFileSync(path.resolve(process.cwd(), inputFile), 'utf8');\n tokens = JSON.parse(tokens) as Tokens;\n } catch (e) {\n console.error('Error while reading tokens file');\n console.error(e);\n process.exit(1);\n }\n const purifiedTokens = purify(tokens);\n const themes = filterThemeSets(purifiedTokens);\n if (themes.length !== 1) {\n console.error('Tokens must contain exactly one theme');\n console.error(`Themes found: [${themes.join(', ')}}]`);\n process.exit(1);\n }\n const prepareTheme = prepareThemesTokens(purifiedTokens)[0];\n\n tokenize(prepareTheme);\n};\n\nmain();\n"],"names":[],"mappings":";;;;;;;;;;;AAQA,MAAM,IAAI,GAAG,MAAK;IACd,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,QAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACjD,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAElC,IAAA,IAAI,MAAM,CAAC;AACX,IAAA,IAAI;AACA,QAAA,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;AACzE,QAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAW,CAAC;KACzC;IAAC,OAAO,CAAC,EAAE;AACR,QAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACjD,QAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjB,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACD,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACtC,IAAA,MAAM,MAAM,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;AAC/C,IAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,QAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AACvD,QAAA,OAAO,CAAC,KAAK,CAAC,CAAA,eAAA,EAAkB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAI,EAAA,CAAA,CAAC,CAAC;AACvD,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IACD,MAAM,YAAY,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5D,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF,IAAI,EAAE"}
1
+ {"version":3,"file":"index.js","sources":["../../src/cli/index.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\nimport { tokenize } from '@hh.ru/magritte-design-tokens-utils/cli/tokenize';\nimport { filterThemeSets, prepareThemesTokens } from '@hh.ru/magritte-design-tokens-utils/prepare';\nimport { purify } from '@hh.ru/magritte-design-tokens-utils/purify';\nimport { Tokens } from '@hh.ru/magritte-design-tokens-utils/types';\n\nconst main = () => {\n if (process.argv.length < 3) {\n console.error('Missing required argument: file');\n process.exit(1);\n }\n const inputFile = process.argv[2];\n\n let tokens;\n try {\n tokens = fs.readFileSync(path.resolve(process.cwd(), inputFile), 'utf8');\n tokens = JSON.parse(tokens) as Tokens;\n } catch (e) {\n console.error('Error while reading tokens file');\n console.error(e);\n process.exit(1);\n }\n const purifiedTokens = purify(tokens);\n const themes = filterThemeSets(purifiedTokens);\n if (themes.length !== 1) {\n console.error('Tokens must contain exactly one theme');\n console.error(`Themes found: [${themes.join(', ')}}]`);\n process.exit(1);\n }\n const prepareTheme = prepareThemesTokens(purifiedTokens)[0];\n\n tokenize(prepareTheme);\n};\n\nmain();\n"],"names":[],"mappings":";;;;;;;;;;;;AAQA,MAAM,IAAI,GAAG,MAAK;IACd,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,QAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACjD,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAElC,IAAA,IAAI,MAAM,CAAC;AACX,IAAA,IAAI;AACA,QAAA,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;AACzE,QAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAW,CAAC;KACzC;IAAC,OAAO,CAAC,EAAE;AACR,QAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACjD,QAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjB,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACD,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACtC,IAAA,MAAM,MAAM,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;AAC/C,IAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,QAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AACvD,QAAA,OAAO,CAAC,KAAK,CAAC,CAAA,eAAA,EAAkB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAI,EAAA,CAAA,CAAC,CAAC;AACvD,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IACD,MAAM,YAAY,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5D,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF,IAAI,EAAE"}
package/cli/tokenize.js CHANGED
@@ -2,6 +2,7 @@ import fs from 'fs';
2
2
  import StyleDictionary from 'style-dictionary';
3
3
  import { kebabWithUnderscoreTransformer, cssFormatter } from '../tokenize.js';
4
4
  import 'change-case';
5
+ import 'spring-easing';
5
6
 
6
7
  // eslint-disable-next-line no-template-curly-in-string
7
8
  const versionPostfix = '-v${major}-${minor}-${patch}';
@@ -1 +1 @@
1
- {"version":3,"file":"tokenize.js","sources":["../../src/cli/tokenize.ts"],"sourcesContent":["import fs from 'fs';\nimport StyleDictionary, { Config } from 'style-dictionary';\n\nimport { kebabWithUnderscoreTransformer, cssFormatter } from '@hh.ru/magritte-design-tokens-utils/tokenize';\nimport { PreparedThemesTokens } from '@hh.ru/magritte-design-tokens-utils/types';\n\n// eslint-disable-next-line no-template-curly-in-string\nconst versionPostfix = '-v${major}-${minor}-${patch}';\n\nexport const tokenize = ({ themeTokens: tokens, themeName }: PreparedThemesTokens): void => {\n const tmpFileName = `tokens.${Date.now()}.json`;\n fs.writeFileSync(tmpFileName, JSON.stringify(tokens, null, 2));\n\n const config: Config = {\n source: [tmpFileName],\n platforms: {\n ts: {\n transformGroup: 'ts',\n transforms: ['name/cti/kebabWithUnderscore'],\n prefix: 'magritte-',\n buildPath: './',\n files: [\n {\n destination: `magritte${themeName.charAt(0).toUpperCase()}${themeName.slice(1)}Theme.ts`,\n format: 'ts/variables',\n },\n ],\n },\n },\n };\n\n const build = StyleDictionary.extend(config);\n\n build.registerTransform(kebabWithUnderscoreTransformer);\n\n build.registerFormat({\n name: 'ts/variables',\n formatter({ dictionary }) {\n return `export default (tokensVersion: string): { tokensString: string; themeClassName: string } => {\n const [major, minor, patch] = tokensVersion.split('.');\n const tokensString = \\`\n.magritte-${themeName}-theme {\\n${cssFormatter(dictionary, versionPostfix)}\\n}\\`;\n\n return { tokensString, themeClassName: 'magritte-${themeName}-theme' };\n};\\n`;\n },\n });\n\n build.buildAllPlatforms();\n fs.unlinkSync(tmpFileName);\n};\n"],"names":[],"mappings":";;;;;AAMA;AACA,MAAM,cAAc,GAAG,8BAA8B,CAAC;AAE/C,MAAM,QAAQ,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAwB,KAAU;IACvF,MAAM,WAAW,GAAG,CAAU,OAAA,EAAA,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC;AAChD,IAAA,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/D,IAAA,MAAM,MAAM,GAAW;QACnB,MAAM,EAAE,CAAC,WAAW,CAAC;AACrB,QAAA,SAAS,EAAE;AACP,YAAA,EAAE,EAAE;AACA,gBAAA,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,CAAC,8BAA8B,CAAC;AAC5C,gBAAA,MAAM,EAAE,WAAW;AACnB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,KAAK,EAAE;AACH,oBAAA;AACI,wBAAA,WAAW,EAAE,CAAW,QAAA,EAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAU,QAAA,CAAA;AACxF,wBAAA,MAAM,EAAE,cAAc;AACzB,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ,CAAC;IAEF,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAE7C,IAAA,KAAK,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,CAAC;IAExD,KAAK,CAAC,cAAc,CAAC;AACjB,QAAA,IAAI,EAAE,cAAc;QACpB,SAAS,CAAC,EAAE,UAAU,EAAE,EAAA;YACpB,OAAO,CAAA;;;AAGP,UAAA,EAAA,SAAS,aAAa,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;;uDAEnB,SAAS,CAAA;KAC3D,CAAC;SACG;AACJ,KAAA,CAAC,CAAC;IAEH,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAC1B,IAAA,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC/B;;;;"}
1
+ {"version":3,"file":"tokenize.js","sources":["../../src/cli/tokenize.ts"],"sourcesContent":["import fs from 'fs';\nimport StyleDictionary, { Config } from 'style-dictionary';\n\nimport { kebabWithUnderscoreTransformer, cssFormatter } from '@hh.ru/magritte-design-tokens-utils/tokenize';\nimport { PreparedThemesTokens } from '@hh.ru/magritte-design-tokens-utils/types';\n\n// eslint-disable-next-line no-template-curly-in-string\nconst versionPostfix = '-v${major}-${minor}-${patch}';\n\nexport const tokenize = ({ themeTokens: tokens, themeName }: PreparedThemesTokens): void => {\n const tmpFileName = `tokens.${Date.now()}.json`;\n fs.writeFileSync(tmpFileName, JSON.stringify(tokens, null, 2));\n\n const config: Config = {\n source: [tmpFileName],\n platforms: {\n ts: {\n transformGroup: 'ts',\n transforms: ['name/cti/kebabWithUnderscore'],\n prefix: 'magritte-',\n buildPath: './',\n files: [\n {\n destination: `magritte${themeName.charAt(0).toUpperCase()}${themeName.slice(1)}Theme.ts`,\n format: 'ts/variables',\n },\n ],\n },\n },\n };\n\n const build = StyleDictionary.extend(config);\n\n build.registerTransform(kebabWithUnderscoreTransformer);\n\n build.registerFormat({\n name: 'ts/variables',\n formatter({ dictionary }) {\n return `export default (tokensVersion: string): { tokensString: string; themeClassName: string } => {\n const [major, minor, patch] = tokensVersion.split('.');\n const tokensString = \\`\n.magritte-${themeName}-theme {\\n${cssFormatter(dictionary, versionPostfix)}\\n}\\`;\n\n return { tokensString, themeClassName: 'magritte-${themeName}-theme' };\n};\\n`;\n },\n });\n\n build.buildAllPlatforms();\n fs.unlinkSync(tmpFileName);\n};\n"],"names":[],"mappings":";;;;;;AAMA;AACA,MAAM,cAAc,GAAG,8BAA8B,CAAC;AAE/C,MAAM,QAAQ,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAwB,KAAU;IACvF,MAAM,WAAW,GAAG,CAAU,OAAA,EAAA,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC;AAChD,IAAA,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/D,IAAA,MAAM,MAAM,GAAW;QACnB,MAAM,EAAE,CAAC,WAAW,CAAC;AACrB,QAAA,SAAS,EAAE;AACP,YAAA,EAAE,EAAE;AACA,gBAAA,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,CAAC,8BAA8B,CAAC;AAC5C,gBAAA,MAAM,EAAE,WAAW;AACnB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,KAAK,EAAE;AACH,oBAAA;AACI,wBAAA,WAAW,EAAE,CAAW,QAAA,EAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAU,QAAA,CAAA;AACxF,wBAAA,MAAM,EAAE,cAAc;AACzB,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ,CAAC;IAEF,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAE7C,IAAA,KAAK,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,CAAC;IAExD,KAAK,CAAC,cAAc,CAAC;AACjB,QAAA,IAAI,EAAE,cAAc;QACpB,SAAS,CAAC,EAAE,UAAU,EAAE,EAAA;YACpB,OAAO,CAAA;;;AAGP,UAAA,EAAA,SAAS,aAAa,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;;uDAEnB,SAAS,CAAA;KAC3D,CAAC;SACG;AACJ,KAAA,CAAC,CAAC;IAEH,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAC1B,IAAA,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC/B;;;;"}
package/index.js CHANGED
@@ -3,5 +3,6 @@ export { TYPES, cssFormatter, getVariableUnit, kebabWithUnderscoreTransformer, t
3
3
  export { filterThemeSets, prepareBaseTokens, prepareThemesTokens } from './prepare.js';
4
4
  export { BASE_SET, TOKENS_DEFAULT_THEME } from './constants.js';
5
5
  import 'change-case';
6
+ import 'spring-easing';
6
7
  import 'token-transformer';
7
8
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hh.ru/magritte-design-tokens-utils",
3
- "version": "2.1.4",
3
+ "version": "2.2.0",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "type": "module",
@@ -19,11 +19,12 @@
19
19
  },
20
20
  "dependencies": {
21
21
  "change-case": "4.1.2",
22
+ "spring-easing": "2.3.3",
22
23
  "style-dictionary": "^3.7.1",
23
24
  "token-transformer": "^0.0.32"
24
25
  },
25
26
  "publishConfig": {
26
27
  "access": "public"
27
28
  },
28
- "gitHead": "a4be9ef9ebf80198a22054ec1962906384aaa20b"
29
+ "gitHead": "32b212447694d1d24e4f9453672dcaa63335c657"
29
30
  }
package/tokenize.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { paramCase } from 'change-case';
2
+ import { CSSSpringEasing } from 'spring-easing';
2
3
 
3
4
  const TYPES = {
4
5
  BORDER_RADIUS: 'borderRadius',
@@ -69,6 +70,7 @@ const expandTypographyCss = (token, versionPostfix) => {
69
70
  .map(({ name, value }) => ` --${token.name}-${name}${versionPostfix}: ${value};`);
70
71
  };
71
72
  const cssFormatter = (dictionary, versionPostfix) => {
73
+ const formatCssVariable = (name, value) => ` --${name}${versionPostfix}: ${value};`;
72
74
  const props = dictionary.allProperties
73
75
  .reduce((result, token) => {
74
76
  const { name, value, type, rawValue } = token;
@@ -76,23 +78,36 @@ const cssFormatter = (dictionary, versionPostfix) => {
76
78
  result.push(...expandTypographyCss(token, versionPostfix));
77
79
  }
78
80
  else if (type === 'fontWeights') {
79
- result.push(` --${name}${versionPostfix}: ${getFontWeightValue(value)};`);
81
+ result.push(formatCssVariable(name, getFontWeightValue(value)));
80
82
  }
81
83
  else if (type === 'animation') {
82
84
  const { x1, y1, x2, y2, duration } = rawValue;
83
- result.push(` --${name}-timing-function${versionPostfix}: cubic-bezier(${x1}, ${y1}, ${x2}, ${y2});`);
84
- result.push(` --${name}-duration${versionPostfix}: ${duration}ms;`);
85
+ result.push(formatCssVariable(`${name}-timing-function`, `cubic-bezier(${x1}, ${y1}, ${x2}, ${y2})`));
86
+ result.push(formatCssVariable(`${name}-duration`, `${duration}ms`));
87
+ }
88
+ else if (type === 'animationTime') {
89
+ const { duration } = rawValue;
90
+ result.push(formatCssVariable(`${name}-duration`, `${duration}ms`));
91
+ }
92
+ else if (type === 'animationEaseBase') {
93
+ const { x1, y1, x2, y2 } = rawValue;
94
+ result.push(formatCssVariable(`${name}-timing-function`, `cubic-bezier(${x1}, ${y1}, ${x2}, ${y2})`));
95
+ }
96
+ else if (type === 'animationEaseSpring') {
97
+ const { stiffness, damping, mass } = rawValue;
98
+ const [easings] = CSSSpringEasing({ easing: `spring(${mass}, ${stiffness}, ${damping})` });
99
+ result.push(formatCssVariable(`${name}-timing-function`, `linear(${easings})`));
85
100
  }
86
101
  else if (type === 'border') {
87
102
  const { width, style } = rawValue;
88
- result.push(` --${name}${versionPostfix}: ${width}px ${style};`);
103
+ result.push(formatCssVariable(name, `${width}px ${style}`));
89
104
  }
90
105
  else if (type === 'letterSpacing') {
91
- result.push(` --${name}${versionPostfix}: ${parseFloat(value) / 100}em;`);
106
+ result.push(formatCssVariable(name, `${parseFloat(value) / 100}em`));
92
107
  }
93
108
  else {
94
109
  // eslint-disable-next-line @typescript-eslint/no-base-to-string
95
- result.push(` --${name}${versionPostfix}: ${value}${getVariableUnit(token)};`);
110
+ result.push(formatCssVariable(name, `${value}${getVariableUnit(token)}`));
96
111
  }
97
112
  return result;
98
113
  }, [])
package/tokenize.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tokenize.js","sources":["../src/tokenize.ts"],"sourcesContent":["import { paramCase } from 'change-case';\nimport { Named, Transform, TransformedToken, Dictionary } from 'style-dictionary';\n\nimport type {\n TypographyTokenValue,\n TokenCasualValue,\n TypographyTransformationsResult,\n TypographyTransformations,\n RealTransformedToken,\n} from '@hh.ru/magritte-design-tokens-utils/types';\n\nexport const TYPES = {\n BORDER_RADIUS: 'borderRadius',\n BORDER_WIDTH: 'borderWidth',\n COLOR: 'color',\n FONT_FAMILY: 'fontFamily',\n FONT_SIZE: 'fontSizes',\n FONT_WEIGHT: 'fontWeights',\n LETTER_SPACING: 'letterSpacing',\n LINE_HEIGHT: 'lineHeights',\n PARAGRAPH_SPACING: 'paragraphSpacing',\n SIZING: 'sizing',\n SPACING: 'spacing',\n TEXT_CASE: 'textCase',\n\n TEXT_DECORATION: 'textDecoration',\n // shadows\n X: 'x',\n Y: 'y',\n BLUR: 'blur',\n SPREAD: 'spread',\n};\n\nconst FONT_WEIGHT_VALUES = { Bold: 700, 'Semi Bold': 600, Medium: 500, Regular: 400, Italic: 400 };\n\nconst getFontWeightValue = (value: TokenCasualValue) =>\n value in FONT_WEIGHT_VALUES ? FONT_WEIGHT_VALUES[value as keyof typeof FONT_WEIGHT_VALUES] : value;\n\nexport const typographyTransformations: TypographyTransformations = {\n fontFamily: (value) => [{ name: 'font-family', value: `\"${value}\"` }],\n fontWeight: (value) => [\n {\n name: 'font-weight',\n value: getFontWeightValue(value),\n },\n ],\n fontSize: (value) => [{ name: 'font-size', value: `${value}px` }],\n lineHeight: (value) => [{ name: 'line-height', value: `${value}px` }],\n letterSpacing: (value) => [{ name: 'letter-spacing', value: `${parseFloat(value as string) / 100}em` }],\n textCase: (value) => [{ name: 'text-transform', value: (value as string).toLowerCase() }],\n textDecoration: (value) => [{ name: 'text-decoration', value: (value as string).toLowerCase() }],\n paragraphIndent: (value) => [{ name: 'text-indent', value }],\n};\n\nexport const getVariableUnit = (token: TransformedToken): string => {\n const { type } = token;\n\n switch (type) {\n case TYPES.BORDER_RADIUS:\n case TYPES.BORDER_WIDTH:\n case TYPES.PARAGRAPH_SPACING:\n case TYPES.SIZING:\n case TYPES.SPACING:\n case TYPES.X:\n case TYPES.Y:\n case TYPES.BLUR:\n case TYPES.SPREAD:\n case TYPES.FONT_SIZE:\n return 'px';\n default:\n return '';\n }\n};\n\nconst expandTypographyCss = (token: RealTransformedToken, versionPostfix: string) => {\n const tokenValue = token.value as TypographyTokenValue;\n return Object.keys(tokenValue)\n .reduce<TypographyTransformationsResult>((result, key) => {\n if (!typographyTransformations[key]) {\n return result;\n }\n const transformed = typographyTransformations[key](tokenValue[key]);\n result.push(...transformed);\n return result;\n }, [])\n .map(({ name, value }) => ` --${token.name}-${name}${versionPostfix}: ${value};`);\n};\n\nexport const cssFormatter = (dictionary: Dictionary, versionPostfix: string): string => {\n const props = dictionary.allProperties\n .reduce<string[]>((result, token) => {\n const { name, value, type, rawValue } = token as RealTransformedToken;\n if (type === 'typography') {\n result.push(...expandTypographyCss(token, versionPostfix));\n } else if (type === 'fontWeights') {\n result.push(` --${name}${versionPostfix}: ${getFontWeightValue(value as TokenCasualValue)};`);\n } else if (type === 'animation') {\n const { x1, y1, x2, y2, duration } = rawValue as Record<string, string | number>;\n result.push(` --${name}-timing-function${versionPostfix}: cubic-bezier(${x1}, ${y1}, ${x2}, ${y2});`);\n result.push(` --${name}-duration${versionPostfix}: ${duration}ms;`);\n } else if (type === 'border') {\n const { width, style } = rawValue as Record<string, string | number>;\n result.push(` --${name}${versionPostfix}: ${width}px ${style};`);\n } else if (type === 'letterSpacing') {\n result.push(` --${name}${versionPostfix}: ${parseFloat(value as string) / 100}em;`);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n result.push(` --${name}${versionPostfix}: ${value}${getVariableUnit(token)};`);\n }\n return result;\n }, [])\n .join('\\n');\n\n return props;\n};\n\nexport const kebabWithUnderscoreTransformer: Named<Transform> = {\n type: 'name',\n name: 'name/cti/kebabWithUnderscore',\n transformer: (token, options = {}) =>\n paramCase([options.prefix].concat(token.path).join(' '), {\n stripRegexp: /[^A-Z0-9_]+/gi,\n }),\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokenize.js","sources":["../src/tokenize.ts"],"sourcesContent":["import { paramCase } from 'change-case';\nimport { CSSSpringEasing } from 'spring-easing';\nimport { Named, Transform, TransformedToken, Dictionary } from 'style-dictionary';\n\nimport type {\n TypographyTokenValue,\n TokenCasualValue,\n TypographyTransformationsResult,\n TypographyTransformations,\n RealTransformedToken,\n} from '@hh.ru/magritte-design-tokens-utils/types';\n\nexport const TYPES = {\n BORDER_RADIUS: 'borderRadius',\n BORDER_WIDTH: 'borderWidth',\n COLOR: 'color',\n FONT_FAMILY: 'fontFamily',\n FONT_SIZE: 'fontSizes',\n FONT_WEIGHT: 'fontWeights',\n LETTER_SPACING: 'letterSpacing',\n LINE_HEIGHT: 'lineHeights',\n PARAGRAPH_SPACING: 'paragraphSpacing',\n SIZING: 'sizing',\n SPACING: 'spacing',\n TEXT_CASE: 'textCase',\n\n TEXT_DECORATION: 'textDecoration',\n // shadows\n X: 'x',\n Y: 'y',\n BLUR: 'blur',\n SPREAD: 'spread',\n};\n\nconst FONT_WEIGHT_VALUES = { Bold: 700, 'Semi Bold': 600, Medium: 500, Regular: 400, Italic: 400 };\n\nconst getFontWeightValue = (value: TokenCasualValue) =>\n value in FONT_WEIGHT_VALUES ? FONT_WEIGHT_VALUES[value as keyof typeof FONT_WEIGHT_VALUES] : value;\n\nexport const typographyTransformations: TypographyTransformations = {\n fontFamily: (value) => [{ name: 'font-family', value: `\"${value}\"` }],\n fontWeight: (value) => [\n {\n name: 'font-weight',\n value: getFontWeightValue(value),\n },\n ],\n fontSize: (value) => [{ name: 'font-size', value: `${value}px` }],\n lineHeight: (value) => [{ name: 'line-height', value: `${value}px` }],\n letterSpacing: (value) => [{ name: 'letter-spacing', value: `${parseFloat(value as string) / 100}em` }],\n textCase: (value) => [{ name: 'text-transform', value: (value as string).toLowerCase() }],\n textDecoration: (value) => [{ name: 'text-decoration', value: (value as string).toLowerCase() }],\n paragraphIndent: (value) => [{ name: 'text-indent', value }],\n};\n\nexport const getVariableUnit = (token: TransformedToken): string => {\n const { type } = token;\n\n switch (type) {\n case TYPES.BORDER_RADIUS:\n case TYPES.BORDER_WIDTH:\n case TYPES.PARAGRAPH_SPACING:\n case TYPES.SIZING:\n case TYPES.SPACING:\n case TYPES.X:\n case TYPES.Y:\n case TYPES.BLUR:\n case TYPES.SPREAD:\n case TYPES.FONT_SIZE:\n return 'px';\n default:\n return '';\n }\n};\n\nconst expandTypographyCss = (token: RealTransformedToken, versionPostfix: string) => {\n const tokenValue = token.value as TypographyTokenValue;\n return Object.keys(tokenValue)\n .reduce<TypographyTransformationsResult>((result, key) => {\n if (!typographyTransformations[key]) {\n return result;\n }\n const transformed = typographyTransformations[key](tokenValue[key]);\n result.push(...transformed);\n return result;\n }, [])\n .map(({ name, value }) => ` --${token.name}-${name}${versionPostfix}: ${value};`);\n};\n\ntype Duration = { duration: number };\n\ntype Ease = { x1: number; y1: number; x2: number; y2: number };\n\ntype Spring = { stiffness: number; damping: number; mass: number };\n\nexport const cssFormatter = (dictionary: Dictionary, versionPostfix: string): string => {\n const formatCssVariable = (name: string, value: TokenCasualValue) => ` --${name}${versionPostfix}: ${value};`;\n\n const props = dictionary.allProperties\n .reduce<string[]>((result, token) => {\n const { name, value, type, rawValue } = token as RealTransformedToken;\n if (type === 'typography') {\n result.push(...expandTypographyCss(token, versionPostfix));\n } else if (type === 'fontWeights') {\n result.push(formatCssVariable(name, getFontWeightValue(value as TokenCasualValue)));\n } else if (type === 'animation') {\n const { x1, y1, x2, y2, duration } = rawValue as Duration & Ease;\n result.push(formatCssVariable(`${name}-timing-function`, `cubic-bezier(${x1}, ${y1}, ${x2}, ${y2})`));\n result.push(formatCssVariable(`${name}-duration`, `${duration}ms`));\n } else if (type === 'animationTime') {\n const { duration } = rawValue as Duration;\n result.push(formatCssVariable(`${name}-duration`, `${duration}ms`));\n } else if (type === 'animationEaseBase') {\n const { x1, y1, x2, y2 } = rawValue as Ease;\n result.push(formatCssVariable(`${name}-timing-function`, `cubic-bezier(${x1}, ${y1}, ${x2}, ${y2})`));\n } else if (type === 'animationEaseSpring') {\n const { stiffness, damping, mass } = rawValue as Spring;\n const [easings] = CSSSpringEasing({ easing: `spring(${mass}, ${stiffness}, ${damping})` });\n result.push(formatCssVariable(`${name}-timing-function`, `linear(${easings})`));\n } else if (type === 'border') {\n const { width, style } = rawValue as Record<string, string | number>;\n result.push(formatCssVariable(name, `${width}px ${style}`));\n } else if (type === 'letterSpacing') {\n result.push(formatCssVariable(name, `${parseFloat(value as string) / 100}em`));\n } else {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n result.push(formatCssVariable(name, `${value}${getVariableUnit(token)}`));\n }\n return result;\n }, [])\n .join('\\n');\n\n return props;\n};\n\nexport const kebabWithUnderscoreTransformer: Named<Transform> = {\n type: 'name',\n name: 'name/cti/kebabWithUnderscore',\n transformer: (token, options = {}) =>\n paramCase([options.prefix].concat(token.path).join(' '), {\n stripRegexp: /[^A-Z0-9_]+/gi,\n }),\n};\n"],"names":[],"mappings":"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"}
package/types.d.ts CHANGED
@@ -9,6 +9,7 @@ export type TypographyTransformationsResult = Array<{
9
9
  }>;
10
10
  export type TypographyTransformations = Record<string, (value: TokenCasualValue) => TypographyTransformationsResult>;
11
11
  export type RealTransformedToken = Omit<TransformedToken, 'value'> & {
12
+ name: string;
12
13
  value: TokenValue;
13
14
  rawValue?: TokenValue;
14
15
  };