@semcore/core 17.0.0-prerelease.31 → 17.0.0-prerelease.34

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 (36) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/lib/core-types/Component.d.ts +8 -1
  3. package/lib/core-types/Component.js.map +1 -1
  4. package/lib/core-types/Component.mjs.map +1 -1
  5. package/lib/theme/themes/auto.css +198 -198
  6. package/lib/theme/themes/dark.css +99 -99
  7. package/lib/theme/themes/dark.d.ts +59 -59
  8. package/lib/theme/themes/dark.js +59 -59
  9. package/lib/theme/themes/dark.js.map +1 -1
  10. package/lib/theme/themes/dark.mjs +59 -59
  11. package/lib/theme/themes/dark.mjs.map +1 -1
  12. package/lib/theme/themes/default.css +100 -100
  13. package/lib/theme/themes/default.d.ts +59 -59
  14. package/lib/theme/themes/default.js +59 -59
  15. package/lib/theme/themes/default.js.map +1 -1
  16. package/lib/theme/themes/default.mjs +59 -59
  17. package/lib/theme/themes/default.mjs.map +1 -1
  18. package/lib/theme/themes/light.css +100 -100
  19. package/lib/theme/themes/light.d.ts +59 -59
  20. package/lib/theme/themes/light.js +59 -59
  21. package/lib/theme/themes/light.js.map +1 -1
  22. package/lib/theme/themes/light.mjs +59 -59
  23. package/lib/theme/themes/light.mjs.map +1 -1
  24. package/package.json +1 -1
  25. package/lib/theme/dark.json +0 -2695
  26. package/lib/theme/light.json +0 -2730
  27. package/lib/theme/processor.d.ts +0 -1
  28. package/lib/theme/processor.js +0 -227
  29. package/lib/theme/processor.js.map +0 -1
  30. package/lib/theme/processor.mjs +0 -219
  31. package/lib/theme/processor.mjs.map +0 -1
  32. package/lib/theme/utils.d.ts +0 -58
  33. package/lib/theme/utils.js +0 -251
  34. package/lib/theme/utils.js.map +0 -1
  35. package/lib/theme/utils.mjs +0 -240
  36. package/lib/theme/utils.mjs.map +0 -1
@@ -1 +0,0 @@
1
- export declare const writeIfChanged: (path: string, content: string) => Promise<void>;
@@ -1,227 +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.writeIfChanged = void 0;
8
- var _nodeChild_process = require("node:child_process");
9
- var _promises = _interopRequireDefault(require("node:fs/promises"));
10
- var _nodePath = require("node:path");
11
- var _nodeUrl = require("node:url");
12
- var _fastGlob = _interopRequireDefault(require("fast-glob"));
13
- var _postcss = _interopRequireDefault(require("postcss"));
14
- var _postcssValueParser = _interopRequireDefault(require("postcss-value-parser"));
15
- var _utils = require("./utils");
16
- const writeIfChanged = async (path, content) => {
17
- try {
18
- const originalContent = await _promises.default.readFile(path, 'utf-8');
19
- if (originalContent.replace(/[\s\n]/g, '') === content.replace(/[\s\n]/g, '')) {
20
- return;
21
- }
22
- } catch {}
23
- await _promises.default.writeFile(path, content);
24
- };
25
- exports.writeIfChanged = writeIfChanged;
26
- const defaultTheme = 'light';
27
- const themes = ['light', 'dark'];
28
- const warning = !process.argv.includes('--no-warning');
29
- const dirname = (0, _nodePath.resolve)((0, _nodeUrl.fileURLToPath)(import.meta.url), '..');
30
- const autoTheme = {};
31
- for (const theme of themes) {
32
- const prefix = 'intergalactic';
33
- const {
34
- base,
35
- tokens,
36
- featureHighlight
37
- } = JSON.parse(await _promises.default.readFile((0, _nodePath.resolve)(dirname, `./${theme}.json`), 'utf-8'));
38
- const processed = (0, _utils.processTokens)(base, tokens, featureHighlight, prefix);
39
- const {
40
- values,
41
- types,
42
- rawValues,
43
- descriptions,
44
- basicTokens,
45
- highlightsTokens
46
- } = processed;
47
- const {
48
- processedTokens
49
- } = processed;
50
- await writeIfChanged(`./semcore/core/src/theme/themes/${theme}.css`, (0, _utils.tokensToCss)(processedTokens));
51
- await writeIfChanged(`./semcore/core/src/theme/themes/${theme}.ts`, (0, _utils.tokensToJs)(processedTokens));
52
- if (highlightsTokens.length > 0) {
53
- await writeIfChanged(`./semcore/core/src/theme/themes/highlights-${theme}.css`, (0, _utils.tokensToCss)(highlightsTokens));
54
- await writeIfChanged(`./semcore/core/src/theme/themes/highlights-${theme}.ts`, (0, _utils.tokensToJs)(highlightsTokens));
55
- }
56
- autoTheme[theme] = processedTokens;
57
- const usages = {};
58
- if (theme === defaultTheme) {
59
- await writeIfChanged('./semcore/core/src/theme/themes/default.css', (0, _utils.tokensToCss)(processedTokens));
60
- await writeIfChanged('./semcore/core/src/theme/themes/default.ts', (0, _utils.tokensToJs)(processedTokens));
61
- const projectCssPaths = (await (0, _fastGlob.default)('./semcore/*/src/**/*.shadow.css', {
62
- ignore: ['node_modules', 'lib']
63
- })).filter(path => {
64
- if (path.split('/').some(pathPart => ['chart', 'email', 'table'].includes(pathPart))) {
65
- return false;
66
- }
67
- return true;
68
- });
69
- const projectCssContents = await Promise.all(projectCssPaths.map(path => _promises.default.readFile(path, 'utf-8')));
70
- const usedVariables = {};
71
- const colorLiterals = [];
72
- const processedCss = await Promise.all(projectCssContents.map((cssContent, fileIndex) => (0, _postcss.default)([{
73
- postcssPlugin: 'variables-explored',
74
- prepare: result => {
75
- const traverseAst = nodes => {
76
- for (const node of nodes) {
77
- if (node.nodes) {
78
- traverseAst(node.nodes);
79
- }
80
- if (node.value) {
81
- const valueAst = (0, _postcssValueParser.default)(node.value);
82
- const traverseValueAst = (nodes, parent) => {
83
- for (const valueNode of nodes) {
84
- if (valueNode.nodes) traverseValueAst(valueNode.nodes, valueNode);
85
- if (valueNode.type === 'function' && valueNode.value === 'color-mod') {
86
- throw new Error(`Found restricted function color-mod in ${projectCssPaths[fileIndex]}`);
87
- }
88
- const parentIsVariable = parent?.type === 'function' && parent?.value === 'var';
89
- if (!parentIsVariable) {
90
- const prevNode = node.parent.nodes[node.parent.nodes.indexOf(node) - 1];
91
- const skipNode = prevNode?.type === 'comment' && prevNode.text.trim() === 'disable-tokens-validator';
92
- if (skipNode) continue;
93
- if (valueNode.type === 'word' && (valueNode.value.startsWith('#') || valueNode.value.startsWith('rgb'))) {
94
- const location = `${node.source.start.line}:${node.source.start.offset}`;
95
- colorLiterals.push({
96
- path: `${projectCssPaths[fileIndex]}:${location}`,
97
- name: valueNode.value
98
- });
99
- }
100
- if (valueNode.type === 'word' && valueNode.value.endsWith('px') && (node.prop.includes('padding') || node.prop.includes('margin') || node.prop.includes('radius') || node.prop.includes('font-size'))) {
101
- const location = `${node.source.start.line}:${node.source.start.offset}`;
102
- colorLiterals.push({
103
- path: `${projectCssPaths[fileIndex]}:${location}`,
104
- name: valueNode.value
105
- });
106
- }
107
- }
108
- if (valueNode.type !== 'function' || valueNode.value !== 'var') continue;
109
- const variableName = valueNode.nodes[0].value;
110
- if (!variableName.startsWith(`--${prefix}`)) {
111
- // if (legacyCssVariables[variableName] !== undefined) {
112
- // legacyCssVariables[variableName]++;
113
- // }
114
- continue;
115
- }
116
- const hasDefault = valueNode.nodes.length === 3;
117
- if (!hasDefault) {
118
- valueNode.nodes.push({
119
- type: 'div',
120
- sourceIndex: -1,
121
- value: ',',
122
- before: '',
123
- after: ' '
124
- }, {
125
- type: 'word',
126
- sourceIndex: -1,
127
- value: ''
128
- });
129
- }
130
- const withoutPrefix = variableName.substring(`--${prefix}-`.length);
131
- usedVariables[withoutPrefix] = true;
132
- if (!values[withoutPrefix]) {
133
- throw new Error(`Variable ${variableName} is used in project but not presented in design tokens list`);
134
- }
135
- valueNode.nodes[2].type = 'word';
136
- valueNode.nodes[2].value = values[withoutPrefix];
137
- valueNode.nodes[2].nodes = [];
138
- valueNode.nodes.length = 3;
139
- usages[withoutPrefix] = usages[withoutPrefix] ?? [];
140
- usages[withoutPrefix].push(projectCssPaths[fileIndex]);
141
- }
142
- };
143
- traverseValueAst(valueAst.nodes, null);
144
- node.value = valueAst.toString();
145
- }
146
- }
147
- };
148
- traverseAst(result.root.nodes);
149
- return {};
150
- }
151
- }]).process(cssContent, {
152
- from: undefined
153
- })));
154
- await Promise.all(projectCssPaths.map((path, index) => writeIfChanged(path, processedCss[index].css)));
155
- const unusedVariables = [];
156
- for (const variable in values) {
157
- if (!usedVariables[variable]) {
158
- unusedVariables.push(variable);
159
- }
160
- }
161
- if (warning) {
162
- if (unusedVariables.length > 0) {
163
- // eslint-disable-next-line no-console
164
- console.log('Unused design tokens:');
165
- // eslint-disable-next-line no-console
166
- console.log(unusedVariables.join('\n'));
167
- }
168
- if (colorLiterals.length > 0) {
169
- // eslint-disable-next-line no-console
170
- console.log('Unexpected color literals:');
171
- for (const literal of colorLiterals) {
172
- // eslint-disable-next-line no-console
173
- console.log(`${literal.name} in ${literal.path}`);
174
- }
175
- }
176
- }
177
- const designTokensDocumentation = [];
178
- for (const token in values) {
179
- if (!basicTokens.has(token)) {
180
- const components = [...new Set((usages[token] ?? []).map(cssPath => cssPath.split('/')[2]))];
181
- components.sort((a, b) => a.localeCompare(b));
182
- designTokensDocumentation.push({
183
- name: `--${prefix}-${token}`,
184
- type: types[token],
185
- rawValue: rawValues[token],
186
- computedValue: values[token],
187
- description: descriptions[token],
188
- components
189
- });
190
- }
191
- }
192
- const baseTokensDocumentation = [];
193
- const processGroup = (group, data) => {
194
- for (const key in data) {
195
- if (data[key].value) {
196
- const token = {
197
- name: `--${group}-${key}`,
198
- value: data[key].value
199
- };
200
- if (data[key].description?.trim()) {
201
- token.description = data[key].description;
202
- }
203
- baseTokensDocumentation.push(token);
204
- } else {
205
- processGroup(`${group}-${key}`, data[key]);
206
- }
207
- }
208
- };
209
- for (const group in base) {
210
- processGroup(group, base[group]);
211
- }
212
- await writeIfChanged((0, _nodePath.resolve)(dirname, '../../../../website/docs/style/design-tokens/design-tokens.json'), JSON.stringify(designTokensDocumentation, null, 2) + '\n');
213
- await writeIfChanged((0, _nodePath.resolve)(dirname, '../../../../website/docs/style/design-tokens/base-tokens.json'), JSON.stringify(baseTokensDocumentation, null, 2) + '\n');
214
- }
215
- }
216
- const autoThemeLines = [];
217
- for (const theme in autoTheme) {
218
- const selector = theme === defaultTheme ? ':root' : `.${theme}`;
219
- autoThemeLines.push((0, _utils.tokensToCss)(autoTheme[theme], selector));
220
- }
221
- await writeIfChanged('./semcore/core/src/theme/themes/auto.css', autoThemeLines.join('\n'));
222
- (0, _nodeChild_process.execSync)('pnpm lint:css --fix', {
223
- encoding: 'utf-8',
224
- cwd: (0, _nodePath.resolve)(dirname, '../../../../'),
225
- stdio: ['inherit', 'inherit', 'inherit']
226
- });
227
- //# sourceMappingURL=processor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"processor.js","names":["_nodeChild_process","require","_promises","_interopRequireDefault","_nodePath","_nodeUrl","_fastGlob","_postcss","_postcssValueParser","_utils","writeIfChanged","path","content","originalContent","fs","readFile","replace","writeFile","exports","defaultTheme","themes","warning","process","argv","includes","dirname","resolvePath","fileURLToPath","import","meta","url","autoTheme","theme","prefix","base","tokens","featureHighlight","JSON","parse","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","node","value","valueAst","valuesParser","traverseValueAst","parent","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","toString","root","from","undefined","index","css","unusedVariables","variable","console","log","join","literal","designTokensDocumentation","token","has","components","Set","cssPath","sort","a","b","localeCompare","rawValue","computedValue","description","baseTokensDocumentation","processGroup","group","data","key","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":[]}
@@ -1,219 +0,0 @@
1
- import { execSync } from 'node:child_process';
2
- import fs from 'node:fs/promises';
3
- import { resolve as resolvePath } from 'node:path';
4
- import { fileURLToPath } from 'node:url';
5
- import glob from 'fast-glob';
6
- import postcss from 'postcss';
7
- import valuesParser from 'postcss-value-parser';
8
- import { processTokens, tokensToCss, tokensToJs } from "./utils.mjs";
9
- export const writeIfChanged = async (path, content) => {
10
- try {
11
- const originalContent = await fs.readFile(path, 'utf-8');
12
- if (originalContent.replace(/[\s\n]/g, '') === content.replace(/[\s\n]/g, '')) {
13
- return;
14
- }
15
- } catch {}
16
- await fs.writeFile(path, content);
17
- };
18
- const defaultTheme = 'light';
19
- const themes = ['light', 'dark'];
20
- const warning = !process.argv.includes('--no-warning');
21
- const dirname = resolvePath(fileURLToPath(import.meta.url), '..');
22
- const autoTheme = {};
23
- for (const theme of themes) {
24
- const prefix = 'intergalactic';
25
- const {
26
- base,
27
- tokens,
28
- featureHighlight
29
- } = JSON.parse(await fs.readFile(resolvePath(dirname, `./${theme}.json`), 'utf-8'));
30
- const processed = processTokens(base, tokens, featureHighlight, prefix);
31
- const {
32
- values,
33
- types,
34
- rawValues,
35
- descriptions,
36
- basicTokens,
37
- highlightsTokens
38
- } = processed;
39
- const {
40
- processedTokens
41
- } = processed;
42
- await writeIfChanged(`./semcore/core/src/theme/themes/${theme}.css`, tokensToCss(processedTokens));
43
- await writeIfChanged(`./semcore/core/src/theme/themes/${theme}.ts`, tokensToJs(processedTokens));
44
- if (highlightsTokens.length > 0) {
45
- await writeIfChanged(`./semcore/core/src/theme/themes/highlights-${theme}.css`, tokensToCss(highlightsTokens));
46
- await writeIfChanged(`./semcore/core/src/theme/themes/highlights-${theme}.ts`, tokensToJs(highlightsTokens));
47
- }
48
- autoTheme[theme] = processedTokens;
49
- const usages = {};
50
- if (theme === defaultTheme) {
51
- await writeIfChanged('./semcore/core/src/theme/themes/default.css', tokensToCss(processedTokens));
52
- await writeIfChanged('./semcore/core/src/theme/themes/default.ts', tokensToJs(processedTokens));
53
- const projectCssPaths = (await glob('./semcore/*/src/**/*.shadow.css', {
54
- ignore: ['node_modules', 'lib']
55
- })).filter(path => {
56
- if (path.split('/').some(pathPart => ['chart', 'email', 'table'].includes(pathPart))) {
57
- return false;
58
- }
59
- return true;
60
- });
61
- const projectCssContents = await Promise.all(projectCssPaths.map(path => fs.readFile(path, 'utf-8')));
62
- const usedVariables = {};
63
- const colorLiterals = [];
64
- const processedCss = await Promise.all(projectCssContents.map((cssContent, fileIndex) => postcss([{
65
- postcssPlugin: 'variables-explored',
66
- prepare: result => {
67
- const traverseAst = nodes => {
68
- for (const node of nodes) {
69
- if (node.nodes) {
70
- traverseAst(node.nodes);
71
- }
72
- if (node.value) {
73
- const valueAst = valuesParser(node.value);
74
- const traverseValueAst = (nodes, parent) => {
75
- for (const valueNode of nodes) {
76
- if (valueNode.nodes) traverseValueAst(valueNode.nodes, valueNode);
77
- if (valueNode.type === 'function' && valueNode.value === 'color-mod') {
78
- throw new Error(`Found restricted function color-mod in ${projectCssPaths[fileIndex]}`);
79
- }
80
- const parentIsVariable = parent?.type === 'function' && parent?.value === 'var';
81
- if (!parentIsVariable) {
82
- const prevNode = node.parent.nodes[node.parent.nodes.indexOf(node) - 1];
83
- const skipNode = prevNode?.type === 'comment' && prevNode.text.trim() === 'disable-tokens-validator';
84
- if (skipNode) continue;
85
- if (valueNode.type === 'word' && (valueNode.value.startsWith('#') || valueNode.value.startsWith('rgb'))) {
86
- const location = `${node.source.start.line}:${node.source.start.offset}`;
87
- colorLiterals.push({
88
- path: `${projectCssPaths[fileIndex]}:${location}`,
89
- name: valueNode.value
90
- });
91
- }
92
- if (valueNode.type === 'word' && valueNode.value.endsWith('px') && (node.prop.includes('padding') || node.prop.includes('margin') || node.prop.includes('radius') || node.prop.includes('font-size'))) {
93
- const location = `${node.source.start.line}:${node.source.start.offset}`;
94
- colorLiterals.push({
95
- path: `${projectCssPaths[fileIndex]}:${location}`,
96
- name: valueNode.value
97
- });
98
- }
99
- }
100
- if (valueNode.type !== 'function' || valueNode.value !== 'var') continue;
101
- const variableName = valueNode.nodes[0].value;
102
- if (!variableName.startsWith(`--${prefix}`)) {
103
- // if (legacyCssVariables[variableName] !== undefined) {
104
- // legacyCssVariables[variableName]++;
105
- // }
106
- continue;
107
- }
108
- const hasDefault = valueNode.nodes.length === 3;
109
- if (!hasDefault) {
110
- valueNode.nodes.push({
111
- type: 'div',
112
- sourceIndex: -1,
113
- value: ',',
114
- before: '',
115
- after: ' '
116
- }, {
117
- type: 'word',
118
- sourceIndex: -1,
119
- value: ''
120
- });
121
- }
122
- const withoutPrefix = variableName.substring(`--${prefix}-`.length);
123
- usedVariables[withoutPrefix] = true;
124
- if (!values[withoutPrefix]) {
125
- throw new Error(`Variable ${variableName} is used in project but not presented in design tokens list`);
126
- }
127
- valueNode.nodes[2].type = 'word';
128
- valueNode.nodes[2].value = values[withoutPrefix];
129
- valueNode.nodes[2].nodes = [];
130
- valueNode.nodes.length = 3;
131
- usages[withoutPrefix] = usages[withoutPrefix] ?? [];
132
- usages[withoutPrefix].push(projectCssPaths[fileIndex]);
133
- }
134
- };
135
- traverseValueAst(valueAst.nodes, null);
136
- node.value = valueAst.toString();
137
- }
138
- }
139
- };
140
- traverseAst(result.root.nodes);
141
- return {};
142
- }
143
- }]).process(cssContent, {
144
- from: undefined
145
- })));
146
- await Promise.all(projectCssPaths.map((path, index) => writeIfChanged(path, processedCss[index].css)));
147
- const unusedVariables = [];
148
- for (const variable in values) {
149
- if (!usedVariables[variable]) {
150
- unusedVariables.push(variable);
151
- }
152
- }
153
- if (warning) {
154
- if (unusedVariables.length > 0) {
155
- // eslint-disable-next-line no-console
156
- console.log('Unused design tokens:');
157
- // eslint-disable-next-line no-console
158
- console.log(unusedVariables.join('\n'));
159
- }
160
- if (colorLiterals.length > 0) {
161
- // eslint-disable-next-line no-console
162
- console.log('Unexpected color literals:');
163
- for (const literal of colorLiterals) {
164
- // eslint-disable-next-line no-console
165
- console.log(`${literal.name} in ${literal.path}`);
166
- }
167
- }
168
- }
169
- const designTokensDocumentation = [];
170
- for (const token in values) {
171
- if (!basicTokens.has(token)) {
172
- const components = [...new Set((usages[token] ?? []).map(cssPath => cssPath.split('/')[2]))];
173
- components.sort((a, b) => a.localeCompare(b));
174
- designTokensDocumentation.push({
175
- name: `--${prefix}-${token}`,
176
- type: types[token],
177
- rawValue: rawValues[token],
178
- computedValue: values[token],
179
- description: descriptions[token],
180
- components
181
- });
182
- }
183
- }
184
- const baseTokensDocumentation = [];
185
- const processGroup = (group, data) => {
186
- for (const key in data) {
187
- if (data[key].value) {
188
- const token = {
189
- name: `--${group}-${key}`,
190
- value: data[key].value
191
- };
192
- if (data[key].description?.trim()) {
193
- token.description = data[key].description;
194
- }
195
- baseTokensDocumentation.push(token);
196
- } else {
197
- processGroup(`${group}-${key}`, data[key]);
198
- }
199
- }
200
- };
201
- for (const group in base) {
202
- processGroup(group, base[group]);
203
- }
204
- await writeIfChanged(resolvePath(dirname, '../../../../website/docs/style/design-tokens/design-tokens.json'), JSON.stringify(designTokensDocumentation, null, 2) + '\n');
205
- await writeIfChanged(resolvePath(dirname, '../../../../website/docs/style/design-tokens/base-tokens.json'), JSON.stringify(baseTokensDocumentation, null, 2) + '\n');
206
- }
207
- }
208
- const autoThemeLines = [];
209
- for (const theme in autoTheme) {
210
- const selector = theme === defaultTheme ? ':root' : `.${theme}`;
211
- autoThemeLines.push(tokensToCss(autoTheme[theme], selector));
212
- }
213
- await writeIfChanged('./semcore/core/src/theme/themes/auto.css', autoThemeLines.join('\n'));
214
- execSync('pnpm lint:css --fix', {
215
- encoding: 'utf-8',
216
- cwd: resolvePath(dirname, '../../../../'),
217
- stdio: ['inherit', 'inherit', 'inherit']
218
- });
219
- //# sourceMappingURL=processor.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"processor.mjs","names":["execSync","fs","resolve","resolvePath","fileURLToPath","glob","postcss","valuesParser","processTokens","tokensToCss","tokensToJs","writeIfChanged","path","content","originalContent","readFile","replace","writeFile","defaultTheme","themes","warning","process","argv","includes","dirname","import","meta","url","autoTheme","theme","prefix","base","tokens","featureHighlight","JSON","parse","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","node","value","valueAst","traverseValueAst","parent","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","toString","root","from","undefined","index","css","unusedVariables","variable","console","log","join","literal","designTokensDocumentation","token","has","components","Set","cssPath","sort","a","b","localeCompare","rawValue","computedValue","description","baseTokensDocumentation","processGroup","group","data","key","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 {};