@semcore/core 16.5.1-prerelease.5 → 16.5.2-prerelease.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.
Files changed (49) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +4 -4
  3. package/lib/theme/themes/auto.css +198 -198
  4. package/lib/theme/themes/dark.css +99 -99
  5. package/lib/theme/themes/dark.d.ts +59 -59
  6. package/lib/theme/themes/dark.js +59 -59
  7. package/lib/theme/themes/dark.js.map +1 -1
  8. package/lib/theme/themes/dark.mjs +59 -59
  9. package/lib/theme/themes/dark.mjs.map +1 -1
  10. package/lib/theme/themes/default.css +100 -100
  11. package/lib/theme/themes/default.d.ts +59 -59
  12. package/lib/theme/themes/default.js +59 -59
  13. package/lib/theme/themes/default.js.map +1 -1
  14. package/lib/theme/themes/default.mjs +59 -59
  15. package/lib/theme/themes/default.mjs.map +1 -1
  16. package/lib/theme/themes/light.css +100 -100
  17. package/lib/theme/themes/light.d.ts +59 -59
  18. package/lib/theme/themes/light.js +59 -59
  19. package/lib/theme/themes/light.js.map +1 -1
  20. package/lib/theme/themes/light.mjs +59 -59
  21. package/lib/theme/themes/light.mjs.map +1 -1
  22. package/lib/utils/ScreenReaderOnly.d.ts +4 -4
  23. package/lib/utils/ScreenReaderOnly.js +3 -3
  24. package/lib/utils/ScreenReaderOnly.js.map +1 -1
  25. package/lib/utils/ScreenReaderOnly.mjs +2 -2
  26. package/lib/utils/ScreenReaderOnly.mjs.map +1 -1
  27. package/lib/utils/injectStyle.js +1 -1
  28. package/lib/utils/injectStyle.mjs +1 -1
  29. package/lib/utils/isInteractiveElement.js +1 -1
  30. package/lib/utils/isInteractiveElement.js.map +1 -1
  31. package/lib/utils/isInteractiveElement.mjs +1 -1
  32. package/lib/utils/isInteractiveElement.mjs.map +1 -1
  33. package/lib/utils/use/usePreventScroll.js +7 -9
  34. package/lib/utils/use/usePreventScroll.js.map +1 -1
  35. package/lib/utils/use/usePreventScroll.mjs +7 -9
  36. package/lib/utils/use/usePreventScroll.mjs.map +1 -1
  37. package/package.json +1 -1
  38. package/lib/theme/dark.json +0 -2695
  39. package/lib/theme/light.json +0 -2730
  40. package/lib/theme/processor.d.ts +0 -1
  41. package/lib/theme/processor.js +0 -299
  42. package/lib/theme/processor.js.map +0 -1
  43. package/lib/theme/processor.mjs +0 -292
  44. package/lib/theme/processor.mjs.map +0 -1
  45. package/lib/theme/utils.d.ts +0 -58
  46. package/lib/theme/utils.js +0 -326
  47. package/lib/theme/utils.js.map +0 -1
  48. package/lib/theme/utils.mjs +0 -319
  49. package/lib/theme/utils.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"processor.mjs","names":["execSync","fs","resolve","resolvePath","fileURLToPath","glob","postcss","valuesParser","processTokens","tokensToCss","tokensToJs","writeIfChanged","_ref","_asyncToGenerator","_regenerator","m","_callee","path","content","originalContent","_t","w","_context","p","n","readFile","v","replace","a","writeFile","_x","_x2","apply","arguments","defaultTheme","themes","warning","process","argv","includes","dirname","import","meta","url","autoTheme","_loop","theme","_themes","_i","prefix","_JSON$parse","JSON","parse","concat","base","tokens","featureHighlight","processed","values","types","rawValues","descriptions","basicTokens","highlightsTokens","processedTokens","length","usages","projectCssPaths","ignore","filter","split","some","pathPart","projectCssContents","Promise","all","map","usedVariables","colorLiterals","processedCss","cssContent","fileIndex","postcssPlugin","prepare","result","traverseAst","nodes","_iterator","_createForOfIteratorHelper","_step","_loop2","node","value","valueAst","traverseValueAst","parent","_iterator2","_step2","s","done","_usages$withoutPrefix","valueNode","type","Error","parentIsVariable","prevNode","indexOf","skipNode","text","trim","startsWith","location","source","start","line","offset","push","name","endsWith","prop","variableName","hasDefault","sourceIndex","before","after","withoutPrefix","substring","err","e","f","toString","root","from","undefined","index","css","unusedVariables","variable","console","log","join","_iterator3","_step3","literal","designTokensDocumentation","token","has","_usages$token","components","_toConsumableArray","Set","cssPath","sort","b","localeCompare","rawValue","computedValue","description","baseTokensDocumentation","processGroup","group","data","key","_data$key$description","stringify","autoThemeLines","selector","encoding","cwd","stdio"],"sources":["../../src/theme/processor.ts"],"sourcesContent":["import { execSync } from 'node:child_process';\nimport fs from 'node:fs/promises';\nimport { resolve as resolvePath } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nimport glob from 'fast-glob';\nimport postcss from 'postcss';\nimport valuesParser from 'postcss-value-parser';\n\nimport { processTokens, tokensToCss, tokensToJs, tokensToJson } from './utils';\n\ntype Token = {\n name: string;\n value: string;\n description?: string;\n};\n\nexport const writeIfChanged = async (path: string, content: string) => {\n try {\n const originalContent = await fs.readFile(path, 'utf-8');\n if (originalContent.replace(/[\\s\\n]/g, '') === content.replace(/[\\s\\n]/g, '')) {\n return;\n }\n } catch {}\n await fs.writeFile(path, content);\n};\n\nconst defaultTheme = 'light';\nconst themes = ['light', 'dark'];\n\nconst warning = !process.argv.includes('--no-warning');\n\nconst dirname = resolvePath(fileURLToPath(import.meta.url), '..');\n\nconst autoTheme: Record<string, { name: string; value: string; description: string }[]> = {};\n\nfor (const theme of themes) {\n const prefix = 'intergalactic';\n const { base, tokens, featureHighlight } = JSON.parse(\n await fs.readFile(resolvePath(dirname, `./${theme}.json`), 'utf-8'),\n );\n const processed = processTokens(\n base,\n tokens,\n featureHighlight,\n prefix,\n );\n const { values, types, rawValues, descriptions, basicTokens, highlightsTokens } = processed;\n const { processedTokens } = processed;\n\n await writeIfChanged(\n `./semcore/core/src/theme/themes/${theme}.css`,\n tokensToCss(processedTokens),\n );\n await writeIfChanged(`./semcore/core/src/theme/themes/${theme}.ts`, tokensToJs(processedTokens));\n\n if (highlightsTokens.length > 0) {\n await writeIfChanged(\n `./semcore/core/src/theme/themes/highlights-${theme}.css`,\n tokensToCss(highlightsTokens),\n );\n await writeIfChanged(`./semcore/core/src/theme/themes/highlights-${theme}.ts`, tokensToJs(highlightsTokens));\n }\n\n autoTheme[theme] = processedTokens;\n\n const usages: { [tokenName: string]: string[] } = {};\n if (theme === defaultTheme) {\n await writeIfChanged(\n './semcore/core/src/theme/themes/default.css',\n tokensToCss(processedTokens),\n );\n await writeIfChanged('./semcore/core/src/theme/themes/default.ts', tokensToJs(processedTokens));\n\n const projectCssPaths = (\n await glob('./semcore/*/src/**/*.shadow.css', {\n ignore: ['node_modules', 'lib'],\n })\n ).filter((path) => {\n if (path.split('/').some((pathPart) => ['chart', 'email', 'table'].includes(pathPart))) {\n return false;\n }\n return true;\n });\n\n const projectCssContents = await Promise.all(\n projectCssPaths.map((path) => fs.readFile(path, 'utf-8')),\n );\n\n const usedVariables: any = {};\n\n const colorLiterals: { path: string; name: string }[] = [];\n\n const processedCss = await Promise.all(\n projectCssContents.map((cssContent, fileIndex) =>\n postcss([\n {\n postcssPlugin: 'variables-explored',\n prepare: (result) => {\n const traverseAst = (nodes: any[]) => {\n for (const node of nodes) {\n if (node.nodes) {\n traverseAst(node.nodes);\n }\n if (node.value) {\n const valueAst = valuesParser(node.value);\n const traverseValueAst = (nodes: any[], parent: any) => {\n for (const valueNode of nodes) {\n if (valueNode.nodes) traverseValueAst(valueNode.nodes, valueNode);\n if (valueNode.type === 'function' && valueNode.value === 'color-mod') {\n throw new Error(\n `Found restricted function color-mod in ${projectCssPaths[fileIndex]}`,\n );\n }\n\n const parentIsVariable =\n parent?.type === 'function' && parent?.value === 'var';\n if (!parentIsVariable) {\n const prevNode = node.parent.nodes[node.parent.nodes.indexOf(node) - 1];\n const skipNode =\n prevNode?.type === 'comment' &&\n prevNode.text.trim() === 'disable-tokens-validator';\n if (skipNode) continue;\n\n if (\n valueNode.type === 'word' &&\n (valueNode.value.startsWith('#') || valueNode.value.startsWith('rgb'))\n ) {\n const location = `${node.source.start.line}:${node.source.start.offset}`;\n colorLiterals.push({\n path: `${projectCssPaths[fileIndex]}:${location}`,\n name: valueNode.value,\n });\n }\n if (\n valueNode.type === 'word' &&\n valueNode.value.endsWith('px') &&\n (node.prop.includes('padding') ||\n node.prop.includes('margin') ||\n node.prop.includes('radius') ||\n node.prop.includes('font-size'))\n ) {\n const location = `${node.source.start.line}:${node.source.start.offset}`;\n colorLiterals.push({\n path: `${projectCssPaths[fileIndex]}:${location}`,\n name: valueNode.value,\n });\n }\n }\n if (valueNode.type !== 'function' || valueNode.value !== 'var') continue;\n const variableName = valueNode.nodes[0].value;\n if (!variableName.startsWith(`--${prefix}`)) {\n // if (legacyCssVariables[variableName] !== undefined) {\n // legacyCssVariables[variableName]++;\n // }\n continue;\n }\n const hasDefault = valueNode.nodes.length === 3;\n if (!hasDefault) {\n valueNode.nodes.push(\n {\n type: 'div',\n sourceIndex: -1,\n value: ',',\n before: '',\n after: ' ',\n },\n {\n type: 'word',\n sourceIndex: -1,\n value: '',\n },\n );\n }\n const withoutPrefix = variableName.substring(`--${prefix}-`.length);\n usedVariables[withoutPrefix] = true;\n if (!values[withoutPrefix]) {\n throw new Error(\n `Variable ${variableName} is used in project but not presented in design tokens list`,\n );\n }\n valueNode.nodes[2].type = 'word';\n valueNode.nodes[2].value = values[withoutPrefix];\n valueNode.nodes[2].nodes = [];\n valueNode.nodes.length = 3;\n usages[withoutPrefix] = usages[withoutPrefix] ?? [];\n usages[withoutPrefix].push(projectCssPaths[fileIndex]);\n }\n };\n traverseValueAst(valueAst.nodes, null);\n node.value = valueAst.toString();\n }\n }\n };\n traverseAst(result.root.nodes);\n return {};\n },\n },\n ]).process(cssContent, {\n from: undefined,\n }),\n ),\n );\n await Promise.all(\n projectCssPaths.map((path, index) => writeIfChanged(path, processedCss[index].css)),\n );\n\n const unusedVariables: string[] = [];\n for (const variable in values) {\n if (!usedVariables[variable]) {\n unusedVariables.push(variable);\n }\n }\n\n if (warning) {\n if (unusedVariables.length > 0) {\n // eslint-disable-next-line no-console\n console.log('Unused design tokens:');\n // eslint-disable-next-line no-console\n console.log(unusedVariables.join('\\n'));\n }\n if (colorLiterals.length > 0) {\n // eslint-disable-next-line no-console\n console.log('Unexpected color literals:');\n for (const literal of colorLiterals) {\n // eslint-disable-next-line no-console\n console.log(`${literal.name} in ${literal.path}`);\n }\n }\n }\n\n const designTokensDocumentation: {\n name: string;\n type: string;\n rawValue: string;\n computedValue: string;\n description: string;\n components: string[];\n }[] = [];\n\n for (const token in values) {\n if (!basicTokens.has(token)) {\n const components = [\n ...new Set((usages[token] ?? []).map((cssPath) => cssPath.split('/')[2])),\n ];\n components.sort((a, b) => a.localeCompare(b));\n\n designTokensDocumentation.push({\n name: `--${prefix}-${token}`,\n type: types[token],\n rawValue: rawValues[token],\n computedValue: values[token],\n description: descriptions[token],\n components,\n });\n }\n }\n\n const baseTokensDocumentation: Token[] = [];\n\n const processGroup = (group: string, data: any) => {\n for (const key in data) {\n if (data[key].value) {\n const token: Token = {\n name: `--${group}-${key}`,\n value: data[key].value,\n };\n\n if (data[key].description?.trim()) {\n token.description = data[key].description;\n }\n\n baseTokensDocumentation.push(token);\n } else {\n processGroup(`${group}-${key}`, data[key]);\n }\n }\n };\n\n for (const group in base) {\n processGroup(group, base[group]);\n }\n\n await writeIfChanged(\n resolvePath(dirname, '../../../../website/docs/style/design-tokens/design-tokens.json'),\n JSON.stringify(designTokensDocumentation, null, 2) + '\\n',\n );\n await writeIfChanged(\n resolvePath(dirname, '../../../../website/docs/style/design-tokens/base-tokens.json'),\n JSON.stringify(baseTokensDocumentation, null, 2) + '\\n',\n );\n }\n}\n\nconst autoThemeLines: string[] = [];\nfor (const theme in autoTheme) {\n const selector = theme === defaultTheme ? ':root' : `.${theme}`;\n autoThemeLines.push(tokensToCss(autoTheme[theme], selector));\n}\n\nawait writeIfChanged('./semcore/core/src/theme/themes/auto.css', autoThemeLines.join('\\n'));\n\nexecSync('pnpm lint:css --fix', {\n encoding: 'utf-8',\n cwd: resolvePath(dirname, '../../../../'),\n stdio: ['inherit', 'inherit', 'inherit'],\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,58 +0,0 @@
1
- type ExtensionsInput = {
2
- 'studio.tokens': {
3
- modify: {
4
- type: string;
5
- value: number;
6
- space: string;
7
- };
8
- };
9
- };
10
- type TokensInput = {
11
- [nestedKey: string]: TokensInput | {
12
- value: string;
13
- type: string;
14
- description: string;
15
- $extensions?: ExtensionsInput;
16
- };
17
- };
18
- export declare const processTokens: (base: TokensInput, tokens: TokensInput, featureHighlight: TokensInput, prefix: string) => {
19
- processedTokens: {
20
- name: string;
21
- value: string;
22
- description: string;
23
- }[];
24
- highlightsTokens: {
25
- name: string;
26
- value: string;
27
- description: string;
28
- }[];
29
- values: {
30
- [tokenName: string]: string;
31
- };
32
- types: {
33
- [tokenName: string]: string;
34
- };
35
- rawValues: {
36
- [tokenName: string]: string;
37
- };
38
- descriptions: {
39
- [tokenName: string]: string;
40
- };
41
- basicTokens: Set<string>;
42
- };
43
- export declare const tokensToCss: (tokens: {
44
- name: string;
45
- value: string;
46
- description: string;
47
- }[], selector?: string) => string;
48
- export declare const tokensToJson: (tokens: {
49
- name: string;
50
- value: string;
51
- description: string;
52
- }[]) => string;
53
- export declare const tokensToJs: (tokens: {
54
- name: string;
55
- value: string;
56
- description: string;
57
- }[]) => string;
58
- export {};
@@ -1,326 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.tokensToJson = exports.tokensToJs = exports.tokensToCss = exports.processTokens = void 0;
8
- var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
9
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
- var _colorjs = _interopRequireDefault(require("colorjs.io"));
14
- var Color = _colorjs["default"];
15
- var processTokens = exports.processTokens = function processTokens(base, tokens, featureHighlight, prefix) {
16
- var values = {};
17
- var basicTokens = new Set();
18
- var highlightTokens = new Set();
19
- var modifications = {};
20
- var types = {};
21
- var descriptions = {};
22
- var mixins = [];
23
- var _traverse = function traverse(node) {
24
- var pathParts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
25
- var setToAdd = arguments.length > 2 ? arguments[2] : undefined;
26
- for (var key in node) {
27
- if (key === 'type') continue;
28
- if (key === 'value') continue;
29
- if (key === 'description') continue;
30
- if (key === '$extensions') continue;
31
- _traverse(node[key], [].concat((0, _toConsumableArray2["default"])(pathParts), [key]), setToAdd);
32
- }
33
- if ('type' in node && typeof node.type === 'string') {
34
- var path = pathParts.join('-');
35
- types[path] = node.type;
36
- if ((0, _typeof2["default"])(node.value) === 'object') {
37
- mixins.push(path);
38
- return;
39
- }
40
- if (values[path]) {
41
- throw new Error("Duplicated design token \"".concat(path, "\""));
42
- }
43
- values[path] = node.value;
44
- setToAdd === null || setToAdd === void 0 || setToAdd.add(path);
45
- if (typeof node.description === 'string') descriptions[path] = node.description;
46
- if (node.$extensions) {
47
- for (var extension in node.$extensions) {
48
- if (extension === 'studio.tokens') {
49
- var _modifications$path;
50
- (_modifications$path = modifications[path]) !== null && _modifications$path !== void 0 ? _modifications$path : modifications[path] = [];
51
- modifications[path].push(node.$extensions['studio.tokens'].modify);
52
- } else {
53
- throw new Error("Unsupported extension \"".concat(extension, "\" for design token \"").concat(path, "\""));
54
- }
55
- }
56
- }
57
- }
58
- };
59
- _traverse(base, [], basicTokens);
60
- _traverse(tokens);
61
- _traverse(featureHighlight, [], highlightTokens);
62
- var _resolveColor = function resolveColor(color) {
63
- if (color.includes('linear-gradient')) {
64
- if (color.includes('rgba')) {
65
- return replaceColors(color);
66
- } else {
67
- return color.replace(/\{[a-z0-9.]+\}/g, _resolveColor);
68
- }
69
- }
70
- if (color.startsWith('rgba(') && color.endsWith(')')) {
71
- var lastComa = color.lastIndexOf(',');
72
- var alpha = Number.parseFloat(color.substring(lastComa + 1, color.length - 1));
73
- if (Number.isNaN(alpha)) {
74
- throw new Error("Unable to parse rgba of ".concat(color));
75
- }
76
- var resolvedColor = color.substring('rgba('.length, lastComa);
77
- if (resolvedColor.startsWith('{')) resolvedColor = _resolveColor(resolvedColor);
78
- if (resolvedColor.startsWith('$')) resolvedColor = _resolveColor(resolvedColor);
79
- if (resolvedColor.startsWith('#')) {
80
- if (resolvedColor.length === 1 + 3) {
81
- resolvedColor = [resolvedColor[1], resolvedColor[2], resolvedColor[3]].map(function (hex) {
82
- return Number.parseInt(hex, 16);
83
- }).join(', ');
84
- } else if (resolvedColor.length === 1 + 6) {
85
- resolvedColor = [resolvedColor.substring(1, 3), resolvedColor.substring(3, 5), resolvedColor.substring(5, 7)].map(function (hex) {
86
- return Number.parseInt(hex, 16);
87
- }).join(', ');
88
- } else {
89
- throw new Error("Unable to convert hex ".concat(_resolveColor, " to rgb list of colors (processing ").concat(color, ")"));
90
- }
91
- }
92
- if (!resolvedColor || resolvedColor.split(',').length !== 3) {
93
- throw new Error("Unable to produce rgba of ".concat(color, " (input format is not supported yet)"));
94
- }
95
- return "rgba(".concat(resolvedColor, ", ").concat(alpha, ")");
96
- }
97
- if (color.split(', ').length === 2) {
98
- var baseColor = _resolveColor(color.split(', ')[0]);
99
- var _map = (baseColor.length === 4 ? [baseColor[1], baseColor[2], baseColor[3]] : [baseColor.substring(1, 3), baseColor.substring(3, 5), baseColor.substring(5, 7)]).map(function (chunk) {
100
- return Number.parseInt(chunk, 16);
101
- }),
102
- _map2 = (0, _slicedToArray2["default"])(_map, 3),
103
- r = _map2[0],
104
- g = _map2[1],
105
- b = _map2[2];
106
- var a = Number.parseFloat(color.split(', ')[1]);
107
- return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(a, ")");
108
- }
109
- if (color.startsWith('{') && color.split('.').length > 0 && color.endsWith('}')) {
110
- var _getByPath$value, _getByPath;
111
- var path = color.substring(1, color.length - 1);
112
- var _resolvedColor = (_getByPath$value = (_getByPath = getByPath(base, path)) === null || _getByPath === void 0 ? void 0 : _getByPath.value) !== null && _getByPath$value !== void 0 ? _getByPath$value : values[path.split('.').join('-')];
113
- if (!_resolvedColor) {
114
- throw new Error("Color ".concat(color, " was not found in base palette"));
115
- }
116
- return _resolvedColor;
117
- }
118
- if (color.startsWith('$') && color.split('.').length > 0) {
119
- var _getByPath$value2, _getByPath2;
120
- var _path = color.substring(1);
121
- var _resolvedColor2 = (_getByPath$value2 = (_getByPath2 = getByPath(base, _path)) === null || _getByPath2 === void 0 ? void 0 : _getByPath2.value) !== null && _getByPath$value2 !== void 0 ? _getByPath$value2 : values[_path.split('.').join('-')];
122
- if (!_resolvedColor2) {
123
- throw new Error("Color ".concat(color, " was not found"));
124
- }
125
- return _resolvedColor2;
126
- }
127
- if (color.startsWith('#')) {
128
- return color;
129
- }
130
- throw new Error("Unable to process color ".concat(color));
131
- };
132
- var _resolveToken = function resolveToken(token) {
133
- if (token.includes('*')) {
134
- var _token$split = token.split('*'),
135
- _token$split2 = (0, _slicedToArray2["default"])(_token$split, 2),
136
- value = _token$split2[0],
137
- factor = _token$split2[1];
138
- var resolvedValue = _resolveToken(value);
139
- if (!resolvedValue.endsWith('px')) {
140
- throw new Error("Unsupported expression ".concat(token));
141
- }
142
- return "".concat(Number.parseFloat(resolvedValue) * Number.parseFloat(factor), "px");
143
- } else if (token.includes('{') && token.includes('}')) {
144
- var reference = token.substring(token.indexOf('{') + 1, token.indexOf('}')).replace(/\./g, '-');
145
- var resolvedToken = token.substring(0, token.indexOf('{')) + values[reference] + token.substring(token.indexOf('}') + 1);
146
- if (!resolvedToken || resolvedToken.includes('{')) {
147
- throw new Error("On moment of resolving ".concat(token, ", ").concat(resolvedToken, " was not resolved yet"));
148
- }
149
- return resolvedToken;
150
- } else {
151
- return token;
152
- }
153
- };
154
- var replaceColors = function replaceColors(str) {
155
- var result = '';
156
- for (var i = 0; i < str.length; i++) {
157
- if (str.substring(i, i + 'rgba('.length) === 'rgba(') {
158
- var start = i;
159
- while (str[i] !== undefined && str[i] !== ')') i++;
160
- result += _resolveColor(str.substring(start, i + 1));
161
- } else {
162
- result += str[i];
163
- }
164
- }
165
- return result;
166
- };
167
- var rawValues = (0, _objectSpread2["default"])({}, values);
168
- for (var token in values) {
169
- var _modifications$token;
170
- if (types[token] === 'color') {
171
- values[token] = _resolveColor(values[token]);
172
- } else if (types[token] === 'boxShadow') {
173
- values[token] = _resolveToken(values[token].split('; ').map(replaceColors).join(', '));
174
- } else if (types[token] === 'sizing' || types[token] === 'spacing' || types[token] === 'borderRadius' || types[token] === 'other') {
175
- values[token] = _resolveToken(values[token]);
176
- }
177
- var _iterator = (0, _createForOfIteratorHelper2["default"])((_modifications$token = modifications[token]) !== null && _modifications$token !== void 0 ? _modifications$token : []),
178
- _step;
179
- try {
180
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
181
- var _values$token$match;
182
- var modification = _step.value;
183
- // refer to https://docs.tokens.studio/tokens/color-modifiers and https://github.com/tokens-studio/figma-plugin/tree/main/src/utils/color if extension is needed
184
-
185
- rawValues[token] = "".concat(rawValues[token], " / ").concat(modification.type, "(").concat(modification.value, ") / ").concat(modification.space);
186
-
187
- // array + regex to process gradients with several colors
188
- var colorRegex = /(#[0-9a-f]{6}|rgba\([0-9., ]+\))/gi;
189
- var colors = (_values$token$match = values[token].match(colorRegex)) !== null && _values$token$match !== void 0 ? _values$token$match : [];
190
- var _iterator2 = (0, _createForOfIteratorHelper2["default"])(colors),
191
- _step2;
192
- try {
193
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
194
- var originalColor = _step2.value;
195
- var color = new Color(originalColor);
196
- if (modification.space === 'hsl') {
197
- if (modification.type === 'lighten') {
198
- var lightness = color.hsl.l;
199
- var difference = 100 - lightness;
200
- color.set('hsl.l', Math.min(100, lightness + difference * modification.value));
201
- } else {
202
- throw new Error("Unsupported color modification ".concat(modification.type, " of token ").concat(token));
203
- }
204
- } else {
205
- throw new Error("Unsupported color space ".concat(modification.space, " of token ").concat(token));
206
- }
207
- color = color.to('sRGB');
208
- var modifiedColor = '';
209
- if (color.alpha !== 1) {
210
- var r = Math.round(color.r * 255);
211
- var g = Math.round(color.g * 255);
212
- var b = Math.round(color.b * 255);
213
- var a = color.alpha;
214
- modifiedColor = "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(a, ")");
215
- } else {
216
- modifiedColor = color.toString({
217
- format: 'hex'
218
- });
219
- }
220
- values[token] = values[token].replace(originalColor, modifiedColor);
221
- }
222
- } catch (err) {
223
- _iterator2.e(err);
224
- } finally {
225
- _iterator2.f();
226
- }
227
- }
228
- } catch (err) {
229
- _iterator.e(err);
230
- } finally {
231
- _iterator.f();
232
- }
233
- }
234
- var processedTokens = [];
235
- var highlightsTokens = [];
236
- for (var _token in values) {
237
- var isBase = basicTokens.has(_token);
238
- (highlightTokens.has(_token) ? highlightsTokens : processedTokens).push({
239
- name: isBase ? "--".concat(_token) : "--".concat(prefix, "-").concat(_token),
240
- description: descriptions[_token],
241
- value: values[_token]
242
- });
243
- }
244
- return {
245
- processedTokens: processedTokens,
246
- highlightsTokens: highlightsTokens,
247
- values: values,
248
- types: types,
249
- rawValues: rawValues,
250
- descriptions: descriptions,
251
- basicTokens: basicTokens
252
- };
253
- };
254
- var tokensToCss = exports.tokensToCss = function tokensToCss(tokens) {
255
- var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ':root';
256
- var cssLines = [];
257
- cssLines.push("".concat(selector, " {"));
258
- var _iterator3 = (0, _createForOfIteratorHelper2["default"])(tokens),
259
- _step3;
260
- try {
261
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
262
- var token = _step3.value;
263
- if (token.description) cssLines.push(" /* ".concat(token.description, " */"));
264
- cssLines.push(" ".concat(token.name, ": ").concat(token.value, ";"));
265
- }
266
- } catch (err) {
267
- _iterator3.e(err);
268
- } finally {
269
- _iterator3.f();
270
- }
271
- cssLines.push('}');
272
- return cssLines.join('\n');
273
- };
274
- var tokensToJson = exports.tokensToJson = function tokensToJson(tokens) {
275
- var themeFile = {};
276
- var _iterator4 = (0, _createForOfIteratorHelper2["default"])(tokens),
277
- _step4;
278
- try {
279
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
280
- var token = _step4.value;
281
- themeFile[token.name] = token.value;
282
- }
283
- } catch (err) {
284
- _iterator4.e(err);
285
- } finally {
286
- _iterator4.f();
287
- }
288
- return JSON.stringify(themeFile, null, 2) + '\n';
289
- };
290
- var tokensToJs = exports.tokensToJs = function tokensToJs(tokens) {
291
- var jsLines = [];
292
- jsLines.push('export default {');
293
- var _iterator5 = (0, _createForOfIteratorHelper2["default"])(tokens),
294
- _step5;
295
- try {
296
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
297
- var token = _step5.value;
298
- jsLines.push(" '".concat(token.name, "': '").concat(token.value, "',"));
299
- }
300
- } catch (err) {
301
- _iterator5.e(err);
302
- } finally {
303
- _iterator5.f();
304
- }
305
- jsLines.push('};\n');
306
- return jsLines.join('\n');
307
- };
308
- var getByPath = function getByPath(obj, path) {
309
- var parts = path.split('.');
310
- var result = obj;
311
- var _iterator6 = (0, _createForOfIteratorHelper2["default"])(parts),
312
- _step6;
313
- try {
314
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
315
- var _result;
316
- var part = _step6.value;
317
- result = (_result = result) === null || _result === void 0 ? void 0 : _result[part];
318
- }
319
- } catch (err) {
320
- _iterator6.e(err);
321
- } finally {
322
- _iterator6.f();
323
- }
324
- return result;
325
- };
326
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","names":["_colorjs","_interopRequireDefault","require","Color","ColorJS","processTokens","exports","base","tokens","featureHighlight","prefix","values","basicTokens","Set","highlightTokens","modifications","types","descriptions","mixins","traverse","node","pathParts","arguments","length","undefined","setToAdd","key","concat","_toConsumableArray2","type","path","join","_typeof2","value","push","Error","add","description","$extensions","extension","_modifications$path","modify","resolveColor","color","includes","replaceColors","replace","startsWith","endsWith","lastComa","lastIndexOf","alpha","Number","parseFloat","substring","isNaN","resolvedColor","map","hex","parseInt","split","baseColor","_map","chunk","_map2","_slicedToArray2","r","g","b","a","_getByPath$value","_getByPath","getByPath","_getByPath$value2","_getByPath2","resolveToken","token","_token$split","_token$split2","factor","resolvedValue","reference","indexOf","resolvedToken","str","result","i","start","rawValues","_objectSpread2","_modifications$token","_iterator","_createForOfIteratorHelper2","_step","s","n","done","_values$token$match","modification","space","colorRegex","colors","match","_iterator2","_step2","originalColor","lightness","hsl","l","difference","set","Math","min","to","modifiedColor","round","toString","format","err","e","f","processedTokens","highlightsTokens","isBase","has","name","tokensToCss","selector","cssLines","_iterator3","_step3","tokensToJson","themeFile","_iterator4","_step4","JSON","stringify","tokensToJs","jsLines","_iterator5","_step5","obj","parts","_iterator6","_step6","_result","part"],"sources":["../../src/theme/utils.ts"],"sourcesContent":["import ColorJS from 'colorjs.io';\nconst Color = ColorJS as any;\n\ntype ExtensionsInput = {\n 'studio.tokens': {\n modify: {\n type: string;\n value: number;\n space: string;\n };\n };\n};\n\ntype TokensInput = {\n [nestedKey: string]:\n | TokensInput\n | {\n value: string;\n type: string;\n description: string;\n $extensions?: ExtensionsInput;\n };\n};\n\nexport const processTokens = (base: TokensInput, tokens: TokensInput, featureHighlight: TokensInput, prefix: string) => {\n const values: { [tokenName: string]: string } = {};\n const basicTokens = new Set<string>();\n const highlightTokens = new Set<string>();\n const modifications: {\n [tokenName: string]: {\n type: 'lighten' | 'darken' | 'alpha';\n value: number;\n space: 'lch' | 'srgb' | 'p3' | 'hsl';\n }[];\n } = {};\n const types: { [tokenName: string]: string } = {};\n const descriptions: { [tokenName: string]: string } = {};\n const mixins: string[] = [];\n type ColorPattern =\n | `{${string}.${string}}`\n | `{${string}.${string}}, ${number}`\n | `#${string}`\n | `{${string}.${string}}, ${number}`;\n type DesignTokenNode =\n | {\n type: string;\n value:\n | string\n | { [subTokens: string]: `{${string}}` }\n | ColorPattern\n | `{${string}}`\n | `{${string}*${number}}`\n | `${ColorPattern}; ${ColorPattern}`;\n\n description?: string;\n $extensions?: ExtensionsInput;\n }\n | DesignTokenTree;\n type DesignTokenTree = { [childrenNodeName: string]: DesignTokenNode };\n const traverse = (node: DesignTokenNode, pathParts: string[] = [], setToAdd?: Set<string>) => {\n for (const key in node) {\n if (key === 'type') continue;\n if (key === 'value') continue;\n if (key === 'description') continue;\n if (key === '$extensions') continue;\n traverse((node as any)[key], [...pathParts, key], setToAdd);\n }\n if ('type' in node && typeof node.type === 'string') {\n const path = pathParts.join('-');\n types[path] = node.type;\n if (typeof node.value === 'object') {\n mixins.push(path);\n return;\n }\n if (values[path]) {\n throw new Error(`Duplicated design token \"${path}\"`);\n }\n values[path] = node.value;\n setToAdd?.add(path);\n\n if (typeof node.description === 'string') descriptions[path] = node.description;\n if (node.$extensions) {\n for (const extension in node.$extensions) {\n if (extension === 'studio.tokens') {\n modifications[path] ??= [];\n modifications[path].push((node.$extensions as any)['studio.tokens'].modify);\n } else {\n throw new Error(`Unsupported extension \"${extension}\" for design token \"${path}\"`);\n }\n }\n }\n }\n };\n\n traverse(base, [], basicTokens);\n traverse(tokens);\n traverse(featureHighlight, [], highlightTokens);\n\n const resolveColor = (color: string): string => {\n if (color.includes('linear-gradient')) {\n if (color.includes('rgba')) {\n return replaceColors(color);\n } else {\n return color.replace(/\\{[a-z0-9.]+\\}/g, resolveColor);\n }\n }\n if (color.startsWith('rgba(') && color.endsWith(')')) {\n const lastComa = color.lastIndexOf(',');\n const alpha = Number.parseFloat(color.substring(lastComa + 1, color.length - 1));\n if (Number.isNaN(alpha)) {\n throw new Error(`Unable to parse rgba of ${color}`);\n }\n let resolvedColor = color.substring('rgba('.length, lastComa);\n if (resolvedColor.startsWith('{')) resolvedColor = resolveColor(resolvedColor);\n if (resolvedColor.startsWith('$')) resolvedColor = resolveColor(resolvedColor);\n if (resolvedColor.startsWith('#')) {\n if (resolvedColor.length === 1 + 3) {\n resolvedColor = [resolvedColor[1], resolvedColor[2], resolvedColor[3]]\n .map((hex) => Number.parseInt(hex, 16))\n .join(', ');\n } else if (resolvedColor.length === 1 + 6) {\n resolvedColor = [\n resolvedColor.substring(1, 3),\n resolvedColor.substring(3, 5),\n resolvedColor.substring(5, 7),\n ]\n .map((hex) => Number.parseInt(hex, 16))\n .join(', ');\n } else {\n throw new Error(\n `Unable to convert hex ${resolveColor} to rgb list of colors (processing ${color})`,\n );\n }\n }\n\n if (!resolvedColor || resolvedColor.split(',').length !== 3) {\n throw new Error(`Unable to produce rgba of ${color} (input format is not supported yet)`);\n }\n\n return `rgba(${resolvedColor}, ${alpha})`;\n }\n if (color.split(', ').length === 2) {\n const baseColor = resolveColor(color.split(', ')[0]);\n const [r, g, b] = (\n baseColor.length === 4\n ? [baseColor[1], baseColor[2], baseColor[3]]\n : [baseColor.substring(1, 3), baseColor.substring(3, 5), baseColor.substring(5, 7)]\n ).map((chunk) => Number.parseInt(chunk, 16));\n const a = Number.parseFloat(color.split(', ')[1]);\n\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n }\n if (color.startsWith('{') && color.split('.').length > 0 && color.endsWith('}')) {\n const path = color.substring(1, color.length - 1);\n const resolvedColor =\n getByPath(base as any, path)?.value ?? values[path.split('.').join('-')];\n if (!resolvedColor) {\n throw new Error(`Color ${color} was not found in base palette`);\n }\n return resolvedColor;\n }\n if (color.startsWith('$') && color.split('.').length > 0) {\n const path = color.substring(1);\n const resolvedColor =\n getByPath(base as any, path)?.value ?? values[path.split('.').join('-')];\n if (!resolvedColor) {\n throw new Error(`Color ${color} was not found`);\n }\n return resolvedColor;\n }\n if (color.startsWith('#')) {\n return color;\n }\n throw new Error(`Unable to process color ${color}`);\n };\n const resolveToken = (token: string): string => {\n if (token.includes('*')) {\n const [value, factor] = token.split('*');\n const resolvedValue = resolveToken(value);\n if (!resolvedValue.endsWith('px')) {\n throw new Error(`Unsupported expression ${token}`);\n }\n return `${Number.parseFloat(resolvedValue) * Number.parseFloat(factor)}px`;\n } else if (token.includes('{') && token.includes('}')) {\n const reference = token\n .substring(token.indexOf('{') + 1, token.indexOf('}'))\n .replace(/\\./g, '-');\n const resolvedToken =\n token.substring(0, token.indexOf('{')) +\n values[reference] +\n token.substring(token.indexOf('}') + 1);\n if (!resolvedToken || resolvedToken.includes('{')) {\n throw new Error(`On moment of resolving ${token}, ${resolvedToken} was not resolved yet`);\n }\n return resolvedToken;\n } else {\n return token;\n }\n };\n const replaceColors = (str: string) => {\n let result = '';\n for (let i = 0; i < str.length; i++) {\n if (str.substring(i, i + 'rgba('.length) === 'rgba(') {\n const start = i;\n while (str[i] !== undefined && str[i] !== ')') i++;\n result += resolveColor(str.substring(start, i + 1));\n } else {\n result += str[i];\n }\n }\n\n return result;\n };\n\n const rawValues = { ...values };\n\n for (const token in values) {\n if (types[token] === 'color') {\n values[token] = resolveColor(values[token]);\n } else if (types[token] === 'boxShadow') {\n values[token] = resolveToken(values[token].split('; ').map(replaceColors).join(', '));\n } else if (\n types[token] === 'sizing' ||\n types[token] === 'spacing' ||\n types[token] === 'borderRadius' ||\n types[token] === 'other'\n ) {\n values[token] = resolveToken(values[token]);\n }\n for (const modification of modifications[token] ?? []) {\n // refer to https://docs.tokens.studio/tokens/color-modifiers and https://github.com/tokens-studio/figma-plugin/tree/main/src/utils/color if extension is needed\n\n rawValues[token] = `${rawValues[token]} / ${modification.type}(${modification.value}) / ${modification.space}`;\n\n // array + regex to process gradients with several colors\n const colorRegex = /(#[0-9a-f]{6}|rgba\\([0-9., ]+\\))/gi;\n const colors = values[token].match(colorRegex) ?? [];\n\n for (const originalColor of colors) {\n let color = new Color(originalColor);\n\n if (modification.space === 'hsl') {\n if (modification.type === 'lighten') {\n const lightness = color.hsl.l;\n const difference = 100 - lightness;\n color.set('hsl.l', Math.min(100, lightness + difference * modification.value));\n } else {\n throw new Error(`Unsupported color modification ${modification.type} of token ${token}`);\n }\n } else {\n throw new Error(`Unsupported color space ${modification.space} of token ${token}`);\n }\n\n color = color.to('sRGB');\n let modifiedColor = '';\n\n if (color.alpha !== 1) {\n const r = Math.round(color.r * 255);\n const g = Math.round(color.g * 255);\n const b = Math.round(color.b * 255);\n const a = color.alpha;\n modifiedColor = `rgba(${r}, ${g}, ${b}, ${a})`;\n } else {\n modifiedColor = color.toString({ format: 'hex' });\n }\n\n values[token] = values[token].replace(originalColor, modifiedColor);\n }\n }\n }\n\n const processedTokens: { name: string; value: string; description: string }[] = [];\n const highlightsTokens: { name: string; value: string; description: string }[] = [];\n\n for (const token in values) {\n const isBase = basicTokens.has(token);\n (highlightTokens.has(token) ? highlightsTokens : processedTokens).push({\n name: isBase ? `--${token}` : `--${prefix}-${token}`,\n description: descriptions[token],\n value: values[token],\n });\n }\n\n return { processedTokens, highlightsTokens, values, types, rawValues, descriptions, basicTokens };\n};\n\nexport const tokensToCss = (\n tokens: { name: string; value: string; description: string }[],\n selector = ':root',\n) => {\n const cssLines: string[] = [];\n cssLines.push(`${selector} {`);\n for (const token of tokens) {\n if (token.description) cssLines.push(` /* ${token.description} */`);\n cssLines.push(` ${token.name}: ${token.value};`);\n }\n cssLines.push('}');\n return cssLines.join('\\n');\n};\nexport const tokensToJson = (tokens: { name: string; value: string; description: string }[]) => {\n const themeFile: Record<string, string> = {};\n for (const token of tokens) {\n themeFile[token.name] = token.value;\n }\n return JSON.stringify(themeFile, null, 2) + '\\n';\n};\nexport const tokensToJs = (tokens: { name: string; value: string; description: string }[]) => {\n const jsLines: string[] = [];\n jsLines.push('export default {');\n for (const token of tokens) {\n jsLines.push(` '${token.name}': '${token.value}',`);\n }\n jsLines.push('};\\n');\n return jsLines.join('\\n');\n};\n\nconst getByPath = (obj: any, path: string) => {\n const parts = path.split('.');\n let result = obj;\n for (const part of parts) {\n result = result?.[part];\n }\n return result;\n};\n"],"mappings":"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","ignoreList":[]}