@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
|
@@ -5,16 +5,28 @@
|
|
|
5
5
|
--intergalactic-bg-primary-feature-highlight-hover-active: linear-gradient(90deg, #f9f2ff, #e9f7ff);
|
|
6
6
|
/* Secondary background for the highlighted message. */
|
|
7
7
|
--intergalactic-bg-secondary-feature-highlight: linear-gradient(90deg, #f9f2ff, #e9f7ff);
|
|
8
|
-
/*
|
|
8
|
+
/* Primary border for highlighted controls. */
|
|
9
9
|
--intergalactic-border-feature-highlight: linear-gradient(90deg, #c695ff, #2bb3ff);
|
|
10
|
-
/*
|
|
10
|
+
/* Primary border for the active state of highlighted controls. */
|
|
11
11
|
--intergalactic-border-feature-highlight-active: linear-gradient(90deg, #ab6cfe, #008ff8);
|
|
12
|
+
/* Secondary border for highlighted controls. */
|
|
13
|
+
--intergalactic-border-feature-highlight-secondary: linear-gradient(90deg, #dcb8ff, #8ecdff);
|
|
12
14
|
/* Background of the highlighted primary control. */
|
|
13
15
|
--intergalactic-control-primary-feature-highlight: linear-gradient(90deg, #ab6cfe, #008ff8);
|
|
14
16
|
/* Hover state of the highlighted primary control. */
|
|
15
17
|
--intergalactic-control-primary-feature-highlight-hover: linear-gradient(90deg, #8649e1, #006dca);
|
|
16
18
|
/* Active (selected) state of the highlighted primary control. */
|
|
17
19
|
--intergalactic-control-primary-feature-highlight-active: linear-gradient(90deg, #5925ab, #044792);
|
|
20
|
+
/* Background of the highlighted secondary control. */
|
|
21
|
+
--intergalactic-control-secondary-feature-highlight: linear-gradient(90deg, #f9f2ff, #e9f7ff);
|
|
22
|
+
/* Hover state of the highlighted secondary control. */
|
|
23
|
+
--intergalactic-control-secondary-feature-highlight-hover: linear-gradient(90deg, #f2e4ff, #d6edfe);
|
|
24
|
+
/* Active (selected) state of the highlighted secondary control. */
|
|
25
|
+
--intergalactic-control-secondary-feature-highlight-active: linear-gradient(90deg, #edd9ff, #c4e5fe);
|
|
26
|
+
/* Text for highlighted features. */
|
|
27
|
+
--intergalactic-text-feature-highlight: linear-gradient(90deg, #8649e1, #006dca);
|
|
28
|
+
/* Text for hover and active states of highlighted features. */
|
|
29
|
+
--intergalactic-text-feature-highlight-hover-active: linear-gradient(90deg, #421983, #002b5f);
|
|
18
30
|
/* Primary highlighted icon. */
|
|
19
31
|
--intergalactic-icon-primary-feature-highlight: #8649e1;
|
|
20
32
|
/* Violet background color for the hover and active states of the primary highlighted icon. It’s created using a CSS filter with a brightness(0.8), applied to the violet-500 color. */
|
|
@@ -4,9 +4,15 @@ declare const _default: {
|
|
|
4
4
|
'--intergalactic-bg-secondary-feature-highlight': string;
|
|
5
5
|
'--intergalactic-border-feature-highlight': string;
|
|
6
6
|
'--intergalactic-border-feature-highlight-active': string;
|
|
7
|
+
'--intergalactic-border-feature-highlight-secondary': string;
|
|
7
8
|
'--intergalactic-control-primary-feature-highlight': string;
|
|
8
9
|
'--intergalactic-control-primary-feature-highlight-hover': string;
|
|
9
10
|
'--intergalactic-control-primary-feature-highlight-active': string;
|
|
11
|
+
'--intergalactic-control-secondary-feature-highlight': string;
|
|
12
|
+
'--intergalactic-control-secondary-feature-highlight-hover': string;
|
|
13
|
+
'--intergalactic-control-secondary-feature-highlight-active': string;
|
|
14
|
+
'--intergalactic-text-feature-highlight': string;
|
|
15
|
+
'--intergalactic-text-feature-highlight-hover-active': string;
|
|
10
16
|
'--intergalactic-icon-primary-feature-highlight': string;
|
|
11
17
|
'--intergalactic-icon-primary-feature-highlight-hover-active': string;
|
|
12
18
|
'--intergalactic-keyboard-focus-feature-highlight-outline': string;
|
|
@@ -10,9 +10,15 @@ var _default = exports["default"] = {
|
|
|
10
10
|
'--intergalactic-bg-secondary-feature-highlight': 'linear-gradient(90deg, #f9f2ff, #e9f7ff)',
|
|
11
11
|
'--intergalactic-border-feature-highlight': 'linear-gradient(90deg, #c695ff, #2bb3ff)',
|
|
12
12
|
'--intergalactic-border-feature-highlight-active': 'linear-gradient(90deg, #ab6cfe, #008ff8)',
|
|
13
|
+
'--intergalactic-border-feature-highlight-secondary': 'linear-gradient(90deg, #dcb8ff, #8ecdff)',
|
|
13
14
|
'--intergalactic-control-primary-feature-highlight': 'linear-gradient(90deg, #ab6cfe, #008ff8)',
|
|
14
15
|
'--intergalactic-control-primary-feature-highlight-hover': 'linear-gradient(90deg, #8649e1, #006dca)',
|
|
15
16
|
'--intergalactic-control-primary-feature-highlight-active': 'linear-gradient(90deg, #5925ab, #044792)',
|
|
17
|
+
'--intergalactic-control-secondary-feature-highlight': 'linear-gradient(90deg, #f9f2ff, #e9f7ff)',
|
|
18
|
+
'--intergalactic-control-secondary-feature-highlight-hover': 'linear-gradient(90deg, #f2e4ff, #d6edfe)',
|
|
19
|
+
'--intergalactic-control-secondary-feature-highlight-active': 'linear-gradient(90deg, #edd9ff, #c4e5fe)',
|
|
20
|
+
'--intergalactic-text-feature-highlight': 'linear-gradient(90deg, #8649e1, #006dca)',
|
|
21
|
+
'--intergalactic-text-feature-highlight-hover-active': 'linear-gradient(90deg, #421983, #002b5f)',
|
|
16
22
|
'--intergalactic-icon-primary-feature-highlight': '#8649e1',
|
|
17
23
|
'--intergalactic-icon-primary-feature-highlight-hover-active': '#6B3AB4',
|
|
18
24
|
'--intergalactic-keyboard-focus-feature-highlight-outline': 'linear-gradient(90deg, rgba(171, 108, 254, 0.5), rgba(0, 143, 248, 0.5))'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highlights-light.js","names":[],"sources":["../../../src/theme/themes/highlights-light.ts"],"sourcesContent":["export default {\n '--intergalactic-bg-primary-feature-highlight': '#ffffff',\n '--intergalactic-bg-primary-feature-highlight-hover-active': 'linear-gradient(90deg, #f9f2ff, #e9f7ff)',\n '--intergalactic-bg-secondary-feature-highlight': 'linear-gradient(90deg, #f9f2ff, #e9f7ff)',\n '--intergalactic-border-feature-highlight': 'linear-gradient(90deg, #c695ff, #2bb3ff)',\n '--intergalactic-border-feature-highlight-active': 'linear-gradient(90deg, #ab6cfe, #008ff8)',\n '--intergalactic-control-primary-feature-highlight': 'linear-gradient(90deg, #ab6cfe, #008ff8)',\n '--intergalactic-control-primary-feature-highlight-hover': 'linear-gradient(90deg, #8649e1, #006dca)',\n '--intergalactic-control-primary-feature-highlight-active': 'linear-gradient(90deg, #5925ab, #044792)',\n '--intergalactic-icon-primary-feature-highlight': '#8649e1',\n '--intergalactic-icon-primary-feature-highlight-hover-active': '#6B3AB4',\n '--intergalactic-keyboard-focus-feature-highlight-outline': 'linear-gradient(90deg, rgba(171, 108, 254, 0.5), rgba(0, 143, 248, 0.5))',\n};\n"],"mappings":";;;;;;oCAAe;EACb,8CAA8C,EAAE,SAAS;EACzD,2DAA2D,EAAE,0CAA0C;EACvG,gDAAgD,EAAE,0CAA0C;EAC5F,0CAA0C,EAAE,0CAA0C;EACtF,iDAAiD,EAAE,0CAA0C;EAC7F,mDAAmD,EAAE,0CAA0C;EAC/F,yDAAyD,EAAE,0CAA0C;EACrG,0DAA0D,EAAE,0CAA0C;EACtG,gDAAgD,EAAE,SAAS;EAC3D,6DAA6D,EAAE,SAAS;EACxE,0DAA0D,EAAE;AAC9D,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"highlights-light.js","names":[],"sources":["../../../src/theme/themes/highlights-light.ts"],"sourcesContent":["export default {\n '--intergalactic-bg-primary-feature-highlight': '#ffffff',\n '--intergalactic-bg-primary-feature-highlight-hover-active': 'linear-gradient(90deg, #f9f2ff, #e9f7ff)',\n '--intergalactic-bg-secondary-feature-highlight': 'linear-gradient(90deg, #f9f2ff, #e9f7ff)',\n '--intergalactic-border-feature-highlight': 'linear-gradient(90deg, #c695ff, #2bb3ff)',\n '--intergalactic-border-feature-highlight-active': 'linear-gradient(90deg, #ab6cfe, #008ff8)',\n '--intergalactic-border-feature-highlight-secondary': 'linear-gradient(90deg, #dcb8ff, #8ecdff)',\n '--intergalactic-control-primary-feature-highlight': 'linear-gradient(90deg, #ab6cfe, #008ff8)',\n '--intergalactic-control-primary-feature-highlight-hover': 'linear-gradient(90deg, #8649e1, #006dca)',\n '--intergalactic-control-primary-feature-highlight-active': 'linear-gradient(90deg, #5925ab, #044792)',\n '--intergalactic-control-secondary-feature-highlight': 'linear-gradient(90deg, #f9f2ff, #e9f7ff)',\n '--intergalactic-control-secondary-feature-highlight-hover': 'linear-gradient(90deg, #f2e4ff, #d6edfe)',\n '--intergalactic-control-secondary-feature-highlight-active': 'linear-gradient(90deg, #edd9ff, #c4e5fe)',\n '--intergalactic-text-feature-highlight': 'linear-gradient(90deg, #8649e1, #006dca)',\n '--intergalactic-text-feature-highlight-hover-active': 'linear-gradient(90deg, #421983, #002b5f)',\n '--intergalactic-icon-primary-feature-highlight': '#8649e1',\n '--intergalactic-icon-primary-feature-highlight-hover-active': '#6B3AB4',\n '--intergalactic-keyboard-focus-feature-highlight-outline': 'linear-gradient(90deg, rgba(171, 108, 254, 0.5), rgba(0, 143, 248, 0.5))',\n};\n"],"mappings":";;;;;;oCAAe;EACb,8CAA8C,EAAE,SAAS;EACzD,2DAA2D,EAAE,0CAA0C;EACvG,gDAAgD,EAAE,0CAA0C;EAC5F,0CAA0C,EAAE,0CAA0C;EACtF,iDAAiD,EAAE,0CAA0C;EAC7F,oDAAoD,EAAE,0CAA0C;EAChG,mDAAmD,EAAE,0CAA0C;EAC/F,yDAAyD,EAAE,0CAA0C;EACrG,0DAA0D,EAAE,0CAA0C;EACtG,qDAAqD,EAAE,0CAA0C;EACjG,2DAA2D,EAAE,0CAA0C;EACvG,4DAA4D,EAAE,0CAA0C;EACxG,wCAAwC,EAAE,0CAA0C;EACpF,qDAAqD,EAAE,0CAA0C;EACjG,gDAAgD,EAAE,SAAS;EAC3D,6DAA6D,EAAE,SAAS;EACxE,0DAA0D,EAAE;AAC9D,CAAC","ignoreList":[]}
|
|
@@ -4,9 +4,15 @@ export default {
|
|
|
4
4
|
'--intergalactic-bg-secondary-feature-highlight': 'linear-gradient(90deg, #f9f2ff, #e9f7ff)',
|
|
5
5
|
'--intergalactic-border-feature-highlight': 'linear-gradient(90deg, #c695ff, #2bb3ff)',
|
|
6
6
|
'--intergalactic-border-feature-highlight-active': 'linear-gradient(90deg, #ab6cfe, #008ff8)',
|
|
7
|
+
'--intergalactic-border-feature-highlight-secondary': 'linear-gradient(90deg, #dcb8ff, #8ecdff)',
|
|
7
8
|
'--intergalactic-control-primary-feature-highlight': 'linear-gradient(90deg, #ab6cfe, #008ff8)',
|
|
8
9
|
'--intergalactic-control-primary-feature-highlight-hover': 'linear-gradient(90deg, #8649e1, #006dca)',
|
|
9
10
|
'--intergalactic-control-primary-feature-highlight-active': 'linear-gradient(90deg, #5925ab, #044792)',
|
|
11
|
+
'--intergalactic-control-secondary-feature-highlight': 'linear-gradient(90deg, #f9f2ff, #e9f7ff)',
|
|
12
|
+
'--intergalactic-control-secondary-feature-highlight-hover': 'linear-gradient(90deg, #f2e4ff, #d6edfe)',
|
|
13
|
+
'--intergalactic-control-secondary-feature-highlight-active': 'linear-gradient(90deg, #edd9ff, #c4e5fe)',
|
|
14
|
+
'--intergalactic-text-feature-highlight': 'linear-gradient(90deg, #8649e1, #006dca)',
|
|
15
|
+
'--intergalactic-text-feature-highlight-hover-active': 'linear-gradient(90deg, #421983, #002b5f)',
|
|
10
16
|
'--intergalactic-icon-primary-feature-highlight': '#8649e1',
|
|
11
17
|
'--intergalactic-icon-primary-feature-highlight-hover-active': '#6B3AB4',
|
|
12
18
|
'--intergalactic-keyboard-focus-feature-highlight-outline': 'linear-gradient(90deg, rgba(171, 108, 254, 0.5), rgba(0, 143, 248, 0.5))'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highlights-light.mjs","names":[],"sources":["../../../src/theme/themes/highlights-light.ts"],"sourcesContent":["export default {\n '--intergalactic-bg-primary-feature-highlight': '#ffffff',\n '--intergalactic-bg-primary-feature-highlight-hover-active': 'linear-gradient(90deg, #f9f2ff, #e9f7ff)',\n '--intergalactic-bg-secondary-feature-highlight': 'linear-gradient(90deg, #f9f2ff, #e9f7ff)',\n '--intergalactic-border-feature-highlight': 'linear-gradient(90deg, #c695ff, #2bb3ff)',\n '--intergalactic-border-feature-highlight-active': 'linear-gradient(90deg, #ab6cfe, #008ff8)',\n '--intergalactic-control-primary-feature-highlight': 'linear-gradient(90deg, #ab6cfe, #008ff8)',\n '--intergalactic-control-primary-feature-highlight-hover': 'linear-gradient(90deg, #8649e1, #006dca)',\n '--intergalactic-control-primary-feature-highlight-active': 'linear-gradient(90deg, #5925ab, #044792)',\n '--intergalactic-icon-primary-feature-highlight': '#8649e1',\n '--intergalactic-icon-primary-feature-highlight-hover-active': '#6B3AB4',\n '--intergalactic-keyboard-focus-feature-highlight-outline': 'linear-gradient(90deg, rgba(171, 108, 254, 0.5), rgba(0, 143, 248, 0.5))',\n};\n"],"mappings":"AAAA,eAAe;EACb,8CAA8C,EAAE,SAAS;EACzD,2DAA2D,EAAE,0CAA0C;EACvG,gDAAgD,EAAE,0CAA0C;EAC5F,0CAA0C,EAAE,0CAA0C;EACtF,iDAAiD,EAAE,0CAA0C;EAC7F,mDAAmD,EAAE,0CAA0C;EAC/F,yDAAyD,EAAE,0CAA0C;EACrG,0DAA0D,EAAE,0CAA0C;EACtG,gDAAgD,EAAE,SAAS;EAC3D,6DAA6D,EAAE,SAAS;EACxE,0DAA0D,EAAE;AAC9D,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"highlights-light.mjs","names":[],"sources":["../../../src/theme/themes/highlights-light.ts"],"sourcesContent":["export default {\n '--intergalactic-bg-primary-feature-highlight': '#ffffff',\n '--intergalactic-bg-primary-feature-highlight-hover-active': 'linear-gradient(90deg, #f9f2ff, #e9f7ff)',\n '--intergalactic-bg-secondary-feature-highlight': 'linear-gradient(90deg, #f9f2ff, #e9f7ff)',\n '--intergalactic-border-feature-highlight': 'linear-gradient(90deg, #c695ff, #2bb3ff)',\n '--intergalactic-border-feature-highlight-active': 'linear-gradient(90deg, #ab6cfe, #008ff8)',\n '--intergalactic-border-feature-highlight-secondary': 'linear-gradient(90deg, #dcb8ff, #8ecdff)',\n '--intergalactic-control-primary-feature-highlight': 'linear-gradient(90deg, #ab6cfe, #008ff8)',\n '--intergalactic-control-primary-feature-highlight-hover': 'linear-gradient(90deg, #8649e1, #006dca)',\n '--intergalactic-control-primary-feature-highlight-active': 'linear-gradient(90deg, #5925ab, #044792)',\n '--intergalactic-control-secondary-feature-highlight': 'linear-gradient(90deg, #f9f2ff, #e9f7ff)',\n '--intergalactic-control-secondary-feature-highlight-hover': 'linear-gradient(90deg, #f2e4ff, #d6edfe)',\n '--intergalactic-control-secondary-feature-highlight-active': 'linear-gradient(90deg, #edd9ff, #c4e5fe)',\n '--intergalactic-text-feature-highlight': 'linear-gradient(90deg, #8649e1, #006dca)',\n '--intergalactic-text-feature-highlight-hover-active': 'linear-gradient(90deg, #421983, #002b5f)',\n '--intergalactic-icon-primary-feature-highlight': '#8649e1',\n '--intergalactic-icon-primary-feature-highlight-hover-active': '#6B3AB4',\n '--intergalactic-keyboard-focus-feature-highlight-outline': 'linear-gradient(90deg, rgba(171, 108, 254, 0.5), rgba(0, 143, 248, 0.5))',\n};\n"],"mappings":"AAAA,eAAe;EACb,8CAA8C,EAAE,SAAS;EACzD,2DAA2D,EAAE,0CAA0C;EACvG,gDAAgD,EAAE,0CAA0C;EAC5F,0CAA0C,EAAE,0CAA0C;EACtF,iDAAiD,EAAE,0CAA0C;EAC7F,oDAAoD,EAAE,0CAA0C;EAChG,mDAAmD,EAAE,0CAA0C;EAC/F,yDAAyD,EAAE,0CAA0C;EACrG,0DAA0D,EAAE,0CAA0C;EACtG,qDAAqD,EAAE,0CAA0C;EACjG,2DAA2D,EAAE,0CAA0C;EACvG,4DAA4D,EAAE,0CAA0C;EACxG,wCAAwC,EAAE,0CAA0C;EACpF,qDAAqD,EAAE,0CAA0C;EACjG,gDAAgD,EAAE,SAAS;EAC3D,6DAA6D,EAAE,SAAS;EACxE,0DAA0D,EAAE;AAC9D,CAAC","ignoreList":[]}
|
package/lib/theme/utils.js
CHANGED
|
@@ -178,32 +178,51 @@ var processTokens = exports.processTokens = function processTokens(base, tokens,
|
|
|
178
178
|
_step;
|
|
179
179
|
try {
|
|
180
180
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
181
|
+
var _values$token$match;
|
|
181
182
|
var modification = _step.value;
|
|
182
|
-
// refer to https://docs.tokens.studio/tokens/color-modifiers and https://github.com/tokens-studio/figma-plugin/tree/main/src/utils/color if
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
183
|
+
// refer to https://docs.tokens.studio/tokens/color-modifiers and https://github.com/tokens-studio/figma-plugin/tree/main/src/utils/color if extension is needed
|
|
184
|
+
|
|
185
|
+
rawValues[token] = "".concat(rawValues[token], " / ").concat(modification.type, "(").concat(modification.value, ") / ").concat(modification.space);
|
|
186
|
+
|
|
187
|
+
// array + regex to process gradients with several colors
|
|
188
|
+
var colorRegex = /(#[0-9a-f]{6}|rgba\([0-9., ]+\))/gi;
|
|
189
|
+
var colors = (_values$token$match = values[token].match(colorRegex)) !== null && _values$token$match !== void 0 ? _values$token$match : [];
|
|
190
|
+
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(colors),
|
|
191
|
+
_step2;
|
|
192
|
+
try {
|
|
193
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
194
|
+
var originalColor = _step2.value;
|
|
195
|
+
var color = new Color(originalColor);
|
|
196
|
+
if (modification.space === 'hsl') {
|
|
197
|
+
if (modification.type === 'lighten') {
|
|
198
|
+
var lightness = color.hsl.l;
|
|
199
|
+
var difference = 100 - lightness;
|
|
200
|
+
color.set('hsl.l', Math.min(100, lightness + difference * modification.value));
|
|
201
|
+
} else {
|
|
202
|
+
throw new Error("Unsupported color modification ".concat(modification.type, " of token ").concat(token));
|
|
203
|
+
}
|
|
204
|
+
} else {
|
|
205
|
+
throw new Error("Unsupported color space ".concat(modification.space, " of token ").concat(token));
|
|
206
|
+
}
|
|
207
|
+
color = color.to('sRGB');
|
|
208
|
+
var modifiedColor = '';
|
|
209
|
+
if (color.alpha !== 1) {
|
|
210
|
+
var r = Math.round(color.r * 255);
|
|
211
|
+
var g = Math.round(color.g * 255);
|
|
212
|
+
var b = Math.round(color.b * 255);
|
|
213
|
+
var a = color.alpha;
|
|
214
|
+
modifiedColor = "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(a, ")");
|
|
215
|
+
} else {
|
|
216
|
+
modifiedColor = color.toString({
|
|
217
|
+
format: 'hex'
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
values[token] = values[token].replace(originalColor, modifiedColor);
|
|
192
221
|
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
if (color.alpha !== 1) {
|
|
198
|
-
var r = Math.round(color.r * 255);
|
|
199
|
-
var g = Math.round(color.g * 255);
|
|
200
|
-
var b = Math.round(color.b * 255);
|
|
201
|
-
var a = color.alpha;
|
|
202
|
-
values[token] = "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(a, ")");
|
|
203
|
-
} else {
|
|
204
|
-
values[token] = color.toString({
|
|
205
|
-
format: 'hex'
|
|
206
|
-
});
|
|
222
|
+
} catch (err) {
|
|
223
|
+
_iterator2.e(err);
|
|
224
|
+
} finally {
|
|
225
|
+
_iterator2.f();
|
|
207
226
|
}
|
|
208
227
|
}
|
|
209
228
|
} catch (err) {
|
|
@@ -236,52 +255,52 @@ var tokensToCss = exports.tokensToCss = function tokensToCss(tokens) {
|
|
|
236
255
|
var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ':root';
|
|
237
256
|
var cssLines = [];
|
|
238
257
|
cssLines.push("".concat(selector, " {"));
|
|
239
|
-
var
|
|
240
|
-
|
|
258
|
+
var _iterator3 = (0, _createForOfIteratorHelper2["default"])(tokens),
|
|
259
|
+
_step3;
|
|
241
260
|
try {
|
|
242
|
-
for (
|
|
243
|
-
var token =
|
|
261
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
262
|
+
var token = _step3.value;
|
|
244
263
|
if (token.description) cssLines.push(" /* ".concat(token.description, " */"));
|
|
245
264
|
cssLines.push(" ".concat(token.name, ": ").concat(token.value, ";"));
|
|
246
265
|
}
|
|
247
266
|
} catch (err) {
|
|
248
|
-
|
|
267
|
+
_iterator3.e(err);
|
|
249
268
|
} finally {
|
|
250
|
-
|
|
269
|
+
_iterator3.f();
|
|
251
270
|
}
|
|
252
271
|
cssLines.push('}');
|
|
253
272
|
return cssLines.join('\n');
|
|
254
273
|
};
|
|
255
274
|
var tokensToJson = exports.tokensToJson = function tokensToJson(tokens) {
|
|
256
275
|
var themeFile = {};
|
|
257
|
-
var
|
|
258
|
-
|
|
276
|
+
var _iterator4 = (0, _createForOfIteratorHelper2["default"])(tokens),
|
|
277
|
+
_step4;
|
|
259
278
|
try {
|
|
260
|
-
for (
|
|
261
|
-
var token =
|
|
279
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
280
|
+
var token = _step4.value;
|
|
262
281
|
themeFile[token.name] = token.value;
|
|
263
282
|
}
|
|
264
283
|
} catch (err) {
|
|
265
|
-
|
|
284
|
+
_iterator4.e(err);
|
|
266
285
|
} finally {
|
|
267
|
-
|
|
286
|
+
_iterator4.f();
|
|
268
287
|
}
|
|
269
288
|
return JSON.stringify(themeFile, null, 2) + '\n';
|
|
270
289
|
};
|
|
271
290
|
var tokensToJs = exports.tokensToJs = function tokensToJs(tokens) {
|
|
272
291
|
var jsLines = [];
|
|
273
292
|
jsLines.push('export default {');
|
|
274
|
-
var
|
|
275
|
-
|
|
293
|
+
var _iterator5 = (0, _createForOfIteratorHelper2["default"])(tokens),
|
|
294
|
+
_step5;
|
|
276
295
|
try {
|
|
277
|
-
for (
|
|
278
|
-
var token =
|
|
296
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
297
|
+
var token = _step5.value;
|
|
279
298
|
jsLines.push(" '".concat(token.name, "': '").concat(token.value, "',"));
|
|
280
299
|
}
|
|
281
300
|
} catch (err) {
|
|
282
|
-
|
|
301
|
+
_iterator5.e(err);
|
|
283
302
|
} finally {
|
|
284
|
-
|
|
303
|
+
_iterator5.f();
|
|
285
304
|
}
|
|
286
305
|
jsLines.push('};\n');
|
|
287
306
|
return jsLines.join('\n');
|
|
@@ -289,18 +308,18 @@ var tokensToJs = exports.tokensToJs = function tokensToJs(tokens) {
|
|
|
289
308
|
var getByPath = function getByPath(obj, path) {
|
|
290
309
|
var parts = path.split('.');
|
|
291
310
|
var result = obj;
|
|
292
|
-
var
|
|
293
|
-
|
|
311
|
+
var _iterator6 = (0, _createForOfIteratorHelper2["default"])(parts),
|
|
312
|
+
_step6;
|
|
294
313
|
try {
|
|
295
|
-
for (
|
|
314
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
296
315
|
var _result;
|
|
297
|
-
var part =
|
|
316
|
+
var part = _step6.value;
|
|
298
317
|
result = (_result = result) === null || _result === void 0 ? void 0 : _result[part];
|
|
299
318
|
}
|
|
300
319
|
} catch (err) {
|
|
301
|
-
|
|
320
|
+
_iterator6.e(err);
|
|
302
321
|
} finally {
|
|
303
|
-
|
|
322
|
+
_iterator6.f();
|
|
304
323
|
}
|
|
305
324
|
return result;
|
|
306
325
|
};
|
package/lib/theme/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["_colorjs","_interopRequireDefault","require","Color","ColorJS","processTokens","exports","base","tokens","featureHighlight","prefix","values","basicTokens","Set","highlightTokens","modifications","types","descriptions","mixins","traverse","node","pathParts","arguments","length","undefined","setToAdd","key","concat","_toConsumableArray2","type","path","join","_typeof2","value","push","Error","add","description","$extensions","extension","_modifications$path","modify","resolveColor","color","includes","replaceColors","replace","startsWith","endsWith","lastComa","lastIndexOf","alpha","Number","parseFloat","substring","isNaN","resolvedColor","map","hex","parseInt","split","baseColor","_map","chunk","_map2","_slicedToArray2","r","g","b","a","_getByPath$value","_getByPath","getByPath","_getByPath$value2","_getByPath2","resolveToken","token","_token$split","_token$split2","factor","resolvedValue","reference","indexOf","resolvedToken","str","result","i","start","rawValues","_objectSpread2","_modifications$token","_iterator","_createForOfIteratorHelper2","_step","s","n","done","modification","space","lightness","hsl","l","difference","set","Math","min","to","round","toString","format","err","e","f","processedTokens","highlightsTokens","isBase","has","name","tokensToCss","selector","cssLines","_iterator2","_step2","tokensToJson","themeFile","_iterator3","_step3","JSON","stringify","tokensToJs","jsLines","_iterator4","_step4","obj","parts","_iterator5","_step5","_result","part"],"sources":["../../src/theme/utils.ts"],"sourcesContent":["import ColorJS from 'colorjs.io';\nconst Color = ColorJS as any;\n\ntype ExtensionsInput = {\n 'studio.tokens': {\n modify: {\n type: string;\n value: number;\n space: string;\n };\n };\n};\n\ntype TokensInput = {\n [nestedKey: string]:\n | TokensInput\n | {\n value: string;\n type: string;\n description: string;\n $extensions?: ExtensionsInput;\n };\n};\n\nexport const processTokens = (base: TokensInput, tokens: TokensInput, featureHighlight: TokensInput, prefix: string) => {\n const values: { [tokenName: string]: string } = {};\n const basicTokens = new Set<string>();\n const highlightTokens = new Set<string>();\n const modifications: {\n [tokenName: string]: {\n type: 'lighten' | 'darken' | 'alpha';\n value: number;\n space: 'lch' | 'srgb' | 'p3' | 'hsl';\n }[];\n } = {};\n const types: { [tokenName: string]: string } = {};\n const descriptions: { [tokenName: string]: string } = {};\n const mixins: string[] = [];\n type ColorPattern =\n | `{${string}.${string}}`\n | `{${string}.${string}}, ${number}`\n | `#${string}`\n | `{${string}.${string}}, ${number}`;\n type DesignTokenNode =\n | {\n type: string;\n value:\n | string\n | { [subTokens: string]: `{${string}}` }\n | ColorPattern\n | `{${string}}`\n | `{${string}*${number}}`\n | `${ColorPattern}; ${ColorPattern}`;\n\n description?: string;\n $extensions?: ExtensionsInput;\n }\n | DesignTokenTree;\n type DesignTokenTree = { [childrenNodeName: string]: DesignTokenNode };\n const traverse = (node: DesignTokenNode, pathParts: string[] = [], setToAdd?: Set<string>) => {\n for (const key in node) {\n if (key === 'type') continue;\n if (key === 'value') continue;\n if (key === 'description') continue;\n if (key === '$extensions') continue;\n traverse((node as any)[key], [...pathParts, key], setToAdd);\n }\n if ('type' in node && typeof node.type === 'string') {\n const path = pathParts.join('-');\n types[path] = node.type;\n if (typeof node.value === 'object') {\n mixins.push(path);\n return;\n }\n if (values[path]) {\n throw new Error(`Duplicated design token \"${path}\"`);\n }\n values[path] = node.value;\n setToAdd?.add(path);\n\n if (typeof node.description === 'string') descriptions[path] = node.description;\n if (node.$extensions) {\n for (const extension in node.$extensions) {\n if (extension === 'studio.tokens') {\n modifications[path] ??= [];\n modifications[path].push((node.$extensions as any)['studio.tokens'].modify);\n } else {\n throw new Error(`Unsupported extension \"${extension}\" for design token \"${path}\"`);\n }\n }\n }\n }\n };\n\n traverse(base, [], basicTokens);\n traverse(tokens);\n traverse(featureHighlight, [], highlightTokens);\n\n const resolveColor = (color: string): string => {\n if (color.includes('linear-gradient')) {\n if (color.includes('rgba')) {\n return replaceColors(color);\n } else {\n return color.replace(/\\{[a-z0-9.]+\\}/g, resolveColor);\n }\n }\n if (color.startsWith('rgba(') && color.endsWith(')')) {\n const lastComa = color.lastIndexOf(',');\n const alpha = Number.parseFloat(color.substring(lastComa + 1, color.length - 1));\n if (Number.isNaN(alpha)) {\n throw new Error(`Unable to parse rgba of ${color}`);\n }\n let resolvedColor = color.substring('rgba('.length, lastComa);\n if (resolvedColor.startsWith('{')) resolvedColor = resolveColor(resolvedColor);\n if (resolvedColor.startsWith('$')) resolvedColor = resolveColor(resolvedColor);\n if (resolvedColor.startsWith('#')) {\n if (resolvedColor.length === 1 + 3) {\n resolvedColor = [resolvedColor[1], resolvedColor[2], resolvedColor[3]]\n .map((hex) => Number.parseInt(hex, 16))\n .join(', ');\n } else if (resolvedColor.length === 1 + 6) {\n resolvedColor = [\n resolvedColor.substring(1, 3),\n resolvedColor.substring(3, 5),\n resolvedColor.substring(5, 7),\n ]\n .map((hex) => Number.parseInt(hex, 16))\n .join(', ');\n } else {\n throw new Error(\n `Unable to convert hex ${resolveColor} to rgb list of colors (processing ${color})`,\n );\n }\n }\n\n if (!resolvedColor || resolvedColor.split(',').length !== 3) {\n throw new Error(`Unable to produce rgba of ${color} (input format is not supported yet)`);\n }\n\n return `rgba(${resolvedColor}, ${alpha})`;\n }\n if (color.split(', ').length === 2) {\n const baseColor = resolveColor(color.split(', ')[0]);\n const [r, g, b] = (\n baseColor.length === 4\n ? [baseColor[1], baseColor[2], baseColor[3]]\n : [baseColor.substring(1, 3), baseColor.substring(3, 5), baseColor.substring(5, 7)]\n ).map((chunk) => Number.parseInt(chunk, 16));\n const a = Number.parseFloat(color.split(', ')[1]);\n\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n }\n if (color.startsWith('{') && color.split('.').length > 0 && color.endsWith('}')) {\n const path = color.substring(1, color.length - 1);\n const resolvedColor =\n getByPath(base as any, path)?.value ?? values[path.split('.').join('-')];\n if (!resolvedColor) {\n throw new Error(`Color ${color} was not found in base palette`);\n }\n return resolvedColor;\n }\n if (color.startsWith('$') && color.split('.').length > 0) {\n const path = color.substring(1);\n const resolvedColor =\n getByPath(base as any, path)?.value ?? values[path.split('.').join('-')];\n if (!resolvedColor) {\n throw new Error(`Color ${color} was not found`);\n }\n return resolvedColor;\n }\n if (color.startsWith('#')) {\n return color;\n }\n throw new Error(`Unable to process color ${color}`);\n };\n const resolveToken = (token: string): string => {\n if (token.includes('*')) {\n const [value, factor] = token.split('*');\n const resolvedValue = resolveToken(value);\n if (!resolvedValue.endsWith('px')) {\n throw new Error(`Unsupported expression ${token}`);\n }\n return `${Number.parseFloat(resolvedValue) * Number.parseFloat(factor)}px`;\n } else if (token.includes('{') && token.includes('}')) {\n const reference = token\n .substring(token.indexOf('{') + 1, token.indexOf('}'))\n .replace(/\\./g, '-');\n const resolvedToken =\n token.substring(0, token.indexOf('{')) +\n values[reference] +\n token.substring(token.indexOf('}') + 1);\n if (!resolvedToken || resolvedToken.includes('{')) {\n throw new Error(`On moment of resolving ${token}, ${resolvedToken} was not resolved yet`);\n }\n return resolvedToken;\n } else {\n return token;\n }\n };\n const replaceColors = (str: string) => {\n let result = '';\n for (let i = 0; i < str.length; i++) {\n if (str.substring(i, i + 'rgba('.length) === 'rgba(') {\n const start = i;\n while (str[i] !== undefined && str[i] !== ')') i++;\n result += resolveColor(str.substring(start, i + 1));\n } else {\n result += str[i];\n }\n }\n\n return result;\n };\n\n const rawValues = { ...values };\n\n for (const token in values) {\n if (types[token] === 'color') {\n values[token] = resolveColor(values[token]);\n } else if (types[token] === 'boxShadow') {\n values[token] = resolveToken(values[token].split('; ').map(replaceColors).join(', '));\n } else if (\n types[token] === 'sizing' ||\n types[token] === 'spacing' ||\n types[token] === 'borderRadius' ||\n types[token] === 'other'\n ) {\n values[token] = resolveToken(values[token]);\n }\n for (const modification of modifications[token] ?? []) {\n // refer to https://docs.tokens.studio/tokens/color-modifiers and https://github.com/tokens-studio/figma-plugin/tree/main/src/utils/color if extention is needed\n let color = new Color(values[token]);\n\n if (modification.space === 'hsl') {\n if (modification.type === 'lighten') {\n const lightness = color.hsl.l;\n const difference = 100 - lightness;\n color.set('hsl.l', Math.min(100, lightness + difference * modification.value));\n rawValues[token] = `${rawValues[token]} / lighten(${modification.value}) / hsl`;\n } else {\n throw new Error(`Unsupported color modification ${modification.type} of token ${token}`);\n }\n } else {\n throw new Error(`Unsupported color space ${modification.space} of token ${token}`);\n }\n\n color = color.to('sRGB');\n\n if (color.alpha !== 1) {\n const r = Math.round(color.r * 255);\n const g = Math.round(color.g * 255);\n const b = Math.round(color.b * 255);\n const a = color.alpha;\n values[token] = `rgba(${r}, ${g}, ${b}, ${a})`;\n } else {\n values[token] = color.toString({ format: 'hex' });\n }\n }\n }\n\n const processedTokens: { name: string; value: string; description: string }[] = [];\n const highlightsTokens: { name: string; value: string; description: string }[] = [];\n\n for (const token in values) {\n const isBase = basicTokens.has(token);\n (highlightTokens.has(token) ? highlightsTokens : processedTokens).push({\n name: isBase ? `--${token}` : `--${prefix}-${token}`,\n description: descriptions[token],\n value: values[token],\n });\n }\n\n return { processedTokens, highlightsTokens, values, types, rawValues, descriptions, basicTokens };\n};\n\nexport const tokensToCss = (\n tokens: { name: string; value: string; description: string }[],\n selector = ':root',\n) => {\n const cssLines: string[] = [];\n cssLines.push(`${selector} {`);\n for (const token of tokens) {\n if (token.description) cssLines.push(` /* ${token.description} */`);\n cssLines.push(` ${token.name}: ${token.value};`);\n }\n cssLines.push('}');\n return cssLines.join('\\n');\n};\nexport const tokensToJson = (tokens: { name: string; value: string; description: string }[]) => {\n const themeFile: Record<string, string> = {};\n for (const token of tokens) {\n themeFile[token.name] = token.value;\n }\n return JSON.stringify(themeFile, null, 2) + '\\n';\n};\nexport const tokensToJs = (tokens: { name: string; value: string; description: string }[]) => {\n const jsLines: string[] = [];\n jsLines.push('export default {');\n for (const token of tokens) {\n jsLines.push(` '${token.name}': '${token.value}',`);\n }\n jsLines.push('};\\n');\n return jsLines.join('\\n');\n};\n\nconst getByPath = (obj: any, path: string) => {\n const parts = path.split('.');\n let result = obj;\n for (const part of parts) {\n result = result?.[part];\n }\n return result;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_colorjs","_interopRequireDefault","require","Color","ColorJS","processTokens","exports","base","tokens","featureHighlight","prefix","values","basicTokens","Set","highlightTokens","modifications","types","descriptions","mixins","traverse","node","pathParts","arguments","length","undefined","setToAdd","key","concat","_toConsumableArray2","type","path","join","_typeof2","value","push","Error","add","description","$extensions","extension","_modifications$path","modify","resolveColor","color","includes","replaceColors","replace","startsWith","endsWith","lastComa","lastIndexOf","alpha","Number","parseFloat","substring","isNaN","resolvedColor","map","hex","parseInt","split","baseColor","_map","chunk","_map2","_slicedToArray2","r","g","b","a","_getByPath$value","_getByPath","getByPath","_getByPath$value2","_getByPath2","resolveToken","token","_token$split","_token$split2","factor","resolvedValue","reference","indexOf","resolvedToken","str","result","i","start","rawValues","_objectSpread2","_modifications$token","_iterator","_createForOfIteratorHelper2","_step","s","n","done","_values$token$match","modification","space","colorRegex","colors","match","_iterator2","_step2","originalColor","lightness","hsl","l","difference","set","Math","min","to","modifiedColor","round","toString","format","err","e","f","processedTokens","highlightsTokens","isBase","has","name","tokensToCss","selector","cssLines","_iterator3","_step3","tokensToJson","themeFile","_iterator4","_step4","JSON","stringify","tokensToJs","jsLines","_iterator5","_step5","obj","parts","_iterator6","_step6","_result","part"],"sources":["../../src/theme/utils.ts"],"sourcesContent":["import ColorJS from 'colorjs.io';\nconst Color = ColorJS as any;\n\ntype ExtensionsInput = {\n 'studio.tokens': {\n modify: {\n type: string;\n value: number;\n space: string;\n };\n };\n};\n\ntype TokensInput = {\n [nestedKey: string]:\n | TokensInput\n | {\n value: string;\n type: string;\n description: string;\n $extensions?: ExtensionsInput;\n };\n};\n\nexport const processTokens = (base: TokensInput, tokens: TokensInput, featureHighlight: TokensInput, prefix: string) => {\n const values: { [tokenName: string]: string } = {};\n const basicTokens = new Set<string>();\n const highlightTokens = new Set<string>();\n const modifications: {\n [tokenName: string]: {\n type: 'lighten' | 'darken' | 'alpha';\n value: number;\n space: 'lch' | 'srgb' | 'p3' | 'hsl';\n }[];\n } = {};\n const types: { [tokenName: string]: string } = {};\n const descriptions: { [tokenName: string]: string } = {};\n const mixins: string[] = [];\n type ColorPattern =\n | `{${string}.${string}}`\n | `{${string}.${string}}, ${number}`\n | `#${string}`\n | `{${string}.${string}}, ${number}`;\n type DesignTokenNode =\n | {\n type: string;\n value:\n | string\n | { [subTokens: string]: `{${string}}` }\n | ColorPattern\n | `{${string}}`\n | `{${string}*${number}}`\n | `${ColorPattern}; ${ColorPattern}`;\n\n description?: string;\n $extensions?: ExtensionsInput;\n }\n | DesignTokenTree;\n type DesignTokenTree = { [childrenNodeName: string]: DesignTokenNode };\n const traverse = (node: DesignTokenNode, pathParts: string[] = [], setToAdd?: Set<string>) => {\n for (const key in node) {\n if (key === 'type') continue;\n if (key === 'value') continue;\n if (key === 'description') continue;\n if (key === '$extensions') continue;\n traverse((node as any)[key], [...pathParts, key], setToAdd);\n }\n if ('type' in node && typeof node.type === 'string') {\n const path = pathParts.join('-');\n types[path] = node.type;\n if (typeof node.value === 'object') {\n mixins.push(path);\n return;\n }\n if (values[path]) {\n throw new Error(`Duplicated design token \"${path}\"`);\n }\n values[path] = node.value;\n setToAdd?.add(path);\n\n if (typeof node.description === 'string') descriptions[path] = node.description;\n if (node.$extensions) {\n for (const extension in node.$extensions) {\n if (extension === 'studio.tokens') {\n modifications[path] ??= [];\n modifications[path].push((node.$extensions as any)['studio.tokens'].modify);\n } else {\n throw new Error(`Unsupported extension \"${extension}\" for design token \"${path}\"`);\n }\n }\n }\n }\n };\n\n traverse(base, [], basicTokens);\n traverse(tokens);\n traverse(featureHighlight, [], highlightTokens);\n\n const resolveColor = (color: string): string => {\n if (color.includes('linear-gradient')) {\n if (color.includes('rgba')) {\n return replaceColors(color);\n } else {\n return color.replace(/\\{[a-z0-9.]+\\}/g, resolveColor);\n }\n }\n if (color.startsWith('rgba(') && color.endsWith(')')) {\n const lastComa = color.lastIndexOf(',');\n const alpha = Number.parseFloat(color.substring(lastComa + 1, color.length - 1));\n if (Number.isNaN(alpha)) {\n throw new Error(`Unable to parse rgba of ${color}`);\n }\n let resolvedColor = color.substring('rgba('.length, lastComa);\n if (resolvedColor.startsWith('{')) resolvedColor = resolveColor(resolvedColor);\n if (resolvedColor.startsWith('$')) resolvedColor = resolveColor(resolvedColor);\n if (resolvedColor.startsWith('#')) {\n if (resolvedColor.length === 1 + 3) {\n resolvedColor = [resolvedColor[1], resolvedColor[2], resolvedColor[3]]\n .map((hex) => Number.parseInt(hex, 16))\n .join(', ');\n } else if (resolvedColor.length === 1 + 6) {\n resolvedColor = [\n resolvedColor.substring(1, 3),\n resolvedColor.substring(3, 5),\n resolvedColor.substring(5, 7),\n ]\n .map((hex) => Number.parseInt(hex, 16))\n .join(', ');\n } else {\n throw new Error(\n `Unable to convert hex ${resolveColor} to rgb list of colors (processing ${color})`,\n );\n }\n }\n\n if (!resolvedColor || resolvedColor.split(',').length !== 3) {\n throw new Error(`Unable to produce rgba of ${color} (input format is not supported yet)`);\n }\n\n return `rgba(${resolvedColor}, ${alpha})`;\n }\n if (color.split(', ').length === 2) {\n const baseColor = resolveColor(color.split(', ')[0]);\n const [r, g, b] = (\n baseColor.length === 4\n ? [baseColor[1], baseColor[2], baseColor[3]]\n : [baseColor.substring(1, 3), baseColor.substring(3, 5), baseColor.substring(5, 7)]\n ).map((chunk) => Number.parseInt(chunk, 16));\n const a = Number.parseFloat(color.split(', ')[1]);\n\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n }\n if (color.startsWith('{') && color.split('.').length > 0 && color.endsWith('}')) {\n const path = color.substring(1, color.length - 1);\n const resolvedColor =\n getByPath(base as any, path)?.value ?? values[path.split('.').join('-')];\n if (!resolvedColor) {\n throw new Error(`Color ${color} was not found in base palette`);\n }\n return resolvedColor;\n }\n if (color.startsWith('$') && color.split('.').length > 0) {\n const path = color.substring(1);\n const resolvedColor =\n getByPath(base as any, path)?.value ?? values[path.split('.').join('-')];\n if (!resolvedColor) {\n throw new Error(`Color ${color} was not found`);\n }\n return resolvedColor;\n }\n if (color.startsWith('#')) {\n return color;\n }\n throw new Error(`Unable to process color ${color}`);\n };\n const resolveToken = (token: string): string => {\n if (token.includes('*')) {\n const [value, factor] = token.split('*');\n const resolvedValue = resolveToken(value);\n if (!resolvedValue.endsWith('px')) {\n throw new Error(`Unsupported expression ${token}`);\n }\n return `${Number.parseFloat(resolvedValue) * Number.parseFloat(factor)}px`;\n } else if (token.includes('{') && token.includes('}')) {\n const reference = token\n .substring(token.indexOf('{') + 1, token.indexOf('}'))\n .replace(/\\./g, '-');\n const resolvedToken =\n token.substring(0, token.indexOf('{')) +\n values[reference] +\n token.substring(token.indexOf('}') + 1);\n if (!resolvedToken || resolvedToken.includes('{')) {\n throw new Error(`On moment of resolving ${token}, ${resolvedToken} was not resolved yet`);\n }\n return resolvedToken;\n } else {\n return token;\n }\n };\n const replaceColors = (str: string) => {\n let result = '';\n for (let i = 0; i < str.length; i++) {\n if (str.substring(i, i + 'rgba('.length) === 'rgba(') {\n const start = i;\n while (str[i] !== undefined && str[i] !== ')') i++;\n result += resolveColor(str.substring(start, i + 1));\n } else {\n result += str[i];\n }\n }\n\n return result;\n };\n\n const rawValues = { ...values };\n\n for (const token in values) {\n if (types[token] === 'color') {\n values[token] = resolveColor(values[token]);\n } else if (types[token] === 'boxShadow') {\n values[token] = resolveToken(values[token].split('; ').map(replaceColors).join(', '));\n } else if (\n types[token] === 'sizing' ||\n types[token] === 'spacing' ||\n types[token] === 'borderRadius' ||\n types[token] === 'other'\n ) {\n values[token] = resolveToken(values[token]);\n }\n for (const modification of modifications[token] ?? []) {\n // refer to https://docs.tokens.studio/tokens/color-modifiers and https://github.com/tokens-studio/figma-plugin/tree/main/src/utils/color if extension is needed\n\n rawValues[token] = `${rawValues[token]} / ${modification.type}(${modification.value}) / ${modification.space}`;\n\n // array + regex to process gradients with several colors\n const colorRegex = /(#[0-9a-f]{6}|rgba\\([0-9., ]+\\))/gi;\n const colors = values[token].match(colorRegex) ?? [];\n\n for (const originalColor of colors) {\n let color = new Color(originalColor);\n\n if (modification.space === 'hsl') {\n if (modification.type === 'lighten') {\n const lightness = color.hsl.l;\n const difference = 100 - lightness;\n color.set('hsl.l', Math.min(100, lightness + difference * modification.value));\n } else {\n throw new Error(`Unsupported color modification ${modification.type} of token ${token}`);\n }\n } else {\n throw new Error(`Unsupported color space ${modification.space} of token ${token}`);\n }\n\n color = color.to('sRGB');\n let modifiedColor = '';\n\n if (color.alpha !== 1) {\n const r = Math.round(color.r * 255);\n const g = Math.round(color.g * 255);\n const b = Math.round(color.b * 255);\n const a = color.alpha;\n modifiedColor = `rgba(${r}, ${g}, ${b}, ${a})`;\n } else {\n modifiedColor = color.toString({ format: 'hex' });\n }\n\n values[token] = values[token].replace(originalColor, modifiedColor);\n }\n }\n }\n\n const processedTokens: { name: string; value: string; description: string }[] = [];\n const highlightsTokens: { name: string; value: string; description: string }[] = [];\n\n for (const token in values) {\n const isBase = basicTokens.has(token);\n (highlightTokens.has(token) ? highlightsTokens : processedTokens).push({\n name: isBase ? `--${token}` : `--${prefix}-${token}`,\n description: descriptions[token],\n value: values[token],\n });\n }\n\n return { processedTokens, highlightsTokens, values, types, rawValues, descriptions, basicTokens };\n};\n\nexport const tokensToCss = (\n tokens: { name: string; value: string; description: string }[],\n selector = ':root',\n) => {\n const cssLines: string[] = [];\n cssLines.push(`${selector} {`);\n for (const token of tokens) {\n if (token.description) cssLines.push(` /* ${token.description} */`);\n cssLines.push(` ${token.name}: ${token.value};`);\n }\n cssLines.push('}');\n return cssLines.join('\\n');\n};\nexport const tokensToJson = (tokens: { name: string; value: string; description: string }[]) => {\n const themeFile: Record<string, string> = {};\n for (const token of tokens) {\n themeFile[token.name] = token.value;\n }\n return JSON.stringify(themeFile, null, 2) + '\\n';\n};\nexport const tokensToJs = (tokens: { name: string; value: string; description: string }[]) => {\n const jsLines: string[] = [];\n jsLines.push('export default {');\n for (const token of tokens) {\n jsLines.push(` '${token.name}': '${token.value}',`);\n }\n jsLines.push('};\\n');\n return jsLines.join('\\n');\n};\n\nconst getByPath = (obj: any, path: string) => {\n const parts = path.split('.');\n let result = obj;\n for (const part of parts) {\n result = result?.[part];\n }\n return result;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/lib/theme/utils.mjs
CHANGED
|
@@ -171,32 +171,51 @@ export var processTokens = function processTokens(base, tokens, featureHighlight
|
|
|
171
171
|
_step;
|
|
172
172
|
try {
|
|
173
173
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
174
|
+
var _values$token$match;
|
|
174
175
|
var modification = _step.value;
|
|
175
|
-
// refer to https://docs.tokens.studio/tokens/color-modifiers and https://github.com/tokens-studio/figma-plugin/tree/main/src/utils/color if
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
176
|
+
// refer to https://docs.tokens.studio/tokens/color-modifiers and https://github.com/tokens-studio/figma-plugin/tree/main/src/utils/color if extension is needed
|
|
177
|
+
|
|
178
|
+
rawValues[token] = "".concat(rawValues[token], " / ").concat(modification.type, "(").concat(modification.value, ") / ").concat(modification.space);
|
|
179
|
+
|
|
180
|
+
// array + regex to process gradients with several colors
|
|
181
|
+
var colorRegex = /(#[0-9a-f]{6}|rgba\([0-9., ]+\))/gi;
|
|
182
|
+
var colors = (_values$token$match = values[token].match(colorRegex)) !== null && _values$token$match !== void 0 ? _values$token$match : [];
|
|
183
|
+
var _iterator2 = _createForOfIteratorHelper(colors),
|
|
184
|
+
_step2;
|
|
185
|
+
try {
|
|
186
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
187
|
+
var originalColor = _step2.value;
|
|
188
|
+
var color = new Color(originalColor);
|
|
189
|
+
if (modification.space === 'hsl') {
|
|
190
|
+
if (modification.type === 'lighten') {
|
|
191
|
+
var lightness = color.hsl.l;
|
|
192
|
+
var difference = 100 - lightness;
|
|
193
|
+
color.set('hsl.l', Math.min(100, lightness + difference * modification.value));
|
|
194
|
+
} else {
|
|
195
|
+
throw new Error("Unsupported color modification ".concat(modification.type, " of token ").concat(token));
|
|
196
|
+
}
|
|
197
|
+
} else {
|
|
198
|
+
throw new Error("Unsupported color space ".concat(modification.space, " of token ").concat(token));
|
|
199
|
+
}
|
|
200
|
+
color = color.to('sRGB');
|
|
201
|
+
var modifiedColor = '';
|
|
202
|
+
if (color.alpha !== 1) {
|
|
203
|
+
var r = Math.round(color.r * 255);
|
|
204
|
+
var g = Math.round(color.g * 255);
|
|
205
|
+
var b = Math.round(color.b * 255);
|
|
206
|
+
var a = color.alpha;
|
|
207
|
+
modifiedColor = "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(a, ")");
|
|
208
|
+
} else {
|
|
209
|
+
modifiedColor = color.toString({
|
|
210
|
+
format: 'hex'
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
values[token] = values[token].replace(originalColor, modifiedColor);
|
|
185
214
|
}
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
if (color.alpha !== 1) {
|
|
191
|
-
var r = Math.round(color.r * 255);
|
|
192
|
-
var g = Math.round(color.g * 255);
|
|
193
|
-
var b = Math.round(color.b * 255);
|
|
194
|
-
var a = color.alpha;
|
|
195
|
-
values[token] = "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(a, ")");
|
|
196
|
-
} else {
|
|
197
|
-
values[token] = color.toString({
|
|
198
|
-
format: 'hex'
|
|
199
|
-
});
|
|
215
|
+
} catch (err) {
|
|
216
|
+
_iterator2.e(err);
|
|
217
|
+
} finally {
|
|
218
|
+
_iterator2.f();
|
|
200
219
|
}
|
|
201
220
|
}
|
|
202
221
|
} catch (err) {
|
|
@@ -229,52 +248,52 @@ export var tokensToCss = function tokensToCss(tokens) {
|
|
|
229
248
|
var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ':root';
|
|
230
249
|
var cssLines = [];
|
|
231
250
|
cssLines.push("".concat(selector, " {"));
|
|
232
|
-
var
|
|
233
|
-
|
|
251
|
+
var _iterator3 = _createForOfIteratorHelper(tokens),
|
|
252
|
+
_step3;
|
|
234
253
|
try {
|
|
235
|
-
for (
|
|
236
|
-
var token =
|
|
254
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
255
|
+
var token = _step3.value;
|
|
237
256
|
if (token.description) cssLines.push(" /* ".concat(token.description, " */"));
|
|
238
257
|
cssLines.push(" ".concat(token.name, ": ").concat(token.value, ";"));
|
|
239
258
|
}
|
|
240
259
|
} catch (err) {
|
|
241
|
-
|
|
260
|
+
_iterator3.e(err);
|
|
242
261
|
} finally {
|
|
243
|
-
|
|
262
|
+
_iterator3.f();
|
|
244
263
|
}
|
|
245
264
|
cssLines.push('}');
|
|
246
265
|
return cssLines.join('\n');
|
|
247
266
|
};
|
|
248
267
|
export var tokensToJson = function tokensToJson(tokens) {
|
|
249
268
|
var themeFile = {};
|
|
250
|
-
var
|
|
251
|
-
|
|
269
|
+
var _iterator4 = _createForOfIteratorHelper(tokens),
|
|
270
|
+
_step4;
|
|
252
271
|
try {
|
|
253
|
-
for (
|
|
254
|
-
var token =
|
|
272
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
273
|
+
var token = _step4.value;
|
|
255
274
|
themeFile[token.name] = token.value;
|
|
256
275
|
}
|
|
257
276
|
} catch (err) {
|
|
258
|
-
|
|
277
|
+
_iterator4.e(err);
|
|
259
278
|
} finally {
|
|
260
|
-
|
|
279
|
+
_iterator4.f();
|
|
261
280
|
}
|
|
262
281
|
return JSON.stringify(themeFile, null, 2) + '\n';
|
|
263
282
|
};
|
|
264
283
|
export var tokensToJs = function tokensToJs(tokens) {
|
|
265
284
|
var jsLines = [];
|
|
266
285
|
jsLines.push('export default {');
|
|
267
|
-
var
|
|
268
|
-
|
|
286
|
+
var _iterator5 = _createForOfIteratorHelper(tokens),
|
|
287
|
+
_step5;
|
|
269
288
|
try {
|
|
270
|
-
for (
|
|
271
|
-
var token =
|
|
289
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
290
|
+
var token = _step5.value;
|
|
272
291
|
jsLines.push(" '".concat(token.name, "': '").concat(token.value, "',"));
|
|
273
292
|
}
|
|
274
293
|
} catch (err) {
|
|
275
|
-
|
|
294
|
+
_iterator5.e(err);
|
|
276
295
|
} finally {
|
|
277
|
-
|
|
296
|
+
_iterator5.f();
|
|
278
297
|
}
|
|
279
298
|
jsLines.push('};\n');
|
|
280
299
|
return jsLines.join('\n');
|
|
@@ -282,18 +301,18 @@ export var tokensToJs = function tokensToJs(tokens) {
|
|
|
282
301
|
var getByPath = function getByPath(obj, path) {
|
|
283
302
|
var parts = path.split('.');
|
|
284
303
|
var result = obj;
|
|
285
|
-
var
|
|
286
|
-
|
|
304
|
+
var _iterator6 = _createForOfIteratorHelper(parts),
|
|
305
|
+
_step6;
|
|
287
306
|
try {
|
|
288
|
-
for (
|
|
307
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
289
308
|
var _result;
|
|
290
|
-
var part =
|
|
309
|
+
var part = _step6.value;
|
|
291
310
|
result = (_result = result) === null || _result === void 0 ? void 0 : _result[part];
|
|
292
311
|
}
|
|
293
312
|
} catch (err) {
|
|
294
|
-
|
|
313
|
+
_iterator6.e(err);
|
|
295
314
|
} finally {
|
|
296
|
-
|
|
315
|
+
_iterator6.f();
|
|
297
316
|
}
|
|
298
317
|
return result;
|
|
299
318
|
};
|