@react-spectrum/color 3.0.0-beta.31 → 3.0.0-beta.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/dist/ColorArea.main.js +98 -0
  2. package/dist/ColorArea.main.js.map +1 -0
  3. package/dist/ColorArea.mjs +93 -0
  4. package/dist/ColorArea.module.js +93 -0
  5. package/dist/ColorArea.module.js.map +1 -0
  6. package/dist/ColorEditor.32e497e8.css +20 -0
  7. package/dist/ColorEditor.32e497e8.css.map +1 -0
  8. package/dist/ColorEditor.main.js +116 -0
  9. package/dist/ColorEditor.main.js.map +1 -0
  10. package/dist/ColorEditor.mjs +111 -0
  11. package/dist/ColorEditor.module.js +111 -0
  12. package/dist/ColorEditor.module.js.map +1 -0
  13. package/dist/ColorField.main.js +99 -0
  14. package/dist/ColorField.main.js.map +1 -0
  15. package/dist/ColorField.mjs +94 -0
  16. package/dist/ColorField.module.js +94 -0
  17. package/dist/ColorField.module.js.map +1 -0
  18. package/dist/ColorPicker.ab9f47c0.css +204 -0
  19. package/dist/ColorPicker.ab9f47c0.css.map +1 -0
  20. package/dist/ColorPicker.main.js +125 -0
  21. package/dist/ColorPicker.main.js.map +1 -0
  22. package/dist/ColorPicker.mjs +116 -0
  23. package/dist/ColorPicker.module.js +116 -0
  24. package/dist/ColorPicker.module.js.map +1 -0
  25. package/dist/ColorSlider.main.js +129 -0
  26. package/dist/ColorSlider.main.js.map +1 -0
  27. package/dist/ColorSlider.mjs +124 -0
  28. package/dist/ColorSlider.module.js +124 -0
  29. package/dist/ColorSlider.module.js.map +1 -0
  30. package/dist/ColorSwatch.f6e6f811.css +260 -0
  31. package/dist/ColorSwatch.f6e6f811.css.map +1 -0
  32. package/dist/ColorSwatch.main.js +94 -0
  33. package/dist/ColorSwatch.main.js.map +1 -0
  34. package/dist/ColorSwatch.mjs +84 -0
  35. package/dist/ColorSwatch.module.js +84 -0
  36. package/dist/ColorSwatch.module.js.map +1 -0
  37. package/dist/ColorSwatchPicker.1575be06.css +356 -0
  38. package/dist/ColorSwatchPicker.1575be06.css.map +1 -0
  39. package/dist/ColorSwatchPicker.main.js +115 -0
  40. package/dist/ColorSwatchPicker.main.js.map +1 -0
  41. package/dist/ColorSwatchPicker.mjs +106 -0
  42. package/dist/ColorSwatchPicker.module.js +106 -0
  43. package/dist/ColorSwatchPicker.module.js.map +1 -0
  44. package/dist/ColorThumb.main.js +144 -0
  45. package/dist/ColorThumb.main.js.map +1 -0
  46. package/dist/ColorThumb.mjs +139 -0
  47. package/dist/ColorThumb.module.js +139 -0
  48. package/dist/ColorThumb.module.js.map +1 -0
  49. package/dist/ColorWheel.main.js +118 -0
  50. package/dist/ColorWheel.main.js.map +1 -0
  51. package/dist/ColorWheel.mjs +113 -0
  52. package/dist/ColorWheel.module.js +113 -0
  53. package/dist/ColorWheel.module.js.map +1 -0
  54. package/dist/colorarea_vars_css.main.js +29 -0
  55. package/dist/colorarea_vars_css.main.js.map +1 -0
  56. package/dist/colorarea_vars_css.mjs +31 -0
  57. package/dist/colorarea_vars_css.module.js +31 -0
  58. package/dist/colorarea_vars_css.module.js.map +1 -0
  59. package/dist/colorfield.faeff3c2.css +12 -0
  60. package/dist/colorfield.faeff3c2.css.map +1 -0
  61. package/dist/colorfield_css.main.js +11 -0
  62. package/dist/colorfield_css.main.js.map +1 -0
  63. package/dist/colorfield_css.mjs +13 -0
  64. package/dist/colorfield_css.module.js +13 -0
  65. package/dist/colorfield_css.module.js.map +1 -0
  66. package/dist/colorhandle_vars_css.main.js +26 -0
  67. package/dist/colorhandle_vars_css.main.js.map +1 -0
  68. package/dist/colorhandle_vars_css.mjs +28 -0
  69. package/dist/colorhandle_vars_css.module.js +28 -0
  70. package/dist/colorhandle_vars_css.module.js.map +1 -0
  71. package/dist/colorloupe_vars_css.main.js +23 -0
  72. package/dist/colorloupe_vars_css.main.js.map +1 -0
  73. package/dist/colorloupe_vars_css.mjs +25 -0
  74. package/dist/colorloupe_vars_css.module.js +25 -0
  75. package/dist/colorloupe_vars_css.module.js.map +1 -0
  76. package/dist/colorslider_vars_css.main.js +53 -0
  77. package/dist/colorslider_vars_css.main.js.map +1 -0
  78. package/dist/colorslider_vars_css.mjs +55 -0
  79. package/dist/colorslider_vars_css.module.js +55 -0
  80. package/dist/colorslider_vars_css.module.js.map +1 -0
  81. package/dist/colorwheel_vars_css.main.js +35 -0
  82. package/dist/colorwheel_vars_css.main.js.map +1 -0
  83. package/dist/colorwheel_vars_css.mjs +37 -0
  84. package/dist/colorwheel_vars_css.module.js +37 -0
  85. package/dist/colorwheel_vars_css.module.js.map +1 -0
  86. package/dist/en-US.main.js +10 -0
  87. package/dist/en-US.main.js.map +1 -0
  88. package/dist/en-US.mjs +12 -0
  89. package/dist/en-US.module.js +12 -0
  90. package/dist/en-US.module.js.map +1 -0
  91. package/dist/import.mjs +10 -546
  92. package/dist/intlStrings.main.js +9 -0
  93. package/dist/intlStrings.main.js.map +1 -0
  94. package/dist/intlStrings.mjs +11 -0
  95. package/dist/intlStrings.module.js +11 -0
  96. package/dist/intlStrings.module.js.map +1 -0
  97. package/dist/main.js +18 -544
  98. package/dist/main.js.map +1 -1
  99. package/dist/module.js +10 -546
  100. package/dist/module.js.map +1 -1
  101. package/dist/types.d.ts +77 -6
  102. package/dist/types.d.ts.map +1 -1
  103. package/dist/vars.53b417c1.css +75 -0
  104. package/dist/vars.53b417c1.css.map +1 -0
  105. package/dist/vars.6fa9fa04.css +93 -0
  106. package/dist/vars.6fa9fa04.css.map +1 -0
  107. package/dist/vars.aa07b6d2.css +120 -0
  108. package/dist/vars.aa07b6d2.css.map +1 -0
  109. package/dist/vars.ac235018.css +93 -0
  110. package/dist/vars.ac235018.css.map +1 -0
  111. package/dist/vars.cc682729.css +41 -0
  112. package/dist/vars.cc682729.css.map +1 -0
  113. package/package.json +23 -17
  114. package/src/ColorArea.tsx +7 -6
  115. package/src/ColorEditor.tsx +63 -0
  116. package/src/ColorField.tsx +67 -14
  117. package/src/ColorPicker.tsx +122 -0
  118. package/src/ColorSlider.tsx +6 -4
  119. package/src/ColorSwatch.tsx +102 -0
  120. package/src/ColorSwatchPicker.tsx +118 -0
  121. package/src/ColorThumb.tsx +72 -25
  122. package/src/ColorWheel.tsx +5 -2
  123. package/src/index.ts +10 -0
  124. package/dist/main.css +0 -1
@@ -13,10 +13,12 @@
13
13
  import {classNames} from '@react-spectrum/utils';
14
14
  import {Color} from '@react-types/color';
15
15
  import {DOMProps} from '@react-types/shared';
16
- import React, {ReactElement} from 'react';
16
+ import {Overlay} from '@react-spectrum/overlays';
17
+ import React, {CSSProperties, ReactElement, RefObject, useRef, useState} from 'react';
17
18
  import stylesHandle from '@adobe/spectrum-css-temp/components/colorhandle/vars.css';
18
19
  import stylesLoupe from '@adobe/spectrum-css-temp/components/colorloupe/vars.css';
19
- import {useId} from '@react-aria/utils';
20
+ import {useId, useLayoutEffect} from '@react-aria/utils';
21
+ import {useProvider} from '@react-spectrum/provider';
20
22
 
21
23
  interface ColorThumbProps extends DOMProps {
22
24
  value: Color,
@@ -24,40 +26,85 @@ interface ColorThumbProps extends DOMProps {
24
26
  isDragging?: boolean, // shows the color loupe
25
27
  isFocused?: boolean, // makes the circle larger
26
28
  className?: string,
27
- children?: ReactElement
29
+ children?: ReactElement,
30
+ style?: CSSProperties,
31
+ containerRef?: RefObject<HTMLElement>
28
32
  }
29
33
 
30
34
  function ColorThumb(props: ColorThumbProps) {
31
- let {value, isDisabled, isDragging, isFocused, children, className = '', ...otherProps} = props;
32
-
33
- let patternId = useId();
35
+ let {value, isDisabled, isDragging, isFocused, children, className = '', style, containerRef, ...otherProps} = props;
34
36
 
35
37
  let valueCSS = value.toString('css');
38
+ let loupeRef = useRef<HTMLElement | null>(null);
39
+ let provider = useProvider();
36
40
 
37
41
  return (
38
- <div className={classNames(stylesHandle, 'spectrum-ColorHandle', {'is-focused': isFocused, 'is-disabled': isDisabled}) + ' ' + className} {...otherProps}>
42
+ <div className={classNames(stylesHandle, 'spectrum-ColorHandle', {'is-focused': isFocused, 'is-disabled': isDisabled}) + ' ' + className} style={style} {...otherProps}>
39
43
  <div className={classNames(stylesHandle, 'spectrum-ColorHandle-color')} style={{backgroundColor: valueCSS}} />
40
- <svg className={classNames(stylesLoupe, 'spectrum-ColorLoupe', {'is-open': isDragging})} aria-hidden="true">
41
- <pattern id={patternId} x="0" y="0" width="16" height="16" patternUnits="userSpaceOnUse">
42
- <rect className={classNames(stylesLoupe, 'spectrum-ColorLoupe-inner-background')} x="0" y="0" width="16" height="16" />
43
- <rect className={classNames(stylesLoupe, 'spectrum-ColorLoupe-inner-checker')} x="0" y="0" width="8" height="8" />
44
- <rect className={classNames(stylesLoupe, 'spectrum-ColorLoupe-inner-checker')} x="8" y="8" width="8" height="8" />
45
- </pattern>
46
- <path
47
- className={classNames(stylesLoupe, 'spectrum-ColorLoupe-inner')}
48
- d="M25 1a24 24 0 0124 24c0 16.255-24 40-24 40S1 41.255 1 25A24 24 0 0125 1z"
49
- fill={`url(#${patternId})`} />
50
- <path
51
- className={classNames(stylesLoupe, 'spectrum-ColorLoupe-inner')}
52
- d="M25 1a24 24 0 0124 24c0 16.255-24 40-24 40S1 41.255 1 25A24 24 0 0125 1z"
53
- fill={valueCSS} />
54
- <path
55
- className={classNames(stylesLoupe, 'spectrum-ColorLoupe-outer')}
56
- d="M25 3A21.98 21.98 0 003 25c0 6.2 4 14.794 11.568 24.853A144.233 144.233 0 0025 62.132a144.085 144.085 0 0010.4-12.239C42.99 39.816 47 31.209 47 25A21.98 21.98 0 0025 3m0-2a24 24 0 0124 24c0 16.255-24 40-24 40S1 41.255 1 25A24 24 0 0125 1z" />
57
- </svg>
44
+ <Overlay isOpen={isDragging && provider != null} nodeRef={loupeRef}>
45
+ <ColorLoupe valueCSS={valueCSS} containerRef={containerRef} loupeRef={loupeRef} style={style} />
46
+ </Overlay>
58
47
  {children}
59
48
  </div>
60
49
  );
61
50
  }
62
51
 
52
+ // ColorLoupe is rendered in a portal so that it breaks out of clipped/scrolling containers (e.g. popovers).
53
+ function ColorLoupe({isOpen, valueCSS, containerRef, loupeRef, style}: any) {
54
+ let patternId = useId();
55
+
56
+ // Get the bounding rectangle of the container (e.g. ColorArea/ColorSlider).
57
+ let [containerRect, setContainerRect] = useState({top: 0, left: 0, width: 0, height: 0});
58
+ useLayoutEffect(() => {
59
+ let rect = containerRef.current?.getBoundingClientRect();
60
+ setContainerRect({
61
+ top: rect?.top || 0,
62
+ left: rect?.left || 0,
63
+ width: rect?.width || 0,
64
+ height: rect?.height || 0
65
+ });
66
+ }, [containerRef]);
67
+
68
+ // Compute the pixel position of the thumb.
69
+ let thumbTop = style.top || '50%';
70
+ if (typeof thumbTop === 'string' && thumbTop.endsWith('%')) {
71
+ thumbTop = parseFloat(style.top || '50%') / 100 * containerRect.height;
72
+ }
73
+
74
+ let thumbLeft = style.left || '50%';
75
+ if (typeof thumbLeft === 'string' && thumbLeft.endsWith('%')) {
76
+ thumbLeft = parseFloat(thumbLeft || '50%') / 100 * containerRect.width;
77
+ }
78
+
79
+ return (
80
+ <svg
81
+ className={classNames(stylesLoupe, 'spectrum-ColorLoupe', {'is-open': isOpen})}
82
+ style={{
83
+ // Position relative to the viewport.
84
+ position: 'fixed',
85
+ top: containerRect.top + thumbTop,
86
+ left: containerRect.left + thumbLeft
87
+ }}
88
+ ref={loupeRef}
89
+ aria-hidden="true">
90
+ <pattern id={patternId} x="0" y="0" width="16" height="16" patternUnits="userSpaceOnUse">
91
+ <rect className={classNames(stylesLoupe, 'spectrum-ColorLoupe-inner-background')} x="0" y="0" width="16" height="16" />
92
+ <rect className={classNames(stylesLoupe, 'spectrum-ColorLoupe-inner-checker')} x="0" y="0" width="8" height="8" />
93
+ <rect className={classNames(stylesLoupe, 'spectrum-ColorLoupe-inner-checker')} x="8" y="8" width="8" height="8" />
94
+ </pattern>
95
+ <path
96
+ className={classNames(stylesLoupe, 'spectrum-ColorLoupe-inner')}
97
+ d="M25 1a24 24 0 0124 24c0 16.255-24 40-24 40S1 41.255 1 25A24 24 0 0125 1z"
98
+ fill={`url(#${patternId})`} />
99
+ <path
100
+ className={classNames(stylesLoupe, 'spectrum-ColorLoupe-inner')}
101
+ d="M25 1a24 24 0 0124 24c0 16.255-24 40-24 40S1 41.255 1 25A24 24 0 0125 1z"
102
+ fill={valueCSS} />
103
+ <path
104
+ className={classNames(stylesLoupe, 'spectrum-ColorLoupe-outer')}
105
+ d="M25 3A21.98 21.98 0 003 25c0 6.2 4 14.794 11.568 24.853A144.233 144.233 0 0025 62.132a144.085 144.085 0 0010.4-12.239C42.99 39.816 47 31.209 47 25A21.98 21.98 0 0025 3m0-2a24 24 0 0124 24c0 16.255-24 40-24 40S1 41.255 1 25A24 24 0 0125 1z" />
106
+ </svg>
107
+ );
108
+ }
109
+
63
110
  export {ColorThumb};
@@ -12,6 +12,7 @@
12
12
 
13
13
  import {classNames, dimensionValue, useFocusableRef, useStyleProps} from '@react-spectrum/utils';
14
14
  import {ColorThumb} from './ColorThumb';
15
+ import {ColorWheelContext, useContextProps} from 'react-aria-components';
15
16
  import {FocusableRef} from '@react-types/shared';
16
17
  import React, {useCallback, useEffect, useRef, useState} from 'react';
17
18
  import {SpectrumColorWheelProps} from '@react-types/color';
@@ -26,13 +27,14 @@ const WHEEL_THICKNESS = 24;
26
27
 
27
28
  function ColorWheel(props: SpectrumColorWheelProps, ref: FocusableRef<HTMLDivElement>) {
28
29
  props = useProviderProps(props);
30
+ let inputRef = useRef(null);
31
+ let containerRef = useFocusableRef(ref, inputRef);
32
+ [props, containerRef] = useContextProps(props, containerRef, ColorWheelContext);
29
33
 
30
34
  let {isDisabled} = props;
31
35
  let size = props.size && dimensionValue(props.size);
32
36
  let {styleProps} = useStyleProps(props);
33
37
 
34
- let inputRef = useRef(null);
35
- let containerRef = useFocusableRef(ref, inputRef);
36
38
 
37
39
  let [wheelRadius, setWheelRadius] = useState<number>(0);
38
40
  let [wheelThickness, setWheelThickness] = useState(WHEEL_THICKNESS);
@@ -96,6 +98,7 @@ function ColorWheel(props: SpectrumColorWheelProps, ref: FocusableRef<HTMLDivEle
96
98
  isFocused={isFocusVisible}
97
99
  isDisabled={isDisabled}
98
100
  isDragging={state.isDragging}
101
+ containerRef={containerRef}
99
102
  className={classNames(styles, 'spectrum-ColorWheel-handle')}
100
103
  {...thumbProps}>
101
104
  <input {...focusProps} className={classNames(styles, 'spectrum-ColorWheel-slider')} {...inputProps} ref={inputRef} />
package/src/index.ts CHANGED
@@ -15,4 +15,14 @@ export {ColorArea} from './ColorArea';
15
15
  export {ColorWheel} from './ColorWheel';
16
16
  export {ColorSlider} from './ColorSlider';
17
17
  export {ColorField} from './ColorField';
18
+ export {ColorSwatch} from './ColorSwatch';
19
+ export {ColorPicker} from './ColorPicker';
20
+ export {ColorEditor} from './ColorEditor';
21
+ export {ColorSwatchPicker} from './ColorSwatchPicker';
22
+ export {parseColor, getColorChannels} from '@react-stately/color';
18
23
  export type {SpectrumColorAreaProps, SpectrumColorFieldProps, SpectrumColorSliderProps, SpectrumColorWheelProps} from '@react-types/color';
24
+ export type {SpectrumColorSwatchProps} from './ColorSwatch';
25
+ export type {SpectrumColorPickerProps} from './ColorPicker';
26
+ export type {SpectrumColorEditorProps} from './ColorEditor';
27
+ export type {SpectrumColorSwatchPickerProps} from './ColorSwatchPicker';
28
+ export type {Color, ColorSpace, ColorFormat} from '@react-types/color';
package/dist/main.css DELETED
@@ -1 +0,0 @@
1
- .hoc2UW_spectrum-ColorHandle{z-index:1;box-sizing:border-box;width:var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200));height:var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200));margin-left:calc(-1*calc(var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200))/2));margin-top:calc(-1*calc(var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200))/2));border-width:var(--spectrum-colorhandle-inner-border-size,var(--spectrum-global-dimension-static-size-25));background-size:var(--spectrum-global-dimension-static-size-200,16px)var(--spectrum-global-dimension-static-size-200,16px);background-position:calc(-1*var(--spectrum-global-dimension-static-size-25,2px))calc(-1*var(--spectrum-global-dimension-static-size-25,2px)),calc(-1*var(--spectrum-global-dimension-static-size-25,2px))calc(var(--spectrum-global-dimension-static-size-100,8px) + calc(-1*var(--spectrum-global-dimension-static-size-25,2px))),calc(var(--spectrum-global-dimension-static-size-100,8px) + calc(-1*var(--spectrum-global-dimension-static-size-25,2px)))calc(-1*var(--spectrum-global-dimension-static-size-100,8px) + calc(-1*var(--spectrum-global-dimension-static-size-25,2px))),calc(-1*var(--spectrum-global-dimension-static-size-100,8px) + calc(-1*var(--spectrum-global-dimension-static-size-25,2px)))calc(-1*var(--spectrum-global-dimension-static-size-25,2px));transition:width var(--spectrum-global-animation-duration-100,.13s)ease-in-out,height var(--spectrum-global-animation-duration-100,.13s)ease-in-out,border-width var(--spectrum-global-animation-duration-100,.13s)ease-in-out,margin-left var(--spectrum-global-animation-duration-100,.13s)ease-in-out,margin-top var(--spectrum-global-animation-duration-100,.13s)ease-in-out;border-style:solid;border-radius:100%;display:block;position:absolute}.hoc2UW_spectrum-ColorHandle:after{content:"";left:calc(50% - calc(var(--spectrum-global-dimension-size-300)/2));top:calc(50% - calc(var(--spectrum-global-dimension-size-300)/2));width:var(--spectrum-global-dimension-size-300);height:var(--spectrum-global-dimension-size-300);border-radius:100%;display:block;position:absolute}.hoc2UW_spectrum-ColorHandle.hoc2UW_is-disabled{pointer-events:none}.hoc2UW_spectrum-ColorControl-handle--focused{width:calc(var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200))*2);height:calc(var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200))*2);margin-left:calc(-1*var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200)));margin-top:calc(-1*var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200)))}.hoc2UW_spectrum-ColorHandle-color{border-radius:100%;width:100%;height:100%}.hoc2UW_spectrum-ColorHandle{border-color:var(--spectrum-colorhandle-inner-border-color,var(--spectrum-global-color-static-white));box-shadow:0 0 0 var(--spectrum-colorhandle-outer-border-size,var(--spectrum-global-dimension-static-size-10))#0000006b;background-color:var(--spectrum-global-color-static-white,#fff);background-image:linear-gradient(-45deg,transparent 75.5%,var(--spectrum-global-color-static-gray-500,#bcbcbc)75.5%),linear-gradient(45deg,transparent 75.5%,var(--spectrum-global-color-static-gray-500,#bcbcbc)75.5%),linear-gradient(-45deg,var(--spectrum-global-color-static-gray-500,#bcbcbc)25.5%,transparent 25.5%),linear-gradient(45deg,var(--spectrum-global-color-static-gray-500,#bcbcbc)25.5%,transparent 25.5%)}.hoc2UW_spectrum-ColorHandle.hoc2UW_is-disabled{border-color:var(--spectrum-colorhandle-inner-border-color-disabled,var(--spectrum-global-color-gray-400));background:var(--spectrum-colorhandle-fill-color-disabled,var(--spectrum-global-color-gray-300));box-shadow:none}.hoc2UW_spectrum-ColorHandle.hoc2UW_is-disabled .hoc2UW_spectrum-ColorHandle-color{display:none}.hoc2UW_spectrum-ColorHandle-color{box-shadow:inset 0 0 0 var(--spectrum-colorhandle-outer-border-size,var(--spectrum-global-dimension-static-size-10))#0000006b}@media (forced-colors:active){.hoc2UW_spectrum-ColorHandle{forced-color-adjust:none;--spectrum-colorhandle-inner-border-color-disabled:GrayText;--spectrum-colorhandle-fill-color-disabled:GrayText;--spectrum-colorhandle-inner-border-color:ButtonText;--spectrum-colorhandle-outer-border-color:ButtonFace}}.HpWpfq_spectrum-ColorLoupe{width:calc(var(--spectrum-colorloupe-width,var(--spectrum-global-dimension-static-size-600)) + var(--spectrum-colorhandle-inner-border-size,var(--spectrum-global-dimension-static-size-25))*2);height:calc(var(--spectrum-colorloupe-height,var(--spectrum-global-dimension-static-size-800)) + var(--spectrum-colorhandle-inner-border-size,var(--spectrum-global-dimension-static-size-25))*2);transform:translate(0,var(--spectrum-global-dimension-static-size-100,8px));opacity:0;transform-origin:bottom;bottom:calc(50% + var(--spectrum-global-dimension-static-size-200,16px));left:calc(50% - calc(calc(var(--spectrum-colorloupe-width,var(--spectrum-global-dimension-static-size-600)) + var(--spectrum-colorhandle-inner-border-size,var(--spectrum-global-dimension-static-size-25))*2)/2));pointer-events:none;transition:transform .1s ease-in-out,opacity .125s ease-in-out;position:absolute}.HpWpfq_spectrum-ColorLoupe.HpWpfq_is-open{opacity:1;z-index:2;transform:translate(0)}.HpWpfq_spectrum-ColorLoupe-outer{stroke-width:var(--spectrum-colorloupe-outer-border-size,var(--spectrum-global-dimension-static-size-10));fill:var(--spectrum-colorloupe-inner-border-color,var(--spectrum-global-color-static-white));stroke:var(--spectrum-colorloupe-outer-border-color,#3232321a)}.HpWpfq_spectrum-ColorLoupe-inner-background{fill:var(--spectrum-global-color-static-white,#fff)}.HpWpfq_spectrum-ColorLoupe-inner-checker{fill:var(--spectrum-global-color-static-gray-500,#bcbcbc)}@media (forced-colors:active){.HpWpfq_spectrum-ColorLoupe{forced-color-adjust:none;--spectrum-colorloupe-inner-border-color:ButtonText;--spectrum-colorloupe-outer-border-color:ButtonFace}}.lm1DSq_spectrum-ColorArea{inline-size:var(--spectrum-colorarea-default-width,var(--spectrum-global-dimension-size-2400));block-size:var(--spectrum-colorarea-default-height,var(--spectrum-global-dimension-size-2400));min-inline-size:var(--spectrum-colorarea-min-width,var(--spectrum-global-dimension-size-800));min-block-size:var(--spectrum-colorarea-min-height,var(--spectrum-global-dimension-size-800));border-radius:var(--spectrum-colorarea-border-radius,var(--spectrum-alias-border-radius-regular));cursor:default;-webkit-user-select:none;user-select:none;display:inline-block;position:relative}.lm1DSq_spectrum-ColorArea.lm1DSq_is-focused{z-index:2}.lm1DSq_spectrum-ColorArea.lm1DSq_is-focused .lm1DSq_spectrum-ColorArea-handle{width:calc(var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200))*2);height:calc(var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200))*2);margin-left:calc(-1*var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200)));margin-top:calc(-1*var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200)))}.lm1DSq_spectrum-ColorArea.lm1DSq_focus-ring{z-index:2}.lm1DSq_spectrum-ColorArea.lm1DSq_focus-ring .lm1DSq_spectrum-ColorArea-handle{width:calc(var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200))*2);height:calc(var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200))*2);margin-left:calc(-1*var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200)));margin-top:calc(-1*var(--spectrum-colorhandle-size,var(--spectrum-global-dimension-size-200)))}.lm1DSq_spectrum-ColorArea.lm1DSq_is-disabled{pointer-events:none}.lm1DSq_spectrum-ColorArea:before{content:"";z-index:1;border-radius:var(--spectrum-colorarea-border-radius,var(--spectrum-alias-border-radius-regular));position:absolute;top:0;bottom:0;left:0;right:0}.lm1DSq_spectrum-ColorArea-handle{top:0;left:0}.lm1DSq_spectrum-ColorArea-handle:focus-within{z-index:2}.lm1DSq_spectrum-ColorArea-gradient{border-radius:var(--spectrum-colorarea-border-radius,var(--spectrum-alias-border-radius-regular));width:100%;height:100%}.lm1DSq_spectrum-ColorArea-slider{opacity:.0001;z-index:0;pointer-events:none;width:100%;height:100%;margin:0;position:absolute;top:0;left:0}.lm1DSq_spectrum-ColorArea:before{box-shadow:inset 0 0 0 var(--spectrum-colorarea-border-size,var(--spectrum-alias-border-size-thin))var(--spectrum-colorarea-border-color)}.lm1DSq_spectrum-ColorArea-gradient,.lm1DSq_spectrum-ColorHandle-color{forced-color-adjust:none}.lm1DSq_spectrum-ColorArea.lm1DSq_is-disabled{background:var(--spectrum-colorarea-fill-color-disabled,var(--spectrum-global-color-gray-300))}.lm1DSq_spectrum-ColorArea.lm1DSq_is-disabled:before{box-shadow:inset 0 0 0 var(--spectrum-colorarea-border-size,var(--spectrum-alias-border-size-thin))var(--spectrum-colorarea-border-color-disabled,var(--spectrum-global-color-gray-300))}.lm1DSq_spectrum-ColorArea.lm1DSq_is-disabled .lm1DSq_spectrum-ColorArea-gradient{display:none}@media (forced-colors:active){.lm1DSq_spectrum-ColorArea{--spectrum-colorarea-fill-color-disabled:GrayText;forced-color-adjust:none}.lm1DSq_spectrum-ColorArea.lm1DSq_is-disabled{forced-color-adjust:none}}.qPIMxa_spectrum-ColorControl-hiddenField{opacity:.0001;z-index:0;pointer-events:none;width:100%;height:100%;margin:0;position:absolute;top:0;left:0}.qPIMxa_spectrum-ColorWheel.qPIMxa_spectrum-ColorWheel{width:calc(var(--spectrum-global-dimension-size-125)*16);height:calc(var(--spectrum-global-dimension-size-125)*16);--spectrum-colorwheel-track-thickness:var(--spectrum-colorwheel-track-width,var(--spectrum-global-dimension-size-300));-webkit-user-select:none;user-select:none;touch-action:none;cursor:default;border-radius:100%;display:block;position:relative}.qPIMxa_spectrum-ColorWheel.qPIMxa_spectrum-ColorWheel .qPIMxa_spectrum-ColorWheel-handle{margin:0}.qPIMxa_spectrum-ColorWheel.qPIMxa_spectrum-ColorWheel.qPIMxa_is-focused{z-index:2}.qPIMxa_spectrum-ColorWheel.qPIMxa_spectrum-ColorWheel.qPIMxa_is-disabled{pointer-events:none}.qPIMxa_spectrum-ColorWheel.qPIMxa_spectrum-ColorWheel.qPIMxa_is-dragged{z-index:2}.qPIMxa_spectrum-ColorWheel-gradient{z-index:0;width:calc(var(--spectrum-global-dimension-size-125)*16);height:calc(var(--spectrum-global-dimension-size-125)*16);position:relative}.qPIMxa_spectrum-ColorWheel-gradient:before,.qPIMxa_spectrum-ColorWheel-gradient:after{content:"";border-width:var(--spectrum-colorwheel-border-size,var(--spectrum-alias-border-size-thin));border-style:solid;border-radius:100%;position:absolute}.qPIMxa_spectrum-ColorWheel-gradient:before{top:0;bottom:0;left:0;right:0}.qPIMxa_spectrum-ColorWheel-gradient:after{top:calc(var(--spectrum-colorwheel-track-width,var(--spectrum-global-dimension-size-300)) - var(--spectrum-colorwheel-border-size,var(--spectrum-alias-border-size-thin)));left:calc(var(--spectrum-colorwheel-track-width,var(--spectrum-global-dimension-size-300)) - var(--spectrum-colorwheel-border-size,var(--spectrum-alias-border-size-thin)));bottom:calc(var(--spectrum-colorwheel-track-width,var(--spectrum-global-dimension-size-300)) - var(--spectrum-colorwheel-border-size,var(--spectrum-alias-border-size-thin)));right:calc(var(--spectrum-colorwheel-track-width,var(--spectrum-global-dimension-size-300)) - var(--spectrum-colorwheel-border-size,var(--spectrum-alias-border-size-thin)))}.qPIMxa_spectrum-ColorWheel.qPIMxa_is-disabled .qPIMxa_spectrum-ColorWheel-gradient{background:var(--spectrum-colorwheel-fill-color-disabled,var(--spectrum-global-color-gray-300))!important}.qPIMxa_spectrum-ColorWheel.qPIMxa_is-disabled .qPIMxa_spectrum-ColorWheel-gradient:before,.qPIMxa_spectrum-ColorWheel.qPIMxa_is-disabled .qPIMxa_spectrum-ColorWheel-gradient:after{border-color:var(--spectrum-colorwheel-border-color-disabled,var(--spectrum-global-color-gray-300))}.qPIMxa_spectrum-ColorWheel.qPIMxa_is-disabled .qPIMxa_spectrum-ColorWheel-segment{display:none}.qPIMxa_spectrum-ColorWheel-gradient:before,.qPIMxa_spectrum-ColorWheel-gradient:after{border-color:var(--spectrum-colorarea-border-color)}@media (forced-colors:active){.qPIMxa_spectrum-ColorWheel{forced-color-adjust:none;--spectrum-colorwheel-fill-color-disabled:GrayText;--spectrum-colorwheel-border-color-disabled:GrayText;--spectrum-colorwheel-border-color:ButtonText;--spectrum-colorarea-border-color:ButtonText}}.WJOmgG_spectrum-ColorControl-hiddenField{opacity:.0001;z-index:0;pointer-events:none;width:100%;height:100%;margin:0;position:absolute;top:0;left:0}.WJOmgG_spectrum-ColorSlider-container--horizontal{width:var(--spectrum-colorslider-default-length,var(--spectrum-global-dimension-size-2400))}.WJOmgG_spectrum-ColorSlider-container--vertical{height:var(--spectrum-colorslider-default-length,var(--spectrum-global-dimension-size-2400));flex-direction:column;display:flex}.WJOmgG_spectrum-ColorSlider{height:var(--spectrum-colorslider-height,var(--spectrum-global-dimension-size-300));border-radius:var(--spectrum-colorslider-border-radius,var(--spectrum-alias-border-radius-regular));-webkit-user-select:none;user-select:none;touch-action:none;cursor:default;width:100%;display:block;position:relative}.WJOmgG_spectrum-ColorSlider .WJOmgG_spectrum-ColorSlider-handle.WJOmgG_spectrum-ColorSlider-handle{margin:0}.WJOmgG_spectrum-ColorSlider:before{content:"";z-index:-1;border-radius:var(--spectrum-colorslider-border-radius,var(--spectrum-alias-border-radius-regular));background-size:var(--spectrum-global-dimension-static-size-200,16px)var(--spectrum-global-dimension-static-size-200,16px);background-position:0 0,0 var(--spectrum-global-dimension-static-size-100,8px),var(--spectrum-global-dimension-static-size-100,8px)calc(-1*var(--spectrum-global-dimension-static-size-100,8px)),calc(-1*var(--spectrum-global-dimension-static-size-100,8px))0;position:absolute;top:0;bottom:0;left:0;right:0}.WJOmgG_spectrum-ColorSlider.WJOmgG_is-focused{z-index:2}.WJOmgG_spectrum-ColorSlider.WJOmgG_is-disabled{pointer-events:none}.WJOmgG_spectrum-ColorSlider--vertical{width:var(--spectrum-colorslider-vertical-width,var(--spectrum-global-dimension-size-300));flex:1;display:inline-block}.WJOmgG_spectrum-ColorSlider--vertical .WJOmgG_spectrum-ColorSlider-handle{top:0;left:50%}.WJOmgG_spectrum-ColorSlider-handle{top:50%;left:0}.WJOmgG_spectrum-ColorSlider-handle:after{width:var(--spectrum-global-dimension-size-300);height:var(--spectrum-global-dimension-size-300);border-radius:0%}.WJOmgG_spectrum-ColorSlider-labelContainer{grid-template-columns:auto 1fr auto;grid-template-areas:"WJOmgG_label WJOmgG_contextualHelp WJOmgG_value";justify-items:start;display:grid}.WJOmgG_spectrum-ColorSlider-contextualHelp.WJOmgG_spectrum-ColorSlider-contextualHelp{margin-inline-start:var(--spectrum-global-dimension-size-50);margin-top:var(--spectrum-global-dimension-size-25);grid-area:WJOmgG_contextualHelp}.WJOmgG_spectrum-ColorSlider-valueLabel{grid-area:WJOmgG_value;margin-inline-start:var(--spectrum-global-dimension-size-50)}.WJOmgG_spectrum-ColorSlider{background-color:var(--spectrum-global-color-static-white,#fff);box-shadow:inset 0 0 0 var(--spectrum-colorslider-border-size,var(--spectrum-alias-border-size-thin))var(--spectrum-colorarea-border-color)}.WJOmgG_spectrum-ColorSlider:before{background-image:linear-gradient(-45deg,transparent 75.5%,var(--spectrum-global-color-static-gray-500,#bcbcbc)75.5%),linear-gradient(45deg,transparent 75.5%,var(--spectrum-global-color-static-gray-500,#bcbcbc)75.5%),linear-gradient(-45deg,var(--spectrum-global-color-static-gray-500,#bcbcbc)25.5%,transparent 25.5%),linear-gradient(45deg,var(--spectrum-global-color-static-gray-500,#bcbcbc)25.5%,transparent 25.5%)}.WJOmgG_spectrum-ColorSlider.WJOmgG_is-disabled{box-shadow:inset 0 0 0 var(--spectrum-colorslider-border-size,var(--spectrum-alias-border-size-thin))var(--spectrum-colorslider-border-color-disabled,var(--spectrum-global-color-gray-300));background:var(--spectrum-colorslider-fill-color-disabled,var(--spectrum-global-color-gray-300))!important}@media (forced-colors:active){.WJOmgG_spectrum-ColorSlider{forced-color-adjust:none;--spectrum-colorslider-fill-color-disabled:GrayText;--spectrum-colorslider-border-color-disabled:GrayText;--spectrum-colorslider-border-color:ButtonText;--spectrum-colorarea-border-color:ButtonText}}.UccskW_react-spectrum-ColorField-input:not(:placeholder-shown){unicode-bidi:plaintext}.UccskW_react-spectrum-ColorField-input:not(:placeholder-shown):-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){text-align:end}.UccskW_react-spectrum-ColorField-input:not(:placeholder-shown):is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){text-align:end}