@hh.ru/magritte-design-tokens-utils 3.0.3 → 4.0.1
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/constants.js.map +1 -1
- package/deduplicate.js.map +1 -1
- package/package.json +2 -2
- package/prepare.js.map +1 -1
- package/purify.js.map +1 -1
- package/tokenize.js +8 -0
- package/tokenize.js.map +1 -1
package/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["src/constants.ts"],"sourcesContent":["export const BASE_SET = ['core', 'colors', 'semantic', 'typography'];\n\nexport const TOKENS_DEFAULT_THEME = 'hh-day';\n"],"names":[],"mappings":"AAAO,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE;AAE9D,MAAM,oBAAoB,GAAG;;;;"}
|
package/deduplicate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deduplicate.js","sources":["
|
|
1
|
+
{"version":3,"file":"deduplicate.js","sources":["src/deduplicate.ts"],"sourcesContent":["import type { Declaration, Root, Rule } from 'postcss';\n\nconst normalize = (value: string): string => {\n const collapsedValue = value.trim().replace(/\\s+/g, ' ');\n return collapsedValue.replace(/#([0-9a-fA-F]{3,8})\\b/g, (value) => value.toLowerCase());\n};\n\ntype ParseResult = { root: Root; removed: number };\n\n// собираем все из дефолтных тем\nexport const collectDefaultTokenValues = (defaultParsedFiles: Root[]): Map<string, Set<string>> => {\n const setOfTokens = new Map<string, Set<string>>();\n for (const root of defaultParsedFiles) {\n root.walkDecls((declaration: Declaration) => {\n if (typeof declaration.prop === 'string' && declaration.prop.startsWith('--')) {\n const key = declaration.prop.trim();\n const val = normalize(String(declaration.value ?? ''));\n if (!setOfTokens.has(key)) {\n setOfTokens.set(key, new Set<string>());\n }\n setOfTokens.get(key)?.add(val);\n }\n });\n }\n return setOfTokens;\n};\n\n// убираем токены, значения которые не меняются от темы к теме\nexport const removeRedundantByValue = (root: Root, defaults: Map<string, Set<string>>): ParseResult => {\n let removed = 0;\n\n root.walkDecls((declaration: Declaration) => {\n if (!(typeof declaration.prop === 'string' && declaration.prop.startsWith('--'))) {\n return;\n }\n\n const key = declaration.prop.trim();\n const val = normalize(String(declaration.value ?? ''));\n const defVals = defaults.get(key);\n\n if (defVals && defVals.has(val)) {\n removed += 1;\n declaration.remove();\n }\n });\n\n root.walkRules((rule: Rule) => {\n if (!rule.nodes || rule.nodes.every((node) => node.type !== 'decl')) {\n rule.remove();\n }\n });\n return { root, removed };\n};\n\n// собираем уникальные токены\nexport const collectAllowedProps = (defaultParsedFiles: Root[]): Set<string> => {\n const allowedProps = new Set<string>();\n for (const root of defaultParsedFiles) {\n root.walkDecls((declaration: Declaration) => {\n if (typeof declaration.prop === 'string' && declaration.prop.startsWith('--')) {\n allowedProps.add(declaration.prop.trim());\n }\n });\n }\n return allowedProps;\n};\n\n// чистим тему от уникальных значений (которых нет в базовой теме)\nexport const cleanThemeFile = (root: Root, allowedProps: Set<string>): ParseResult => {\n let removed = 0;\n root.walkDecls((declaration: Declaration) => {\n if (typeof declaration.prop === 'string' && declaration.prop.startsWith('--')) {\n if (!allowedProps.has(declaration.prop.trim())) {\n declaration.remove();\n removed += 1;\n }\n }\n });\n root.walkRules((rule: Rule) => {\n if (!rule.nodes || rule.nodes.every((node) => node.type !== 'decl')) {\n rule.remove();\n }\n });\n return { root, removed };\n};\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hh.ru/magritte-design-tokens-utils",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.1",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -25,5 +25,5 @@
|
|
|
25
25
|
"publishConfig": {
|
|
26
26
|
"access": "public"
|
|
27
27
|
},
|
|
28
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "ec7d56f576ca5581c2acb5010b53bbfb8da52962"
|
|
29
29
|
}
|
package/prepare.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.js","sources":["
|
|
1
|
+
{"version":3,"file":"prepare.js","sources":["src/prepare.ts"],"sourcesContent":["import { Options, transformTokens } from 'token-transformer';\n\nimport { BASE_SET } from '@hh.ru/magritte-design-tokens-utils/constants';\nimport { Tokens, PreparedThemesTokens } from '@hh.ru/magritte-design-tokens-utils/types';\n\nconst isObject = (obj: unknown): obj is Record<string, unknown> => {\n return typeof obj === 'object';\n};\n\nconst traverse = (tokens: Tokens): Tokens => {\n Object.keys(tokens).forEach((key) => {\n const objKey = tokens[key];\n if (objKey && isObject(objKey)) {\n if (objKey.value && !objKey.type) {\n objKey['#value'] = objKey.value;\n delete objKey.value;\n }\n traverse(objKey);\n }\n });\n return tokens;\n};\n\nexport const prepareBaseTokens = (tokens: Tokens, config?: Options): Tokens => {\n const transformerOptions = {\n expandShadow: true,\n preserveRawValue: true,\n ...config,\n };\n const baseTokens = transformTokens(tokens, BASE_SET, [], transformerOptions);\n return traverse(baseTokens);\n};\n\nexport const filterThemeSets = (tokens: Tokens): string[] => {\n const sets = Object.keys(tokens).filter((set) => !set.startsWith('$'));\n return sets.filter((set) => !BASE_SET.includes(set));\n};\n\nexport const prepareThemesTokens = (\n tokens: Tokens,\n config?: Options,\n includeThemes: string[] = []\n): PreparedThemesTokens[] => {\n const themes = includeThemes.length ? includeThemes : filterThemeSets(tokens);\n const transformerOptions = {\n expandShadow: true,\n ...config,\n };\n const result = themes.reduce<PreparedThemesTokens[]>((res, theme) => {\n const themeTokens = transformTokens(tokens, [...BASE_SET, theme], BASE_SET, transformerOptions);\n res.push({ themeTokens: traverse(themeTokens), themeName: theme });\n return res;\n }, []);\n\n return result;\n};\n"],"names":[],"mappings":";;;AAKA,MAAM,QAAQ,GAAG,CAAC,GAAY,KAAoC;AAC9D,IAAA,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,MAAc,KAAY;IACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAChC,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3B,QAAA,IAAI,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC5B,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC9B,gBAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;gBAChC,OAAO,MAAM,CAAC,KAAK,CAAC;aACvB;YACD,QAAQ,CAAC,MAAM,CAAC,CAAC;SACpB;AACL,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;MAEW,iBAAiB,GAAG,CAAC,MAAc,EAAE,MAAgB,KAAY;AAC1E,IAAA,MAAM,kBAAkB,GAAG;AACvB,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,GAAG,MAAM;KACZ,CAAC;AACF,IAAA,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC;AAC7E,IAAA,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAC;AAChC,EAAE;AAEW,MAAA,eAAe,GAAG,CAAC,MAAc,KAAc;IACxD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACvE,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,EAAE;AAEK,MAAM,mBAAmB,GAAG,CAC/B,MAAc,EACd,MAAgB,EAChB,aAAA,GAA0B,EAAE,KACJ;AACxB,IAAA,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAC9E,IAAA,MAAM,kBAAkB,GAAG;AACvB,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,GAAG,MAAM;KACZ,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAyB,CAAC,GAAG,EAAE,KAAK,KAAI;AAChE,QAAA,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;AAChG,QAAA,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACnE,QAAA,OAAO,GAAG,CAAC;KACd,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,OAAO,MAAM,CAAC;AAClB;;;;"}
|
package/purify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purify.js","sources":["
|
|
1
|
+
{"version":3,"file":"purify.js","sources":["src/purify.ts"],"sourcesContent":["import { Tokens } from '@hh.ru/magritte-design-tokens-utils/types';\n\nexport const purify = (tokensData: Tokens): Tokens => {\n const removeEmptyValues = (obj: Tokens | Array<unknown>): Tokens | Array<unknown> => {\n if (Array.isArray(obj)) {\n const filteredObj: unknown[] = obj.filter((item) => item);\n filteredObj.map((item) => {\n if (typeof item === 'object') {\n return removeEmptyValues(item as Record<string, unknown>);\n } else if (Array.isArray(item)) {\n return removeEmptyValues(item);\n }\n return item;\n });\n return filteredObj;\n }\n const filteredObj = Object.keys(obj).reduce<Tokens>(\n (acc, key) => (obj[key] ? { ...acc, [key]: obj[key] } : acc),\n {}\n );\n Object.keys(filteredObj).forEach((key) => {\n const item = filteredObj[key];\n if (typeof item === 'object') {\n filteredObj[key] = removeEmptyValues(item as Record<string, unknown>);\n } else if (Array.isArray(item)) {\n filteredObj[key] = removeEmptyValues(item);\n }\n });\n return filteredObj;\n };\n\n return removeEmptyValues(tokensData) as Tokens;\n};\n"],"names":[],"mappings":"AAEa,MAAA,MAAM,GAAG,CAAC,UAAkB,KAAY;AACjD,IAAA,MAAM,iBAAiB,GAAG,CAAC,GAA4B,KAA6B;AAChF,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACpB,YAAA,MAAM,WAAW,GAAc,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC1D,YAAA,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACrB,gBAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC1B,oBAAA,OAAO,iBAAiB,CAAC,IAA+B,CAAC,CAAC;iBAC7D;AAAM,qBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC5B,oBAAA,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;iBAClC;AACD,gBAAA,OAAO,IAAI,CAAC;AAChB,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,WAAW,CAAC;SACtB;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CACvC,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAC5D,EAAE,CACL,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACrC,YAAA,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AAC9B,YAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC1B,WAAW,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,IAA+B,CAAC,CAAC;aACzE;AAAM,iBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC5B,WAAW,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;aAC9C;AACL,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,WAAW,CAAC;AACvB,KAAC,CAAC;AAEF,IAAA,OAAO,iBAAiB,CAAC,UAAU,CAAW,CAAC;AACnD;;;;"}
|
package/tokenize.js
CHANGED
|
@@ -106,6 +106,14 @@ const renderTokensWithFormatter = (dictionary, versionPostfix, formatter = forma
|
|
|
106
106
|
}
|
|
107
107
|
else if (type === 'letterSpacing') {
|
|
108
108
|
result.push(formatter(name, `${parseFloat(value) / 100}em`, versionPostfix));
|
|
109
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
110
|
+
}
|
|
111
|
+
else if (type === 'color' && value.toString().includes('linear-gradient')) {
|
|
112
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
113
|
+
let colorString = value.toString().replace('linear-gradient(', '').replace(')', '');
|
|
114
|
+
// убираем угол градиента, так как он не нужен в css переменной
|
|
115
|
+
colorString = colorString.split(', ').slice(1).join(', ');
|
|
116
|
+
result.push(formatter(name, colorString, versionPostfix));
|
|
109
117
|
}
|
|
110
118
|
else {
|
|
111
119
|
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
package/tokenize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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, Display: 800 };\n\nexport const getFontWeightValue = (value: TokenCasualValue): 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\nexport interface FormatterTypographyToken {\n (token: RealTransformedToken, versionPostfix?: string): string[];\n}\nconst formatterTypographyToCssVariable: FormatterTypographyToken = (token, versionPostfix) => {\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 interface FormatterToken {\n (name: string, value: TokenCasualValue, versionPostfix?: string): string;\n}\nconst formatterTokenToCssVariable: FormatterToken = (name, value, versionPostfix) =>\n ` --${name}${versionPostfix}: ${value};`;\n\n// рендерит токены с использованием выбранных форматоров\n// дефолтные форматеры позволят получить токены в виде css переменных\nexport const renderTokensWithFormatter = (\n dictionary: Dictionary,\n versionPostfix: string,\n formatter = formatterTokenToCssVariable,\n formatterTypography = formatterTypographyToCssVariable\n): 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(...formatterTypography(token, versionPostfix));\n } else if (type === 'fontWeights') {\n result.push(formatter(name, getFontWeightValue(value as TokenCasualValue), versionPostfix));\n } else if (type === 'animation') {\n const { x1, y1, x2, y2, duration } = rawValue as Duration & Ease;\n result.push(\n formatter(`${name}-timing-function`, `cubic-bezier(${x1}, ${y1}, ${x2}, ${y2})`, versionPostfix)\n );\n result.push(formatter(`${name}-duration`, `${duration}ms`, versionPostfix));\n } else if (type === 'animationTime') {\n const { duration } = rawValue as Duration;\n result.push(formatter(`${name}-duration`, `${duration}ms`, versionPostfix));\n } else if (type === 'animationEaseBase') {\n const { x1, y1, x2, y2 } = rawValue as Ease;\n result.push(\n formatter(`${name}-timing-function`, `cubic-bezier(${x1}, ${y1}, ${x2}, ${y2})`, versionPostfix)\n );\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(formatter(`${name}-timing-function`, `linear(${easings})`, versionPostfix));\n } else if (type === 'border') {\n const { width, style } = rawValue as Record<string, string | number>;\n result.push(formatter(name, `${width}px ${style}`, versionPostfix));\n } else if (type === 'letterSpacing') {\n result.push(formatter(name, `${parseFloat(value as string) / 100}em`, versionPostfix));\n } else {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n result.push(formatter(name, `${value}${getVariableUnit(token)}`, versionPostfix));\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, Display: 800 };\n\nexport const getFontWeightValue = (value: TokenCasualValue): 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\nexport interface FormatterTypographyToken {\n (token: RealTransformedToken, versionPostfix?: string): string[];\n}\nconst formatterTypographyToCssVariable: FormatterTypographyToken = (token, versionPostfix) => {\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 interface FormatterToken {\n (name: string, value: TokenCasualValue, versionPostfix?: string): string;\n}\nconst formatterTokenToCssVariable: FormatterToken = (name, value, versionPostfix) =>\n ` --${name}${versionPostfix}: ${value};`;\n\n// рендерит токены с использованием выбранных форматоров\n// дефолтные форматеры позволят получить токены в виде css переменных\nexport const renderTokensWithFormatter = (\n dictionary: Dictionary,\n versionPostfix: string,\n formatter = formatterTokenToCssVariable,\n formatterTypography = formatterTypographyToCssVariable\n): 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(...formatterTypography(token, versionPostfix));\n } else if (type === 'fontWeights') {\n result.push(formatter(name, getFontWeightValue(value as TokenCasualValue), versionPostfix));\n } else if (type === 'animation') {\n const { x1, y1, x2, y2, duration } = rawValue as Duration & Ease;\n result.push(\n formatter(`${name}-timing-function`, `cubic-bezier(${x1}, ${y1}, ${x2}, ${y2})`, versionPostfix)\n );\n result.push(formatter(`${name}-duration`, `${duration}ms`, versionPostfix));\n } else if (type === 'animationTime') {\n const { duration } = rawValue as Duration;\n result.push(formatter(`${name}-duration`, `${duration}ms`, versionPostfix));\n } else if (type === 'animationEaseBase') {\n const { x1, y1, x2, y2 } = rawValue as Ease;\n result.push(\n formatter(`${name}-timing-function`, `cubic-bezier(${x1}, ${y1}, ${x2}, ${y2})`, versionPostfix)\n );\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(formatter(`${name}-timing-function`, `linear(${easings})`, versionPostfix));\n } else if (type === 'border') {\n const { width, style } = rawValue as Record<string, string | number>;\n result.push(formatter(name, `${width}px ${style}`, versionPostfix));\n } else if (type === 'letterSpacing') {\n result.push(formatter(name, `${parseFloat(value as string) / 100}em`, versionPostfix));\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n } else if (type === 'color' && value.toString().includes('linear-gradient')) {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n let colorString = value.toString().replace('linear-gradient(', '').replace(')', '');\n // убираем угол градиента, так как он не нужен в css переменной\n colorString = colorString.split(', ').slice(1).join(', ');\n result.push(formatter(name, colorString, versionPostfix));\n } else {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n result.push(formatter(name, `${value}${getVariableUnit(token)}`, versionPostfix));\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":";;;AAYa,MAAA,KAAK,GAAG;AACjB,IAAA,aAAa,EAAE,cAAc;AAC7B,IAAA,YAAY,EAAE,aAAa;AAC3B,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,WAAW,EAAE,YAAY;AACzB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,cAAc,EAAE,eAAe;AAC/B,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,iBAAiB,EAAE,kBAAkB;AACrC,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,SAAS,EAAE,UAAU;AAErB,IAAA,eAAe,EAAE,gBAAgB;;AAEjC,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;EAClB;AAEF,MAAM,kBAAkB,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;MAEpG,kBAAkB,GAAG,CAAC,KAAuB,KACtD,KAAK,IAAI,kBAAkB,GAAG,kBAAkB,CAAC,KAAwC,CAAC,GAAG,MAAM;AAE1F,MAAA,yBAAyB,GAA8B;AAChE,IAAA,UAAU,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,KAAK,CAAA,CAAA,CAAG,EAAE,CAAC;AACrE,IAAA,UAAU,EAAE,CAAC,KAAK,KAAK;AACnB,QAAA;AACI,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;AACnC,SAAA;AACJ,KAAA;AACD,IAAA,QAAQ,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA,EAAA,CAAI,EAAE,CAAC;AACjE,IAAA,UAAU,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA,EAAA,CAAI,EAAE,CAAC;IACrE,aAAa,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAG,EAAA,UAAU,CAAC,KAAe,CAAC,GAAG,GAAG,CAAI,EAAA,CAAA,EAAE,CAAC;AACvG,IAAA,QAAQ,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAG,KAAgB,CAAC,WAAW,EAAE,EAAE,CAAC;AACzF,IAAA,cAAc,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAG,KAAgB,CAAC,WAAW,EAAE,EAAE,CAAC;AAChG,IAAA,eAAe,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;EAC9D;AAEW,MAAA,eAAe,GAAG,CAAC,KAAuB,KAAY;AAC/D,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEvB,QAAQ,IAAI;QACR,KAAK,KAAK,CAAC,aAAa,CAAC;QACzB,KAAK,KAAK,CAAC,YAAY,CAAC;QACxB,KAAK,KAAK,CAAC,iBAAiB,CAAC;QAC7B,KAAK,KAAK,CAAC,MAAM,CAAC;QAClB,KAAK,KAAK,CAAC,OAAO,CAAC;QACnB,KAAK,KAAK,CAAC,CAAC,CAAC;QACb,KAAK,KAAK,CAAC,CAAC,CAAC;QACb,KAAK,KAAK,CAAC,IAAI,CAAC;QAChB,KAAK,KAAK,CAAC,MAAM,CAAC;QAClB,KAAK,KAAK,CAAC,SAAS;AAChB,YAAA,OAAO,IAAI,CAAC;AAChB,QAAA;AACI,YAAA,OAAO,EAAE,CAAC;KACjB;AACL,EAAE;AAKF,MAAM,gCAAgC,GAA6B,CAAC,KAAK,EAAE,cAAc,KAAI;AACzF,IAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAA6B,CAAC;AACvD,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AACzB,SAAA,MAAM,CAAkC,CAAC,MAAM,EAAE,GAAG,KAAI;AACrD,QAAA,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE;AACjC,YAAA,OAAO,MAAM,CAAC;SACjB;AACD,QAAA,MAAM,WAAW,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,QAAA,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;AAC5B,QAAA,OAAO,MAAM,CAAC;KACjB,EAAE,EAAE,CAAC;SACL,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAA,IAAA,EAAO,KAAK,CAAC,IAAI,IAAI,IAAI,CAAA,EAAG,cAAc,CAAK,EAAA,EAAA,KAAK,CAAG,CAAA,CAAA,CAAC,CAAC;AAC3F,CAAC,CAAC;AAWF,MAAM,2BAA2B,GAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,KAC5E,OAAO,IAAI,CAAA,EAAG,cAAc,CAAK,EAAA,EAAA,KAAK,GAAG,CAAC;AAE9C;AACA;AACa,MAAA,yBAAyB,GAAG,CACrC,UAAsB,EACtB,cAAsB,EACtB,SAAS,GAAG,2BAA2B,EACvC,mBAAmB,GAAG,gCAAgC,KAC9C;AACR,IAAA,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa;AACjC,SAAA,MAAM,CAAW,CAAC,MAAM,EAAE,KAAK,KAAI;QAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAA6B,CAAC;AACtE,QAAA,IAAI,IAAI,KAAK,YAAY,EAAE;YACvB,MAAM,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;SAC9D;AAAM,aAAA,IAAI,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,kBAAkB,CAAC,KAAyB,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;SAC/F;AAAM,aAAA,IAAI,IAAI,KAAK,WAAW,EAAE;AAC7B,YAAA,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,QAA2B,CAAC;YACjE,MAAM,CAAC,IAAI,CACP,SAAS,CAAC,CAAG,EAAA,IAAI,CAAkB,gBAAA,CAAA,EAAE,CAAgB,aAAA,EAAA,EAAE,KAAK,EAAE,CAAA,EAAA,EAAK,EAAE,CAAK,EAAA,EAAA,EAAE,GAAG,EAAE,cAAc,CAAC,CACnG,CAAC;AACF,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA,SAAA,CAAW,EAAE,CAAA,EAAG,QAAQ,CAAI,EAAA,CAAA,EAAE,cAAc,CAAC,CAAC,CAAC;SAC/E;AAAM,aAAA,IAAI,IAAI,KAAK,eAAe,EAAE;AACjC,YAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAoB,CAAC;AAC1C,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA,SAAA,CAAW,EAAE,CAAA,EAAG,QAAQ,CAAI,EAAA,CAAA,EAAE,cAAc,CAAC,CAAC,CAAC;SAC/E;AAAM,aAAA,IAAI,IAAI,KAAK,mBAAmB,EAAE;YACrC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,QAAgB,CAAC;YAC5C,MAAM,CAAC,IAAI,CACP,SAAS,CAAC,CAAG,EAAA,IAAI,CAAkB,gBAAA,CAAA,EAAE,CAAgB,aAAA,EAAA,EAAE,KAAK,EAAE,CAAA,EAAA,EAAK,EAAE,CAAK,EAAA,EAAA,EAAE,GAAG,EAAE,cAAc,CAAC,CACnG,CAAC;SACL;AAAM,aAAA,IAAI,IAAI,KAAK,qBAAqB,EAAE;YACvC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,QAAkB,CAAC;AACxD,YAAA,MAAM,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,CAAU,OAAA,EAAA,IAAI,KAAK,SAAS,CAAA,EAAA,EAAK,OAAO,CAAG,CAAA,CAAA,EAAE,CAAC,CAAC;AAC3F,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA,gBAAA,CAAkB,EAAE,CAAA,OAAA,EAAU,OAAO,CAAG,CAAA,CAAA,EAAE,cAAc,CAAC,CAAC,CAAC;SAC3F;AAAM,aAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AAC1B,YAAA,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,QAA2C,CAAC;AACrE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA,EAAG,KAAK,CAAA,GAAA,EAAM,KAAK,CAAE,CAAA,EAAE,cAAc,CAAC,CAAC,CAAC;SACvE;AAAM,aAAA,IAAI,IAAI,KAAK,eAAe,EAAE;AACjC,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAG,EAAA,UAAU,CAAC,KAAe,CAAC,GAAG,GAAG,CAAA,EAAA,CAAI,EAAE,cAAc,CAAC,CAAC,CAAC;;SAE1F;AAAM,aAAA,IAAI,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;;YAEzE,IAAI,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;;AAEpF,YAAA,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1D,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;SAC7D;aAAM;;AAEH,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAG,EAAA,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA,CAAE,EAAE,cAAc,CAAC,CAAC,CAAC;SACrF;AACD,QAAA,OAAO,MAAM,CAAC;KACjB,EAAE,EAAE,CAAC;SACL,IAAI,CAAC,IAAI,CAAC,CAAC;AAEhB,IAAA,OAAO,KAAK,CAAC;AACjB,EAAE;AAEW,MAAA,8BAA8B,GAAqB;AAC5D,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,8BAA8B;AACpC,IAAA,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,KAC7B,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACrD,QAAA,WAAW,EAAE,eAAe;KAC/B,CAAC;;;;;"}
|