@sanity/color-input
6.1.36.1.4
dist/ColorInput-BRrHwG0Y.js.map−
dist/ColorInput-BRrHwG0Y.js.mapDeleted−1
Index: package/dist/ColorInput-BRrHwG0Y.js.map
===================================================================
--- package/dist/ColorInput-BRrHwG0Y.js.map
+++ package/dist/ColorInput-BRrHwG0Y.js.map
@@ -1,1 +0,0 @@
-{"version":3,"file":"ColorInput-BRrHwG0Y.js","names":["Flex","assignInlineVars","ComponentProps","tinycolor","Color","ColorChangeHandler","colorBox","colorBoxContainer","colorListWrap","swatchBackgroundVar","ColorListWrap","props","$","_c","t0","ColorBoxContainer","ColorBox","backgroundColor","t1","t2","ValidatedColor","key","color","ColorListProps","colors","Array","onChange","validateColors","seen","Set","reduce","cls","c","hex","isValid","toRgbString","JSON","stringify","has","add","push","ColorList","t3","map","checkboardCache","Record","render","c1","c2","size","serverCanvas","HTMLCanvasElement","document","canvas","createElement","width","height","ctx","getContext","fillStyle","fillRect","translate","toDataURL","get","key","cached","checkboard","assignInlineVars","ReactElement","checkboardHelper","CheckboardRenderers","RenderersProps","backgroundImageVar","borderRadiusVar","boxShadowVar","checkboard","EMPTY_RENDERERS","CheckboardProps","white","grey","size","borderRadius","boxShadow","Checkboard","t0","$","_c","t1","t2","t3","renderers","t4","undefined","t5","canvas","get","background","t6","t7","t8","AlphaColorResult","HSLColor","PickerEvent","calculateChange","e","hsl","direction","initialA","container","HTMLElement","containerWidth","clientWidth","containerHeight","clientHeight","x","touches","pageX","y","pageY","left","getBoundingClientRect","window","scrollX","top","scrollY","a","Math","round","h","s","l","source","useEffectEvent","useLayoutEffect","RefObject","UseDragOptions","onDragStart","event","MouseEvent","onDrag","getWindow","Window","enabled","useDrag","targetRef","options","$","_c","_temp","t0","target","current","_temp2","controller","AbortController","dragController","addEventListener","abort","signal","targetWindow","moveEvent","t1","window","assignInlineVars","useRef","ReactElement","Checkboard","alpha","useDrag","AlphaColorResult","CheckboardRenderers","ColorChangeHandler","HSLColor","PickerEvent","RGBColor","checkboardLayer","container","gradientLayer","gradientVar","pointer","pointerKnob","pointerLeftVar","pointerTopVar","radiusVar","root","shadowVar","AlphaProps","rgb","hsl","a","direction","radius","shadow","renderers","onChange","Alpha","t0","$","_c","containerRef","t1","event","containerEl","current","change","calculateChange","handleChange","t2","event_0","t3","onDragStart","onDrag","alphaValue","gradient","r","g","b","pointerDirection","t4","undefined","t5","t6","t7","t8","Symbol","for","t9","t10","t11","t12","t13","startTransition","useEffect","useId","useRef","useState","ChangeEvent","KeyboardEvent","ReactKeyboardEvent","ReactElement","useDrag","input","label","labelClass","labelDrag","wrap","DEFAULT_ARROW_OFFSET","getNumberValue","value","Number","String","replace","normalizeDisplayValue","toUpperCase","EditableInputEvent","HTMLInputElement","MouseEvent","EditableInputProps","arrowOffset","placeholder","hideLabel","dragLabel","dragMax","onChange","Record","event","EditableInput","t0","$","_c","valueProp","inputId","inputRef","labelRef","t1","initialValue","inputValue","setInputValue","blurValue","setBlurValue","t2","t3","nextValue","isFocused","current","document","activeElement","currentBlurValue","t4","handleBlur","t5","target","handleChange","t6","event_0","numericValue","currentTarget","isUp","key","isDown","isNaN","offset","updatedValue","handleKeyDown","t7","event_1","numericValue_0","newValue","Math","round","movementX","undefined","handleDrag","showLabel","Boolean","t8","event_2","preventDefault","t9","enabled","onDragStart","onDrag","t10","t11","t12","tinycolor","Color","ColorState","VALIDATION_KEYS","Set","PERCENT_PATTERN","simpleCheckForValidColor","data","checked","passed","key","value","Object","entries","has","Number","isNaN","test","String","toState","oldHue","instance","hex","hsl","toHsl","hsv","toHsv","rgb","toRgb","toHex","s","h","transparent","a","incomingHue","undefined","source","isValidHex","lh","charAt","length","isValid","HSLColor","HueColorResult","PickerEvent","calculateChange","e","direction","hsl","container","HTMLElement","containerWidth","clientWidth","containerHeight","clientHeight","x","touches","pageX","y","pageY","left","getBoundingClientRect","window","scrollX","top","scrollY","h","percent","s","l","a","source","assignInlineVars","useRef","ReactElement","hue","useDrag","ColorChangeHandler","HSLColor","HueColorResult","PickerEvent","gradient","pointer","pointerKnob","pointerLeftVar","pointerTopVar","radiusVar","root","shadowVar","HueProps","hsl","direction","radius","shadow","onChange","Hue","t0","$","_c","t1","undefined","containerRef","t2","event","container","current","change","calculateChange","handleChange","t3","event_0","t4","onDragStart","onDrag","pointerDirection","t5","h","t6","t7","t8","t9","t10","Symbol","for","t11","t12","t13","HSLColor","PickerEvent","SaturationColorResult","calculateChange","e","hsl","container","HTMLElement","width","containerWidth","height","containerHeight","getBoundingClientRect","x","touches","pageX","y","pageY","left","window","scrollX","top","scrollY","saturation","bright","h","s","v","a","source","assignInlineVars","throttle","useEffect","useMemo","useRef","ReactElement","saturation","useDrag","ColorChangeHandler","HSLColor","HSVColor","PickerEvent","SaturationColorResult","black","hueBackgroundVar","pointer","pointerKnob","pointerLeftVar","pointerTopVar","radiusVar","root","shadowVar","white","ThrottledChange","ReturnType","handler","data","SaturationProps","hsl","hsv","radius","shadow","onChange","Saturation","t0","$","_c","containerRef","t1","Symbol","for","_temp","throttledChange","t2","t3","cancel","t4","event","container","current","calculateChange","handleChange","t5","event_0","t6","renderWindow","window","document","contains","parent","t7","onDragStart","onDrag","getWindow","t8","h","t9","v","t10","s","t11","t12","t13","t14","Box","Flex","useTheme_v2","assignInlineVars","useCallback","Color","ColorChangeHandler","EditableInput","HSLColor","isValidHex","RGBColor","inputBgVar","inputBorderVar","inputFgVar","inputFontSizeVar","labelFgVar","labelFontSizeVar","ColorPickerFieldsProps","rgb","hsl","hex","disableAlpha","onChange","ColorPickerFields","t0","$","_c","color","font","inputEnabled","input","default","enabled","textFontSize","text","sizes","fontSize","labelFontSize","label","t1","data","source","r","g","b","Number","a","alpha","h","s","l","handleChange","t2","undefined","t3","t4","fg","bg","border","t5","replace","t6","t7","t8","t9","t10","t11","t12","t13","Math","round","t14","createVar","style","widthVar","previewBackgroundVar","root","width","saturationCard","position","height","sliderCard","alphaCard","selectors","background","previewCard","minWidth","colorBox","top","left","backgroundColor","readOnlyContainer","marginTop","fieldsBox","AddIcon","TrashIcon","Box","Button","Card","Flex","Inline","Stack","Text","assignInlineVars","startTransition","useOptimistic","useRef","ComponentProps","ObjectInputProps","set","setIfMissing","unset","ColorList","ColorPickerFields","Alpha","Checkboard","Color","ColorState","Hue","Saturation","simpleCheckForValidColor","toState","ColorSchemaType","ColorValue","alphaCard","colorBox","fieldsBox","previewBackgroundVar","previewCard","readOnlyContainer","root","saturationCard","sliderCard","widthVar","ColorBox","t0","$","_c","backgroundColor","t1","t2","ReadOnlyContainer","props","FieldsBox","ColorPickerProps","width","disableAlpha","colorList","Array","readOnly","onChange","color","onUnset","ColorPicker","onChangeProp","rgb","hex","hsv","hsl","oldHueRef","h","data","incomingHue","undefined","oldHue","s","current","nextColor","t3","t4","Symbol","for","t5","r","g","b","a","t6","t7","l","Math","round","t8","t9","t10","t11","t12","t13","DEFAULT_COLOR","source","v","ColorInput","_value","value","setColorOptimistic","type","schemaType","focusRef","handleChange","fieldPatches","fields","filter","field","name","map","field_0","nextFieldValue","isObject","jsonType","Object","assign","_type","nextColor_0","options","Boolean"],"sources":["../src/ColorList.css.ts","../src/ColorList.tsx","../src/react-color/helpers/checkboard.ts","../src/react-color/Checkboard.css.ts","../src/react-color/Checkboard.tsx","../src/react-color/helpers/alpha.ts","../src/react-color/helpers/useDrag.ts","../src/react-color/Alpha.css.ts","../src/react-color/Alpha.tsx","../src/react-color/EditableInput.css.ts","../src/react-color/EditableInput.tsx","../src/react-color/helpers/color.ts","../src/react-color/helpers/hue.ts","../src/react-color/Hue.css.ts","../src/react-color/Hue.tsx","../src/react-color/helpers/saturation.ts","../src/react-color/Saturation.css.ts","../src/react-color/Saturation.tsx","../src/ColorPickerFields.tsx","../src/ColorInput.css.ts","../src/ColorInput.tsx"],"sourcesContent":["import {createVar, style} from '@vanilla-extract/css'\n\nexport const swatchBackgroundVar = createVar()\n\nexport const colorListWrap = style({\n gap: '0.25em',\n})\n\nexport const colorBoxContainer = style({\n width: '2.1em',\n height: '2.1em',\n cursor: 'pointer',\n position: 'relative',\n overflow: 'hidden',\n borderRadius: '3px',\n background:\n \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAADFJREFUOE9jZGBgEGHAD97gk2YcNYBhmIQBgWSAP52AwoAQwJvQRg1gACckQoC2gQgAIF8IscwEtKYAAAAASUVORK5CYII=') left center #fff\",\n})\n\nexport const colorBox = style({\n borderRadius: 'inherit',\n boxShadow: 'inset 0 0 0 1px var(--card-shadow-outline-color)',\n position: 'absolute',\n inset: 0,\n zIndex: 1,\n background: swatchBackgroundVar,\n})\n","import {Flex} from '@sanity/ui'\nimport {assignInlineVars} from '@vanilla-extract/dynamic'\nimport type {ComponentProps} from 'react'\nimport tinycolor from 'tinycolor2'\n\nimport type {Color, ColorChangeHandler} from './react-color'\n\nimport {colorBox, colorBoxContainer, colorListWrap, swatchBackgroundVar} from './ColorList.css'\n\nfunction ColorListWrap(props: ComponentProps<typeof Flex>) {\n return <Flex {...props} className={colorListWrap} />\n}\n\nfunction ColorBoxContainer(props: ComponentProps<'div'>) {\n return <div {...props} className={colorBoxContainer} />\n}\n\nfunction ColorBox({backgroundColor}: {backgroundColor: string}) {\n return (\n <div className={colorBox} style={assignInlineVars({[swatchBackgroundVar]: backgroundColor})} />\n )\n}\n\ninterface ValidatedColor {\n key: string\n color: Color\n backgroundColor: string\n}\n\ninterface ColorListProps {\n colors?: Array<Color>\n onChange: ColorChangeHandler<Color>\n}\n\nconst validateColors = (colors: Array<Color>) => {\n const seen = new Set<string>()\n return colors.reduce((cls: Array<ValidatedColor>, c) => {\n // @ts-expect-error fix types later\n const color = c.hex ? tinycolor(c.hex) : tinycolor(c)\n if (color.isValid()) {\n const backgroundColor = color.toRgbString()\n const key = JSON.stringify({color: c, backgroundColor})\n if (!seen.has(key)) {\n seen.add(key)\n cls.push({key, color: c, backgroundColor})\n }\n }\n return cls\n }, [])\n}\n\nexport function ColorList({colors, onChange}: ColorListProps): React.JSX.Element | null {\n if (!colors) return null\n return (\n <ColorListWrap wrap=\"wrap\">\n {validateColors(colors).map(({key, color, backgroundColor}) => (\n <ColorBoxContainer\n key={key}\n onClick={() => {\n onChange(color)\n }}\n >\n <ColorBox backgroundColor={backgroundColor} />\n </ColorBoxContainer>\n ))}\n </ColorListWrap>\n )\n}\n","/**\n * Renders a checkerboard pattern as a data URL, used as the transparency backdrop.\n *\n * Forked from\n * {@link https://github.com/casesandberg/react-color/blob/v2.19.3/src/helpers/checkboard.js | react-color's checkboard helper}\n * (MIT, Copyright (c) 2015 Case Sandberg). See the plugin LICENSE.\n */\n\nconst checkboardCache: Record<string, string | null> = {}\n\nfunction render(\n c1: string,\n c2: string,\n size: number,\n serverCanvas?: new () => HTMLCanvasElement,\n): string | null {\n if (typeof document === 'undefined' && !serverCanvas) {\n return null\n }\n const canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas')\n canvas.width = size * 2\n canvas.height = size * 2\n const ctx = canvas.getContext('2d')\n if (!ctx) {\n // If no context can be found, return early.\n return null\n }\n ctx.fillStyle = c1\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n ctx.fillStyle = c2\n ctx.fillRect(0, 0, size, size)\n ctx.translate(size, size)\n ctx.fillRect(0, 0, size, size)\n return canvas.toDataURL()\n}\n\nexport function get(\n c1: string,\n c2: string,\n size: number,\n serverCanvas?: new () => HTMLCanvasElement,\n): string | null {\n const key = `${c1}-${c2}-${size}${serverCanvas ? '-server' : ''}`\n const cached = checkboardCache[key]\n if (cached) {\n return cached\n }\n const checkboard = render(c1, c2, size, serverCanvas)\n checkboardCache[key] = checkboard\n return checkboard\n}\n","import {createVar, style} from '@vanilla-extract/css'\n\nexport const borderRadiusVar = createVar()\nexport const boxShadowVar = createVar()\nexport const backgroundImageVar = createVar()\n\nexport const checkboard = style({\n borderRadius: borderRadiusVar,\n boxShadow: boxShadowVar,\n position: 'absolute',\n inset: 0,\n background: backgroundImageVar,\n})\n","/**\n * Checkerboard transparency backdrop.\n *\n * Forked from\n * {@link https://github.com/casesandberg/react-color/blob/v2.19.3/src/components/common/Checkboard.js | react-color's Checkboard}\n * (MIT, Copyright (c) 2015 Case Sandberg). See the plugin LICENSE. The upstream\n * `children` cloning branch is dropped as it is unused here.\n */\nimport {assignInlineVars} from '@vanilla-extract/dynamic'\nimport type {ReactElement} from 'react'\n\nimport * as checkboardHelper from './helpers/checkboard'\nimport type {CheckboardRenderers, RenderersProps} from './types'\n\nimport {backgroundImageVar, borderRadiusVar, boxShadowVar, checkboard} from './Checkboard.css'\n\nconst EMPTY_RENDERERS: CheckboardRenderers = {}\n\nexport interface CheckboardProps extends RenderersProps {\n white?: string | undefined\n grey?: string | undefined\n size?: number | undefined\n borderRadius?: string | undefined\n boxShadow?: string | undefined\n}\n\nexport function Checkboard({\n white = 'transparent',\n grey = 'rgba(0,0,0,.08)',\n size = 8,\n renderers = EMPTY_RENDERERS,\n borderRadius,\n boxShadow,\n}: CheckboardProps): ReactElement {\n const background = checkboardHelper.get(white, grey, size, renderers.canvas)\n return (\n <div\n className={checkboard}\n style={assignInlineVars({\n [borderRadiusVar]: borderRadius,\n [boxShadowVar]: boxShadow,\n [backgroundImageVar]: background ? `url(${background}) center left` : undefined,\n })}\n />\n )\n}\n","/**\n * Translates a pointer event over the alpha track into a new alpha value.\n *\n * Forked from\n * {@link https://github.com/casesandberg/react-color/blob/v2.19.3/src/helpers/alpha.js | react-color's alpha helper}\n * (MIT, Copyright (c) 2015 Case Sandberg). See the plugin LICENSE.\n */\nimport type {AlphaColorResult, HSLColor, PickerEvent} from '../types'\n\nexport function calculateChange(\n e: PickerEvent,\n hsl: HSLColor,\n direction: 'horizontal' | 'vertical' | undefined,\n initialA: number | undefined,\n container: HTMLElement,\n): AlphaColorResult | null {\n const containerWidth = container.clientWidth\n const containerHeight = container.clientHeight\n const x = 'touches' in e ? (e.touches[0]?.pageX ?? 0) : e.pageX\n const y = 'touches' in e ? (e.touches[0]?.pageY ?? 0) : e.pageY\n const left = x - (container.getBoundingClientRect().left + window.scrollX)\n const top = y - (container.getBoundingClientRect().top + window.scrollY)\n\n if (direction === 'vertical') {\n let a: number\n if (top < 0) {\n a = 0\n } else if (top > containerHeight) {\n a = 1\n } else {\n a = Math.round((top * 100) / containerHeight) / 100\n }\n\n if (hsl.a !== a) {\n return {h: hsl.h, s: hsl.s, l: hsl.l, a, source: 'rgb'}\n }\n return null\n }\n\n let a: number\n if (left < 0) {\n a = 0\n } else if (left > containerWidth) {\n a = 1\n } else {\n a = Math.round((left * 100) / containerWidth) / 100\n }\n\n if (initialA !== a) {\n return {h: hsl.h, s: hsl.s, l: hsl.l, a, source: 'rgb'}\n }\n return null\n}\n","/**\n * Drag plumbing shared by the picker surfaces (Saturation/Hue/Alpha) and the\n * draggable `EditableInput` label.\n *\n * Attaches a native `mousedown` listener to the target element; each drag then\n * tracks `mousemove`/`mouseup` on a window until the pointer is released or the\n * component unmounts. The callbacks are Effect Events, so every event reads the\n * latest render's props — mirroring how the original react-color class methods\n * read `this.props` on each event.\n *\n * Note: this deliberately does not use a React 19 ref-callback with cleanup —\n * the React Compiler memoizes ref callbacks against their captured deps, so a\n * mid-drag prop update (every `mousemove` triggers `onChange`) would detach and\n * re-attach the ref, aborting the in-flight drag.\n */\nimport {useEffectEvent, useLayoutEffect, type RefObject} from 'react'\n\nexport interface UseDragOptions {\n /** Called on `mousedown`; return `false` to ignore the gesture. */\n onDragStart: (event: MouseEvent) => boolean\n /** Called for every `mousemove` while dragging. */\n onDrag: (event: MouseEvent) => void\n /** Window to track the drag on (e.g. the nearest render window in nested iframes). */\n getWindow?: () => Window\n /** Set when the target element renders conditionally, to re-attach when it appears. */\n enabled?: boolean\n}\n\nexport function useDrag(targetRef: RefObject<HTMLElement | null>, options: UseDragOptions): void {\n const onDragStart = useEffectEvent(options.onDragStart)\n const onDrag = useEffectEvent(options.onDrag)\n const getWindow = useEffectEvent(options.getWindow ?? (() => window))\n const enabled = options.enabled ?? true\n\n // useLayoutEffect so the listener is attached before paint — with useEffect\n // there is a small post-mount window where a drag could start unnoticed.\n useLayoutEffect(() => {\n const target = enabled ? targetRef.current : null\n if (!target) {\n return () => {}\n }\n\n const controller = new AbortController()\n let dragController: AbortController | null = null\n\n target.addEventListener(\n 'mousedown',\n (event) => {\n if (!onDragStart(event)) {\n return\n }\n dragController?.abort()\n dragController = new AbortController()\n const {signal} = dragController\n const targetWindow = getWindow()\n targetWindow.addEventListener('mousemove', (moveEvent) => onDrag(moveEvent), {signal})\n targetWindow.addEventListener('mouseup', () => dragController?.abort(), {signal})\n },\n {signal: controller.signal},\n )\n\n return () => {\n controller.abort()\n dragController?.abort()\n }\n }, [enabled, targetRef])\n}\n","import {createVar, style, styleVariants} from '@vanilla-extract/css'\n\nexport const radiusVar = createVar()\nexport const shadowVar = createVar()\nexport const gradientVar = createVar()\nexport const pointerLeftVar = createVar()\nexport const pointerTopVar = createVar()\n\nexport const root = style({\n position: 'absolute',\n inset: 0,\n borderRadius: radiusVar,\n})\n\nexport const checkboardLayer = style({\n position: 'absolute',\n inset: 0,\n overflow: 'hidden',\n borderRadius: radiusVar,\n})\n\nexport const gradientLayer = style({\n position: 'absolute',\n inset: 0,\n background: gradientVar,\n boxShadow: shadowVar,\n borderRadius: radiusVar,\n})\n\nexport const container = style({\n position: 'relative',\n height: '100%',\n margin: '0 3px',\n})\n\nexport const pointer = styleVariants({\n horizontal: {\n position: 'absolute',\n left: pointerLeftVar,\n },\n vertical: {\n position: 'absolute',\n left: 0,\n top: pointerTopVar,\n },\n})\n\nexport const pointerKnob = style({\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n marginTop: '1px',\n transform: 'translateX(-2px)',\n})\n","/**\n * Alpha (transparency) slider.\n *\n * Forked from\n * {@link https://github.com/casesandberg/react-color/blob/v2.19.3/src/components/common/Alpha.js | react-color's Alpha}\n * (MIT, Copyright (c) 2015 Case Sandberg). See the plugin LICENSE.\n */\nimport {assignInlineVars} from '@vanilla-extract/dynamic'\nimport {useRef, type ReactElement} from 'react'\n\nimport {Checkboard} from './Checkboard'\nimport * as alpha from './helpers/alpha'\nimport {useDrag} from './helpers/useDrag'\nimport type {\n AlphaColorResult,\n CheckboardRenderers,\n ColorChangeHandler,\n HSLColor,\n PickerEvent,\n RGBColor,\n} from './types'\n\nimport {\n checkboardLayer,\n container,\n gradientLayer,\n gradientVar,\n pointer,\n pointerKnob,\n pointerLeftVar,\n pointerTopVar,\n radiusVar,\n root,\n shadowVar,\n} from './Alpha.css'\n\nexport interface AlphaProps {\n rgb: RGBColor\n hsl: HSLColor\n a?: number | undefined\n direction?: 'horizontal' | 'vertical' | undefined\n radius?: string | undefined\n shadow?: string | undefined\n renderers?: CheckboardRenderers | undefined\n onChange?: ColorChangeHandler<AlphaColorResult> | undefined\n}\n\nexport function Alpha({\n rgb,\n hsl,\n a,\n direction,\n radius,\n shadow,\n renderers,\n onChange,\n}: AlphaProps): ReactElement {\n const containerRef = useRef<HTMLDivElement | null>(null)\n\n const handleChange = (event: PickerEvent) => {\n const containerEl = containerRef.current\n if (!containerEl) {\n return\n }\n const change = alpha.calculateChange(event, hsl, direction, a, containerEl)\n if (change && typeof onChange === 'function') {\n onChange(change)\n }\n }\n\n useDrag(containerRef, {\n onDragStart: (event) => {\n handleChange(event)\n return true\n },\n onDrag: handleChange,\n })\n\n const alphaValue = rgb.a ?? 1\n const gradient =\n direction === 'vertical'\n ? `linear-gradient(to bottom, rgba(${rgb.r},${rgb.g},${rgb.b}, 0) 0%, rgba(${rgb.r},${rgb.g},${rgb.b}, 1) 100%)`\n : `linear-gradient(to right, rgba(${rgb.r},${rgb.g},${rgb.b}, 0) 0%, rgba(${rgb.r},${rgb.g},${rgb.b}, 1) 100%)`\n const pointerDirection = direction === 'vertical' ? 'vertical' : 'horizontal'\n\n return (\n <div\n className={root}\n style={assignInlineVars({\n [radiusVar]: radius,\n [shadowVar]: shadow,\n [gradientVar]: gradient,\n [pointerLeftVar]: pointerDirection === 'horizontal' ? `${alphaValue * 100}%` : undefined,\n [pointerTopVar]: pointerDirection === 'vertical' ? `${alphaValue * 100}%` : undefined,\n })}\n >\n <div className={checkboardLayer}>\n <Checkboard renderers={renderers} />\n </div>\n <div className={gradientLayer} />\n <div\n className={container}\n ref={containerRef}\n onTouchMove={handleChange}\n onTouchStart={handleChange}\n >\n <div className={pointer[pointerDirection]}>\n <div className={pointerKnob} />\n </div>\n </div>\n </div>\n )\n}\n","import {createVar, style} from '@vanilla-extract/css'\n\nexport const inputBorderVar = createVar()\nexport const inputFgVar = createVar()\nexport const inputBgVar = createVar()\nexport const inputFontSizeVar = createVar()\nexport const labelFontSizeVar = createVar()\nexport const labelFgVar = createVar()\n\nexport const wrap = style({\n position: 'relative',\n})\n\nexport const input = style({\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: `inset 0 0 0 1px ${inputBorderVar}`,\n color: inputFgVar,\n backgroundColor: inputBgVar,\n fontSize: inputFontSizeVar,\n textAlign: 'center',\n})\n\nexport const label = style({\n display: 'block',\n textAlign: 'center',\n fontSize: labelFontSizeVar,\n color: labelFgVar,\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize',\n})\n\nexport const labelDrag = style({\n cursor: 'ew-resize',\n})\n","/**\n * Labeled text input with arrow-key stepping and drag-to-change support.\n *\n * Forked from\n * {@link https://github.com/casesandberg/react-color/blob/v2.19.3/src/components/common/EditableInput.js | react-color's EditableInput}\n * (MIT, Copyright (c) 2015 Case Sandberg). See the plugin LICENSE.\n *\n * @remarks\n * Theme-driven colors are applied via vanilla-extract CSS variables set by the\n * parent (`ColorPickerFields`).\n */\nimport {\n startTransition,\n useEffect,\n useId,\n useRef,\n useState,\n type ChangeEvent,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactElement,\n} from 'react'\n\nimport {useDrag} from './helpers/useDrag'\n\nimport {input, label as labelClass, labelDrag, wrap} from './EditableInput.css'\n\nconst DEFAULT_ARROW_OFFSET = 1\n\nconst getNumberValue = (value: string | number): number => Number(String(value).replace(/%/g, ''))\n\nconst normalizeDisplayValue = (value: string | number | undefined): string =>\n String(value ?? '').toUpperCase()\n\ntype EditableInputEvent =\n | ChangeEvent<HTMLInputElement>\n | ReactKeyboardEvent<HTMLInputElement>\n | MouseEvent\n\nexport interface EditableInputProps {\n label: string\n value?: string | number | undefined\n arrowOffset?: number | undefined\n placeholder?: string | undefined\n hideLabel?: boolean | undefined\n dragLabel?: boolean | undefined\n dragMax?: number | undefined\n onChange?: ((value: Record<string, string>, event: EditableInputEvent) => void) | undefined\n}\n\nexport function EditableInput({\n label,\n value: valueProp,\n arrowOffset,\n placeholder,\n hideLabel,\n dragLabel,\n dragMax,\n onChange,\n}: EditableInputProps): ReactElement {\n const inputId = useId()\n const inputRef = useRef<HTMLInputElement | null>(null)\n const labelRef = useRef<HTMLLabelElement | null>(null)\n const initialValue = normalizeDisplayValue(valueProp)\n const [inputValue, setInputValue] = useState(initialValue)\n const [blurValue, setBlurValue] = useState(initialValue)\n\n useEffect(() => {\n const nextValue = normalizeDisplayValue(valueProp)\n if (nextValue === inputValue) {\n // The prop caught up with what's displayed — drop any blur-sync value\n // captured from an older prop so blur doesn't restore it.\n startTransition(() => {\n setBlurValue('')\n })\n return\n }\n\n const isFocused = inputRef.current === document.activeElement\n\n if (isFocused) {\n setBlurValue(nextValue)\n return\n }\n\n setInputValue(nextValue)\n setBlurValue((currentBlurValue) => (currentBlurValue ? '' : nextValue))\n }, [inputValue, valueProp])\n\n const handleBlur = () => {\n if (blurValue) {\n // Restore from the prop rather than the stored value: the transition\n // that clears a stale `blurValue` may not have committed yet, but\n // `valueProp` is always current — so a value the parent already\n // accepted is never rolled back.\n setInputValue(normalizeDisplayValue(valueProp))\n setBlurValue('')\n }\n }\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const {value} = event.target\n onChange?.({[label]: value}, event)\n setInputValue(value)\n }\n\n const handleKeyDown = (event: ReactKeyboardEvent<HTMLInputElement>) => {\n const numericValue = getNumberValue(event.currentTarget.value)\n const isUp = event.key === 'ArrowUp'\n const isDown = event.key === 'ArrowDown'\n if (!Number.isNaN(numericValue) && (isUp || isDown)) {\n const offset = arrowOffset ?? DEFAULT_ARROW_OFFSET\n const updatedValue = isUp ? numericValue + offset : numericValue - offset\n onChange?.({[label]: String(updatedValue)}, event)\n setInputValue(String(updatedValue))\n }\n }\n\n const handleDrag = (event: MouseEvent) => {\n if (!dragLabel) {\n return\n }\n const numericValue = typeof valueProp === 'number' ? valueProp : Number(valueProp)\n const newValue = Math.round(numericValue + event.movementX)\n if (dragMax !== undefined && newValue >= 0 && newValue <= dragMax) {\n onChange?.({[label]: String(newValue)}, event)\n }\n }\n\n const showLabel = Boolean(label && !hideLabel)\n\n useDrag(labelRef, {\n enabled: showLabel,\n onDragStart: (event) => {\n if (!dragLabel) {\n return false\n }\n event.preventDefault()\n handleDrag(event)\n return true\n },\n onDrag: handleDrag,\n })\n\n return (\n <div className={wrap}>\n <input\n id={inputId}\n className={input}\n ref={inputRef}\n value={inputValue}\n onKeyDown={handleKeyDown}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={placeholder}\n spellCheck=\"false\"\n />\n {showLabel ? (\n <label\n htmlFor={inputId}\n ref={labelRef}\n className={dragLabel ? `${labelClass} ${labelDrag}` : labelClass}\n >\n {label}\n </label>\n ) : null}\n </div>\n )\n}\n","/**\n * Color conversion and validation helpers built on `tinycolor2`.\n *\n * Forked from\n * {@link https://github.com/casesandberg/react-color/blob/v2.19.3/src/helpers/color.js | react-color's color helpers}\n * (MIT, Copyright (c) 2015 Case Sandberg). See the plugin LICENSE.\n */\nimport tinycolor from 'tinycolor2'\n\nimport type {Color, ColorState} from '../types'\n\nconst VALIDATION_KEYS = new Set(['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'])\nconst PERCENT_PATTERN = /^\\d+%$/\n\nexport function simpleCheckForValidColor(data: Color): Color | false {\n if (typeof data === 'string') {\n return data\n }\n\n let checked = 0\n let passed = 0\n for (const [key, value] of Object.entries(data)) {\n if (!VALIDATION_KEYS.has(key) || !value) {\n continue\n }\n checked += 1\n if (!Number.isNaN(Number(value))) {\n passed += 1\n }\n if ((key === 's' || key === 'l') && PERCENT_PATTERN.test(String(value))) {\n passed += 1\n }\n }\n\n return checked === passed ? data : false\n}\n\nexport function toState(data: Color, oldHue?: number): ColorState {\n const instance =\n typeof data === 'string'\n ? tinycolor(data)\n : 'hex' in data\n ? tinycolor(data.hex)\n : tinycolor(data)\n const hsl = instance.toHsl()\n const hsv = instance.toHsv()\n const rgb = instance.toRgb()\n const hex = instance.toHex()\n\n if (hsl.s === 0) {\n hsl.h = oldHue ?? 0\n hsv.h = oldHue ?? 0\n }\n\n const transparent = hex === '000000' && rgb.a === 0\n const incomingHue = typeof data === 'string' ? undefined : 'h' in data ? data.h : undefined\n const source = typeof data === 'string' ? undefined : data.source\n\n return {\n hsl,\n hex: transparent ? 'transparent' : `#${hex}`,\n rgb,\n hsv,\n oldHue: incomingHue || oldHue || hsl.h,\n source: source ?? '',\n }\n}\n\nexport function isValidHex(hex: string): boolean {\n if (hex === 'transparent') {\n return true\n }\n // Disallow hex4 and hex8 (with alpha) to match the original behavior.\n const lh = hex.charAt(0) === '#' ? 1 : 0\n return hex.length !== 4 + lh && hex.length < 7 + lh && tinycolor(hex).isValid()\n}\n","/**\n * Translates a pointer event over the hue track into a new hue value.\n *\n * Forked from\n * {@link https://github.com/casesandberg/react-color/blob/v2.19.3/src/helpers/hue.js | react-color's hue helper}\n * (MIT, Copyright (c) 2015 Case Sandberg). See the plugin LICENSE.\n */\nimport type {HSLColor, HueColorResult, PickerEvent} from '../types'\n\nexport function calculateChange(\n e: PickerEvent,\n direction: 'horizontal' | 'vertical' | undefined,\n hsl: HSLColor,\n container: HTMLElement,\n): HueColorResult | null {\n const containerWidth = container.clientWidth\n const containerHeight = container.clientHeight\n const x = 'touches' in e ? (e.touches[0]?.pageX ?? 0) : e.pageX\n const y = 'touches' in e ? (e.touches[0]?.pageY ?? 0) : e.pageY\n const left = x - (container.getBoundingClientRect().left + window.scrollX)\n const top = y - (container.getBoundingClientRect().top + window.scrollY)\n\n if (direction === 'vertical') {\n let h: number\n if (top < 0) {\n h = 359\n } else if (top > containerHeight) {\n h = 0\n } else {\n const percent = -((top * 100) / containerHeight) + 100\n h = (360 * percent) / 100\n }\n\n if (hsl.h !== h) {\n return {h, s: hsl.s, l: hsl.l, a: hsl.a ?? 1, source: 'hsl'}\n }\n return null\n }\n\n let h: number\n if (left < 0) {\n h = 0\n } else if (left > containerWidth) {\n h = 359\n } else {\n const percent = (left * 100) / containerWidth\n h = (360 * percent) / 100\n }\n\n if (hsl.h !== h) {\n return {h, s: hsl.s, l: hsl.l, a: hsl.a ?? 1, source: 'hsl'}\n }\n return null\n}\n","import {createVar, style, styleVariants} from '@vanilla-extract/css'\n\nexport const radiusVar = createVar()\nexport const shadowVar = createVar()\nexport const pointerLeftVar = createVar()\nexport const pointerTopVar = createVar()\n\nexport const root = style({\n position: 'absolute',\n inset: 0,\n borderRadius: radiusVar,\n boxShadow: shadowVar,\n})\n\nexport const gradient = styleVariants({\n horizontal: {\n background:\n 'linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%)',\n padding: '0 2px',\n position: 'relative',\n height: '100%',\n borderRadius: radiusVar,\n },\n vertical: {\n background:\n 'linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%)',\n padding: '0 2px',\n position: 'relative',\n height: '100%',\n borderRadius: radiusVar,\n },\n})\n\nexport const pointer = styleVariants({\n horizontal: {\n position: 'absolute',\n left: pointerLeftVar,\n },\n vertical: {\n position: 'absolute',\n left: '0px',\n top: pointerTopVar,\n },\n})\n\nexport const pointerKnob = style({\n marginTop: '1px',\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n transform: 'translateX(-2px)',\n})\n","/**\n * Hue slider.\n *\n * Forked from\n * {@link https://github.com/casesandberg/react-color/blob/v2.19.3/src/components/common/Hue.js | react-color's Hue}\n * (MIT, Copyright (c) 2015 Case Sandberg). See the plugin LICENSE.\n */\nimport {assignInlineVars} from '@vanilla-extract/dynamic'\nimport {useRef, type ReactElement} from 'react'\n\nimport * as hue from './helpers/hue'\nimport {useDrag} from './helpers/useDrag'\nimport type {ColorChangeHandler, HSLColor, HueColorResult, PickerEvent} from './types'\n\nimport {\n gradient,\n pointer,\n pointerKnob,\n pointerLeftVar,\n pointerTopVar,\n radiusVar,\n root,\n shadowVar,\n} from './Hue.css'\n\nexport interface HueProps {\n hsl: HSLColor\n direction?: 'horizontal' | 'vertical' | undefined\n radius?: string | undefined\n shadow?: string | undefined\n onChange?: ColorChangeHandler<HueColorResult> | undefined\n}\n\nexport function Hue({\n hsl,\n direction = 'horizontal',\n radius,\n shadow,\n onChange,\n}: HueProps): ReactElement {\n const containerRef = useRef<HTMLDivElement | null>(null)\n\n const handleChange = (event: PickerEvent) => {\n const container = containerRef.current\n if (!container) {\n return\n }\n const change = hue.calculateChange(event, direction, hsl, container)\n if (change && typeof onChange === 'function') {\n onChange(change)\n }\n }\n\n useDrag(containerRef, {\n onDragStart: (event) => {\n handleChange(event)\n return true\n },\n onDrag: handleChange,\n })\n\n const pointerDirection = direction === 'vertical' ? 'vertical' : 'horizontal'\n\n return (\n <div\n className={root}\n style={assignInlineVars({\n [radiusVar]: radius,\n [shadowVar]: shadow,\n [pointerLeftVar]: pointerDirection === 'horizontal' ? `${(hsl.h * 100) / 360}%` : undefined,\n [pointerTopVar]:\n pointerDirection === 'vertical' ? `${-((hsl.h * 100) / 360) + 100}%` : undefined,\n })}\n >\n <div\n className={gradient[pointerDirection]}\n ref={containerRef}\n onTouchMove={handleChange}\n onTouchStart={handleChange}\n >\n <div className={pointer[pointerDirection]}>\n <div className={pointerKnob} />\n </div>\n </div>\n </div>\n )\n}\n","/**\n * Translates a pointer event over the saturation/value box into a new color.\n *\n * Forked from\n * {@link https://github.com/casesandberg/react-color/blob/v2.19.3/src/helpers/saturation.js | react-color's saturation helper}\n * (MIT, Copyright (c) 2015 Case Sandberg). See the plugin LICENSE.\n */\nimport type {HSLColor, PickerEvent, SaturationColorResult} from '../types'\n\nexport function calculateChange(\n e: PickerEvent,\n hsl: HSLColor,\n container: HTMLElement,\n): SaturationColorResult {\n const {width: containerWidth, height: containerHeight} = container.getBoundingClientRect()\n const x = 'touches' in e ? (e.touches[0]?.pageX ?? 0) : e.pageX\n const y = 'touches' in e ? (e.touches[0]?.pageY ?? 0) : e.pageY\n let left = x - (container.getBoundingClientRect().left + window.scrollX)\n let top = y - (container.getBoundingClientRect().top + window.scrollY)\n\n if (left < 0) {\n left = 0\n } else if (left > containerWidth) {\n left = containerWidth\n }\n\n if (top < 0) {\n top = 0\n } else if (top > containerHeight) {\n top = containerHeight\n }\n\n const saturation = left / containerWidth\n const bright = 1 - top / containerHeight\n\n return {h: hsl.h, s: saturation, v: bright, a: hsl.a ?? 1, source: 'hsv'}\n}\n","import {createVar, style} from '@vanilla-extract/css'\n\nexport const radiusVar = createVar()\nexport const shadowVar = createVar()\nexport const hueBackgroundVar = createVar()\nexport const pointerTopVar = createVar()\nexport const pointerLeftVar = createVar()\n\nexport const root = style({\n position: 'absolute',\n inset: 0,\n background: hueBackgroundVar,\n borderRadius: radiusVar,\n})\n\nexport const white = style({\n position: 'absolute',\n inset: 0,\n borderRadius: radiusVar,\n background: 'linear-gradient(to right, #fff, rgba(255, 255, 255, 0))',\n})\n\nexport const black = style({\n position: 'absolute',\n inset: 0,\n boxShadow: shadowVar,\n borderRadius: radiusVar,\n background: 'linear-gradient(to top, #000, rgba(0, 0, 0, 0))',\n})\n\nexport const pointer = style({\n position: 'absolute',\n top: pointerTopVar,\n left: pointerLeftVar,\n cursor: 'default',\n})\n\nexport const pointerKnob = style({\n width: '4px',\n height: '4px',\n boxShadow: '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3), 0 0 1px 2px rgba(0,0,0,.4)',\n borderRadius: '50%',\n cursor: 'pointer',\n transform: 'translate(-2px, -2px)',\n})\n","/**\n * Saturation / value box.\n *\n * Forked from\n * {@link https://github.com/casesandberg/react-color/blob/v2.19.3/src/components/common/Saturation.js | react-color's Saturation}\n * (MIT, Copyright (c) 2015 Case Sandberg). See the plugin LICENSE.\n */\nimport {assignInlineVars} from '@vanilla-extract/dynamic'\nimport throttle from 'lodash-es/throttle'\nimport {useEffect, useMemo, useRef, type ReactElement} from 'react'\n\nimport * as saturation from './helpers/saturation'\nimport {useDrag} from './helpers/useDrag'\nimport type {\n ColorChangeHandler,\n HSLColor,\n HSVColor,\n PickerEvent,\n SaturationColorResult,\n} from './types'\n\nimport {\n black,\n hueBackgroundVar,\n pointer,\n pointerKnob,\n pointerLeftVar,\n pointerTopVar,\n radiusVar,\n root,\n shadowVar,\n white,\n} from './Saturation.css'\n\ntype ThrottledChange = ReturnType<\n typeof throttle<\n (handler: ColorChangeHandler<SaturationColorResult>, data: SaturationColorResult) => void\n >\n>\n\nexport interface SaturationProps {\n hsl: HSLColor\n hsv: HSVColor\n radius?: string | undefined\n shadow?: string | undefined\n onChange?: ColorChangeHandler<SaturationColorResult> | undefined\n}\n\nexport function Saturation({hsl, hsv, radius, shadow, onChange}: SaturationProps): ReactElement {\n const containerRef = useRef<HTMLDivElement | null>(null)\n\n const throttledChange = useMemo<ThrottledChange>(\n () =>\n throttle(\n (handler: ColorChangeHandler<SaturationColorResult>, data: SaturationColorResult): void => {\n handler(data)\n },\n 50,\n ),\n [],\n )\n\n useEffect(() => {\n return () => {\n throttledChange.cancel()\n }\n }, [throttledChange])\n\n const handleChange = (event: PickerEvent) => {\n const container = containerRef.current\n if (!container || typeof onChange !== 'function') {\n return\n }\n throttledChange(onChange, saturation.calculateChange(event, hsl, container))\n }\n\n useDrag(containerRef, {\n onDragStart: (event) => {\n handleChange(event)\n return true\n },\n onDrag: handleChange,\n // Track the drag on the window the container is actually rendered in\n // (the Studio can render inputs inside nested iframes).\n getWindow: () => {\n let renderWindow: Window = window\n while (\n !renderWindow.document.contains(containerRef.current) &&\n renderWindow.parent !== renderWindow\n ) {\n renderWindow = renderWindow.parent\n }\n return renderWindow\n },\n })\n\n return (\n <div\n className={root}\n style={assignInlineVars({\n [hueBackgroundVar]: `hsl(${hsl.h},100%, 50%)`,\n [radiusVar]: radius,\n [shadowVar]: shadow,\n [pointerTopVar]: `${-(hsv.v * 100) + 100}%`,\n [pointerLeftVar]: `${hsv.s * 100}%`,\n })}\n ref={containerRef}\n onTouchMove={handleChange}\n onTouchStart={handleChange}\n >\n <div className={white}>\n <div className={black} />\n <div className={pointer}>\n <div className={pointerKnob} />\n </div>\n </div>\n </div>\n )\n}\n","import {Box, Flex, useTheme_v2} from '@sanity/ui'\nimport {assignInlineVars} from '@vanilla-extract/dynamic'\nimport {useCallback} from 'react'\n\nimport {\n type Color,\n type ColorChangeHandler,\n EditableInput,\n type HSLColor,\n isValidHex,\n type RGBColor,\n} from './react-color'\n\nimport {\n inputBgVar,\n inputBorderVar,\n inputFgVar,\n inputFontSizeVar,\n labelFgVar,\n labelFontSizeVar,\n} from './react-color/EditableInput.css'\n\ninterface ColorPickerFieldsProps {\n rgb?: RGBColor\n hsl?: HSLColor\n hex?: string\n disableAlpha: boolean\n onChange: ColorChangeHandler<Color>\n}\n\nexport const ColorPickerFields = ({\n onChange,\n rgb,\n hsl,\n hex,\n disableAlpha,\n}: ColorPickerFieldsProps): React.JSX.Element => {\n const {color, font} = useTheme_v2()\n const inputEnabled = color.input.default.enabled\n const textFontSize = font.text.sizes[0]?.fontSize\n const labelFontSize = font.label.sizes[0]?.fontSize\n\n const handleChange: ColorChangeHandler<Record<string, string>> = useCallback(\n (data) => {\n if ('hex' in data && data['hex'] && isValidHex(data['hex'])) {\n onChange({\n hex: data['hex'],\n source: 'hex',\n })\n } else if (\n rgb &&\n (('r' in data && data['r']) || ('g' in data && data['g']) || ('b' in data && data['b']))\n ) {\n onChange({\n r: Number(data['r']) || rgb.r,\n g: Number(data['g']) || rgb.g,\n b: Number(data['b']) || rgb.b,\n a: rgb.a,\n source: 'rgb',\n })\n } else if (hsl && 'a' in data && data['a']) {\n let alpha = Number(data['a'])\n if (alpha < 0) {\n alpha = 0\n } else if (alpha > 100) {\n alpha = 100\n }\n alpha /= 100\n\n onChange({\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: alpha,\n source: 'hsl',\n })\n }\n },\n [onChange, hsl, rgb],\n )\n\n return (\n <Flex\n style={assignInlineVars({\n [inputBorderVar]: inputEnabled.border,\n [inputFgVar]: inputEnabled.fg,\n [inputBgVar]: inputEnabled.bg,\n [inputFontSizeVar]: textFontSize === undefined ? undefined : `${textFontSize}px`,\n [labelFontSizeVar]: labelFontSize === undefined ? undefined : `${labelFontSize}px`,\n [labelFgVar]: color.fg,\n })}\n >\n <Box flex={2} marginRight={1}>\n <EditableInput label=\"hex\" value={hex?.replace('#', '')} onChange={handleChange} />\n </Box>\n <Box flex={1} marginRight={1}>\n <EditableInput label=\"r\" value={rgb?.r} onChange={handleChange} dragLabel dragMax={255} />\n </Box>\n <Box flex={1} marginRight={1}>\n <EditableInput label=\"g\" value={rgb?.g} onChange={handleChange} dragLabel dragMax={255} />\n </Box>\n <Box flex={1} marginRight={1}>\n <EditableInput label=\"b\" value={rgb?.b} onChange={handleChange} dragLabel dragMax={255} />\n </Box>\n {!disableAlpha && (\n <Box flex={1}>\n <EditableInput\n label=\"a\"\n value={Math.round((rgb?.a ?? 1) * 100)}\n onChange={handleChange}\n dragLabel\n dragMax={100}\n />\n </Box>\n )}\n </Flex>\n )\n}\n","import {createVar, style} from '@vanilla-extract/css'\n\nexport const widthVar = createVar()\nexport const previewBackgroundVar = createVar()\n\nexport const root = style({\n width: widthVar,\n})\n\nexport const saturationCard = style({\n position: 'relative',\n height: '5em',\n})\n\nexport const sliderCard = style({\n position: 'relative',\n height: '10px',\n})\n\nexport const alphaCard = style({\n position: 'relative',\n height: '10px',\n selectors: {\n // Doubled class doubles specificity so the white checkerboard base wins\n // over Card's own `background-color` (same 0-1-0 specificity, but the\n // styled-components rule is injected later and would win the tie).\n '&&': {\n background: '#fff',\n },\n },\n})\n\nexport const previewCard = style({\n position: 'relative',\n minWidth: '4em',\n selectors: {\n '&&': {\n background: '#fff',\n },\n },\n})\n\nexport const colorBox = style({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n backgroundColor: previewBackgroundVar,\n})\n\nexport const readOnlyContainer = style({\n marginTop: '6rem',\n backgroundColor: 'var(--card-bg-color)',\n position: 'relative',\n width: '100%',\n})\n\nexport const fieldsBox = style({\n width: 200,\n})\n","import {AddIcon} from '@sanity/icons/Add'\nimport {TrashIcon} from '@sanity/icons/Trash'\nimport {Box, Button, Card, Flex, Inline, Stack, Text} from '@sanity/ui'\nimport {assignInlineVars} from '@vanilla-extract/dynamic'\nimport {startTransition, useOptimistic, useRef, type ComponentProps} from 'react'\nimport {type ObjectInputProps, set, setIfMissing, unset} from 'sanity'\n\nimport {ColorList} from './ColorList'\nimport {ColorPickerFields} from './ColorPickerFields'\nimport {\n Alpha,\n Checkboard,\n type Color,\n type ColorState,\n Hue,\n Saturation,\n simpleCheckForValidColor,\n toState,\n} from './react-color'\nimport type {ColorSchemaType, ColorValue} from './types'\n\nimport {\n alphaCard,\n colorBox,\n fieldsBox,\n previewBackgroundVar,\n previewCard,\n readOnlyContainer,\n root,\n saturationCard,\n sliderCard,\n widthVar,\n} from './ColorInput.css'\n\nfunction ColorBox({backgroundColor}: {backgroundColor: string}) {\n return (\n <Box className={colorBox} style={assignInlineVars({[previewBackgroundVar]: backgroundColor})} />\n )\n}\n\nfunction ReadOnlyContainer(props: ComponentProps<typeof Flex>) {\n return <Flex {...props} className={readOnlyContainer} />\n}\n\nfunction FieldsBox(props: ComponentProps<typeof Box>) {\n return <Box {...props} className={fieldsBox} />\n}\n\ninterface ColorPickerProps {\n width?: string\n disableAlpha: boolean\n colorList?: Array<Color> | undefined\n readOnly?: boolean\n onChange: (color: ColorState) => void\n onUnset: () => void\n color: ColorValue\n}\n\nconst ColorPicker = (props: ColorPickerProps) => {\n const {\n width,\n color: {rgb, hex, hsv, hsl},\n onChange: onChangeProp,\n onUnset,\n disableAlpha,\n colorList,\n readOnly,\n } = props\n\n // Remembers the hue across achromatic colors (saturation 0), where the hue\n // can't be recovered from the color value itself. While the color is\n // chromatic the live `hsl` prop is authoritative — so external value changes\n // (undo, remote sync) are picked up — and the ref only bridges achromatic\n // spans. Adapted from react-color's `ColorWrap` HOC (MIT, Copyright (c) 2015\n // Case Sandberg).\n const oldHueRef = useRef(hsl?.h ?? 0)\n\n const onChange = (data: Color): void => {\n if (!simpleCheckForValidColor(data)) {\n return\n }\n const incomingHue = typeof data === 'string' ? undefined : 'h' in data ? data.h : undefined\n const oldHue = hsl && hsl.s > 0 ? hsl.h : oldHueRef.current\n const nextColor = toState(data, incomingHue || oldHue)\n oldHueRef.current = nextColor.oldHue\n onChangeProp(nextColor)\n }\n\n if (!hsl || !hsv) {\n return null\n }\n\n return (\n <div className={root} style={width ? assignInlineVars({[widthVar]: width}) : undefined}>\n <Card padding={1} border radius={1}>\n <Stack gap={2}>\n {!readOnly && (\n <>\n <Card overflow=\"hidden\" className={saturationCard}>\n <Saturation onChange={onChange} hsl={hsl} hsv={hsv} />\n </Card>\n\n <Card shadow={1} radius={3} overflow=\"hidden\" className={sliderCard}>\n <Hue hsl={hsl} onChange={!readOnly && onChange} />\n </Card>\n\n {!disableAlpha && (\n <Card shadow={1} radius={3} overflow=\"hidden\" className={alphaCard}>\n <Alpha rgb={rgb} hsl={hsl} onChange={onChange} />\n </Card>\n )}\n </>\n )}\n <Flex>\n <Card flex={1} radius={2} overflow=\"hidden\" className={previewCard}>\n <Checkboard size={8} white=\"transparent\" grey=\"rgba(0,0,0,.08)\" />\n <ColorBox backgroundColor={`rgba(${rgb?.r},${rgb?.g},${rgb?.b},${rgb?.a})`} />\n\n {readOnly && (\n <ReadOnlyContainer\n padding={2}\n paddingBottom={1}\n sizing=\"border\"\n justify=\"space-between\"\n >\n <Stack gap={3} marginTop={1}>\n <Text size={3} weight=\"bold\">\n {hex}\n </Text>\n\n <Inline gap={3}>\n <Text size={1}>\n <strong>RGB: </strong>\n {rgb?.r} {rgb?.g} {rgb?.b}\n </Text>\n <Text size={1}>\n <strong>HSL: </strong> {Math.round(hsl?.h ?? 0)}{' '}\n {Math.round((hsl?.s ?? 0) * 100)}% {Math.round((hsl?.l ?? 0) * 100)}%\n </Text>\n </Inline>\n </Stack>\n </ReadOnlyContainer>\n )}\n </Card>\n\n {!readOnly && (\n <Flex align=\"flex-start\" marginLeft={2}>\n <FieldsBox>\n <ColorPickerFields\n rgb={rgb}\n hsl={hsl}\n hex={hex}\n onChange={onChange}\n disableAlpha={disableAlpha}\n />\n </FieldsBox>\n <Box marginLeft={2}>\n <Button onClick={onUnset} title=\"Delete color\" icon={TrashIcon} tone=\"critical\" />\n </Box>\n </Flex>\n )}\n </Flex>\n {colorList && <ColorList colors={colorList} onChange={onChange} />}\n </Stack>\n </Card>\n </div>\n )\n}\n\nconst DEFAULT_COLOR: ColorValue & {source: string} = {\n hex: '#24a3e3',\n hsl: {h: 200, s: 0.7732, l: 0.5156, a: 1},\n hsv: {h: 200, s: 0.8414, v: 0.8901, a: 1},\n rgb: {r: 46, g: 163, b: 227, a: 1},\n source: 'hex',\n}\n\nexport default function ColorInput(props: ObjectInputProps): React.JSX.Element {\n const {onChange, readOnly} = props\n // oxlint-disable-next-line no-unsafe-type-assertion\n const _value = props.value as ColorValue | undefined\n const [value, setColorOptimistic] = useOptimistic(_value)\n const type = props.schemaType as ColorSchemaType\n const focusRef = useRef<HTMLButtonElement>(null)\n\n function handleChange(nextColor: ColorValue) {\n const fieldPatches = type.fields\n .filter((field) => field.name in nextColor)\n .map((field) => {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const nextFieldValue = nextColor[field.name as keyof ColorValue]\n const isObject = field.type.jsonType === 'object'\n return set(\n isObject ? Object.assign({_type: field.type.name}, nextFieldValue) : nextFieldValue,\n [field.name],\n )\n })\n\n onChange([\n setIfMissing({_type: type.name}),\n set(type.name, ['_type']),\n set(nextColor.rgb?.a, ['alpha']),\n ...fieldPatches,\n ])\n }\n\n return (\n <>\n {value && value.hex ? (\n <ColorPicker\n color={value}\n onChange={(nextColor) =>\n startTransition(() => {\n setColorOptimistic(nextColor)\n handleChange(nextColor)\n })\n }\n readOnly={readOnly || (typeof type.readOnly === 'boolean' && type.readOnly)}\n disableAlpha={!!type.options?.disableAlpha}\n colorList={type.options?.colorList}\n onUnset={() =>\n startTransition(() => {\n setColorOptimistic(undefined)\n onChange(unset())\n })\n }\n />\n ) : (\n <Button\n icon={AddIcon}\n mode=\"ghost\"\n text=\"Create color\"\n ref={focusRef}\n disabled={Boolean(readOnly)}\n onClick={() =>\n startTransition(() => {\n setColorOptimistic(DEFAULT_COLOR)\n handleChange(DEFAULT_COLOR)\n })\n }\n />\n )}\n </>\n )\n}\n"],"mappings":"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"}
\ No newline at end of file