@semcore/core 17.0.0-prerelease.20-prerelease.20 → 17.0.0-prerelease.22
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/utils/color.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
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
|
});
|
|
@@ -9,91 +8,73 @@ exports.brightness = brightness;
|
|
|
9
8
|
exports.light = void 0;
|
|
10
9
|
exports.opacity = opacity;
|
|
11
10
|
exports.shade = shade;
|
|
12
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
11
|
function shadeHexColor(color, percent) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return
|
|
12
|
+
const f = Number.parseInt(color.slice(1), 16);
|
|
13
|
+
const t = percent < 0 ? 0 : 255;
|
|
14
|
+
const p = percent < 0 ? percent * -1 : percent;
|
|
15
|
+
const R = f >> 16;
|
|
16
|
+
const G = f >> 8 & 0x00ff;
|
|
17
|
+
const B = f & 0x0000ff;
|
|
18
|
+
return `#${(0x1000000 + (Math.round((t - R) * p) + R) * 0x10000 + (Math.round((t - G) * p) + G) * 0x100 + (Math.round((t - B) * p) + B)).toString(16).slice(1)}`;
|
|
22
19
|
}
|
|
23
20
|
function shadeRGBColor(color, percent) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
B = _colorRGB2[2];
|
|
29
|
-
var t = percent < 0 ? 0 : 255;
|
|
30
|
-
var p = percent < 0 ? percent * -1 : percent;
|
|
31
|
-
return "rgb(".concat(Math.round((t - R) * p) + R, ",").concat(Math.round((t - G) * p) + G, ",").concat(Math.round((t - B) * p) + B, ")");
|
|
21
|
+
const [R, G, B] = colorRGB(color);
|
|
22
|
+
const t = percent < 0 ? 0 : 255;
|
|
23
|
+
const p = percent < 0 ? percent * -1 : percent;
|
|
24
|
+
return `rgb(${Math.round((t - R) * p) + R},${Math.round((t - G) * p) + G},${Math.round((t - B) * p) + B})`;
|
|
32
25
|
}
|
|
33
|
-
function shade(color) {
|
|
34
|
-
var percent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
26
|
+
function shade(color, percent = 1) {
|
|
35
27
|
if (!color) return;
|
|
36
28
|
// TODO error for color name, example 'aqua'
|
|
37
29
|
if (color.length > 7) return shadeRGBColor(color, percent);
|
|
38
30
|
return shadeHexColor(color, percent);
|
|
39
31
|
}
|
|
40
32
|
function blendHexColors(colorOne, colorTwo, percent) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return
|
|
33
|
+
const f = Number.parseInt(colorOne.slice(1), 16);
|
|
34
|
+
const t = Number.parseInt(colorTwo.slice(1), 16);
|
|
35
|
+
const R1 = f >> 16;
|
|
36
|
+
const G1 = f >> 8 & 0x00ff;
|
|
37
|
+
const B1 = f & 0x0000ff;
|
|
38
|
+
const R2 = t >> 16;
|
|
39
|
+
const G2 = t >> 8 & 0x00ff;
|
|
40
|
+
const B2 = t & 0x0000ff;
|
|
41
|
+
return `#${(0x1000000 + (Math.round((R2 - R1) * percent) + R1) * 0x10000 + (Math.round((G2 - G1) * percent) + G1) * 0x100 + (Math.round((B2 - B1) * percent) + B1)).toString(16).slice(1)}`;
|
|
50
42
|
}
|
|
51
43
|
function blendRGBColors(colorOne, colorTwo, percent) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
G = _colorRGB4[1],
|
|
56
|
-
B = _colorRGB4[2];
|
|
57
|
-
var t = colorTwo.split(',');
|
|
58
|
-
return "rgb(".concat(Math.round((Number.parseInt(t[0].slice(4)) - R) * percent) + R, ",").concat(Math.round((Number.parseInt(t[1]) - G) * percent) + G, ",").concat(Math.round((Number.parseInt(t[2]) - B) * percent) + B, ")");
|
|
44
|
+
const [R, G, B] = colorRGB(colorOne);
|
|
45
|
+
const t = colorTwo.split(',');
|
|
46
|
+
return `rgb(${Math.round((Number.parseInt(t[0].slice(4)) - R) * percent) + R},${Math.round((Number.parseInt(t[1]) - G) * percent) + G},${Math.round((Number.parseInt(t[2]) - B) * percent) + B})`;
|
|
59
47
|
}
|
|
60
|
-
function blend(colorOne, colorTwo) {
|
|
61
|
-
var percent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
48
|
+
function blend(colorOne, colorTwo, percent = 1) {
|
|
62
49
|
if (!colorOne || !colorTwo) return;
|
|
63
50
|
if (colorOne.length > 7) {
|
|
64
51
|
if (colorTwo.length > 7) {
|
|
65
52
|
return blendRGBColors(colorOne, colorTwo, percent);
|
|
66
53
|
}
|
|
67
|
-
return blendRGBColors(colorOne,
|
|
54
|
+
return blendRGBColors(colorOne, `rgb(${hex2rgb(colorTwo)})`, percent);
|
|
68
55
|
}
|
|
69
56
|
if (colorTwo.length > 7) {
|
|
70
|
-
return blendRGBColors(
|
|
57
|
+
return blendRGBColors(`rgb(${hex2rgb(colorOne).join(',')})`, colorTwo, percent);
|
|
71
58
|
}
|
|
72
59
|
return blendHexColors(colorOne, colorTwo, percent);
|
|
73
60
|
}
|
|
74
61
|
function colorRGB(color) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
62
|
+
const f = color.split(',');
|
|
63
|
+
const R = Number.parseInt(f[0].slice(4));
|
|
64
|
+
const G = Number.parseInt(f[1]);
|
|
65
|
+
const B = Number.parseInt(f[2]);
|
|
79
66
|
return [R, G, B];
|
|
80
67
|
}
|
|
81
68
|
function hex2rgb(hex) {
|
|
82
|
-
var _hex$replace$substrin;
|
|
83
69
|
// eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain
|
|
84
|
-
return
|
|
85
|
-
return "#".concat(r).concat(r).concat(g).concat(g).concat(b).concat(b);
|
|
86
|
-
}).substring(1).match(/.{2}/g)) === null || _hex$replace$substrin === void 0 ? void 0 : _hex$replace$substrin.map(function (x) {
|
|
87
|
-
return Number.parseInt(x, 16);
|
|
88
|
-
});
|
|
70
|
+
return hex.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, (_m, r, g, b) => `#${r}${r}${g}${g}${b}${b}`).substring(1).match(/.{2}/g)?.map(x => Number.parseInt(x, 16));
|
|
89
71
|
}
|
|
90
|
-
function opacity(color) {
|
|
91
|
-
var percent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
72
|
+
function opacity(color, percent = 1) {
|
|
92
73
|
if (!color) return;
|
|
93
74
|
if (color.includes('#') && color.match(/^#?[a-fA-F\d]{6}$/)) {
|
|
94
|
-
color =
|
|
75
|
+
color = `rgba(${hex2rgb(color).join(', ')}, ${percent})`;
|
|
95
76
|
} else if (color.includes('rgb')) {
|
|
96
|
-
color =
|
|
77
|
+
color = `rgba(${colorRGB(color).join(', ')}, ${percent})`;
|
|
97
78
|
} else {
|
|
98
79
|
return;
|
|
99
80
|
}
|
|
@@ -108,64 +89,60 @@ function brightness(color) {
|
|
|
108
89
|
}
|
|
109
90
|
return Math.round((Number.parseInt(color[0]) * 299 + Number.parseInt(color[1]) * 587 + Number.parseInt(color[2]) * 114) / 1000);
|
|
110
91
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
var factor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
92
|
+
const lightMemo = {};
|
|
93
|
+
const light = (color, factor = 1) => {
|
|
114
94
|
if (!color) return;
|
|
115
|
-
|
|
95
|
+
const inputKey = `${color}_${factor}`;
|
|
116
96
|
if (lightMemo[inputKey]) return lightMemo[inputKey];
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
97
|
+
let r = 0;
|
|
98
|
+
let g = 0;
|
|
99
|
+
let b = 0;
|
|
100
|
+
let a = 1;
|
|
121
101
|
if (color.startsWith('#')) {
|
|
122
102
|
if (color.length !== 4 && color.length !== 7) {
|
|
123
|
-
throw new Error(
|
|
103
|
+
throw new Error(`Got invalid color ${color}`);
|
|
124
104
|
}
|
|
125
|
-
|
|
105
|
+
const partSize = color.length === 4 ? 1 : 2;
|
|
126
106
|
r = Number.parseInt(color.substring(1, 1 + partSize), 16);
|
|
127
107
|
g = Number.parseInt(color.substring(1 + partSize, 1 + partSize * 2), 16);
|
|
128
108
|
b = Number.parseInt(color.substring(1 + partSize * 2, 1 + partSize * 3), 16);
|
|
129
109
|
a = 1; // not handled for now
|
|
130
110
|
} else if (color.startsWith('rgb(')) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
return Number.parseInt(part.trim(), 10);
|
|
134
|
-
});
|
|
111
|
+
const trimmed = color.substring('rgb('.length, color.length - ')'.length);
|
|
112
|
+
const parts = trimmed.split(',').map(part => Number.parseInt(part.trim(), 10));
|
|
135
113
|
r = parts[0];
|
|
136
114
|
g = parts[1];
|
|
137
115
|
b = parts[2];
|
|
138
116
|
a = 1;
|
|
139
117
|
} else if (color.startsWith('rgba(')) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
b = _parts[2];
|
|
147
|
-
a = _parts[2];
|
|
118
|
+
const trimmed = color.substring('rgba('.length, color.length - ')'.length);
|
|
119
|
+
const parts = trimmed.split(',').map(part => Number.parseInt(part.trim(), 10));
|
|
120
|
+
r = parts[0];
|
|
121
|
+
g = parts[1];
|
|
122
|
+
b = parts[2];
|
|
123
|
+
a = parts[2];
|
|
148
124
|
} else {
|
|
149
|
-
throw new Error(
|
|
125
|
+
throw new Error(`Got invalid color ${color}`);
|
|
150
126
|
}
|
|
151
|
-
|
|
127
|
+
const hsl = rgbToHsl(r, g, b);
|
|
152
128
|
hsl[2] += (1 - hsl[2]) * factor;
|
|
153
|
-
|
|
154
|
-
return lightMemo[inputKey] ===
|
|
129
|
+
const rgb = hslToRgb(...hsl);
|
|
130
|
+
return lightMemo[inputKey] === `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${a})`;
|
|
155
131
|
};
|
|
156
|
-
|
|
132
|
+
exports.light = light;
|
|
133
|
+
const rgbToHsl = (r, g, b) => {
|
|
157
134
|
r /= 255;
|
|
158
135
|
g /= 255;
|
|
159
136
|
b /= 255;
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
137
|
+
const max = Math.max(r, g, b);
|
|
138
|
+
const min = Math.min(r, g, b);
|
|
139
|
+
let h = 0;
|
|
140
|
+
let s = 0;
|
|
141
|
+
const l = (max + min) / 2;
|
|
165
142
|
if (max === min) {
|
|
166
143
|
h = s = 0;
|
|
167
144
|
} else {
|
|
168
|
-
|
|
145
|
+
const d = max - min;
|
|
169
146
|
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
170
147
|
switch (max) {
|
|
171
148
|
case r:
|
|
@@ -182,23 +159,23 @@ var rgbToHsl = function rgbToHsl(r, g, b) {
|
|
|
182
159
|
}
|
|
183
160
|
return [h, s, l];
|
|
184
161
|
};
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
162
|
+
const hslToRgb = (h, s, l) => {
|
|
163
|
+
let r = 0;
|
|
164
|
+
let g = 0;
|
|
165
|
+
let b = 0;
|
|
189
166
|
if (s === 0) {
|
|
190
167
|
r = g = b = l;
|
|
191
168
|
} else {
|
|
192
|
-
|
|
169
|
+
function hue2rgb(p, q, t) {
|
|
193
170
|
if (t < 0) t += 1;
|
|
194
171
|
if (t > 1) t -= 1;
|
|
195
172
|
if (t < 1 / 6) return p + (q - p) * 6 * t;
|
|
196
173
|
if (t < 1 / 2) return q;
|
|
197
174
|
if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
|
|
198
175
|
return p;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
|
|
176
|
+
}
|
|
177
|
+
const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
|
178
|
+
const p = 2 * l - q;
|
|
202
179
|
r = hue2rgb(p, q, h + 1 / 3);
|
|
203
180
|
g = hue2rgb(p, q, h);
|
|
204
181
|
b = hue2rgb(p, q, h - 1 / 3);
|
package/lib/utils/color.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.js","names":["shadeHexColor","color","percent","f","Number","parseInt","slice","t","p","R","G","B","concat","Math","round","toString","shadeRGBColor","_colorRGB","colorRGB","_colorRGB2","_slicedToArray2","shade","arguments","length","undefined","blendHexColors","colorOne","colorTwo","R1","G1","B1","R2","G2","B2","blendRGBColors","_colorRGB3","_colorRGB4","split","blend","hex2rgb","join","hex","_hex$replace$substrin","replace","_m","r","g","b","substring","match","map","x","opacity","includes","brightness","lightMemo","light","exports","factor","inputKey","a","startsWith","Error","partSize","trimmed","parts","part","trim","hsl","rgbToHsl","rgb","hslToRgb","apply","_toConsumableArray2","max","min","h","s","l","d","hue2rgb","q"],"sources":["../../src/utils/color.ts"],"sourcesContent":["function shadeHexColor(color: string, percent: number) {\n const f = Number.parseInt(color.slice(1), 16);\n const t = percent < 0 ? 0 : 255;\n const p = percent < 0 ? percent * -1 : percent;\n const R = f >> 16;\n const G = (f >> 8) & 0x00ff;\n const B = f & 0x0000ff;\n return `#${(\n 0x1000000 +\n (Math.round((t - R) * p) + R) * 0x10000 +\n (Math.round((t - G) * p) + G) * 0x100 +\n (Math.round((t - B) * p) + B)\n )\n .toString(16)\n .slice(1)}`;\n}\n\nfunction shadeRGBColor(color: string, percent: number) {\n const [R, G, B] = colorRGB(color);\n const t = percent < 0 ? 0 : 255;\n const p = percent < 0 ? percent * -1 : percent;\n\n return `rgb(${Math.round((t - R) * p) + R},${Math.round((t - G) * p) + G},${\n Math.round((t - B) * p) + B\n })`;\n}\n\nexport function shade(color?: string, percent = 1) {\n if (!color) return;\n // TODO error for color name, example 'aqua'\n if (color.length > 7) return shadeRGBColor(color, percent);\n return shadeHexColor(color, percent);\n}\n\nfunction blendHexColors(colorOne: string, colorTwo: string, percent: number) {\n const f = Number.parseInt(colorOne.slice(1), 16);\n const t = Number.parseInt(colorTwo.slice(1), 16);\n const R1 = f >> 16;\n const G1 = (f >> 8) & 0x00ff;\n const B1 = f & 0x0000ff;\n const R2 = t >> 16;\n const G2 = (t >> 8) & 0x00ff;\n const B2 = t & 0x0000ff;\n return `#${(\n 0x1000000 +\n (Math.round((R2 - R1) * percent) + R1) * 0x10000 +\n (Math.round((G2 - G1) * percent) + G1) * 0x100 +\n (Math.round((B2 - B1) * percent) + B1)\n )\n .toString(16)\n .slice(1)}`;\n}\n\nfunction blendRGBColors(colorOne: string, colorTwo: string, percent: number) {\n const [R, G, B] = colorRGB(colorOne);\n const t = colorTwo.split(',');\n\n return `rgb(${Math.round((Number.parseInt(t[0].slice(4)) - R) * percent) + R},${\n Math.round((Number.parseInt(t[1]) - G) * percent) + G\n },${Math.round((Number.parseInt(t[2]) - B) * percent) + B})`;\n}\n\nexport function blend(colorOne?: string, colorTwo?: string, percent = 1) {\n if (!colorOne || !colorTwo) return;\n\n if (colorOne.length > 7) {\n if (colorTwo.length > 7) {\n return blendRGBColors(colorOne, colorTwo, percent);\n }\n return blendRGBColors(colorOne, `rgb(${hex2rgb(colorTwo)})`, percent);\n }\n if (colorTwo.length > 7) {\n return blendRGBColors(`rgb(${hex2rgb(colorOne).join(',')})`, colorTwo, percent);\n }\n return blendHexColors(colorOne, colorTwo, percent);\n}\n\nfunction colorRGB(color: string) {\n const f = color.split(',');\n const R = Number.parseInt(f[0].slice(4));\n const G = Number.parseInt(f[1]);\n const B = Number.parseInt(f[2]);\n return [R, G, B];\n}\n\nfunction hex2rgb(hex: string) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n return hex\n .replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i, (_m, r, g, b) => `#${r}${r}${g}${g}${b}${b}`)\n .substring(1)\n .match(/.{2}/g)\n ?.map((x) => Number.parseInt(x, 16))!;\n}\n\nexport function opacity(color?: string, percent = 1) {\n if (!color) return;\n if (color.includes('#') && color.match(/^#?[a-fA-F\\d]{6}$/)) {\n color = `rgba(${hex2rgb(color).join(', ')}, ${percent})`;\n } else if (color.includes('rgb')) {\n color = `rgba(${colorRGB(color).join(', ')}, ${percent})`;\n } else {\n return;\n }\n return color;\n}\n\nexport function brightness(color: any) {\n if (!color) return;\n if (color.length <= 7) {\n color = hex2rgb(color);\n } else {\n color = colorRGB(color);\n }\n return Math.round(\n (Number.parseInt(color[0]) * 299 + Number.parseInt(color[1]) * 587 + Number.parseInt(color[2]) * 114) / 1000,\n );\n}\n\nconst lightMemo: { [input: string]: string } = {};\nexport const light = (color?: string, factor = 1) => {\n if (!color) return;\n const inputKey = `${color}_${factor}`;\n if (lightMemo[inputKey]) return lightMemo[inputKey];\n\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 1;\n if (color.startsWith('#')) {\n if (color.length !== 4 && color.length !== 7) {\n throw new Error(`Got invalid color ${color}`);\n }\n const partSize = color.length === 4 ? 1 : 2;\n r = Number.parseInt(color.substring(1, 1 + partSize), 16);\n g = Number.parseInt(color.substring(1 + partSize, 1 + partSize * 2), 16);\n b = Number.parseInt(color.substring(1 + partSize * 2, 1 + partSize * 3), 16);\n a = 1; // not handled for now\n } else if (color.startsWith('rgb(')) {\n const trimmed = color.substring('rgb('.length, color.length - ')'.length);\n const parts = trimmed.split(',').map((part) => Number.parseInt(part.trim(), 10));\n r = parts[0];\n g = parts[1];\n b = parts[2];\n a = 1;\n } else if (color.startsWith('rgba(')) {\n const trimmed = color.substring('rgba('.length, color.length - ')'.length);\n const parts = trimmed.split(',').map((part) => Number.parseInt(part.trim(), 10));\n r = parts[0];\n g = parts[1];\n b = parts[2];\n a = parts[2];\n } else {\n throw new Error(`Got invalid color ${color}`);\n }\n\n const hsl = rgbToHsl(r, g, b);\n\n hsl[2] += (1 - hsl[2]) * factor;\n\n const rgb = hslToRgb(...hsl);\n\n return lightMemo[inputKey] === `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${a})`;\n};\n\nconst rgbToHsl = (r: number, g: number, b: number) => {\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n let s = 0;\n const l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0;\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n\n h! /= 6;\n }\n\n return [h, s, l] as [h: number, s: number, l: number];\n};\n\nconst hslToRgb = (h: number, s: number, l: number) => {\n let r = 0;\n let g = 0;\n let b = 0;\n\n if (s === 0) {\n r = g = b = l;\n } else {\n function hue2rgb(p: number, q: number, t: number) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r * 255, g * 255, b * 255] as [r: number, g: number, b: number];\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"color.js","names":["shadeHexColor","color","percent","f","Number","parseInt","slice","t","p","R","G","B","Math","round","toString","shadeRGBColor","colorRGB","shade","length","blendHexColors","colorOne","colorTwo","R1","G1","B1","R2","G2","B2","blendRGBColors","split","blend","hex2rgb","join","hex","replace","_m","r","g","b","substring","match","map","x","opacity","includes","brightness","lightMemo","light","factor","inputKey","a","startsWith","Error","partSize","trimmed","parts","part","trim","hsl","rgbToHsl","rgb","hslToRgb","exports","max","min","h","s","l","d","hue2rgb","q"],"sources":["../../src/utils/color.ts"],"sourcesContent":["function shadeHexColor(color: string, percent: number) {\n const f = Number.parseInt(color.slice(1), 16);\n const t = percent < 0 ? 0 : 255;\n const p = percent < 0 ? percent * -1 : percent;\n const R = f >> 16;\n const G = (f >> 8) & 0x00ff;\n const B = f & 0x0000ff;\n return `#${(\n 0x1000000 +\n (Math.round((t - R) * p) + R) * 0x10000 +\n (Math.round((t - G) * p) + G) * 0x100 +\n (Math.round((t - B) * p) + B)\n )\n .toString(16)\n .slice(1)}`;\n}\n\nfunction shadeRGBColor(color: string, percent: number) {\n const [R, G, B] = colorRGB(color);\n const t = percent < 0 ? 0 : 255;\n const p = percent < 0 ? percent * -1 : percent;\n\n return `rgb(${Math.round((t - R) * p) + R},${Math.round((t - G) * p) + G},${\n Math.round((t - B) * p) + B\n })`;\n}\n\nexport function shade(color?: string, percent = 1) {\n if (!color) return;\n // TODO error for color name, example 'aqua'\n if (color.length > 7) return shadeRGBColor(color, percent);\n return shadeHexColor(color, percent);\n}\n\nfunction blendHexColors(colorOne: string, colorTwo: string, percent: number) {\n const f = Number.parseInt(colorOne.slice(1), 16);\n const t = Number.parseInt(colorTwo.slice(1), 16);\n const R1 = f >> 16;\n const G1 = (f >> 8) & 0x00ff;\n const B1 = f & 0x0000ff;\n const R2 = t >> 16;\n const G2 = (t >> 8) & 0x00ff;\n const B2 = t & 0x0000ff;\n return `#${(\n 0x1000000 +\n (Math.round((R2 - R1) * percent) + R1) * 0x10000 +\n (Math.round((G2 - G1) * percent) + G1) * 0x100 +\n (Math.round((B2 - B1) * percent) + B1)\n )\n .toString(16)\n .slice(1)}`;\n}\n\nfunction blendRGBColors(colorOne: string, colorTwo: string, percent: number) {\n const [R, G, B] = colorRGB(colorOne);\n const t = colorTwo.split(',');\n\n return `rgb(${Math.round((Number.parseInt(t[0].slice(4)) - R) * percent) + R},${\n Math.round((Number.parseInt(t[1]) - G) * percent) + G\n },${Math.round((Number.parseInt(t[2]) - B) * percent) + B})`;\n}\n\nexport function blend(colorOne?: string, colorTwo?: string, percent = 1) {\n if (!colorOne || !colorTwo) return;\n\n if (colorOne.length > 7) {\n if (colorTwo.length > 7) {\n return blendRGBColors(colorOne, colorTwo, percent);\n }\n return blendRGBColors(colorOne, `rgb(${hex2rgb(colorTwo)})`, percent);\n }\n if (colorTwo.length > 7) {\n return blendRGBColors(`rgb(${hex2rgb(colorOne).join(',')})`, colorTwo, percent);\n }\n return blendHexColors(colorOne, colorTwo, percent);\n}\n\nfunction colorRGB(color: string) {\n const f = color.split(',');\n const R = Number.parseInt(f[0].slice(4));\n const G = Number.parseInt(f[1]);\n const B = Number.parseInt(f[2]);\n return [R, G, B];\n}\n\nfunction hex2rgb(hex: string) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n return hex\n .replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i, (_m, r, g, b) => `#${r}${r}${g}${g}${b}${b}`)\n .substring(1)\n .match(/.{2}/g)\n ?.map((x) => Number.parseInt(x, 16))!;\n}\n\nexport function opacity(color?: string, percent = 1) {\n if (!color) return;\n if (color.includes('#') && color.match(/^#?[a-fA-F\\d]{6}$/)) {\n color = `rgba(${hex2rgb(color).join(', ')}, ${percent})`;\n } else if (color.includes('rgb')) {\n color = `rgba(${colorRGB(color).join(', ')}, ${percent})`;\n } else {\n return;\n }\n return color;\n}\n\nexport function brightness(color: any) {\n if (!color) return;\n if (color.length <= 7) {\n color = hex2rgb(color);\n } else {\n color = colorRGB(color);\n }\n return Math.round(\n (Number.parseInt(color[0]) * 299 + Number.parseInt(color[1]) * 587 + Number.parseInt(color[2]) * 114) / 1000,\n );\n}\n\nconst lightMemo: { [input: string]: string } = {};\nexport const light = (color?: string, factor = 1) => {\n if (!color) return;\n const inputKey = `${color}_${factor}`;\n if (lightMemo[inputKey]) return lightMemo[inputKey];\n\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 1;\n if (color.startsWith('#')) {\n if (color.length !== 4 && color.length !== 7) {\n throw new Error(`Got invalid color ${color}`);\n }\n const partSize = color.length === 4 ? 1 : 2;\n r = Number.parseInt(color.substring(1, 1 + partSize), 16);\n g = Number.parseInt(color.substring(1 + partSize, 1 + partSize * 2), 16);\n b = Number.parseInt(color.substring(1 + partSize * 2, 1 + partSize * 3), 16);\n a = 1; // not handled for now\n } else if (color.startsWith('rgb(')) {\n const trimmed = color.substring('rgb('.length, color.length - ')'.length);\n const parts = trimmed.split(',').map((part) => Number.parseInt(part.trim(), 10));\n r = parts[0];\n g = parts[1];\n b = parts[2];\n a = 1;\n } else if (color.startsWith('rgba(')) {\n const trimmed = color.substring('rgba('.length, color.length - ')'.length);\n const parts = trimmed.split(',').map((part) => Number.parseInt(part.trim(), 10));\n r = parts[0];\n g = parts[1];\n b = parts[2];\n a = parts[2];\n } else {\n throw new Error(`Got invalid color ${color}`);\n }\n\n const hsl = rgbToHsl(r, g, b);\n\n hsl[2] += (1 - hsl[2]) * factor;\n\n const rgb = hslToRgb(...hsl);\n\n return lightMemo[inputKey] === `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${a})`;\n};\n\nconst rgbToHsl = (r: number, g: number, b: number) => {\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n let s = 0;\n const l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0;\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n\n h! /= 6;\n }\n\n return [h, s, l] as [h: number, s: number, l: number];\n};\n\nconst hslToRgb = (h: number, s: number, l: number) => {\n let r = 0;\n let g = 0;\n let b = 0;\n\n if (s === 0) {\n r = g = b = l;\n } else {\n function hue2rgb(p: number, q: number, t: number) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r * 255, g * 255, b * 255] as [r: number, g: number, b: number];\n};\n"],"mappings":";;;;;;;;;;AAAA,SAASA,aAAaA,CAACC,KAAa,EAAEC,OAAe,EAAE;EACrD,MAAMC,CAAC,GAAGC,MAAM,CAACC,QAAQ,CAACJ,KAAK,CAACK,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EAC7C,MAAMC,CAAC,GAAGL,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG;EAC/B,MAAMM,CAAC,GAAGN,OAAO,GAAG,CAAC,GAAGA,OAAO,GAAG,CAAC,CAAC,GAAGA,OAAO;EAC9C,MAAMO,CAAC,GAAGN,CAAC,IAAI,EAAE;EACjB,MAAMO,CAAC,GAAIP,CAAC,IAAI,CAAC,GAAI,MAAM;EAC3B,MAAMQ,CAAC,GAAGR,CAAC,GAAG,QAAQ;EACtB,OAAO,IAAI,CACT,SAAS,GACT,CAACS,IAAI,CAACC,KAAK,CAAC,CAACN,CAAC,GAAGE,CAAC,IAAID,CAAC,CAAC,GAAGC,CAAC,IAAI,OAAO,GACvC,CAACG,IAAI,CAACC,KAAK,CAAC,CAACN,CAAC,GAAGG,CAAC,IAAIF,CAAC,CAAC,GAAGE,CAAC,IAAI,KAAK,IACpCE,IAAI,CAACC,KAAK,CAAC,CAACN,CAAC,GAAGI,CAAC,IAAIH,CAAC,CAAC,GAAGG,CAAC,CAAC,EAE5BG,QAAQ,CAAC,EAAE,CAAC,CACZR,KAAK,CAAC,CAAC,CAAC,EAAE;AACf;AAEA,SAASS,aAAaA,CAACd,KAAa,EAAEC,OAAe,EAAE;EACrD,MAAM,CAACO,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC,GAAGK,QAAQ,CAACf,KAAK,CAAC;EACjC,MAAMM,CAAC,GAAGL,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG;EAC/B,MAAMM,CAAC,GAAGN,OAAO,GAAG,CAAC,GAAGA,OAAO,GAAG,CAAC,CAAC,GAAGA,OAAO;EAE9C,OAAO,OAAOU,IAAI,CAACC,KAAK,CAAC,CAACN,CAAC,GAAGE,CAAC,IAAID,CAAC,CAAC,GAAGC,CAAC,IAAIG,IAAI,CAACC,KAAK,CAAC,CAACN,CAAC,GAAGG,CAAC,IAAIF,CAAC,CAAC,GAAGE,CAAC,IACtEE,IAAI,CAACC,KAAK,CAAC,CAACN,CAAC,GAAGI,CAAC,IAAIH,CAAC,CAAC,GAAGG,CAAC,GAC1B;AACL;AAEO,SAASM,KAAKA,CAAChB,KAAc,EAAEC,OAAO,GAAG,CAAC,EAAE;EACjD,IAAI,CAACD,KAAK,EAAE;EACZ;EACA,IAAIA,KAAK,CAACiB,MAAM,GAAG,CAAC,EAAE,OAAOH,aAAa,CAACd,KAAK,EAAEC,OAAO,CAAC;EAC1D,OAAOF,aAAa,CAACC,KAAK,EAAEC,OAAO,CAAC;AACtC;AAEA,SAASiB,cAAcA,CAACC,QAAgB,EAAEC,QAAgB,EAAEnB,OAAe,EAAE;EAC3E,MAAMC,CAAC,GAAGC,MAAM,CAACC,QAAQ,CAACe,QAAQ,CAACd,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EAChD,MAAMC,CAAC,GAAGH,MAAM,CAACC,QAAQ,CAACgB,QAAQ,CAACf,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EAChD,MAAMgB,EAAE,GAAGnB,CAAC,IAAI,EAAE;EAClB,MAAMoB,EAAE,GAAIpB,CAAC,IAAI,CAAC,GAAI,MAAM;EAC5B,MAAMqB,EAAE,GAAGrB,CAAC,GAAG,QAAQ;EACvB,MAAMsB,EAAE,GAAGlB,CAAC,IAAI,EAAE;EAClB,MAAMmB,EAAE,GAAInB,CAAC,IAAI,CAAC,GAAI,MAAM;EAC5B,MAAMoB,EAAE,GAAGpB,CAAC,GAAG,QAAQ;EACvB,OAAO,IAAI,CACT,SAAS,GACT,CAACK,IAAI,CAACC,KAAK,CAAC,CAACY,EAAE,GAAGH,EAAE,IAAIpB,OAAO,CAAC,GAAGoB,EAAE,IAAI,OAAO,GAChD,CAACV,IAAI,CAACC,KAAK,CAAC,CAACa,EAAE,GAAGH,EAAE,IAAIrB,OAAO,CAAC,GAAGqB,EAAE,IAAI,KAAK,IAC7CX,IAAI,CAACC,KAAK,CAAC,CAACc,EAAE,GAAGH,EAAE,IAAItB,OAAO,CAAC,GAAGsB,EAAE,CAAC,EAErCV,QAAQ,CAAC,EAAE,CAAC,CACZR,KAAK,CAAC,CAAC,CAAC,EAAE;AACf;AAEA,SAASsB,cAAcA,CAACR,QAAgB,EAAEC,QAAgB,EAAEnB,OAAe,EAAE;EAC3E,MAAM,CAACO,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC,GAAGK,QAAQ,CAACI,QAAQ,CAAC;EACpC,MAAMb,CAAC,GAAGc,QAAQ,CAACQ,KAAK,CAAC,GAAG,CAAC;EAE7B,OAAO,OAAOjB,IAAI,CAACC,KAAK,CAAC,CAACT,MAAM,CAACC,QAAQ,CAACE,CAAC,CAAC,CAAC,CAAC,CAACD,KAAK,CAAC,CAAC,CAAC,CAAC,GAAGG,CAAC,IAAIP,OAAO,CAAC,GAAGO,CAAC,IAC1EG,IAAI,CAACC,KAAK,CAAC,CAACT,MAAM,CAACC,QAAQ,CAACE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGG,CAAC,IAAIR,OAAO,CAAC,GAAGQ,CAAC,IACnDE,IAAI,CAACC,KAAK,CAAC,CAACT,MAAM,CAACC,QAAQ,CAACE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGI,CAAC,IAAIT,OAAO,CAAC,GAAGS,CAAC,GAAG;AAC9D;AAEO,SAASmB,KAAKA,CAACV,QAAiB,EAAEC,QAAiB,EAAEnB,OAAO,GAAG,CAAC,EAAE;EACvE,IAAI,CAACkB,QAAQ,IAAI,CAACC,QAAQ,EAAE;EAE5B,IAAID,QAAQ,CAACF,MAAM,GAAG,CAAC,EAAE;IACvB,IAAIG,QAAQ,CAACH,MAAM,GAAG,CAAC,EAAE;MACvB,OAAOU,cAAc,CAACR,QAAQ,EAAEC,QAAQ,EAAEnB,OAAO,CAAC;IACpD;IACA,OAAO0B,cAAc,CAACR,QAAQ,EAAE,OAAOW,OAAO,CAACV,QAAQ,CAAC,GAAG,EAAEnB,OAAO,CAAC;EACvE;EACA,IAAImB,QAAQ,CAACH,MAAM,GAAG,CAAC,EAAE;IACvB,OAAOU,cAAc,CAAC,OAAOG,OAAO,CAACX,QAAQ,CAAC,CAACY,IAAI,CAAC,GAAG,CAAC,GAAG,EAAEX,QAAQ,EAAEnB,OAAO,CAAC;EACjF;EACA,OAAOiB,cAAc,CAACC,QAAQ,EAAEC,QAAQ,EAAEnB,OAAO,CAAC;AACpD;AAEA,SAASc,QAAQA,CAACf,KAAa,EAAE;EAC/B,MAAME,CAAC,GAAGF,KAAK,CAAC4B,KAAK,CAAC,GAAG,CAAC;EAC1B,MAAMpB,CAAC,GAAGL,MAAM,CAACC,QAAQ,CAACF,CAAC,CAAC,CAAC,CAAC,CAACG,KAAK,CAAC,CAAC,CAAC,CAAC;EACxC,MAAMI,CAAC,GAAGN,MAAM,CAACC,QAAQ,CAACF,CAAC,CAAC,CAAC,CAAC,CAAC;EAC/B,MAAMQ,CAAC,GAAGP,MAAM,CAACC,QAAQ,CAACF,CAAC,CAAC,CAAC,CAAC,CAAC;EAC/B,OAAO,CAACM,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;AAClB;AAEA,SAASoB,OAAOA,CAACE,GAAW,EAAE;EAC5B;EACA,OAAOA,GAAG,CACPC,OAAO,CAAC,kCAAkC,EAAE,CAACC,EAAE,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,KAAK,IAAIF,CAAC,GAAGA,CAAC,GAAGC,CAAC,GAAGA,CAAC,GAAGC,CAAC,GAAGA,CAAC,EAAE,CAAC,CACzFC,SAAS,CAAC,CAAC,CAAC,CACZC,KAAK,CAAC,OAAO,CAAC,EACbC,GAAG,CAAEC,CAAC,IAAKtC,MAAM,CAACC,QAAQ,CAACqC,CAAC,EAAE,EAAE,CAAC,CAAC;AACxC;AAEO,SAASC,OAAOA,CAAC1C,KAAc,EAAEC,OAAO,GAAG,CAAC,EAAE;EACnD,IAAI,CAACD,KAAK,EAAE;EACZ,IAAIA,KAAK,CAAC2C,QAAQ,CAAC,GAAG,CAAC,IAAI3C,KAAK,CAACuC,KAAK,CAAC,mBAAmB,CAAC,EAAE;IAC3DvC,KAAK,GAAG,QAAQ8B,OAAO,CAAC9B,KAAK,CAAC,CAAC+B,IAAI,CAAC,IAAI,CAAC,KAAK9B,OAAO,GAAG;EAC1D,CAAC,MAAM,IAAID,KAAK,CAAC2C,QAAQ,CAAC,KAAK,CAAC,EAAE;IAChC3C,KAAK,GAAG,QAAQe,QAAQ,CAACf,KAAK,CAAC,CAAC+B,IAAI,CAAC,IAAI,CAAC,KAAK9B,OAAO,GAAG;EAC3D,CAAC,MAAM;IACL;EACF;EACA,OAAOD,KAAK;AACd;AAEO,SAAS4C,UAAUA,CAAC5C,KAAU,EAAE;EACrC,IAAI,CAACA,KAAK,EAAE;EACZ,IAAIA,KAAK,CAACiB,MAAM,IAAI,CAAC,EAAE;IACrBjB,KAAK,GAAG8B,OAAO,CAAC9B,KAAK,CAAC;EACxB,CAAC,MAAM;IACLA,KAAK,GAAGe,QAAQ,CAACf,KAAK,CAAC;EACzB;EACA,OAAOW,IAAI,CAACC,KAAK,CACf,CAACT,MAAM,CAACC,QAAQ,CAACJ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAGG,MAAM,CAACC,QAAQ,CAACJ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAGG,MAAM,CAACC,QAAQ,CAACJ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAC1G,CAAC;AACH;AAEA,MAAM6C,SAAsC,GAAG,CAAC,CAAC;AAC1C,MAAMC,KAAK,GAAGA,CAAC9C,KAAc,EAAE+C,MAAM,GAAG,CAAC,KAAK;EACnD,IAAI,CAAC/C,KAAK,EAAE;EACZ,MAAMgD,QAAQ,GAAG,GAAGhD,KAAK,IAAI+C,MAAM,EAAE;EACrC,IAAIF,SAAS,CAACG,QAAQ,CAAC,EAAE,OAAOH,SAAS,CAACG,QAAQ,CAAC;EAEnD,IAAIb,CAAC,GAAG,CAAC;EACT,IAAIC,CAAC,GAAG,CAAC;EACT,IAAIC,CAAC,GAAG,CAAC;EACT,IAAIY,CAAC,GAAG,CAAC;EACT,IAAIjD,KAAK,CAACkD,UAAU,CAAC,GAAG,CAAC,EAAE;IACzB,IAAIlD,KAAK,CAACiB,MAAM,KAAK,CAAC,IAAIjB,KAAK,CAACiB,MAAM,KAAK,CAAC,EAAE;MAC5C,MAAM,IAAIkC,KAAK,CAAC,qBAAqBnD,KAAK,EAAE,CAAC;IAC/C;IACA,MAAMoD,QAAQ,GAAGpD,KAAK,CAACiB,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3CkB,CAAC,GAAGhC,MAAM,CAACC,QAAQ,CAACJ,KAAK,CAACsC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAGc,QAAQ,CAAC,EAAE,EAAE,CAAC;IACzDhB,CAAC,GAAGjC,MAAM,CAACC,QAAQ,CAACJ,KAAK,CAACsC,SAAS,CAAC,CAAC,GAAGc,QAAQ,EAAE,CAAC,GAAGA,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IACxEf,CAAC,GAAGlC,MAAM,CAACC,QAAQ,CAACJ,KAAK,CAACsC,SAAS,CAAC,CAAC,GAAGc,QAAQ,GAAG,CAAC,EAAE,CAAC,GAAGA,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5EH,CAAC,GAAG,CAAC,CAAC,CAAC;EACT,CAAC,MAAM,IAAIjD,KAAK,CAACkD,UAAU,CAAC,MAAM,CAAC,EAAE;IACnC,MAAMG,OAAO,GAAGrD,KAAK,CAACsC,SAAS,CAAC,MAAM,CAACrB,MAAM,EAAEjB,KAAK,CAACiB,MAAM,GAAG,GAAG,CAACA,MAAM,CAAC;IACzE,MAAMqC,KAAK,GAAGD,OAAO,CAACzB,KAAK,CAAC,GAAG,CAAC,CAACY,GAAG,CAAEe,IAAI,IAAKpD,MAAM,CAACC,QAAQ,CAACmD,IAAI,CAACC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChFrB,CAAC,GAAGmB,KAAK,CAAC,CAAC,CAAC;IACZlB,CAAC,GAAGkB,KAAK,CAAC,CAAC,CAAC;IACZjB,CAAC,GAAGiB,KAAK,CAAC,CAAC,CAAC;IACZL,CAAC,GAAG,CAAC;EACP,CAAC,MAAM,IAAIjD,KAAK,CAACkD,UAAU,CAAC,OAAO,CAAC,EAAE;IACpC,MAAMG,OAAO,GAAGrD,KAAK,CAACsC,SAAS,CAAC,OAAO,CAACrB,MAAM,EAAEjB,KAAK,CAACiB,MAAM,GAAG,GAAG,CAACA,MAAM,CAAC;IAC1E,MAAMqC,KAAK,GAAGD,OAAO,CAACzB,KAAK,CAAC,GAAG,CAAC,CAACY,GAAG,CAAEe,IAAI,IAAKpD,MAAM,CAACC,QAAQ,CAACmD,IAAI,CAACC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChFrB,CAAC,GAAGmB,KAAK,CAAC,CAAC,CAAC;IACZlB,CAAC,GAAGkB,KAAK,CAAC,CAAC,CAAC;IACZjB,CAAC,GAAGiB,KAAK,CAAC,CAAC,CAAC;IACZL,CAAC,GAAGK,KAAK,CAAC,CAAC,CAAC;EACd,CAAC,MAAM;IACL,MAAM,IAAIH,KAAK,CAAC,qBAAqBnD,KAAK,EAAE,CAAC;EAC/C;EAEA,MAAMyD,GAAG,GAAGC,QAAQ,CAACvB,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;EAE7BoB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAGA,GAAG,CAAC,CAAC,CAAC,IAAIV,MAAM;EAE/B,MAAMY,GAAG,GAAGC,QAAQ,CAAC,GAAGH,GAAG,CAAC;EAE5B,OAAOZ,SAAS,CAACG,QAAQ,CAAC,KAAK,QAAQW,GAAG,CAAC,CAAC,CAAC,KAAKA,GAAG,CAAC,CAAC,CAAC,KAAKA,GAAG,CAAC,CAAC,CAAC,KAAKV,CAAC,GAAG;AAC9E,CAAC;AAACY,OAAA,CAAAf,KAAA,GAAAA,KAAA;AAEF,MAAMY,QAAQ,GAAGA,CAACvB,CAAS,EAAEC,CAAS,EAAEC,CAAS,KAAK;EACpDF,CAAC,IAAI,GAAG;EACRC,CAAC,IAAI,GAAG;EACRC,CAAC,IAAI,GAAG;EAER,MAAMyB,GAAG,GAAGnD,IAAI,CAACmD,GAAG,CAAC3B,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;EAC7B,MAAM0B,GAAG,GAAGpD,IAAI,CAACoD,GAAG,CAAC5B,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;EAC7B,IAAI2B,CAAC,GAAG,CAAC;EACT,IAAIC,CAAC,GAAG,CAAC;EACT,MAAMC,CAAC,GAAG,CAACJ,GAAG,GAAGC,GAAG,IAAI,CAAC;EAEzB,IAAID,GAAG,KAAKC,GAAG,EAAE;IACfC,CAAC,GAAGC,CAAC,GAAG,CAAC;EACX,CAAC,MAAM;IACL,MAAME,CAAC,GAAGL,GAAG,GAAGC,GAAG;IACnBE,CAAC,GAAGC,CAAC,GAAG,GAAG,GAAGC,CAAC,IAAI,CAAC,GAAGL,GAAG,GAAGC,GAAG,CAAC,GAAGI,CAAC,IAAIL,GAAG,GAAGC,GAAG,CAAC;IAEnD,QAAQD,GAAG;MACT,KAAK3B,CAAC;QACJ6B,CAAC,GAAG,CAAC5B,CAAC,GAAGC,CAAC,IAAI8B,CAAC,IAAI/B,CAAC,GAAGC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC;MACF,KAAKD,CAAC;QACJ4B,CAAC,GAAG,CAAC3B,CAAC,GAAGF,CAAC,IAAIgC,CAAC,GAAG,CAAC;QACnB;MACF,KAAK9B,CAAC;QACJ2B,CAAC,GAAG,CAAC7B,CAAC,GAAGC,CAAC,IAAI+B,CAAC,GAAG,CAAC;QACnB;IACJ;IAEAH,CAAC,IAAK,CAAC;EACT;EAEA,OAAO,CAACA,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;AAClB,CAAC;AAED,MAAMN,QAAQ,GAAGA,CAACI,CAAS,EAAEC,CAAS,EAAEC,CAAS,KAAK;EACpD,IAAI/B,CAAC,GAAG,CAAC;EACT,IAAIC,CAAC,GAAG,CAAC;EACT,IAAIC,CAAC,GAAG,CAAC;EAET,IAAI4B,CAAC,KAAK,CAAC,EAAE;IACX9B,CAAC,GAAGC,CAAC,GAAGC,CAAC,GAAG6B,CAAC;EACf,CAAC,MAAM;IACL,SAASE,OAAOA,CAAC7D,CAAS,EAAE8D,CAAS,EAAE/D,CAAS,EAAE;MAChD,IAAIA,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI,CAAC;MACjB,IAAIA,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI,CAAC;MACjB,IAAIA,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAOC,CAAC,GAAG,CAAC8D,CAAC,GAAG9D,CAAC,IAAI,CAAC,GAAGD,CAAC;MACzC,IAAIA,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO+D,CAAC;MACvB,IAAI/D,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAOC,CAAC,GAAG,CAAC8D,CAAC,GAAG9D,CAAC,KAAK,CAAC,GAAG,CAAC,GAAGD,CAAC,CAAC,GAAG,CAAC;MACnD,OAAOC,CAAC;IACV;IAEA,MAAM8D,CAAC,GAAGH,CAAC,GAAG,GAAG,GAAGA,CAAC,IAAI,CAAC,GAAGD,CAAC,CAAC,GAAGC,CAAC,GAAGD,CAAC,GAAGC,CAAC,GAAGD,CAAC;IAC/C,MAAM1D,CAAC,GAAG,CAAC,GAAG2D,CAAC,GAAGG,CAAC;IAEnBlC,CAAC,GAAGiC,OAAO,CAAC7D,CAAC,EAAE8D,CAAC,EAAEL,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B5B,CAAC,GAAGgC,OAAO,CAAC7D,CAAC,EAAE8D,CAAC,EAAEL,CAAC,CAAC;IACpB3B,CAAC,GAAG+B,OAAO,CAAC7D,CAAC,EAAE8D,CAAC,EAAEL,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;EAC9B;EAEA,OAAO,CAAC7B,CAAC,GAAG,GAAG,EAAEC,CAAC,GAAG,GAAG,EAAEC,CAAC,GAAG,GAAG,CAAC;AACpC,CAAC","ignoreList":[]}
|
package/lib/utils/color.mjs
CHANGED
|
@@ -1,88 +1,70 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
1
|
function shadeHexColor(color, percent) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return
|
|
2
|
+
const f = Number.parseInt(color.slice(1), 16);
|
|
3
|
+
const t = percent < 0 ? 0 : 255;
|
|
4
|
+
const p = percent < 0 ? percent * -1 : percent;
|
|
5
|
+
const R = f >> 16;
|
|
6
|
+
const G = f >> 8 & 0x00ff;
|
|
7
|
+
const B = f & 0x0000ff;
|
|
8
|
+
return `#${(0x1000000 + (Math.round((t - R) * p) + R) * 0x10000 + (Math.round((t - G) * p) + G) * 0x100 + (Math.round((t - B) * p) + B)).toString(16).slice(1)}`;
|
|
11
9
|
}
|
|
12
10
|
function shadeRGBColor(color, percent) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
B = _colorRGB2[2];
|
|
18
|
-
var t = percent < 0 ? 0 : 255;
|
|
19
|
-
var p = percent < 0 ? percent * -1 : percent;
|
|
20
|
-
return "rgb(".concat(Math.round((t - R) * p) + R, ",").concat(Math.round((t - G) * p) + G, ",").concat(Math.round((t - B) * p) + B, ")");
|
|
11
|
+
const [R, G, B] = colorRGB(color);
|
|
12
|
+
const t = percent < 0 ? 0 : 255;
|
|
13
|
+
const p = percent < 0 ? percent * -1 : percent;
|
|
14
|
+
return `rgb(${Math.round((t - R) * p) + R},${Math.round((t - G) * p) + G},${Math.round((t - B) * p) + B})`;
|
|
21
15
|
}
|
|
22
|
-
export function shade(color) {
|
|
23
|
-
var percent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
16
|
+
export function shade(color, percent = 1) {
|
|
24
17
|
if (!color) return;
|
|
25
18
|
// TODO error for color name, example 'aqua'
|
|
26
19
|
if (color.length > 7) return shadeRGBColor(color, percent);
|
|
27
20
|
return shadeHexColor(color, percent);
|
|
28
21
|
}
|
|
29
22
|
function blendHexColors(colorOne, colorTwo, percent) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return
|
|
23
|
+
const f = Number.parseInt(colorOne.slice(1), 16);
|
|
24
|
+
const t = Number.parseInt(colorTwo.slice(1), 16);
|
|
25
|
+
const R1 = f >> 16;
|
|
26
|
+
const G1 = f >> 8 & 0x00ff;
|
|
27
|
+
const B1 = f & 0x0000ff;
|
|
28
|
+
const R2 = t >> 16;
|
|
29
|
+
const G2 = t >> 8 & 0x00ff;
|
|
30
|
+
const B2 = t & 0x0000ff;
|
|
31
|
+
return `#${(0x1000000 + (Math.round((R2 - R1) * percent) + R1) * 0x10000 + (Math.round((G2 - G1) * percent) + G1) * 0x100 + (Math.round((B2 - B1) * percent) + B1)).toString(16).slice(1)}`;
|
|
39
32
|
}
|
|
40
33
|
function blendRGBColors(colorOne, colorTwo, percent) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
G = _colorRGB4[1],
|
|
45
|
-
B = _colorRGB4[2];
|
|
46
|
-
var t = colorTwo.split(',');
|
|
47
|
-
return "rgb(".concat(Math.round((Number.parseInt(t[0].slice(4)) - R) * percent) + R, ",").concat(Math.round((Number.parseInt(t[1]) - G) * percent) + G, ",").concat(Math.round((Number.parseInt(t[2]) - B) * percent) + B, ")");
|
|
34
|
+
const [R, G, B] = colorRGB(colorOne);
|
|
35
|
+
const t = colorTwo.split(',');
|
|
36
|
+
return `rgb(${Math.round((Number.parseInt(t[0].slice(4)) - R) * percent) + R},${Math.round((Number.parseInt(t[1]) - G) * percent) + G},${Math.round((Number.parseInt(t[2]) - B) * percent) + B})`;
|
|
48
37
|
}
|
|
49
|
-
export function blend(colorOne, colorTwo) {
|
|
50
|
-
var percent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
38
|
+
export function blend(colorOne, colorTwo, percent = 1) {
|
|
51
39
|
if (!colorOne || !colorTwo) return;
|
|
52
40
|
if (colorOne.length > 7) {
|
|
53
41
|
if (colorTwo.length > 7) {
|
|
54
42
|
return blendRGBColors(colorOne, colorTwo, percent);
|
|
55
43
|
}
|
|
56
|
-
return blendRGBColors(colorOne,
|
|
44
|
+
return blendRGBColors(colorOne, `rgb(${hex2rgb(colorTwo)})`, percent);
|
|
57
45
|
}
|
|
58
46
|
if (colorTwo.length > 7) {
|
|
59
|
-
return blendRGBColors(
|
|
47
|
+
return blendRGBColors(`rgb(${hex2rgb(colorOne).join(',')})`, colorTwo, percent);
|
|
60
48
|
}
|
|
61
49
|
return blendHexColors(colorOne, colorTwo, percent);
|
|
62
50
|
}
|
|
63
51
|
function colorRGB(color) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
52
|
+
const f = color.split(',');
|
|
53
|
+
const R = Number.parseInt(f[0].slice(4));
|
|
54
|
+
const G = Number.parseInt(f[1]);
|
|
55
|
+
const B = Number.parseInt(f[2]);
|
|
68
56
|
return [R, G, B];
|
|
69
57
|
}
|
|
70
58
|
function hex2rgb(hex) {
|
|
71
|
-
var _hex$replace$substrin;
|
|
72
59
|
// eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain
|
|
73
|
-
return
|
|
74
|
-
return "#".concat(r).concat(r).concat(g).concat(g).concat(b).concat(b);
|
|
75
|
-
}).substring(1).match(/.{2}/g)) === null || _hex$replace$substrin === void 0 ? void 0 : _hex$replace$substrin.map(function (x) {
|
|
76
|
-
return Number.parseInt(x, 16);
|
|
77
|
-
});
|
|
60
|
+
return hex.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, (_m, r, g, b) => `#${r}${r}${g}${g}${b}${b}`).substring(1).match(/.{2}/g)?.map(x => Number.parseInt(x, 16));
|
|
78
61
|
}
|
|
79
|
-
export function opacity(color) {
|
|
80
|
-
var percent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
62
|
+
export function opacity(color, percent = 1) {
|
|
81
63
|
if (!color) return;
|
|
82
64
|
if (color.includes('#') && color.match(/^#?[a-fA-F\d]{6}$/)) {
|
|
83
|
-
color =
|
|
65
|
+
color = `rgba(${hex2rgb(color).join(', ')}, ${percent})`;
|
|
84
66
|
} else if (color.includes('rgb')) {
|
|
85
|
-
color =
|
|
67
|
+
color = `rgba(${colorRGB(color).join(', ')}, ${percent})`;
|
|
86
68
|
} else {
|
|
87
69
|
return;
|
|
88
70
|
}
|
|
@@ -97,64 +79,59 @@ export function brightness(color) {
|
|
|
97
79
|
}
|
|
98
80
|
return Math.round((Number.parseInt(color[0]) * 299 + Number.parseInt(color[1]) * 587 + Number.parseInt(color[2]) * 114) / 1000);
|
|
99
81
|
}
|
|
100
|
-
|
|
101
|
-
export
|
|
102
|
-
var factor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
82
|
+
const lightMemo = {};
|
|
83
|
+
export const light = (color, factor = 1) => {
|
|
103
84
|
if (!color) return;
|
|
104
|
-
|
|
85
|
+
const inputKey = `${color}_${factor}`;
|
|
105
86
|
if (lightMemo[inputKey]) return lightMemo[inputKey];
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
87
|
+
let r = 0;
|
|
88
|
+
let g = 0;
|
|
89
|
+
let b = 0;
|
|
90
|
+
let a = 1;
|
|
110
91
|
if (color.startsWith('#')) {
|
|
111
92
|
if (color.length !== 4 && color.length !== 7) {
|
|
112
|
-
throw new Error(
|
|
93
|
+
throw new Error(`Got invalid color ${color}`);
|
|
113
94
|
}
|
|
114
|
-
|
|
95
|
+
const partSize = color.length === 4 ? 1 : 2;
|
|
115
96
|
r = Number.parseInt(color.substring(1, 1 + partSize), 16);
|
|
116
97
|
g = Number.parseInt(color.substring(1 + partSize, 1 + partSize * 2), 16);
|
|
117
98
|
b = Number.parseInt(color.substring(1 + partSize * 2, 1 + partSize * 3), 16);
|
|
118
99
|
a = 1; // not handled for now
|
|
119
100
|
} else if (color.startsWith('rgb(')) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
return Number.parseInt(part.trim(), 10);
|
|
123
|
-
});
|
|
101
|
+
const trimmed = color.substring('rgb('.length, color.length - ')'.length);
|
|
102
|
+
const parts = trimmed.split(',').map(part => Number.parseInt(part.trim(), 10));
|
|
124
103
|
r = parts[0];
|
|
125
104
|
g = parts[1];
|
|
126
105
|
b = parts[2];
|
|
127
106
|
a = 1;
|
|
128
107
|
} else if (color.startsWith('rgba(')) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
b = _parts[2];
|
|
136
|
-
a = _parts[2];
|
|
108
|
+
const trimmed = color.substring('rgba('.length, color.length - ')'.length);
|
|
109
|
+
const parts = trimmed.split(',').map(part => Number.parseInt(part.trim(), 10));
|
|
110
|
+
r = parts[0];
|
|
111
|
+
g = parts[1];
|
|
112
|
+
b = parts[2];
|
|
113
|
+
a = parts[2];
|
|
137
114
|
} else {
|
|
138
|
-
throw new Error(
|
|
115
|
+
throw new Error(`Got invalid color ${color}`);
|
|
139
116
|
}
|
|
140
|
-
|
|
117
|
+
const hsl = rgbToHsl(r, g, b);
|
|
141
118
|
hsl[2] += (1 - hsl[2]) * factor;
|
|
142
|
-
|
|
143
|
-
return lightMemo[inputKey] ===
|
|
119
|
+
const rgb = hslToRgb(...hsl);
|
|
120
|
+
return lightMemo[inputKey] === `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${a})`;
|
|
144
121
|
};
|
|
145
|
-
|
|
122
|
+
const rgbToHsl = (r, g, b) => {
|
|
146
123
|
r /= 255;
|
|
147
124
|
g /= 255;
|
|
148
125
|
b /= 255;
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
126
|
+
const max = Math.max(r, g, b);
|
|
127
|
+
const min = Math.min(r, g, b);
|
|
128
|
+
let h = 0;
|
|
129
|
+
let s = 0;
|
|
130
|
+
const l = (max + min) / 2;
|
|
154
131
|
if (max === min) {
|
|
155
132
|
h = s = 0;
|
|
156
133
|
} else {
|
|
157
|
-
|
|
134
|
+
const d = max - min;
|
|
158
135
|
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
159
136
|
switch (max) {
|
|
160
137
|
case r:
|
|
@@ -171,23 +148,23 @@ var rgbToHsl = function rgbToHsl(r, g, b) {
|
|
|
171
148
|
}
|
|
172
149
|
return [h, s, l];
|
|
173
150
|
};
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
151
|
+
const hslToRgb = (h, s, l) => {
|
|
152
|
+
let r = 0;
|
|
153
|
+
let g = 0;
|
|
154
|
+
let b = 0;
|
|
178
155
|
if (s === 0) {
|
|
179
156
|
r = g = b = l;
|
|
180
157
|
} else {
|
|
181
|
-
|
|
158
|
+
function hue2rgb(p, q, t) {
|
|
182
159
|
if (t < 0) t += 1;
|
|
183
160
|
if (t > 1) t -= 1;
|
|
184
161
|
if (t < 1 / 6) return p + (q - p) * 6 * t;
|
|
185
162
|
if (t < 1 / 2) return q;
|
|
186
163
|
if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
|
|
187
164
|
return p;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
|
|
165
|
+
}
|
|
166
|
+
const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
|
167
|
+
const p = 2 * l - q;
|
|
191
168
|
r = hue2rgb(p, q, h + 1 / 3);
|
|
192
169
|
g = hue2rgb(p, q, h);
|
|
193
170
|
b = hue2rgb(p, q, h - 1 / 3);
|