@semcore/core 16.1.1 → 16.2.0-prerelease.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/CHANGELOG.md +10 -0
- package/lib/theme/dark.json +158 -112
- package/lib/theme/light.json +46 -3
- package/lib/theme/processor.js +2 -25
- package/lib/theme/processor.js.map +1 -1
- package/lib/theme/processor.mjs +3 -26
- package/lib/theme/processor.mjs.map +1 -1
- package/lib/theme/themes/auto.css +47 -34
- package/lib/theme/themes/dark.css +46 -33
- package/lib/theme/themes/dark.d.ts +7 -1
- package/lib/theme/themes/dark.js +8 -2
- package/lib/theme/themes/dark.js.map +1 -1
- package/lib/theme/themes/dark.mjs +8 -2
- package/lib/theme/themes/dark.mjs.map +1 -1
- package/lib/theme/themes/highlights-dark.css +14 -2
- package/lib/theme/themes/highlights-dark.d.ts +6 -0
- package/lib/theme/themes/highlights-dark.js +6 -0
- package/lib/theme/themes/highlights-dark.js.map +1 -1
- package/lib/theme/themes/highlights-dark.mjs +6 -0
- package/lib/theme/themes/highlights-dark.mjs.map +1 -1
- package/lib/theme/themes/highlights-light.css +14 -2
- package/lib/theme/themes/highlights-light.d.ts +6 -0
- package/lib/theme/themes/highlights-light.js +6 -0
- package/lib/theme/themes/highlights-light.js.map +1 -1
- package/lib/theme/themes/highlights-light.mjs +6 -0
- package/lib/theme/themes/highlights-light.mjs.map +1 -1
- package/lib/theme/utils.js +67 -48
- package/lib/theme/utils.js.map +1 -1
- package/lib/theme/utils.mjs +67 -48
- package/lib/theme/utils.mjs.map +1 -1
- package/lib/utils/injectStyle.js +1 -1
- package/lib/utils/injectStyle.mjs +1 -1
- package/package.json +1 -1
- package/lib/theme/exclude-tokens.json +0 -10
package/lib/theme/light.json
CHANGED
|
@@ -2105,7 +2105,7 @@
|
|
|
2105
2105
|
"blue-hover-active": {
|
|
2106
2106
|
"value": "#B7E4FF",
|
|
2107
2107
|
"type": "color",
|
|
2108
|
-
"description": "Blue background color for the hover and active states of the primary tag. It’s created using a CSS filter with a brightness of 150%, applied to the blue-500 color with 0.3 opacity on the white background underneath.
|
|
2108
|
+
"description": "Blue background color for the hover and active states of the primary tag. It’s created using a CSS filter with a brightness of 150%, applied to the blue-500 color with 0.3 opacity on the white background underneath."
|
|
2109
2109
|
},
|
|
2110
2110
|
"green-normal": {
|
|
2111
2111
|
"value": "#CFF1EA",
|
|
@@ -2587,12 +2587,17 @@
|
|
|
2587
2587
|
"feature-highlight": {
|
|
2588
2588
|
"value": "linear-gradient(90deg, {violet.300}, {blue.300})",
|
|
2589
2589
|
"type": "color",
|
|
2590
|
-
"description": "
|
|
2590
|
+
"description": "Primary border for highlighted controls."
|
|
2591
2591
|
},
|
|
2592
2592
|
"feature-highlight-active": {
|
|
2593
2593
|
"value": "linear-gradient(90deg, {violet.400}, {blue.400})",
|
|
2594
2594
|
"type": "color",
|
|
2595
|
-
"description": "
|
|
2595
|
+
"description": "Primary border for the active state of highlighted controls."
|
|
2596
|
+
},
|
|
2597
|
+
"feature-highlight-secondary": {
|
|
2598
|
+
"value": "linear-gradient(90deg, {violet.200}, {blue.200})",
|
|
2599
|
+
"type": "color",
|
|
2600
|
+
"description": "Secondary border for highlighted controls."
|
|
2596
2601
|
}
|
|
2597
2602
|
},
|
|
2598
2603
|
"control": {
|
|
@@ -2612,6 +2617,44 @@
|
|
|
2612
2617
|
"type": "color",
|
|
2613
2618
|
"description": "Active (selected) state of the highlighted primary control."
|
|
2614
2619
|
}
|
|
2620
|
+
},
|
|
2621
|
+
"secondary": {
|
|
2622
|
+
"feature-highlight": {
|
|
2623
|
+
"value": "linear-gradient(90deg, {violet.50}, {blue.50})",
|
|
2624
|
+
"type": "color",
|
|
2625
|
+
"description": "Background of the highlighted secondary control."
|
|
2626
|
+
},
|
|
2627
|
+
"feature-highlight-hover": {
|
|
2628
|
+
"value": "linear-gradient(90deg, {violet.100}, {blue.100})",
|
|
2629
|
+
"type": "color",
|
|
2630
|
+
"description": "Hover state of the highlighted secondary control.",
|
|
2631
|
+
"$extensions": {
|
|
2632
|
+
"studio.tokens": {
|
|
2633
|
+
"modify": {
|
|
2634
|
+
"type": "lighten",
|
|
2635
|
+
"value": "0.3",
|
|
2636
|
+
"space": "hsl"
|
|
2637
|
+
}
|
|
2638
|
+
}
|
|
2639
|
+
}
|
|
2640
|
+
},
|
|
2641
|
+
"feature-highlight-active": {
|
|
2642
|
+
"value": "linear-gradient(90deg, {violet.100}, {blue.100})",
|
|
2643
|
+
"type": "color",
|
|
2644
|
+
"description": "Active (selected) state of the highlighted secondary control."
|
|
2645
|
+
}
|
|
2646
|
+
}
|
|
2647
|
+
},
|
|
2648
|
+
"text": {
|
|
2649
|
+
"feature-highlight": {
|
|
2650
|
+
"value": "linear-gradient(90deg, {violet.500}, {blue.500})",
|
|
2651
|
+
"type": "color",
|
|
2652
|
+
"description": "Text for highlighted features."
|
|
2653
|
+
},
|
|
2654
|
+
"feature-highlight-hover-active": {
|
|
2655
|
+
"value": "linear-gradient(90deg, {violet.700}, {blue.700})",
|
|
2656
|
+
"type": "color",
|
|
2657
|
+
"description": "Text for hover and active states of highlighted features."
|
|
2615
2658
|
}
|
|
2616
2659
|
},
|
|
2617
2660
|
"icon": {
|
package/lib/theme/processor.js
CHANGED
|
@@ -56,7 +56,6 @@ var defaultTheme = 'light';
|
|
|
56
56
|
var themes = ['light', 'dark'];
|
|
57
57
|
var warning = !process.argv.includes('--no-warning');
|
|
58
58
|
var dirname = (0, _nodePath.resolve)((0, _nodeUrl.fileURLToPath)(import.meta.url), '..');
|
|
59
|
-
var excludeTokens = JSON.parse(await _promises["default"].readFile((0, _nodePath.resolve)(dirname, './exclude-tokens.json'), 'utf-8'));
|
|
60
59
|
var autoTheme = {};
|
|
61
60
|
var _loop = function _loop() {
|
|
62
61
|
var theme = _themes[_i];
|
|
@@ -73,28 +72,6 @@ var _loop = function _loop() {
|
|
|
73
72
|
basicTokens = processed.basicTokens,
|
|
74
73
|
highlightsTokens = processed.highlightsTokens;
|
|
75
74
|
var processedTokens = processed.processedTokens;
|
|
76
|
-
var _loop2 = function _loop2() {
|
|
77
|
-
var excludeList = excludeTokens[excludeToPath];
|
|
78
|
-
var excludedTokens = [];
|
|
79
|
-
processedTokens = processedTokens.filter(function (token) {
|
|
80
|
-
var exclude = excludeList.includes(token.name);
|
|
81
|
-
if (exclude) excludedTokens.push(token);
|
|
82
|
-
return !exclude;
|
|
83
|
-
});
|
|
84
|
-
if (excludedTokens.length > 0) {
|
|
85
|
-
var path = excludeToPath.replace('{theme}', theme);
|
|
86
|
-
await writeIfChanged("".concat(path, ".css"), (0, _utils.tokensToCss)(excludedTokens));
|
|
87
|
-
await writeIfChanged("".concat(path, ".json"), (0, _utils.tokensToJson)(excludedTokens));
|
|
88
|
-
if (theme === defaultTheme) {
|
|
89
|
-
var _path = excludeToPath.replace('{theme}', 'default');
|
|
90
|
-
await writeIfChanged("".concat(_path, ".css"), (0, _utils.tokensToCss)(excludedTokens));
|
|
91
|
-
await writeIfChanged("".concat(_path, ".json"), (0, _utils.tokensToJson)(excludedTokens));
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
for (var excludeToPath in excludeTokens) {
|
|
96
|
-
_loop2();
|
|
97
|
-
}
|
|
98
75
|
await writeIfChanged("./semcore/core/src/theme/themes/".concat(theme, ".css"), (0, _utils.tokensToCss)(processedTokens));
|
|
99
76
|
await writeIfChanged("./semcore/core/src/theme/themes/".concat(theme, ".ts"), (0, _utils.tokensToJs)(processedTokens));
|
|
100
77
|
if (highlightsTokens.length > 0) {
|
|
@@ -129,7 +106,7 @@ var _loop = function _loop() {
|
|
|
129
106
|
var _iterator = (0, _createForOfIteratorHelper2["default"])(nodes),
|
|
130
107
|
_step;
|
|
131
108
|
try {
|
|
132
|
-
var
|
|
109
|
+
var _loop2 = function _loop2() {
|
|
133
110
|
var node = _step.value;
|
|
134
111
|
if (node.nodes) {
|
|
135
112
|
_traverseAst(node.nodes);
|
|
@@ -212,7 +189,7 @@ var _loop = function _loop() {
|
|
|
212
189
|
}
|
|
213
190
|
};
|
|
214
191
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
215
|
-
|
|
192
|
+
_loop2();
|
|
216
193
|
}
|
|
217
194
|
} catch (err) {
|
|
218
195
|
_iterator.e(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.js","names":["_nodeChild_process","require","_promises","_interopRequireDefault","_nodePath","_nodeUrl","_fastGlob","_postcss","_postcssValueParser","_utils","writeIfChanged","exports","_ref","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","path","content","originalContent","_t","wrap","_context","prev","next","fs","readFile","sent","replace","abrupt","writeFile","stop","_x","_x2","apply","arguments","defaultTheme","themes","warning","process","argv","includes","dirname","resolvePath","fileURLToPath","import","meta","url","excludeTokens","JSON","parse","autoTheme","_loop","theme","_themes","_i","prefix","_JSON$parse","concat","base","tokens","featureHighlight","processed","processTokens","values","types","rawValues","descriptions","basicTokens","highlightsTokens","processedTokens","_loop2","excludeList","excludeToPath","excludedTokens","filter","token","exclude","name","push","length","tokensToCss","tokensToJson","tokensToJs","usages","projectCssPaths","glob","ignore","split","some","pathPart","projectCssContents","Promise","all","map","usedVariables","colorLiterals","processedCss","cssContent","fileIndex","postcss","postcssPlugin","prepare","result","traverseAst","nodes","_iterator","_createForOfIteratorHelper2","_step","_loop3","node","value","valueAst","valuesParser","traverseValueAst","parent","_iterator2","_step2","s","n","done","_usages$withoutPrefix","valueNode","type","Error","parentIsVariable","prevNode","indexOf","skipNode","text","trim","startsWith","location","source","start","line","offset","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","has","_usages$token","components","_toConsumableArray2","Set","cssPath","sort","a","b","localeCompare","rawValue","computedValue","description","baseTokensDocumentation","processGroup","group","data","key","_data$key$description","stringify","autoThemeLines","selector","execSync","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), '..');\nconst excludeTokens = JSON.parse(\n await fs.readFile(resolvePath(dirname, './exclude-tokens.json'), 'utf-8'),\n);\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 let { processedTokens } = processed;\n\n for (const excludeToPath in excludeTokens) {\n const excludeList: string[] = excludeTokens[excludeToPath];\n const excludedTokens: typeof processedTokens = [];\n processedTokens = processedTokens.filter((token) => {\n const exclude = excludeList.includes(token.name);\n if (exclude) excludedTokens.push(token);\n return !exclude;\n });\n\n if (excludedTokens.length > 0) {\n const path = excludeToPath.replace('{theme}', theme);\n await writeIfChanged(`${path}.css`, tokensToCss(excludedTokens));\n await writeIfChanged(`${path}.json`, tokensToJson(excludedTokens));\n if (theme === defaultTheme) {\n const path = excludeToPath.replace('{theme}', 'default');\n await writeIfChanged(`${path}.css`, tokensToCss(excludedTokens));\n await writeIfChanged(`${path}.json`, tokensToJson(excludedTokens));\n }\n }\n }\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
|
+
{"version":3,"file":"processor.js","names":["_nodeChild_process","require","_promises","_interopRequireDefault","_nodePath","_nodeUrl","_fastGlob","_postcss","_postcssValueParser","_utils","writeIfChanged","exports","_ref","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","path","content","originalContent","_t","wrap","_context","prev","next","fs","readFile","sent","replace","abrupt","writeFile","stop","_x","_x2","apply","arguments","defaultTheme","themes","warning","process","argv","includes","dirname","resolvePath","fileURLToPath","import","meta","url","autoTheme","_loop","theme","_themes","_i","prefix","_JSON$parse","JSON","parse","concat","base","tokens","featureHighlight","processed","processTokens","values","types","rawValues","descriptions","basicTokens","highlightsTokens","processedTokens","tokensToCss","tokensToJs","length","usages","projectCssPaths","glob","ignore","filter","split","some","pathPart","projectCssContents","Promise","all","map","usedVariables","colorLiterals","processedCss","cssContent","fileIndex","postcss","postcssPlugin","prepare","result","traverseAst","nodes","_iterator","_createForOfIteratorHelper2","_step","_loop2","node","value","valueAst","valuesParser","traverseValueAst","parent","_iterator2","_step2","s","n","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","_toConsumableArray2","Set","cssPath","sort","a","b","localeCompare","rawValue","computedValue","description","baseTokensDocumentation","processGroup","group","data","key","_data$key$description","stringify","autoThemeLines","selector","execSync","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":[]}
|
package/lib/theme/processor.mjs
CHANGED
|
@@ -9,7 +9,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
9
9
|
import glob from 'fast-glob';
|
|
10
10
|
import postcss from 'postcss';
|
|
11
11
|
import valuesParser from 'postcss-value-parser';
|
|
12
|
-
import { processTokens, tokensToCss, tokensToJs
|
|
12
|
+
import { processTokens, tokensToCss, tokensToJs } from "./utils.mjs";
|
|
13
13
|
export var writeIfChanged = /*#__PURE__*/function () {
|
|
14
14
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(path, content) {
|
|
15
15
|
var originalContent, _t;
|
|
@@ -49,7 +49,6 @@ var defaultTheme = 'light';
|
|
|
49
49
|
var themes = ['light', 'dark'];
|
|
50
50
|
var warning = !process.argv.includes('--no-warning');
|
|
51
51
|
var dirname = resolvePath(fileURLToPath(import.meta.url), '..');
|
|
52
|
-
var excludeTokens = JSON.parse(await fs.readFile(resolvePath(dirname, './exclude-tokens.json'), 'utf-8'));
|
|
53
52
|
var autoTheme = {};
|
|
54
53
|
var _loop = function _loop() {
|
|
55
54
|
var theme = _themes[_i];
|
|
@@ -66,28 +65,6 @@ var _loop = function _loop() {
|
|
|
66
65
|
basicTokens = processed.basicTokens,
|
|
67
66
|
highlightsTokens = processed.highlightsTokens;
|
|
68
67
|
var processedTokens = processed.processedTokens;
|
|
69
|
-
var _loop2 = function _loop2() {
|
|
70
|
-
var excludeList = excludeTokens[excludeToPath];
|
|
71
|
-
var excludedTokens = [];
|
|
72
|
-
processedTokens = processedTokens.filter(function (token) {
|
|
73
|
-
var exclude = excludeList.includes(token.name);
|
|
74
|
-
if (exclude) excludedTokens.push(token);
|
|
75
|
-
return !exclude;
|
|
76
|
-
});
|
|
77
|
-
if (excludedTokens.length > 0) {
|
|
78
|
-
var path = excludeToPath.replace('{theme}', theme);
|
|
79
|
-
await writeIfChanged("".concat(path, ".css"), tokensToCss(excludedTokens));
|
|
80
|
-
await writeIfChanged("".concat(path, ".json"), tokensToJson(excludedTokens));
|
|
81
|
-
if (theme === defaultTheme) {
|
|
82
|
-
var _path = excludeToPath.replace('{theme}', 'default');
|
|
83
|
-
await writeIfChanged("".concat(_path, ".css"), tokensToCss(excludedTokens));
|
|
84
|
-
await writeIfChanged("".concat(_path, ".json"), tokensToJson(excludedTokens));
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
for (var excludeToPath in excludeTokens) {
|
|
89
|
-
_loop2();
|
|
90
|
-
}
|
|
91
68
|
await writeIfChanged("./semcore/core/src/theme/themes/".concat(theme, ".css"), tokensToCss(processedTokens));
|
|
92
69
|
await writeIfChanged("./semcore/core/src/theme/themes/".concat(theme, ".ts"), tokensToJs(processedTokens));
|
|
93
70
|
if (highlightsTokens.length > 0) {
|
|
@@ -122,7 +99,7 @@ var _loop = function _loop() {
|
|
|
122
99
|
var _iterator = _createForOfIteratorHelper(nodes),
|
|
123
100
|
_step;
|
|
124
101
|
try {
|
|
125
|
-
var
|
|
102
|
+
var _loop2 = function _loop2() {
|
|
126
103
|
var node = _step.value;
|
|
127
104
|
if (node.nodes) {
|
|
128
105
|
_traverseAst(node.nodes);
|
|
@@ -205,7 +182,7 @@ var _loop = function _loop() {
|
|
|
205
182
|
}
|
|
206
183
|
};
|
|
207
184
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
208
|
-
|
|
185
|
+
_loop2();
|
|
209
186
|
}
|
|
210
187
|
} catch (err) {
|
|
211
188
|
_iterator.e(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.mjs","names":["execSync","fs","resolve","resolvePath","fileURLToPath","glob","postcss","valuesParser","processTokens","tokensToCss","tokensToJs","tokensToJson","writeIfChanged","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","path","content","originalContent","_t","wrap","_context","prev","next","readFile","sent","replace","abrupt","writeFile","stop","_x","_x2","apply","arguments","defaultTheme","themes","warning","process","argv","includes","dirname","import","meta","url","excludeTokens","JSON","parse","autoTheme","_loop","theme","_themes","_i","prefix","_JSON$parse","concat","base","tokens","featureHighlight","processed","values","types","rawValues","descriptions","basicTokens","highlightsTokens","processedTokens","_loop2","excludeList","excludeToPath","excludedTokens","filter","token","exclude","name","push","length","usages","projectCssPaths","ignore","split","some","pathPart","projectCssContents","Promise","all","map","usedVariables","colorLiterals","processedCss","cssContent","fileIndex","postcssPlugin","prepare","result","traverseAst","nodes","_iterator","_createForOfIteratorHelper","_step","_loop3","node","value","valueAst","traverseValueAst","parent","_iterator2","_step2","s","n","done","_usages$withoutPrefix","valueNode","type","Error","parentIsVariable","prevNode","indexOf","skipNode","text","trim","startsWith","location","source","start","line","offset","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","has","_usages$token","components","_toConsumableArray","Set","cssPath","sort","a","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), '..');\nconst excludeTokens = JSON.parse(\n await fs.readFile(resolvePath(dirname, './exclude-tokens.json'), 'utf-8'),\n);\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 let { processedTokens } = processed;\n\n for (const excludeToPath in excludeTokens) {\n const excludeList: string[] = excludeTokens[excludeToPath];\n const excludedTokens: typeof processedTokens = [];\n processedTokens = processedTokens.filter((token) => {\n const exclude = excludeList.includes(token.name);\n if (exclude) excludedTokens.push(token);\n return !exclude;\n });\n\n if (excludedTokens.length > 0) {\n const path = excludeToPath.replace('{theme}', theme);\n await writeIfChanged(`${path}.css`, tokensToCss(excludedTokens));\n await writeIfChanged(`${path}.json`, tokensToJson(excludedTokens));\n if (theme === defaultTheme) {\n const path = excludeToPath.replace('{theme}', 'default');\n await writeIfChanged(`${path}.css`, tokensToCss(excludedTokens));\n await writeIfChanged(`${path}.json`, tokensToJson(excludedTokens));\n }\n }\n }\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
|
+
{"version":3,"file":"processor.mjs","names":["execSync","fs","resolve","resolvePath","fileURLToPath","glob","postcss","valuesParser","processTokens","tokensToCss","tokensToJs","writeIfChanged","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","path","content","originalContent","_t","wrap","_context","prev","next","readFile","sent","replace","abrupt","writeFile","stop","_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","n","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","a","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":[]}
|