@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