@semcore/core 17.0.0-prerelease.20-prerelease.20 → 17.0.0-prerelease.21
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/lib/LastInteractionType.js +22 -36
- package/lib/LastInteractionType.js.map +1 -1
- package/lib/LastInteractionType.mjs +19 -33
- package/lib/LastInteractionType.mjs.map +1 -1
- package/lib/core-types/Component.js +25 -41
- package/lib/core-types/Component.js.map +1 -1
- package/lib/core-types/Component.mjs +18 -38
- package/lib/core-types/Component.mjs.map +1 -1
- package/lib/core-types/symbols.js +9 -9
- package/lib/core-types/symbols.js.map +1 -1
- package/lib/core-types/symbols.mjs +9 -9
- package/lib/core-types/symbols.mjs.map +1 -1
- package/lib/coreFactory.js +143 -205
- package/lib/coreFactory.js.map +1 -1
- package/lib/coreFactory.mjs +118 -164
- package/lib/coreFactory.mjs.map +1 -1
- package/lib/decorators/propsObserver.js +36 -64
- package/lib/decorators/propsObserver.js.map +1 -1
- package/lib/decorators/propsObserver.mjs +33 -61
- package/lib/decorators/propsObserver.mjs.map +1 -1
- package/lib/decorators/reactive.js +17 -17
- package/lib/decorators/reactive.js.map +1 -1
- package/lib/decorators/reactive.mjs +15 -15
- package/lib/decorators/reactive.mjs.map +1 -1
- package/lib/enhancement/Children.js +51 -59
- package/lib/enhancement/Children.js.map +1 -1
- package/lib/enhancement/Children.mjs +47 -41
- package/lib/enhancement/Children.mjs.map +1 -1
- package/lib/enhancement/Root.js +36 -37
- package/lib/enhancement/Root.js.map +1 -1
- package/lib/enhancement/Root.mjs +28 -18
- package/lib/enhancement/Root.mjs.map +1 -1
- package/lib/enhancement/dataName.js +7 -8
- package/lib/enhancement/dataName.js.map +1 -1
- package/lib/enhancement/dataName.mjs +5 -5
- package/lib/enhancement/dataName.mjs.map +1 -1
- package/lib/enhancement/enhance.js +6 -9
- package/lib/enhancement/enhance.js.map +1 -1
- package/lib/enhancement/enhance.mjs +5 -7
- package/lib/enhancement/enhance.mjs.map +1 -1
- package/lib/enhancement/functionDefaultProps.js +6 -6
- package/lib/enhancement/functionDefaultProps.js.map +1 -1
- package/lib/enhancement/functionDefaultProps.mjs +4 -4
- package/lib/enhancement/functionDefaultProps.mjs.map +1 -1
- package/lib/enhancement/i18n.js +13 -13
- package/lib/enhancement/i18n.js.map +1 -1
- package/lib/enhancement/i18n.mjs +10 -9
- package/lib/enhancement/i18n.mjs.map +1 -1
- package/lib/enhancement/inheritedName.js +7 -8
- package/lib/enhancement/inheritedName.js.map +1 -1
- package/lib/enhancement/inheritedName.mjs +5 -5
- package/lib/enhancement/inheritedName.mjs.map +1 -1
- package/lib/enhancement/staticChildren.js +47 -56
- package/lib/enhancement/staticChildren.js.map +1 -1
- package/lib/enhancement/staticChildren.mjs +43 -48
- package/lib/enhancement/staticChildren.mjs.map +1 -1
- package/lib/enhancement/style.js +29 -27
- package/lib/enhancement/style.js.map +1 -1
- package/lib/enhancement/style.mjs +26 -20
- package/lib/enhancement/style.mjs.map +1 -1
- package/lib/enhancement/uncontrolledProps.js +46 -65
- package/lib/enhancement/uncontrolledProps.js.map +1 -1
- package/lib/enhancement/uncontrolledProps.mjs +43 -52
- package/lib/enhancement/uncontrolledProps.mjs.map +1 -1
- package/lib/esm/LastInteractionType.mjs +19 -33
- package/lib/esm/core-types/Component.mjs +18 -38
- package/lib/esm/core-types/symbols.mjs +9 -9
- package/lib/esm/coreFactory.mjs +118 -164
- package/lib/esm/enhancement/Children.mjs +47 -41
- package/lib/esm/enhancement/Root.mjs +28 -18
- package/lib/esm/enhancement/dataName.mjs +5 -5
- package/lib/esm/enhancement/enhance.mjs +5 -7
- package/lib/esm/enhancement/functionDefaultProps.mjs +4 -4
- package/lib/esm/enhancement/i18n.mjs +10 -9
- package/lib/esm/enhancement/inheritedName.mjs +5 -5
- package/lib/esm/enhancement/staticChildren.mjs +43 -48
- package/lib/esm/enhancement/style.mjs +26 -20
- package/lib/esm/enhancement/uncontrolledProps.mjs +43 -52
- package/lib/esm/register.mjs +12 -20
- package/lib/esm/styled/reshadow-core.mjs +98 -111
- package/lib/esm/styled/sstyled.mjs +31 -41
- package/lib/esm/utils/assignProps.mjs +32 -36
- package/lib/esm/utils/enhances/WithI18n.mjs +15 -17
- package/lib/esm/utils/enhances/i18nEnhance.mjs +47 -61
- package/lib/esm/utils/logger.mjs +13 -21
- package/lib/esm/utils/pick.mjs +4 -4
- package/lib/esm/utils/ref.mjs +27 -43
- package/lib/esm/utils/use/useEnhancedEffect.mjs +1 -1
- package/lib/index.js +17 -17
- package/lib/register.js +17 -24
- package/lib/register.js.map +1 -1
- package/lib/register.mjs +12 -20
- package/lib/register.mjs.map +1 -1
- package/lib/styled/index.js +4 -4
- package/lib/styled/reshadow-core.js +102 -104
- package/lib/styled/reshadow-core.js.map +1 -1
- package/lib/styled/reshadow-core.mjs +98 -111
- package/lib/styled/reshadow-core.mjs.map +1 -1
- package/lib/styled/sstyled.js +31 -53
- package/lib/styled/sstyled.js.map +1 -1
- package/lib/styled/sstyled.mjs +31 -41
- package/lib/styled/sstyled.mjs.map +1 -1
- package/lib/theme/processor.js +150 -222
- package/lib/theme/processor.js.map +1 -1
- package/lib/theme/processor.mjs +148 -221
- package/lib/theme/processor.mjs.map +1 -1
- package/lib/theme/themes/dark.js +2 -2
- package/lib/theme/themes/dark.js.map +1 -1
- package/lib/theme/themes/default.js +2 -2
- package/lib/theme/themes/default.js.map +1 -1
- package/lib/theme/themes/highlights-dark.js +2 -2
- package/lib/theme/themes/highlights-dark.js.map +1 -1
- package/lib/theme/themes/highlights-light.js +2 -2
- package/lib/theme/themes/highlights-light.js.map +1 -1
- package/lib/theme/themes/light.js +2 -2
- package/lib/theme/themes/light.js.map +1 -1
- package/lib/theme/utils.js +140 -215
- package/lib/theme/utils.js.map +1 -1
- package/lib/theme/utils.mjs +135 -214
- package/lib/theme/utils.mjs.map +1 -1
- package/lib/utils/CSSinJS.js +8 -10
- package/lib/utils/CSSinJS.js.map +1 -1
- package/lib/utils/CSSinJS.mjs +6 -7
- package/lib/utils/CSSinJS.mjs.map +1 -1
- package/lib/utils/ThemeProvider.js +44 -51
- package/lib/utils/ThemeProvider.js.map +1 -1
- package/lib/utils/ThemeProvider.mjs +36 -47
- package/lib/utils/ThemeProvider.mjs.map +1 -1
- package/lib/utils/addonText.js +4 -7
- package/lib/utils/addonText.js.map +1 -1
- package/lib/utils/addonText.mjs +2 -5
- package/lib/utils/addonText.mjs.map +1 -1
- package/lib/utils/addonTextChildren.js +15 -21
- package/lib/utils/addonTextChildren.js.map +1 -1
- package/lib/utils/addonTextChildren.mjs +7 -13
- package/lib/utils/addonTextChildren.mjs.map +1 -1
- package/lib/utils/ariaProps.js +7 -5
- package/lib/utils/ariaProps.js.map +1 -1
- package/lib/utils/ariaProps.mjs +7 -5
- package/lib/utils/ariaProps.mjs.map +1 -1
- package/lib/utils/assignProps.js +33 -37
- package/lib/utils/assignProps.js.map +1 -1
- package/lib/utils/assignProps.mjs +32 -36
- package/lib/utils/assignProps.mjs.map +1 -1
- package/lib/utils/canUseDOM.js +1 -1
- package/lib/utils/capitalizeFirstLetter.js +1 -1
- package/lib/utils/color.js +72 -95
- package/lib/utils/color.js.map +1 -1
- package/lib/utils/color.mjs +71 -94
- package/lib/utils/color.mjs.map +1 -1
- package/lib/utils/compose.js +3 -12
- package/lib/utils/compose.js.map +1 -1
- package/lib/utils/compose.mjs +2 -11
- package/lib/utils/compose.mjs.map +1 -1
- package/lib/utils/createUUID.js +5 -5
- package/lib/utils/createUUID.js.map +1 -1
- package/lib/utils/createUUID.mjs +4 -4
- package/lib/utils/createUUID.mjs.map +1 -1
- package/lib/utils/cssToIntDefault.js +3 -4
- package/lib/utils/cssToIntDefault.js.map +1 -1
- package/lib/utils/cssToIntDefault.mjs +2 -3
- package/lib/utils/cssToIntDefault.mjs.map +1 -1
- package/lib/utils/enhances/WithCSS.js +10 -8
- package/lib/utils/enhances/WithCSS.js.map +1 -1
- package/lib/utils/enhances/WithCSS.mjs +7 -6
- package/lib/utils/enhances/WithCSS.mjs.map +1 -1
- package/lib/utils/enhances/WithI18n.js +19 -19
- package/lib/utils/enhances/WithI18n.js.map +1 -1
- package/lib/utils/enhances/WithI18n.mjs +15 -17
- package/lib/utils/enhances/WithI18n.mjs.map +1 -1
- package/lib/utils/enhances/a11yEnhance.js +34 -39
- package/lib/utils/enhances/a11yEnhance.js.map +1 -1
- package/lib/utils/enhances/a11yEnhance.mjs +32 -36
- package/lib/utils/enhances/a11yEnhance.mjs.map +1 -1
- package/lib/utils/enhances/animatedSizeEnhance.js +55 -63
- package/lib/utils/enhances/animatedSizeEnhance.js.map +1 -1
- package/lib/utils/enhances/animatedSizeEnhance.mjs +50 -58
- package/lib/utils/enhances/animatedSizeEnhance.mjs.map +1 -1
- package/lib/utils/enhances/contextEnhance.js +12 -11
- package/lib/utils/enhances/contextEnhance.js.map +1 -1
- package/lib/utils/enhances/contextEnhance.mjs +9 -8
- package/lib/utils/enhances/contextEnhance.mjs.map +1 -1
- package/lib/utils/enhances/i18nEnhance.js +51 -67
- package/lib/utils/enhances/i18nEnhance.js.map +1 -1
- package/lib/utils/enhances/i18nEnhance.mjs +47 -61
- package/lib/utils/enhances/i18nEnhance.mjs.map +1 -1
- package/lib/utils/enhances/resolveColorEnhance.js +12 -10
- package/lib/utils/enhances/resolveColorEnhance.js.map +1 -1
- package/lib/utils/enhances/resolveColorEnhance.mjs +8 -6
- package/lib/utils/enhances/resolveColorEnhance.mjs.map +1 -1
- package/lib/utils/eventEmitter.js +30 -57
- package/lib/utils/eventEmitter.js.map +1 -1
- package/lib/utils/eventEmitter.mjs +26 -55
- package/lib/utils/eventEmitter.mjs.map +1 -1
- package/lib/utils/findComponent.js +35 -42
- package/lib/utils/findComponent.js.map +1 -1
- package/lib/utils/findComponent.mjs +26 -33
- package/lib/utils/findComponent.mjs.map +1 -1
- package/lib/utils/fire.js +7 -13
- package/lib/utils/fire.js.map +1 -1
- package/lib/utils/fire.mjs +5 -11
- package/lib/utils/fire.mjs.map +1 -1
- package/lib/utils/focus-lock/focusBorders.js +28 -32
- package/lib/utils/focus-lock/focusBorders.js.map +1 -1
- package/lib/utils/focus-lock/focusBorders.mjs +26 -32
- package/lib/utils/focus-lock/focusBorders.mjs.map +1 -1
- package/lib/utils/focus-lock/getFocusableIn.js +4 -6
- package/lib/utils/focus-lock/getFocusableIn.js.map +1 -1
- package/lib/utils/focus-lock/getFocusableIn.mjs +3 -6
- package/lib/utils/focus-lock/getFocusableIn.mjs.map +1 -1
- package/lib/utils/focus-lock/isFocusInside.js +5 -6
- package/lib/utils/focus-lock/isFocusInside.js.map +1 -1
- package/lib/utils/focus-lock/isFocusInside.mjs +4 -6
- package/lib/utils/focus-lock/isFocusInside.mjs.map +1 -1
- package/lib/utils/focus-lock/isFocusable.js +9 -12
- package/lib/utils/focus-lock/isFocusable.js.map +1 -1
- package/lib/utils/focus-lock/isFocusable.mjs +8 -11
- package/lib/utils/focus-lock/isFocusable.mjs.map +1 -1
- package/lib/utils/focus-lock/setFocus.js +21 -27
- package/lib/utils/focus-lock/setFocus.js.map +1 -1
- package/lib/utils/focus-lock/setFocus.mjs +19 -25
- package/lib/utils/focus-lock/setFocus.mjs.map +1 -1
- package/lib/utils/getAccessibleName.js +10 -22
- package/lib/utils/getAccessibleName.js.map +1 -1
- package/lib/utils/getAccessibleName.mjs +10 -21
- package/lib/utils/getAccessibleName.mjs.map +1 -1
- package/lib/utils/getDisplayName.js +1 -1
- package/lib/utils/getEventTarget.js +13 -32
- package/lib/utils/getEventTarget.js.map +1 -1
- package/lib/utils/getEventTarget.mjs +12 -31
- package/lib/utils/getEventTarget.mjs.map +1 -1
- package/lib/utils/getOriginChildren.js +4 -4
- package/lib/utils/getOriginChildren.js.map +1 -1
- package/lib/utils/getRandomInt.js +1 -1
- package/lib/utils/getValue.js +4 -6
- package/lib/utils/getValue.js.map +1 -1
- package/lib/utils/getValue.mjs +3 -5
- package/lib/utils/getValue.mjs.map +1 -1
- package/lib/utils/hasLabels.js +16 -27
- package/lib/utils/hasLabels.js.map +1 -1
- package/lib/utils/hasLabels.mjs +14 -24
- package/lib/utils/hasLabels.mjs.map +1 -1
- package/lib/utils/hasParent.js +3 -2
- package/lib/utils/hasParent.js.map +1 -1
- package/lib/utils/hasParent.mjs +2 -3
- package/lib/utils/hasParent.mjs.map +1 -1
- package/lib/utils/ifChildren.js +6 -4
- package/lib/utils/ifChildren.js.map +1 -1
- package/lib/utils/ifChildren.mjs +4 -2
- package/lib/utils/ifChildren.mjs.map +1 -1
- package/lib/utils/injectStyle.js +11 -13
- package/lib/utils/injectStyle.js.map +1 -1
- package/lib/utils/injectStyle.mjs +9 -10
- package/lib/utils/injectStyle.mjs.map +1 -1
- package/lib/utils/inputProps.js +5 -5
- package/lib/utils/inputProps.js.map +1 -1
- package/lib/utils/inputProps.mjs +4 -4
- package/lib/utils/inputProps.mjs.map +1 -1
- package/lib/utils/isInteractiveElement.js +7 -9
- package/lib/utils/isInteractiveElement.js.map +1 -1
- package/lib/utils/isInteractiveElement.mjs +7 -9
- package/lib/utils/isInteractiveElement.mjs.map +1 -1
- package/lib/utils/isNode.js +4 -5
- package/lib/utils/isNode.js.map +1 -1
- package/lib/utils/isNode.mjs +1 -2
- package/lib/utils/isNode.mjs.map +1 -1
- package/lib/utils/isPromise.js +1 -1
- package/lib/utils/isRetina.js +7 -2
- package/lib/utils/isRetina.js.map +1 -1
- package/lib/utils/isRetina.mjs +6 -1
- package/lib/utils/isRetina.mjs.map +1 -1
- package/lib/utils/logger.js +18 -25
- package/lib/utils/logger.js.map +1 -1
- package/lib/utils/logger.mjs +13 -21
- package/lib/utils/logger.mjs.map +1 -1
- package/lib/utils/numericChecker.js +11 -18
- package/lib/utils/numericChecker.js.map +1 -1
- package/lib/utils/numericChecker.mjs +10 -17
- package/lib/utils/numericChecker.mjs.map +1 -1
- package/lib/utils/ownerDocument.js +2 -2
- package/lib/utils/ownerDocument.js.map +1 -1
- package/lib/utils/ownerDocument.mjs +1 -1
- package/lib/utils/ownerDocument.mjs.map +1 -1
- package/lib/utils/pick.js +5 -5
- package/lib/utils/pick.js.map +1 -1
- package/lib/utils/pick.mjs +4 -4
- package/lib/utils/pick.mjs.map +1 -1
- package/lib/utils/propsForElement.js +10 -12
- package/lib/utils/propsForElement.js.map +1 -1
- package/lib/utils/propsForElement.mjs +8 -10
- package/lib/utils/propsForElement.mjs.map +1 -1
- package/lib/utils/rafTrottle.js +9 -14
- package/lib/utils/rafTrottle.js.map +1 -1
- package/lib/utils/rafTrottle.mjs +7 -12
- package/lib/utils/rafTrottle.mjs.map +1 -1
- package/lib/utils/reactToText.js +5 -8
- package/lib/utils/reactToText.js.map +1 -1
- package/lib/utils/reactToText.mjs +3 -6
- package/lib/utils/reactToText.mjs.map +1 -1
- package/lib/utils/ref.js +29 -47
- package/lib/utils/ref.js.map +1 -1
- package/lib/utils/ref.mjs +27 -43
- package/lib/utils/ref.mjs.map +1 -1
- package/lib/utils/setRef.js +2 -2
- package/lib/utils/setRef.js.map +1 -1
- package/lib/utils/syncScroll.js +24 -24
- package/lib/utils/syncScroll.js.map +1 -1
- package/lib/utils/syncScroll.mjs +21 -21
- package/lib/utils/syncScroll.mjs.map +1 -1
- package/lib/utils/uncontroll.js +8 -18
- package/lib/utils/uncontroll.js.map +1 -1
- package/lib/utils/uncontroll.mjs +8 -17
- package/lib/utils/uncontroll.mjs.map +1 -1
- package/lib/utils/uniqueID.js +22 -27
- package/lib/utils/uniqueID.js.map +1 -1
- package/lib/utils/uniqueID.mjs +18 -25
- package/lib/utils/uniqueID.mjs.map +1 -1
- package/lib/utils/use/useColorResolver.js +20 -21
- package/lib/utils/use/useColorResolver.js.map +1 -1
- package/lib/utils/use/useColorResolver.mjs +16 -18
- package/lib/utils/use/useColorResolver.mjs.map +1 -1
- package/lib/utils/use/useEnhancedEffect.js +4 -4
- package/lib/utils/use/useEnhancedEffect.js.map +1 -1
- package/lib/utils/use/useEnhancedEffect.mjs +1 -1
- package/lib/utils/use/useEnhancedEffect.mjs.map +1 -1
- package/lib/utils/use/useEventCallback.js +5 -10
- package/lib/utils/use/useEventCallback.js.map +1 -1
- package/lib/utils/use/useEventCallback.mjs +3 -8
- package/lib/utils/use/useEventCallback.mjs.map +1 -1
- package/lib/utils/use/useEventListener.js +11 -15
- package/lib/utils/use/useEventListener.js.map +1 -1
- package/lib/utils/use/useEventListener.mjs +7 -11
- package/lib/utils/use/useEventListener.mjs.map +1 -1
- package/lib/utils/use/useFocusLock.js +80 -94
- package/lib/utils/use/useFocusLock.js.map +1 -1
- package/lib/utils/use/useFocusLock.mjs +71 -88
- package/lib/utils/use/useFocusLock.mjs.map +1 -1
- package/lib/utils/use/usePreventScroll.js +26 -28
- package/lib/utils/use/usePreventScroll.js.map +1 -1
- package/lib/utils/use/usePreventScroll.mjs +21 -23
- package/lib/utils/use/usePreventScroll.mjs.map +1 -1
- package/lib/utils/use/useScrollBarWidth.js +8 -14
- package/lib/utils/use/useScrollBarWidth.js.map +1 -1
- package/lib/utils/use/useScrollBarWidth.mjs +8 -13
- package/lib/utils/use/useScrollBarWidth.mjs.map +1 -1
- package/lib/utils/useCssVariable.js +32 -37
- package/lib/utils/useCssVariable.js.map +1 -1
- package/lib/utils/useCssVariable.mjs +27 -34
- package/lib/utils/useCssVariable.mjs.map +1 -1
- package/lib/utils/zIndexStacking.js +28 -24
- package/lib/utils/zIndexStacking.js.map +1 -1
- package/lib/utils/zIndexStacking.mjs +23 -22
- package/lib/utils/zIndexStacking.mjs.map +1 -1
- package/package.json +1 -1
package/lib/theme/utils.mjs
CHANGED
|
@@ -1,318 +1,239 @@
|
|
|
1
|
-
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
|
2
|
-
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
|
-
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
5
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
6
1
|
import ColorJS from 'colorjs.io';
|
|
7
|
-
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
var setToAdd = arguments.length > 2 ? arguments[2] : undefined;
|
|
19
|
-
for (var key in node) {
|
|
2
|
+
const Color = ColorJS;
|
|
3
|
+
export const processTokens = (base, tokens, featureHighlight, prefix) => {
|
|
4
|
+
const values = {};
|
|
5
|
+
const basicTokens = new Set();
|
|
6
|
+
const highlightTokens = new Set();
|
|
7
|
+
const modifications = {};
|
|
8
|
+
const types = {};
|
|
9
|
+
const descriptions = {};
|
|
10
|
+
const mixins = [];
|
|
11
|
+
const traverse = (node, pathParts = [], setToAdd) => {
|
|
12
|
+
for (const key in node) {
|
|
20
13
|
if (key === 'type') continue;
|
|
21
14
|
if (key === 'value') continue;
|
|
22
15
|
if (key === 'description') continue;
|
|
23
16
|
if (key === '$extensions') continue;
|
|
24
|
-
|
|
17
|
+
traverse(node[key], [...pathParts, key], setToAdd);
|
|
25
18
|
}
|
|
26
19
|
if ('type' in node && typeof node.type === 'string') {
|
|
27
|
-
|
|
20
|
+
const path = pathParts.join('-');
|
|
28
21
|
types[path] = node.type;
|
|
29
|
-
if (
|
|
22
|
+
if (typeof node.value === 'object') {
|
|
30
23
|
mixins.push(path);
|
|
31
24
|
return;
|
|
32
25
|
}
|
|
33
26
|
if (values[path]) {
|
|
34
|
-
throw new Error(
|
|
27
|
+
throw new Error(`Duplicated design token "${path}"`);
|
|
35
28
|
}
|
|
36
29
|
values[path] = node.value;
|
|
37
|
-
setToAdd
|
|
30
|
+
setToAdd?.add(path);
|
|
38
31
|
if (typeof node.description === 'string') descriptions[path] = node.description;
|
|
39
32
|
if (node.$extensions) {
|
|
40
|
-
for (
|
|
33
|
+
for (const extension in node.$extensions) {
|
|
41
34
|
if (extension === 'studio.tokens') {
|
|
42
|
-
|
|
43
|
-
(_modifications$path = modifications[path]) !== null && _modifications$path !== void 0 ? _modifications$path : modifications[path] = [];
|
|
35
|
+
modifications[path] ??= [];
|
|
44
36
|
modifications[path].push(node.$extensions['studio.tokens'].modify);
|
|
45
37
|
} else {
|
|
46
|
-
throw new Error(
|
|
38
|
+
throw new Error(`Unsupported extension "${extension}" for design token "${path}"`);
|
|
47
39
|
}
|
|
48
40
|
}
|
|
49
41
|
}
|
|
50
42
|
}
|
|
51
43
|
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
44
|
+
traverse(base, [], basicTokens);
|
|
45
|
+
traverse(tokens);
|
|
46
|
+
traverse(featureHighlight, [], highlightTokens);
|
|
47
|
+
const resolveColor = color => {
|
|
56
48
|
if (color.includes('linear-gradient')) {
|
|
57
49
|
if (color.includes('rgba')) {
|
|
58
50
|
return replaceColors(color);
|
|
59
51
|
} else {
|
|
60
|
-
return color.replace(/\{[a-z0-9.]+\}/g,
|
|
52
|
+
return color.replace(/\{[a-z0-9.]+\}/g, resolveColor);
|
|
61
53
|
}
|
|
62
54
|
}
|
|
63
55
|
if (color.startsWith('rgba(') && color.endsWith(')')) {
|
|
64
|
-
|
|
65
|
-
|
|
56
|
+
const lastComa = color.lastIndexOf(',');
|
|
57
|
+
const alpha = Number.parseFloat(color.substring(lastComa + 1, color.length - 1));
|
|
66
58
|
if (Number.isNaN(alpha)) {
|
|
67
|
-
throw new Error(
|
|
59
|
+
throw new Error(`Unable to parse rgba of ${color}`);
|
|
68
60
|
}
|
|
69
|
-
|
|
70
|
-
if (resolvedColor.startsWith('{')) resolvedColor =
|
|
71
|
-
if (resolvedColor.startsWith('$')) resolvedColor =
|
|
61
|
+
let resolvedColor = color.substring('rgba('.length, lastComa);
|
|
62
|
+
if (resolvedColor.startsWith('{')) resolvedColor = resolveColor(resolvedColor);
|
|
63
|
+
if (resolvedColor.startsWith('$')) resolvedColor = resolveColor(resolvedColor);
|
|
72
64
|
if (resolvedColor.startsWith('#')) {
|
|
73
65
|
if (resolvedColor.length === 1 + 3) {
|
|
74
|
-
resolvedColor = [resolvedColor[1], resolvedColor[2], resolvedColor[3]].map(
|
|
75
|
-
return Number.parseInt(hex, 16);
|
|
76
|
-
}).join(', ');
|
|
66
|
+
resolvedColor = [resolvedColor[1], resolvedColor[2], resolvedColor[3]].map(hex => Number.parseInt(hex, 16)).join(', ');
|
|
77
67
|
} else if (resolvedColor.length === 1 + 6) {
|
|
78
|
-
resolvedColor = [resolvedColor.substring(1, 3), resolvedColor.substring(3, 5), resolvedColor.substring(5, 7)].map(
|
|
79
|
-
return Number.parseInt(hex, 16);
|
|
80
|
-
}).join(', ');
|
|
68
|
+
resolvedColor = [resolvedColor.substring(1, 3), resolvedColor.substring(3, 5), resolvedColor.substring(5, 7)].map(hex => Number.parseInt(hex, 16)).join(', ');
|
|
81
69
|
} else {
|
|
82
|
-
throw new Error(
|
|
70
|
+
throw new Error(`Unable to convert hex ${resolveColor} to rgb list of colors (processing ${color})`);
|
|
83
71
|
}
|
|
84
72
|
}
|
|
85
73
|
if (!resolvedColor || resolvedColor.split(',').length !== 3) {
|
|
86
|
-
throw new Error(
|
|
74
|
+
throw new Error(`Unable to produce rgba of ${color} (input format is not supported yet)`);
|
|
87
75
|
}
|
|
88
|
-
return
|
|
76
|
+
return `rgba(${resolvedColor}, ${alpha})`;
|
|
89
77
|
}
|
|
90
78
|
if (color.split(', ').length === 2) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
_map2 = _slicedToArray(_map, 3),
|
|
96
|
-
r = _map2[0],
|
|
97
|
-
g = _map2[1],
|
|
98
|
-
b = _map2[2];
|
|
99
|
-
var a = Number.parseFloat(color.split(', ')[1]);
|
|
100
|
-
return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(a, ")");
|
|
79
|
+
const baseColor = resolveColor(color.split(', ')[0]);
|
|
80
|
+
const [r, g, b] = (baseColor.length === 4 ? [baseColor[1], baseColor[2], baseColor[3]] : [baseColor.substring(1, 3), baseColor.substring(3, 5), baseColor.substring(5, 7)]).map(chunk => Number.parseInt(chunk, 16));
|
|
81
|
+
const a = Number.parseFloat(color.split(', ')[1]);
|
|
82
|
+
return `rgba(${r}, ${g}, ${b}, ${a})`;
|
|
101
83
|
}
|
|
102
84
|
if (color.startsWith('{') && color.split('.').length > 0 && color.endsWith('}')) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
throw new Error("Color ".concat(color, " was not found in base palette"));
|
|
85
|
+
const path = color.substring(1, color.length - 1);
|
|
86
|
+
const resolvedColor = getByPath(base, path)?.value ?? values[path.split('.').join('-')];
|
|
87
|
+
if (!resolvedColor) {
|
|
88
|
+
throw new Error(`Color ${color} was not found in base palette`);
|
|
108
89
|
}
|
|
109
|
-
return
|
|
90
|
+
return resolvedColor;
|
|
110
91
|
}
|
|
111
92
|
if (color.startsWith('$') && color.split('.').length > 0) {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
throw new Error("Color ".concat(color, " was not found"));
|
|
93
|
+
const path = color.substring(1);
|
|
94
|
+
const resolvedColor = getByPath(base, path)?.value ?? values[path.split('.').join('-')];
|
|
95
|
+
if (!resolvedColor) {
|
|
96
|
+
throw new Error(`Color ${color} was not found`);
|
|
117
97
|
}
|
|
118
|
-
return
|
|
98
|
+
return resolvedColor;
|
|
119
99
|
}
|
|
120
100
|
if (color.startsWith('#')) {
|
|
121
101
|
return color;
|
|
122
102
|
}
|
|
123
|
-
throw new Error(
|
|
103
|
+
throw new Error(`Unable to process color ${color}`);
|
|
124
104
|
};
|
|
125
|
-
|
|
105
|
+
const resolveToken = token => {
|
|
126
106
|
if (token.includes('*')) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
value = _token$split2[0],
|
|
130
|
-
factor = _token$split2[1];
|
|
131
|
-
var resolvedValue = _resolveToken(value);
|
|
107
|
+
const [value, factor] = token.split('*');
|
|
108
|
+
const resolvedValue = resolveToken(value);
|
|
132
109
|
if (!resolvedValue.endsWith('px')) {
|
|
133
|
-
throw new Error(
|
|
110
|
+
throw new Error(`Unsupported expression ${token}`);
|
|
134
111
|
}
|
|
135
|
-
return
|
|
112
|
+
return `${Number.parseFloat(resolvedValue) * Number.parseFloat(factor)}px`;
|
|
136
113
|
} else if (token.includes('{') && token.includes('}')) {
|
|
137
|
-
|
|
138
|
-
|
|
114
|
+
const reference = token.substring(token.indexOf('{') + 1, token.indexOf('}')).replace(/\./g, '-');
|
|
115
|
+
const resolvedToken = token.substring(0, token.indexOf('{')) + values[reference] + token.substring(token.indexOf('}') + 1);
|
|
139
116
|
if (!resolvedToken || resolvedToken.includes('{')) {
|
|
140
|
-
throw new Error(
|
|
117
|
+
throw new Error(`On moment of resolving ${token}, ${resolvedToken} was not resolved yet`);
|
|
141
118
|
}
|
|
142
119
|
return resolvedToken;
|
|
143
120
|
} else {
|
|
144
121
|
return token;
|
|
145
122
|
}
|
|
146
123
|
};
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
for (
|
|
124
|
+
const replaceColors = str => {
|
|
125
|
+
let result = '';
|
|
126
|
+
for (let i = 0; i < str.length; i++) {
|
|
150
127
|
if (str.substring(i, i + 'rgba('.length) === 'rgba(') {
|
|
151
|
-
|
|
128
|
+
const start = i;
|
|
152
129
|
while (str[i] !== undefined && str[i] !== ')') i++;
|
|
153
|
-
result +=
|
|
130
|
+
result += resolveColor(str.substring(start, i + 1));
|
|
154
131
|
} else {
|
|
155
132
|
result += str[i];
|
|
156
133
|
}
|
|
157
134
|
}
|
|
158
135
|
return result;
|
|
159
136
|
};
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
137
|
+
const rawValues = {
|
|
138
|
+
...values
|
|
139
|
+
};
|
|
140
|
+
for (const token in values) {
|
|
163
141
|
if (types[token] === 'color') {
|
|
164
|
-
values[token] =
|
|
142
|
+
values[token] = resolveColor(values[token]);
|
|
165
143
|
} else if (types[token] === 'boxShadow') {
|
|
166
|
-
values[token] =
|
|
144
|
+
values[token] = resolveToken(values[token].split('; ').map(replaceColors).join(', '));
|
|
167
145
|
} else if (types[token] === 'sizing' || types[token] === 'spacing' || types[token] === 'borderRadius' || types[token] === 'other') {
|
|
168
|
-
values[token] =
|
|
146
|
+
values[token] = resolveToken(values[token]);
|
|
169
147
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
try {
|
|
173
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
174
|
-
var _values$token$match;
|
|
175
|
-
var modification = _step.value;
|
|
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
|
|
148
|
+
for (const modification of modifications[token] ?? []) {
|
|
149
|
+
// 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
150
|
|
|
178
|
-
|
|
151
|
+
rawValues[token] = `${rawValues[token]} / ${modification.type}(${modification.value}) / ${modification.space}`;
|
|
179
152
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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);
|
|
153
|
+
// array + regex to process gradients with several colors
|
|
154
|
+
const colorRegex = /(#[0-9a-f]{6}|rgba\([0-9., ]+\))/gi;
|
|
155
|
+
const colors = values[token].match(colorRegex) ?? [];
|
|
156
|
+
for (const originalColor of colors) {
|
|
157
|
+
let color = new Color(originalColor);
|
|
158
|
+
if (modification.space === 'hsl') {
|
|
159
|
+
if (modification.type === 'lighten') {
|
|
160
|
+
const lightness = color.hsl.l;
|
|
161
|
+
const difference = 100 - lightness;
|
|
162
|
+
color.set('hsl.l', Math.min(100, lightness + difference * modification.value));
|
|
163
|
+
} else {
|
|
164
|
+
throw new Error(`Unsupported color modification ${modification.type} of token ${token}`);
|
|
214
165
|
}
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
}
|
|
218
|
-
|
|
166
|
+
} else {
|
|
167
|
+
throw new Error(`Unsupported color space ${modification.space} of token ${token}`);
|
|
168
|
+
}
|
|
169
|
+
color = color.to('sRGB');
|
|
170
|
+
let modifiedColor = '';
|
|
171
|
+
if (color.alpha !== 1) {
|
|
172
|
+
const r = Math.round(color.r * 255);
|
|
173
|
+
const g = Math.round(color.g * 255);
|
|
174
|
+
const b = Math.round(color.b * 255);
|
|
175
|
+
const a = color.alpha;
|
|
176
|
+
modifiedColor = `rgba(${r}, ${g}, ${b}, ${a})`;
|
|
177
|
+
} else {
|
|
178
|
+
modifiedColor = color.toString({
|
|
179
|
+
format: 'hex'
|
|
180
|
+
});
|
|
219
181
|
}
|
|
182
|
+
values[token] = values[token].replace(originalColor, modifiedColor);
|
|
220
183
|
}
|
|
221
|
-
} catch (err) {
|
|
222
|
-
_iterator.e(err);
|
|
223
|
-
} finally {
|
|
224
|
-
_iterator.f();
|
|
225
184
|
}
|
|
226
185
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
for (
|
|
230
|
-
|
|
231
|
-
(highlightTokens.has(
|
|
232
|
-
name: isBase ?
|
|
233
|
-
description: descriptions[
|
|
234
|
-
value: values[
|
|
186
|
+
const processedTokens = [];
|
|
187
|
+
const highlightsTokens = [];
|
|
188
|
+
for (const token in values) {
|
|
189
|
+
const isBase = basicTokens.has(token);
|
|
190
|
+
(highlightTokens.has(token) ? highlightsTokens : processedTokens).push({
|
|
191
|
+
name: isBase ? `--${token}` : `--${prefix}-${token}`,
|
|
192
|
+
description: descriptions[token],
|
|
193
|
+
value: values[token]
|
|
235
194
|
});
|
|
236
195
|
}
|
|
237
196
|
return {
|
|
238
|
-
processedTokens
|
|
239
|
-
highlightsTokens
|
|
240
|
-
values
|
|
241
|
-
types
|
|
242
|
-
rawValues
|
|
243
|
-
descriptions
|
|
244
|
-
basicTokens
|
|
197
|
+
processedTokens,
|
|
198
|
+
highlightsTokens,
|
|
199
|
+
values,
|
|
200
|
+
types,
|
|
201
|
+
rawValues,
|
|
202
|
+
descriptions,
|
|
203
|
+
basicTokens
|
|
245
204
|
};
|
|
246
205
|
};
|
|
247
|
-
export
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
try {
|
|
254
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
255
|
-
var token = _step3.value;
|
|
256
|
-
if (token.description) cssLines.push(" /* ".concat(token.description, " */"));
|
|
257
|
-
cssLines.push(" ".concat(token.name, ": ").concat(token.value, ";"));
|
|
258
|
-
}
|
|
259
|
-
} catch (err) {
|
|
260
|
-
_iterator3.e(err);
|
|
261
|
-
} finally {
|
|
262
|
-
_iterator3.f();
|
|
206
|
+
export const tokensToCss = (tokens, selector = ':root') => {
|
|
207
|
+
const cssLines = [];
|
|
208
|
+
cssLines.push(`${selector} {`);
|
|
209
|
+
for (const token of tokens) {
|
|
210
|
+
if (token.description) cssLines.push(` /* ${token.description} */`);
|
|
211
|
+
cssLines.push(` ${token.name}: ${token.value};`);
|
|
263
212
|
}
|
|
264
213
|
cssLines.push('}');
|
|
265
214
|
return cssLines.join('\n');
|
|
266
215
|
};
|
|
267
|
-
export
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
try {
|
|
272
|
-
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
273
|
-
var token = _step4.value;
|
|
274
|
-
themeFile[token.name] = token.value;
|
|
275
|
-
}
|
|
276
|
-
} catch (err) {
|
|
277
|
-
_iterator4.e(err);
|
|
278
|
-
} finally {
|
|
279
|
-
_iterator4.f();
|
|
216
|
+
export const tokensToJson = tokens => {
|
|
217
|
+
const themeFile = {};
|
|
218
|
+
for (const token of tokens) {
|
|
219
|
+
themeFile[token.name] = token.value;
|
|
280
220
|
}
|
|
281
221
|
return JSON.stringify(themeFile, null, 2) + '\n';
|
|
282
222
|
};
|
|
283
|
-
export
|
|
284
|
-
|
|
223
|
+
export const tokensToJs = tokens => {
|
|
224
|
+
const jsLines = [];
|
|
285
225
|
jsLines.push('export default {');
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
try {
|
|
289
|
-
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
290
|
-
var token = _step5.value;
|
|
291
|
-
jsLines.push(" '".concat(token.name, "': '").concat(token.value, "',"));
|
|
292
|
-
}
|
|
293
|
-
} catch (err) {
|
|
294
|
-
_iterator5.e(err);
|
|
295
|
-
} finally {
|
|
296
|
-
_iterator5.f();
|
|
226
|
+
for (const token of tokens) {
|
|
227
|
+
jsLines.push(` '${token.name}': '${token.value}',`);
|
|
297
228
|
}
|
|
298
229
|
jsLines.push('};\n');
|
|
299
230
|
return jsLines.join('\n');
|
|
300
231
|
};
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
try {
|
|
307
|
-
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
308
|
-
var _result;
|
|
309
|
-
var part = _step6.value;
|
|
310
|
-
result = (_result = result) === null || _result === void 0 ? void 0 : _result[part];
|
|
311
|
-
}
|
|
312
|
-
} catch (err) {
|
|
313
|
-
_iterator6.e(err);
|
|
314
|
-
} finally {
|
|
315
|
-
_iterator6.f();
|
|
232
|
+
const getByPath = (obj, path) => {
|
|
233
|
+
const parts = path.split('.');
|
|
234
|
+
let result = obj;
|
|
235
|
+
for (const part of parts) {
|
|
236
|
+
result = result?.[part];
|
|
316
237
|
}
|
|
317
238
|
return result;
|
|
318
239
|
};
|
package/lib/theme/utils.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","names":["ColorJS","Color","processTokens","base","tokens","featureHighlight","prefix","values","basicTokens","Set","highlightTokens","modifications","types","descriptions","mixins","traverse","node","pathParts","arguments","length","undefined","setToAdd","key","concat","_toConsumableArray","type","path","join","_typeof","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","_slicedToArray","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","_objectSpread","_modifications$token","_iterator","_createForOfIteratorHelper","_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":[]}
|
|
1
|
+
{"version":3,"file":"utils.mjs","names":["ColorJS","Color","processTokens","base","tokens","featureHighlight","prefix","values","basicTokens","Set","highlightTokens","modifications","types","descriptions","mixins","traverse","node","pathParts","setToAdd","key","type","path","join","value","push","Error","add","description","$extensions","extension","modify","resolveColor","color","includes","replaceColors","replace","startsWith","endsWith","lastComa","lastIndexOf","alpha","Number","parseFloat","substring","length","isNaN","resolvedColor","map","hex","parseInt","split","baseColor","r","g","b","chunk","a","getByPath","resolveToken","token","factor","resolvedValue","reference","indexOf","resolvedToken","str","result","i","start","undefined","rawValues","modification","space","colorRegex","colors","match","originalColor","lightness","hsl","l","difference","set","Math","min","to","modifiedColor","round","toString","format","processedTokens","highlightsTokens","isBase","has","name","tokensToCss","selector","cssLines","tokensToJson","themeFile","JSON","stringify","tokensToJs","jsLines","obj","parts","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/utils/CSSinJS.js
CHANGED
|
@@ -1,35 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.createStyle = createStyle;
|
|
8
|
-
exports
|
|
9
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
7
|
+
exports.default = void 0;
|
|
10
8
|
var _nanoCss = require("@phytonmk/nano-css");
|
|
11
9
|
var _cache = require("@phytonmk/nano-css/addon/cache");
|
|
12
10
|
var _hydrate = require("@phytonmk/nano-css/addon/hydrate");
|
|
13
11
|
var _prefixer = require("@phytonmk/nano-css/addon/prefixer");
|
|
14
12
|
var _rule = require("@phytonmk/nano-css/addon/rule");
|
|
15
|
-
|
|
13
|
+
let _nano = null;
|
|
16
14
|
function style(opt) {
|
|
17
15
|
if (!_nano) {
|
|
18
16
|
_nano = createStyle(opt);
|
|
19
17
|
}
|
|
20
18
|
return _nano;
|
|
21
19
|
}
|
|
22
|
-
function createStyle() {
|
|
23
|
-
|
|
24
|
-
var nano = (0, _nanoCss.create)((0, _objectSpread2["default"])({
|
|
20
|
+
function createStyle(opt = {}) {
|
|
21
|
+
const nano = (0, _nanoCss.create)({
|
|
25
22
|
pfx: 'css',
|
|
26
|
-
verbose: true
|
|
27
|
-
|
|
23
|
+
verbose: true,
|
|
24
|
+
...opt
|
|
25
|
+
});
|
|
28
26
|
(0, _cache.addon)(nano);
|
|
29
27
|
(0, _rule.addon)(nano);
|
|
30
28
|
(0, _prefixer.addon)(nano);
|
|
31
29
|
(0, _hydrate.addon)(nano);
|
|
32
30
|
return nano;
|
|
33
31
|
}
|
|
34
|
-
var _default = exports
|
|
32
|
+
var _default = exports.default = style;
|
|
35
33
|
//# sourceMappingURL=CSSinJS.js.map
|