{"version":3,"file":"web-DkNiSL7f.mjs","names":["useCallback","useLatestRef","focusElement","useColorDrag","elRef","React","RefObject","HTMLElement","onChange","x","y","onEnd","onPointerDown","PointerEventHandler","cbRef","endRef","e","PointerEvent","el","current","preventDefault","reveal","setPointerCapture","pointerId","emit","ev","clientX","clientY","rect","getBoundingClientRect","Math","max","min","left","width","top","height","onMove","onUp","removeEventListener","addEventListener","cn","Placed","pct","useRef","CSSProperties","ReactNode","useColorDrag","Thumb","t0","$","_c","x","y","fill","t1","t2","center","t3","t4","t5","background","t6","STEP_KEYS","Record","ArrowRight","ArrowUp","ArrowLeft","ArrowDown","SliderTrackProps","position","onDrag","onStep","direction","big","onCommit","label","valueNow","valueMin","valueMax","valueText","thumbFill","overlay","className","SliderTrack","ref","onPointerDown","e","d","key","undefined","preventDefault","shiftKey","e_0","_c","cn","Layer","useRef","useEffect","Color","maxChroma","Thumb","useColorDrag","ColorAreaProps","hue","lightness","chroma","onChange","l","c","onCommit","className","CANVAS_W","CANVAS_H","rowEdge","h","Math","max","renderGradient","canvas","HTMLCanvasElement","width","height","ctx","getContext","Error","img","createImageData","data","y","edge","x","r","g","b","fromOklch","toSrgb","i","round","putImageData","LIGHTNESS_KEYS","Record","ArrowUp","ArrowDown","CHROMA_KEYS","ArrowRight","ArrowLeft","ColorArea","t0","$","_c","containerRef","canvasRef","t1","t2","current","t3","onPointerDown","thumbX","min","t4","toOklch","fill","t5","t6","t7","toFixed","t8","t9","e","dl","key","dc","undefined","preventDefault","k","shiftKey","l_0","t10","e_0","t11","t12","Symbol","for","t13","t14","t15","_c","SliderTrack","HueSliderProps","value","onChange","hue","onCommit","className","HUE_GRADIENT","join","TRACK","background","HueSlider","t0","$","_c","t1","t2","x","Math","min","t3","d","big","t4","round","t5","t6","t7","t8","_c","Layer","Color","SliderTrack","AlphaSliderProps","color","alpha","onChange","onCommit","className","CHECKERBOARD","backgroundImage","join","backgroundSize","backgroundPosition","AlphaSlider","t0","$","_c","t1","withAlpha","toOklch","opaque","t2","d","big","Math","max","min","step","t3","round","t4","t5","t6","t7","t8","background","t9","_c","cn","fillClasses","Center","Line","rigidClass","useState","Color","parseNumber","putNumber","showNumber","Channel","NumberChannel","TextChannel","ChannelFieldProps","channel","color","onChange","onCommit","className","SCRUB_PX_PER_STEP","BOX","INPUT","KEY","ChannelField","props","$","_c","t0","kind","NumberField","draft","setDraft","scrubbing","setScrubbing","t1","shown","t2","bad","t3","direction","big","next","get","step","nudge","t4","e","el","currentTarget","preventDefault","setPointerCapture","pointerId","origin","x0","clientX","v0","onMove","ev","steps","Math","round","shiftKey","onUp","removeEventListener","addEventListener","onScrubStart","t5","t6","t7","t8","t9","key","t10","undefined","t11","t12","e_0","select","t13","e_1","raw","target","value","v","t14","e_2","blur","t15","t16","label","t17","unit","t18","HexField","parse","_temp","_c","_temp","Stack","Line","Fill","fillClasses","SectionLabel","SegmentedControl","CopyButton","legacyDraftKeys","useDraft","defineStore","z","Color","ChannelField","channelsFor","formatColor","ColorFormat","FORMAT_OPTIONS","id","label","const","formatStore","owner","area","cap","ttl","whenFull","schema","enum","legacy","ColorValueFieldsProps","color","onChange","onCommit","showAlpha","className","ColorValueFields","t0","$","_c","t1","undefined","format","setFormat","T0","T1","t2","t3","t4","t5","t6","t7","t8","channels","t10","t9","Symbol","for","t11","ch","key","map","toUpperCase","t12","t13","t14","_c","cn","WithTooltip","Cluster","Grid","Stack","Text","Color","Swatch","name","color","SwatchGridProps","colors","value","onChange","className","renderColor","swatchColor","swatch","colorsMatch","a","b","ca","fromCss","cb","toLowerCase","equals","displayName","charAt","toUpperCase","slice","hexOf","toHex","SwatchGrid","t0","$","_c","t1","some","_temp","named","t2","t3","selected","paint","background","label","tooltip","map","items","s","_c","_temp","cn","ControlSizeProvider","WithTooltip","useState","useRef","useCallback","useEffect","Stack","Fill","Clip","rigidClass","Cluster","SectionLabel","Text","IconButton","ResourceView","Loading","useRecordUsage","useRecentUsage","symbol","Color","ColorArea","HueSlider","AlphaSlider","ColorValueFields","SwatchGrid","colorsMatch","displayName","swatchColor","Swatch","resetIcon","eyedropperIcon","RECENT_USAGE","RECENT_COUNT","FALLBACK","fromOklch","ColorPickerProps","value","onChange","color","onCommit","swatches","showAlpha","title","defaultValue","className","EyeDropperApi","open","Promise","sRGBHex","EyeDropperCtor","eyeDropperCtor","window","EyeDropper","ColorPicker","t0","$","_c","t1","undefined","recordUsage","lastEmitted","t2","fromCss","setColor","t3","before","current","seenValue","t4","t5","parsed","equals","t6","next","oklch","toOklch","emit","t7","t8","map","suggestionColors","t9","c","some","s","isSuggestion","t10","record","settled","toHex","commit","t11","next_0","record_0","pick","t12","edited","t13","Symbol","for","eyeDropper","T0","T1","t14","t15","t16","t17","valueCss","atDefault","describe","parsed_0","Error","JSON","stringify","t18","length","_temp","c_0","parsed_1","t19","alpha","h","l","c_1","t20","t21","then","res","parsed_2","withAlpha","_temp2","t22","withHue","fitted","t23","t24","t25","a","t26","t27","t28","c_2","t29","t30","err","DOMException","name","s_0","css","named","find","BeforeAfter","after","onRevert","same","background","RecentColors","onPick","recent","keys","key","_c","_temp","ClassName","cn","Popover","PopoverContent","PopoverTrigger","useState","ReactNode","ColorPicker","ColorPickerProps","ColorPickerPopoverProps","children","contentClassName","ColorPickerPopover","t0","$","_c","pickerProps","open","setOpen","session","setSession","t1","background","value","trigger","t2","Symbol","for","next","_temp","t3","t4","t5","t6","n","_c","cbRef","useLatestRef","onChange","endRef","onEnd","useCallback","el","elRef","e","focusElement","rect","x","ev","y","ev_0","$","c","t0","t1","pct","t2","t3","t4","t5","fill","t6","Placed","STEP_KEYS","ref","useRef","onDrag","onCommit","onStep","d","e_0","className","cn","position","thumbFill","background","label","onPointerDown","overlay","valueMax","valueMin","valueNow","valueText","CANVAS_W","CANVAS_H","maxChroma","l","h","ctx","canvas","img","data","edge","hue","r","g","b","Color","i","LIGHTNESS_KEYS","CHROMA_KEYS","containerRef","canvasRef","useEffect","thumbX","chroma","lightness","t7","t8","dl","dc","k","l_0","t11","t12","Layer","t13","t14","t15","TRACK","value","big","CHECKERBOARD","color","opaque","alpha","step","t9","format","OKLCH","v","HSL","s","HEX","raw","ALPHA","BY_FORMAT","showAlpha","ch","SCRUB_PX_PER_STEP","BOX","INPUT","fillClasses","KEY","rigidClass","props","draft","setDraft","useState","scrubbing","setScrubbing","channel","shown","bad","next","direction","nudge","origin","x0","v0","steps","onScrubStart","Center","t10","e_1","e_2","t16","t17","t18","Line","FORMAT_OPTIONS","formatStore","defineStore","z","legacyDraftKeys","setFormat","useDraft","T0","T1","channels","Stack","SectionLabel","Fill","SegmentedControl","CopyButton","swatch","ca","a","cb","name","colors","named","renderColor","selected","paint","tooltip","WithTooltip","Text","items","Grid","Cluster","resetIcon","symbol","eyedropperIcon","RECENT_USAGE","RECENT_COUNT","FALLBACK","recordUsage","useRecordUsage","lastEmitted","setColor","before","current","seenValue","parsed","oklch","emit","swatches","suggestionColors","isSuggestion","defaultValue","settled","record","commit","next_0","record_0","pick","edited","eyeDropper","valueCss","title","atDefault","ControlSizeProvider","IconButton","parsed_0","parsed_1","c_0","c_1","t20","t21","parsed_2","res","t23","t24","t25","t26","t27","t28","c_2","t29","t30","err","s_0","css","after","same","onRevert","Clip","recent","useRecentUsage","Loading","onPick","keys","key","ResourceView","children","contentClassName","pickerProps","open","setOpen","session","setSession","trigger","PopoverTrigger","PopoverContent","Popover","n","web_default"],"sources":["../../../../../__A__/dev/singularity/.claude/worktrees/att-1794515063-e6dm4h/plugins/primitives/plugins/css/plugins/color-picker/web/internal/use-color-drag.ts","../../../../../__A__/dev/singularity/.claude/worktrees/att-1794515063-e6dm4h/plugins/primitives/plugins/css/plugins/color-picker/web/internal/slider-track.tsx","../../../../../__A__/dev/singularity/.claude/worktrees/att-1794515063-e6dm4h/plugins/primitives/plugins/css/plugins/color-picker/web/internal/color-area.tsx","../../../../../__A__/dev/singularity/.claude/worktrees/att-1794515063-e6dm4h/plugins/primitives/plugins/css/plugins/color-picker/web/internal/hue-slider.tsx","../../../../../__A__/dev/singularity/.claude/worktrees/att-1794515063-e6dm4h/plugins/primitives/plugins/css/plugins/color-picker/web/internal/alpha-slider.tsx","../../../../../__A__/dev/singularity/.claude/worktrees/att-1794515063-e6dm4h/plugins/primitives/plugins/css/plugins/color-picker/web/internal/channels.ts","../../../../../__A__/dev/singularity/.claude/worktrees/att-1794515063-e6dm4h/plugins/primitives/plugins/css/plugins/color-picker/web/internal/channel-field.tsx","../../../../../__A__/dev/singularity/.claude/worktrees/att-1794515063-e6dm4h/plugins/primitives/plugins/css/plugins/color-picker/web/internal/color-value-fields.tsx","../../../../../__A__/dev/singularity/.claude/worktrees/att-1794515063-e6dm4h/plugins/primitives/plugins/css/plugins/color-picker/web/internal/swatch-grid.tsx","../../../../../__A__/dev/singularity/.claude/worktrees/att-1794515063-e6dm4h/plugins/primitives/plugins/css/plugins/color-picker/web/internal/color-picker.tsx","../../../../../__A__/dev/singularity/.claude/worktrees/att-1794515063-e6dm4h/plugins/primitives/plugins/css/plugins/color-picker/web/internal/color-picker-popover.tsx","../../../../../__A__/dev/singularity/.claude/worktrees/att-1794515063-e6dm4h/plugins/primitives/plugins/css/plugins/color-picker/web/index.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useLatestRef } from \"@plugins/primitives/plugins/latest-ref/web\";\nimport { focusElement } from \"@plugins/primitives/plugins/dom/plugins/scroll-reveal/web\";\n\n/**\n * Pointer drag over `elRef`, reported as fractions (0..1) of its box. `onEnd`\n * fires once when the pointer is released or the drag is cancelled — the\n * moment a drag becomes a committed value.\n */\nexport function useColorDrag(\n elRef: React.RefObject,\n onChange: (x: number, y: number) => void,\n onEnd?: () => void,\n): { onPointerDown: React.PointerEventHandler } {\n const cbRef = useLatestRef(onChange);\n const endRef = useLatestRef(onEnd);\n\n const onPointerDown = useCallback(\n (e: React.PointerEvent) => {\n const el = elRef.current;\n if (!el) return;\n e.preventDefault();\n // preventDefault keeps the drag from selecting text, and with it the\n // focus a click would give: take it, so arrows continue the gesture.\n focusElement(el, { reveal: false });\n el.setPointerCapture(e.pointerId);\n\n const emit = (ev: { clientX: number; clientY: number }) => {\n const rect = el.getBoundingClientRect();\n const x = Math.max(\n 0,\n Math.min(1, (ev.clientX - rect.left) / rect.width),\n );\n const y = Math.max(\n 0,\n Math.min(1, (ev.clientY - rect.top) / rect.height),\n );\n cbRef.current(x, y);\n };\n\n emit(e);\n\n const onMove = (ev: PointerEvent) => emit(ev);\n const onUp = () => {\n el.removeEventListener(\"pointermove\", onMove);\n el.removeEventListener(\"pointerup\", onUp);\n el.removeEventListener(\"pointercancel\", onUp);\n endRef.current?.();\n };\n\n el.addEventListener(\"pointermove\", onMove);\n el.addEventListener(\"pointerup\", onUp);\n el.addEventListener(\"pointercancel\", onUp);\n },\n // `onPointerDown` stays stable and reads the freshest `onChange` / `onEnd`\n // off the stable refs at emit time.\n [elRef],\n );\n\n return { onPointerDown };\n}\n","import { cn } from \"@plugins/primitives/plugins/css/plugins/ui-kit/web\";\nimport {\n Placed,\n pct,\n} from \"@plugins/primitives/plugins/css/plugins/coords/web\";\nimport { useRef, type CSSProperties, type ReactNode } from \"react\";\nimport { useColorDrag } from \"./use-color-drag\";\n\n/**\n * The round handle of the area and the sliders, FILLED with the color it\n * holds, so the thumb shows its value. White rim + dark ring: the rim must\n * read on any color beneath it, in either theme, so it is not a theme token.\n */\nexport function Thumb({ x, y, fill }: { x: number; y: number; fill: string }) {\n return (\n \n );\n}\n\n/** The keys that move a 1-D slider, and which way. */\nconst STEP_KEYS: Record = {\n ArrowRight: 1,\n ArrowUp: 1,\n ArrowLeft: -1,\n ArrowDown: -1,\n};\n\nexport interface SliderTrackProps {\n /** Thumb position, 0..1. */\n position: number;\n /** Pointer at `x` (0..1 of the track). */\n onDrag: (x: number) => void;\n /** Arrow key: `direction` ±1, `big` with Shift (×10). */\n onStep: (direction: 1 | -1, big: boolean) => void;\n /** A drag released, or an arrow key let go. */\n onCommit?: () => void;\n label: string;\n valueNow: number;\n valueMin: number;\n valueMax: number;\n valueText: string;\n thumbFill: string;\n /** The track's painted background (gradient). */\n background: CSSProperties;\n /** Painted over `background` (alpha's color ramp over its checkerboard). */\n overlay?: ReactNode;\n className?: string;\n}\n\n/**\n * A horizontal color slider — hue, opacity: a gradient track with a filled\n * thumb, dragged with the pointer or stepped with the arrow keys (Shift ×10).\n */\nexport function SliderTrack({\n position,\n onDrag,\n onStep,\n onCommit,\n label,\n valueNow,\n valueMin,\n valueMax,\n valueText,\n thumbFill,\n background,\n overlay,\n className,\n}: SliderTrackProps) {\n const ref = useRef(null);\n const { onPointerDown } = useColorDrag(ref, (x) => onDrag(x), onCommit);\n\n return (\n {\n const d = STEP_KEYS[e.key];\n if (d === undefined) return;\n e.preventDefault();\n onStep(d > 0 ? 1 : -1, e.shiftKey);\n }}\n onKeyUp={(e) => {\n if (STEP_KEYS[e.key] !== undefined) onCommit?.();\n }}\n className={cn(\n \"relative h-4 cursor-pointer touch-none rounded-full outline-none\",\n \"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background\",\n className,\n )}\n style={background}\n >\n {overlay}\n \n \n );\n}\n","import { cn } from \"@plugins/primitives/plugins/css/plugins/ui-kit/web\";\nimport { Layer } from \"@plugins/primitives/plugins/css/plugins/layer/web\";\nimport { useRef, useEffect } from \"react\";\nimport { Color, maxChroma } from \"../../core\";\nimport { Thumb } from \"./slider-track\";\nimport { useColorDrag } from \"./use-color-drag\";\n\nexport interface ColorAreaProps {\n hue: number;\n lightness: number;\n chroma: number;\n onChange: (l: number, c: number) => void;\n /** A drag released, or an arrow key let go. */\n onCommit?: () => void;\n className?: string;\n}\n\nconst CANVAS_W = 96;\nconst CANVAS_H = 66;\n\n/**\n * A row's chroma span, never 0 — black and white rows have (almost) nothing to\n * give, and a 0 would divide the thumb position by zero.\n */\nfunction rowEdge(l: number, h: number): number {\n return Math.max(maxChroma(l, h), 1e-6);\n}\n\n/**\n * Paint the fitted square: each row is one lightness, stretched from grey to\n * that row's own sRGB edge, so every pixel is a color a screen really shows.\n */\nfunction renderGradient(canvas: HTMLCanvasElement, hue: number) {\n canvas.width = CANVAS_W;\n canvas.height = CANVAS_H;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) throw new Error(\"ColorArea: canvas has no 2d context\");\n const img = ctx.createImageData(CANVAS_W, CANVAS_H);\n const data = img.data;\n\n for (let y = 0; y < CANVAS_H; y++) {\n const l = 1 - y / (CANVAS_H - 1);\n const edge = maxChroma(l, hue);\n for (let x = 0; x < CANVAS_W; x++) {\n const c = (x / (CANVAS_W - 1)) * edge;\n const [r, g, b] = Color.fromOklch(l, c, hue).toSrgb();\n const i = (y * CANVAS_W + x) * 4;\n data[i] = Math.round(r * 255);\n data[i + 1] = Math.round(g * 255);\n data[i + 2] = Math.round(b * 255);\n data[i + 3] = 255;\n }\n }\n\n ctx.putImageData(img, 0, 0);\n}\n\nconst LIGHTNESS_KEYS: Record = { ArrowUp: 1, ArrowDown: -1 };\nconst CHROMA_KEYS: Record = { ArrowRight: 1, ArrowLeft: -1 };\n\n/**\n * Lightness (y) × chroma (x) at one hue, FITTED (Okhsv-style): x is the\n * fraction of the row's own displayable maximum, so the whole square is in\n * gamut and a drag can never store a color the screen would clip.\n */\nexport function ColorArea({\n hue,\n lightness,\n chroma,\n onChange,\n onCommit,\n className,\n}: ColorAreaProps) {\n const containerRef = useRef(null);\n const canvasRef = useRef(null);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n if (canvas) renderGradient(canvas, hue);\n }, [hue]);\n\n const { onPointerDown } = useColorDrag(\n containerRef,\n (x, y) => {\n const l = 1 - y;\n onChange(l, x * rowEdge(l, hue));\n },\n onCommit,\n );\n\n const thumbX = Math.min(1, chroma / rowEdge(lightness, hue));\n const fill = Color.fromOklch(lightness, chroma, hue).toOklch();\n\n return (\n {\n const dl = LIGHTNESS_KEYS[e.key];\n const dc = CHROMA_KEYS[e.key];\n if (dl === undefined && dc === undefined) return;\n e.preventDefault();\n const k = e.shiftKey ? 10 : 1;\n const l = Math.max(0, Math.min(1, lightness + (dl ?? 0) * 0.01 * k));\n const c = Math.max(0, chroma + (dc ?? 0) * 0.004 * k);\n onChange(l, Math.min(c, maxChroma(l, hue)));\n }}\n onKeyUp={(e) => {\n if (\n LIGHTNESS_KEYS[e.key] !== undefined ||\n CHROMA_KEYS[e.key] !== undefined\n ) {\n onCommit?.();\n }\n }}\n className={cn(\n \"relative aspect-[16/11] cursor-crosshair touch-none rounded-md outline-none\",\n \"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background\",\n className,\n )}\n >\n \n \n \n );\n}\n","import { SliderTrack } from \"./slider-track\";\n\nexport interface HueSliderProps {\n value: number;\n onChange: (hue: number) => void;\n /** A drag released, or an arrow key let go. */\n onCommit?: () => void;\n className?: string;\n}\n\nconst HUE_GRADIENT = [\n \"oklch(0.7 0.16 0)\",\n \"oklch(0.7 0.16 60)\",\n \"oklch(0.7 0.16 120)\",\n \"oklch(0.7 0.16 180)\",\n \"oklch(0.7 0.16 240)\",\n \"oklch(0.7 0.16 300)\",\n \"oklch(0.7 0.16 360)\",\n].join(\", \");\n\nconst TRACK = { background: `linear-gradient(to right, ${HUE_GRADIENT})` };\n\n/** The OKLCH hue, 0..360°. The thumb shows the hue at the track's own lightness and chroma. */\nexport function HueSlider({\n value,\n onChange,\n onCommit,\n className,\n}: HueSliderProps) {\n return (\n onChange(Math.min(x * 360, 359.9))}\n onStep={(d, big) => onChange((value + d * (big ? 10 : 1) + 360) % 360)}\n onCommit={onCommit}\n label=\"Hue\"\n valueNow={Math.round(value)}\n valueMin={0}\n valueMax={360}\n valueText={`${Math.round(value)}°`}\n thumbFill={`oklch(0.7 0.16 ${value})`}\n background={TRACK}\n className={className}\n />\n );\n}\n","import { Layer } from \"@plugins/primitives/plugins/css/plugins/layer/web\";\nimport type { Color } from \"../../core\";\nimport { SliderTrack } from \"./slider-track\";\n\nexport interface AlphaSliderProps {\n color: Color;\n alpha: number;\n onChange: (alpha: number) => void;\n /** A drag released, or an arrow key let go. */\n onCommit?: () => void;\n className?: string;\n}\n\nconst CHECKERBOARD = {\n backgroundImage: [\n \"linear-gradient(45deg, #ccc 25%, transparent 25%)\",\n \"linear-gradient(-45deg, #ccc 25%, transparent 25%)\",\n \"linear-gradient(45deg, transparent 75%, #ccc 75%)\",\n \"linear-gradient(-45deg, transparent 75%, #ccc 75%)\",\n ].join(\", \"),\n backgroundSize: \"8px 8px\",\n backgroundPosition: \"0 0, 0 4px, 4px -4px, -4px 0\",\n};\n\n/** Opacity, 0..1, over a checkerboard; the thumb shows the color at that opacity. */\nexport function AlphaSlider({\n color,\n alpha,\n onChange,\n onCommit,\n className,\n}: AlphaSliderProps) {\n const opaque = color.withAlpha(1).toOklch();\n const step = (d: 1 | -1, big: boolean) =>\n onChange(Math.max(0, Math.min(1, alpha + d * (big ? 0.1 : 0.01))));\n\n return (\n \n }\n className={className}\n />\n );\n}\n","import { Color, maxChroma } from \"../../core\";\n\n/** The value formats the picker reads and writes. */\nexport type ColorFormat = \"hex\" | \"oklch\" | \"hsl\";\nexport const COLOR_FORMATS: readonly ColorFormat[] = [\"hex\", \"oklch\", \"hsl\"];\n\nexport function isColorFormat(v: unknown): v is ColorFormat {\n return (\n typeof v === \"string\" && (COLOR_FORMATS as readonly string[]).includes(v)\n );\n}\n\n/** The color as text in `format` — what Copy puts on the clipboard. */\nexport function formatColor(color: Color, format: ColorFormat): string {\n if (format === \"oklch\") return color.toOklch();\n if (format === \"hsl\") return color.toHsl();\n return color.toHex();\n}\n\n/**\n * One numeric channel field: its letter (drag it to scrub), how to read it off\n * a color, how to write it back, its range, the step one arrow press / two\n * scrubbed pixels move it by, and the decimals shown.\n */\nexport interface NumberChannel {\n kind: \"number\";\n /** The letter on the field — also its scrub handle. */\n key: string;\n /** Accessible name of the field. */\n label: string;\n unit?: \"%\" | \"°\";\n min: number;\n max: number;\n step: number;\n /** Decimals shown. */\n dp: number;\n /** Hue: wraps around the circle instead of clamping. */\n wrap?: boolean;\n get: (color: Color) => number;\n /** Write an in-range value back. Called through {@link putNumber}, which clamps / wraps first. */\n put: (color: Color, value: number) => Color;\n}\n\n/** The hex field: one text field, no scrubbing. */\nexport interface TextChannel {\n kind: \"text\";\n key: \"#\";\n label: string;\n get: (color: Color) => string;\n /** The color `raw` names (keeping `color`'s alpha), or null while it is not a full hex yet. */\n parse: (color: Color, raw: string) => Color | null;\n}\n\nexport type Channel = NumberChannel | TextChannel;\n\n/** Chroma above the sRGB edge of a lightness row and hue is not displayable: pull it in. */\nfunction fit(color: Color): Color {\n return color.fitted();\n}\n\nconst OKLCH: readonly Channel[] = [\n {\n kind: \"number\",\n key: \"L\",\n label: \"Lightness\",\n unit: \"%\",\n min: 0,\n max: 100,\n step: 0.5,\n dp: 1,\n get: (c) => c.l * 100,\n put: (c, v) => fit(c.withLightness(v / 100)),\n },\n {\n kind: \"number\",\n key: \"C\",\n label: \"Chroma\",\n min: 0,\n max: 0.37,\n step: 0.002,\n dp: 3,\n get: (c) => c.c,\n put: (c, v) => c.withChroma(Math.min(v, maxChroma(c.l, c.h))),\n },\n {\n kind: \"number\",\n key: \"H\",\n label: \"Hue\",\n unit: \"°\",\n min: 0,\n max: 360,\n step: 1,\n dp: 0,\n wrap: true,\n get: (c) => c.h,\n put: (c, v) => fit(c.withHue(v)),\n },\n];\n\nconst HSL: readonly Channel[] = [\n {\n kind: \"number\",\n key: \"H\",\n label: \"Hue\",\n unit: \"°\",\n min: 0,\n max: 360,\n step: 1,\n dp: 0,\n wrap: true,\n get: (c) => c.toHslParts()[0],\n put: (c, v) => {\n const [, s, l] = c.toHslParts();\n return Color.fromHsl(v, s, l, c.alpha);\n },\n },\n {\n kind: \"number\",\n key: \"S\",\n label: \"Saturation\",\n unit: \"%\",\n min: 0,\n max: 100,\n step: 1,\n dp: 0,\n get: (c) => c.toHslParts()[1],\n put: (c, v) => {\n const [h, , l] = c.toHslParts();\n return Color.fromHsl(h, v, l, c.alpha);\n },\n },\n {\n kind: \"number\",\n key: \"L\",\n label: \"Lightness\",\n unit: \"%\",\n min: 0,\n max: 100,\n step: 1,\n dp: 0,\n get: (c) => c.toHslParts()[2],\n put: (c, v) => {\n const [h, s] = c.toHslParts();\n return Color.fromHsl(h, s, v, c.alpha);\n },\n },\n];\n\nconst HEX: readonly Channel[] = [\n {\n kind: \"text\",\n key: \"#\",\n label: \"Hex\",\n get: (c) => c.withAlpha(1).toHex().slice(1),\n parse: (c, raw) => {\n const s = raw.trim();\n return /^#?[0-9a-f]{6}$/i.test(s)\n ? Color.fromHex(s).withAlpha(c.alpha)\n : null;\n },\n },\n];\n\nconst ALPHA: Channel = {\n kind: \"number\",\n key: \"A\",\n label: \"Opacity\",\n unit: \"%\",\n min: 0,\n max: 100,\n step: 1,\n dp: 0,\n get: (c) => c.alpha * 100,\n put: (c, v) => c.withAlpha(v / 100),\n};\n\nconst BY_FORMAT: Record = {\n oklch: OKLCH,\n hsl: HSL,\n hex: HEX,\n};\n\n/** The fields a format shows, plus opacity when the caller edits alpha. */\nexport function channelsFor(\n format: ColorFormat,\n showAlpha: boolean,\n): readonly Channel[] {\n return showAlpha ? [...BY_FORMAT[format], ALPHA] : BY_FORMAT[format];\n}\n\n/** Write `value` into `color` through `ch`, clamped to its range (hue wraps). */\nexport function putNumber(\n ch: NumberChannel,\n color: Color,\n value: number,\n): Color {\n const v = ch.wrap\n ? ((value % 360) + 360) % 360\n : Math.max(ch.min, Math.min(ch.max, value));\n return ch.put(color, v);\n}\n\n/** `ch`'s value on `color`, as the field shows it. */\nexport function showNumber(ch: NumberChannel, color: Color): string {\n // `+toFixed` drops trailing zeros; a wrapped hue rounding up to 360 reads 0.\n const v = +ch.get(color).toFixed(ch.dp);\n return String(ch.wrap && v >= 360 ? 0 : v);\n}\n\n/** A typed field value as a number, or null while it is not one yet. */\nexport function parseNumber(raw: string): number | null {\n const s = raw.trim();\n if (s === \"\" || !/^-?(\\d+\\.?\\d*|\\.\\d+)$/.test(s)) return null;\n return Number(s);\n}\n","import { cn } from \"@plugins/primitives/plugins/css/plugins/ui-kit/web\";\nimport { fillClasses } from \"@plugins/primitives/plugins/css/plugins/fill/web\";\nimport { Center } from \"@plugins/primitives/plugins/css/plugins/center/web\";\nimport { Line } from \"@plugins/primitives/plugins/css/plugins/line/web\";\nimport { rigidClass } from \"@plugins/primitives/plugins/css/plugins/rigid/web\";\nimport { useState } from \"react\";\nimport type { Color } from \"../../core\";\nimport {\n parseNumber,\n putNumber,\n showNumber,\n type Channel,\n type NumberChannel,\n type TextChannel,\n} from \"./channels\";\n\nexport interface ChannelFieldProps {\n channel: Channel;\n color: Color;\n onChange: (color: Color) => void;\n /** Blur, Enter, or a scrub released. */\n onCommit: () => void;\n className?: string;\n}\n\n/** Pixels of horizontal drag per channel step while scrubbing. */\nconst SCRUB_PX_PER_STEP = 2;\n\nconst BOX = cn(\n \"relative h-7 rounded-md border border-input bg-background\",\n \"focus-within:ring-1 focus-within:ring-ring\",\n);\nconst INPUT = cn(\n fillClasses(\"x\"),\n \"h-full bg-transparent pr-2xs font-mono text-caption tabular-nums outline-none\",\n);\nconst KEY = cn(\n rigidClass(),\n \"h-full w-4 select-none font-mono text-3xs font-semibold text-muted-foreground\",\n);\n\n/**\n * One channel of the value row: its letter, the field, its unit. Type a\n * number (applied as soon as it parses), ↑↓ to nudge (Shift ×10), or drag the\n * letter sideways to scrub. The hex channel is a plain text field.\n */\nexport function ChannelField(props: ChannelFieldProps) {\n return props.channel.kind === \"number\" ? (\n \n ) : (\n \n );\n}\n\nfunction NumberField({\n channel,\n color,\n onChange,\n onCommit,\n className,\n}: ChannelFieldProps & { channel: NumberChannel }) {\n // The text while the field is being edited; null shows the color's value.\n const [draft, setDraft] = useState(null);\n const [scrubbing, setScrubbing] = useState(false);\n const shown = showNumber(channel, color);\n const bad = draft !== null && parseNumber(draft) === null;\n\n const nudge = (direction: 1 | -1, big: boolean) => {\n const next = putNumber(\n channel,\n color,\n channel.get(color) + direction * channel.step * (big ? 10 : 1),\n );\n onChange(next);\n setDraft(showNumber(channel, next));\n };\n\n const onScrubStart = (e: React.PointerEvent) => {\n const el = e.currentTarget;\n e.preventDefault();\n el.setPointerCapture(e.pointerId);\n setScrubbing(true);\n // Scrub from where the gesture started, so clamping / gamut-fitting a\n // value mid-drag never compounds into the rest of the drag.\n const origin = color;\n const x0 = e.clientX;\n const v0 = channel.get(origin);\n const onMove = (ev: PointerEvent) => {\n const steps = Math.round((ev.clientX - x0) / SCRUB_PX_PER_STEP);\n onChange(\n putNumber(\n channel,\n origin,\n v0 + steps * channel.step * (ev.shiftKey ? 10 : 1),\n ),\n );\n };\n const onUp = () => {\n el.removeEventListener(\"pointermove\", onMove);\n el.removeEventListener(\"pointerup\", onUp);\n el.removeEventListener(\"pointercancel\", onUp);\n setScrubbing(false);\n onCommit();\n };\n el.addEventListener(\"pointermove\", onMove);\n el.addEventListener(\"pointerup\", onUp);\n el.addEventListener(\"pointercancel\", onUp);\n };\n\n return (\n \n \n {channel.key}\n \n {\n setDraft(shown);\n e.currentTarget.select();\n }}\n onChange={(e) => {\n const raw = e.target.value;\n setDraft(raw);\n const v = parseNumber(raw);\n if (v !== null) onChange(putNumber(channel, color, v));\n }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n e.currentTarget.blur();\n return;\n }\n if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n e.preventDefault();\n nudge(e.key === \"ArrowUp\" ? 1 : -1, e.shiftKey);\n }\n }}\n onBlur={() => {\n setDraft(null);\n onCommit();\n }}\n className={INPUT}\n />\n {channel.unit && (\n \n {channel.unit}\n \n )}\n \n );\n}\n\nfunction HexField({\n channel,\n color,\n onChange,\n onCommit,\n className,\n}: ChannelFieldProps & { channel: TextChannel }) {\n const [draft, setDraft] = useState(null);\n const shown = channel.get(color);\n const bad = draft !== null && channel.parse(color, draft) === null;\n\n return (\n \n
\n {channel.key}\n
\n {\n setDraft(shown);\n e.currentTarget.select();\n }}\n onChange={(e) => {\n const raw = e.target.value;\n setDraft(raw);\n const next = channel.parse(color, raw);\n if (next) onChange(next);\n }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") e.currentTarget.blur();\n }}\n onBlur={() => {\n setDraft(null);\n onCommit();\n }}\n className={INPUT}\n />\n \n );\n}\n","import { Stack } from \"@plugins/primitives/plugins/css/plugins/spacing/web\";\nimport { Line } from \"@plugins/primitives/plugins/css/plugins/line/web\";\nimport {\n Fill,\n fillClasses,\n} from \"@plugins/primitives/plugins/css/plugins/fill/web\";\nimport { SectionLabel } from \"@plugins/primitives/plugins/css/plugins/text/web\";\nimport { SegmentedControl } from \"@plugins/primitives/plugins/css/plugins/toggle-chip/web\";\nimport { CopyButton } from \"@plugins/primitives/plugins/copy-to-clipboard/web\";\nimport {\n legacyDraftKeys,\n useDraft,\n} from \"@plugins/primitives/plugins/persistent-draft/web\";\nimport { defineStore } from \"@plugins/primitives/plugins/dom/plugins/web-storage/web\";\nimport { z } from \"zod\";\nimport type { Color } from \"../../core\";\nimport { ChannelField } from \"./channel-field\";\nimport { channelsFor, formatColor, type ColorFormat } from \"./channels\";\n\nconst FORMAT_OPTIONS = [\n { id: \"hex\", label: \"HEX\" },\n { id: \"oklch\", label: \"OKLCH\" },\n { id: \"hsl\", label: \"HSL\" },\n] as const satisfies readonly { id: ColorFormat; label: string }[];\n\n/** The chosen format, remembered on this device for a year. */\nconst formatStore = defineStore({\n owner: \"color-picker.format\",\n label: \"Colour format choices\",\n area: \"local\",\n cap: \"1 KB\",\n ttl: 365 * 24 * 60 * 60 * 1000,\n whenFull: \"refuse\",\n schema: z.enum([\"hex\", \"oklch\", \"hsl\"]),\n legacy: legacyDraftKeys(\"color-picker-format\"),\n});\n\nexport interface ColorValueFieldsProps {\n color: Color;\n onChange: (color: Color) => void;\n /** A field blurred / Enter pressed, or a scrub released. */\n onCommit: () => void;\n /** Add an opacity (A %) field. */\n showAlpha?: boolean;\n className?: string;\n}\n\n/**\n * The value row: a HEX · OKLCH · HSL switch (remembered per device) over one\n * field per channel of that format — L % · C · H °, H ° · S % · L %, or one\n * hex field — plus A % when alpha is edited, and a Copy of the value in the\n * shown format.\n */\nexport function ColorValueFields({\n color,\n onChange,\n onCommit,\n showAlpha = false,\n className,\n}: ColorValueFieldsProps) {\n // The store's schema drops a value from an older build or a hand edit.\n const [format, setFormat] = useDraft(formatStore, \"oklch\");\n const channels = channelsFor(format, showAlpha);\n\n return (\n \n \n Value\n \n \n \n \n {channels.map((ch) => (\n \n ))}\n \n \n \n );\n}\n","import {\n cn,\n WithTooltip,\n} from \"@plugins/primitives/plugins/css/plugins/ui-kit/web\";\nimport { Cluster } from \"@plugins/primitives/plugins/css/plugins/cluster/web\";\nimport { Grid } from \"@plugins/primitives/plugins/css/plugins/grid/web\";\nimport { Stack } from \"@plugins/primitives/plugins/css/plugins/spacing/web\";\nimport { Text } from \"@plugins/primitives/plugins/css/plugins/text/web\";\nimport { Color } from \"../../core\";\n\n/** A swatch: a CSS color, or a named suggestion (`{ name: \"violet\", color: \"#7c5cff\" }`). */\nexport type Swatch = string | { name: string; color: string };\n\nexport interface SwatchGridProps {\n colors: readonly Swatch[];\n value?: string;\n /** The picked swatch's color — for a plain string swatch, that exact string. */\n onChange: (color: string) => void;\n className?: string;\n /**\n * Optional display transform: maps a swatch's canonical color to the CSS\n * actually painted in its cell. `value` matching and `onChange` still operate\n * on the canonical color — only the rendered background changes. Lets a\n * consumer show a derived shade (e.g. Sonata's black-key color) while keeping\n * the stored/selected value the base color.\n */\n renderColor?: (color: string) => string;\n}\n\nexport function swatchColor(swatch: Swatch): string {\n return typeof swatch === \"string\" ? swatch : swatch.color;\n}\n\nexport function colorsMatch(a: string, b: string): boolean {\n const ca = Color.fromCss(a);\n const cb = Color.fromCss(b);\n if (!ca || !cb) return a.toLowerCase() === b.toLowerCase();\n return ca.equals(cb);\n}\n\n/** \"violet\" → \"Violet\": suggestion names are written lower-case in declarations. */\nexport function displayName(name: string): string {\n return name.charAt(0).toUpperCase() + name.slice(1);\n}\n\nfunction hexOf(color: string): string {\n return Color.fromCss(color)?.toHex() ?? color;\n}\n\n/**\n * A row of color dots. Plain colors wrap as small dots; named suggestions get\n * a larger dot with the name under it, in a five-column grid. A tooltip names\n * the color (and its hex) either way.\n */\nexport function SwatchGrid({\n colors,\n value,\n onChange,\n className,\n renderColor,\n}: SwatchGridProps) {\n const named = colors.some((s) => typeof s !== \"string\");\n const items = colors.map((swatch) => {\n const color = swatchColor(swatch);\n const name = typeof swatch === \"string\" ? null : swatch.name;\n const selected = value != null && colorsMatch(value, color);\n const paint = renderColor ? renderColor(color) : color;\n\n if (!named) {\n // Plain colors render exactly as they always have: a bare dot.\n return (\n onChange(color)}\n className={cn(\n \"size-5 rounded-full border border-border transition-transform\",\n selected &&\n \"scale-110 ring-2 ring-ring ring-offset-1 ring-offset-background\",\n )}\n style={{ background: paint }}\n />\n );\n }\n\n const label = name ? displayName(name) : hexOf(color);\n const tooltip = name ? `${label} · ${hexOf(color)}` : label;\n return (\n \n onChange(color)}\n className={cn(\n \"rounded-md py-2xs text-muted-foreground hover:bg-muted hover:text-foreground\",\n selected && \"text-foreground\",\n )}\n >\n \n \n {label}\n \n \n \n );\n });\n\n return named ? (\n \n {items}\n \n ) : (\n \n {items}\n \n );\n}\n","import {\n cn,\n ControlSizeProvider,\n WithTooltip,\n} from \"@plugins/primitives/plugins/css/plugins/ui-kit/web\";\nimport { useState, useRef, useCallback, useEffect } from \"react\";\nimport { Stack } from \"@plugins/primitives/plugins/css/plugins/spacing/web\";\nimport { Fill } from \"@plugins/primitives/plugins/css/plugins/fill/web\";\nimport { Clip } from \"@plugins/primitives/plugins/css/plugins/clip/web\";\nimport { rigidClass } from \"@plugins/primitives/plugins/css/plugins/rigid/web\";\nimport { Cluster } from \"@plugins/primitives/plugins/css/plugins/cluster/web\";\nimport {\n SectionLabel,\n Text,\n} from \"@plugins/primitives/plugins/css/plugins/text/web\";\nimport { IconButton } from \"@plugins/primitives/plugins/icon-button/web\";\nimport { ResourceView } from \"@plugins/network/plugins/live/plugins/live-state/web\";\nimport { Loading } from \"@plugins/primitives/plugins/loading/web\";\nimport {\n useRecordUsage,\n useRecentUsage,\n} from \"@plugins/primitives/plugins/usage-rank/web\";\nimport { symbol } from \"@plugins/ui/plugins/icons/core\";\nimport { Color } from \"../../core\";\nimport { ColorArea } from \"./color-area\";\nimport { HueSlider } from \"./hue-slider\";\nimport { AlphaSlider } from \"./alpha-slider\";\nimport { ColorValueFields } from \"./color-value-fields\";\nimport {\n SwatchGrid,\n colorsMatch,\n displayName,\n swatchColor,\n type Swatch,\n} from \"./swatch-grid\";\n\nconst resetIcon = symbol(\"restart-alt\");\nconst eyedropperIcon = symbol(\"colorize\");\n\n/** The usage-rank namespace every picker's commits are recorded under — one Recent row app-wide. */\nconst RECENT_USAGE = \"color-picker\";\n/** How many recent colors the Recent row shows. */\nconst RECENT_COUNT = 10;\n\nconst FALLBACK = Color.fromOklch(0.623, 0.214, 259.1);\n\nexport interface ColorPickerProps {\n value: string;\n /** Every change, per pointer move — an `oklch(…)` string. */\n onChange: (color: string) => void;\n /**\n * The value settled — a drag or scrub released, an arrow key let go, a field\n * blurred / Enter, a swatch, recent or eyedropper pick, Reset, or the\n * before-swatch revert. An `oklch(…)` string. Where `onChange` previews,\n * this is the moment to persist.\n */\n onCommit?: (color: string) => void;\n /** Suggestions — plain CSS colors, or named (`{ name, color }`). */\n swatches?: readonly Swatch[];\n showAlpha?: boolean;\n /**\n * Shows the header: a before / after swatch (before = the value the picker\n * opened with; click it to go back), this title, and what the color is (a\n * suggestion's name, \"Default\", or \"Custom\").\n */\n title?: string;\n /** The caller's default: adds a Reset to it (disabled while already there). */\n defaultValue?: string;\n className?: string;\n}\n\ninterface EyeDropperApi {\n open(): Promise<{ sRGBHex: string }>;\n}\ntype EyeDropperCtor = new () => EyeDropperApi;\n\n/** The browser's EyeDropper (Chromium), or null where it does not exist. */\nfunction eyeDropperCtor(): EyeDropperCtor | null {\n if (typeof window === \"undefined\" || !(\"EyeDropper\" in window)) return null;\n return (window as unknown as { EyeDropper: EyeDropperCtor }).EyeDropper;\n}\n\nexport function ColorPicker({\n value,\n onChange,\n onCommit,\n swatches,\n showAlpha = false,\n title,\n defaultValue,\n className,\n}: ColorPickerProps) {\n const recordUsage = useRecordUsage();\n const lastEmitted = useRef(value);\n const [color, setColor] = useState(() => Color.fromCss(value) ?? FALLBACK);\n // The value the picker opened with — the \"before\" half of the header swatch.\n const [before] = useState(() => Color.fromCss(value) ?? FALLBACK);\n // Commits fire from event handlers that close over an older render (a drag's\n // pointerup); the ref is the color as of the last emit.\n const current = useRef(color);\n // The `value` prop as of the last effect run: only a CHANGE of the prop is\n // adopted, so a caller that does not echo our emits back (a preview that\n // persists on commit) never has its stale `value` snap the picker back.\n const seenValue = useRef(value);\n\n useEffect(() => {\n if (value === seenValue.current) return;\n seenValue.current = value;\n // The round-trip echo of our own emit: already shown.\n if (value === lastEmitted.current) return;\n const parsed = Color.fromCss(value);\n if (parsed && !parsed.equals(current.current)) {\n // Echo-guard: the effect adopts an EXTERNAL `value` change only, suppressing the round-trip echo of our own emits (parent re-passes our oklch string as `value`). Going fully-controlled (derive color from `value` each render) is unsafe here: config-backed callers (fields/color/config, theme-customizer) write `value` asynchronously, so deriving would lag/fight the slider position — the documented fallback in the burndown plan.\n setColor(parsed);\n current.current = parsed;\n }\n }, [value]);\n\n const emit = useCallback(\n (next: Color) => {\n setColor(next);\n current.current = next;\n const oklch = next.toOklch();\n lastEmitted.current = oklch;\n onChange(oklch);\n },\n [onChange],\n );\n\n const suggestionColors = (swatches ?? []).map(swatchColor);\n const isSuggestion = (c: Color) =>\n suggestionColors.some((s) => colorsMatch(s, c.toOklch()));\n\n /**\n * Settle the current color. `record` adds it to Recent — only for a color\n * the user arrived at, never for a suggestion or the caller's own default.\n */\n const commit = (record: boolean) => {\n const settled = current.current;\n if (\n record &&\n !isSuggestion(settled) &&\n !(defaultValue != null && colorsMatch(defaultValue, settled.toOklch()))\n ) {\n recordUsage(RECENT_USAGE, settled.toHex());\n }\n onCommit?.(settled.toOklch());\n };\n const pick = (next: Color, record: boolean) => {\n emit(next);\n commit(record);\n };\n const edited = () => commit(true);\n\n const eyeDropper = eyeDropperCtor();\n const valueCss = color.toOklch();\n const atDefault = defaultValue != null && colorsMatch(defaultValue, valueCss);\n\n return (\n \n \n {(title != null || defaultValue != null) && (\n \n {title != null && (\n pick(before, false)}\n />\n )}\n \n {title != null && (\n \n {title}\n \n {describe(color, swatches ?? [], atDefault)}\n \n \n )}\n \n {defaultValue != null && (\n {\n const parsed = Color.fromCss(defaultValue);\n if (!parsed) {\n throw new Error(\n `ColorPicker: defaultValue is not a CSS color: ${JSON.stringify(defaultValue)}`,\n );\n }\n pick(parsed, false);\n }}\n />\n )}\n \n )}\n\n {swatches && swatches.length > 0 && (\n \n \n {swatches.some((s) => typeof s !== \"string\")\n ? \"Suggested\"\n : \"Swatches\"}\n \n {\n const parsed = Color.fromCss(c);\n if (!parsed) {\n throw new Error(\n `ColorPicker: swatch is not a CSS color: ${JSON.stringify(c)}`,\n );\n }\n pick(parsed, false);\n }}\n />\n \n )}\n\n \n \n emit(Color.fromOklch(l, c, color.h, color.alpha))\n }\n onCommit={edited}\n />\n\n \n {eyeDropper && (\n {\n void new eyeDropper().open().then(\n (res) => {\n const parsed = Color.fromCss(res.sRGBHex);\n if (!parsed) {\n throw new Error(\n `ColorPicker: EyeDropper returned a non-color: ${res.sRGBHex}`,\n );\n }\n pick(parsed.withAlpha(current.current.alpha), true);\n },\n (err: unknown) => {\n // Esc / clicking away cancels the pick: nothing to do.\n if (\n err instanceof DOMException &&\n err.name === \"AbortError\"\n )\n return;\n throw err;\n },\n );\n }}\n />\n )}\n emit(color.withHue(h).fitted())}\n onCommit={edited}\n className=\"w-full\"\n />\n \n\n {showAlpha && (\n emit(color.withAlpha(a))}\n onCommit={edited}\n />\n )}\n \n\n \n\n \n pick(showAlpha ? c : c.withAlpha(current.current.alpha), true)\n }\n />\n \n \n );\n}\n\n/** What the color is, for the header: a suggestion's name, the default, or custom. */\nfunction describe(\n color: Color,\n swatches: readonly Swatch[],\n atDefault: boolean,\n): string {\n const css = color.toOklch();\n const named = swatches.find(\n (s): s is { name: string; color: string } =>\n typeof s !== \"string\" && colorsMatch(s.color, css),\n );\n if (named) {\n return `${displayName(named.name)} · suggested${atDefault ? \", default\" : \"\"}`;\n }\n return atDefault ? \"Default\" : \"Custom\";\n}\n\n/**\n * The before · after swatch: left half the color the picker opened with (click\n * it to go back), right half the current one.\n */\nfunction BeforeAfter({\n before,\n after,\n onRevert,\n}: {\n before: Color;\n after: Color;\n onRevert: () => void;\n}) {\n const same = before.equals(after);\n return (\n \n \n \n \n \n \n \n \n );\n}\n\n/** The colors last committed in any picker, newest first; click one to use it. */\nfunction RecentColors({ onPick }: { onPick: (color: Color) => void }) {\n const recent = useRecentUsage(RECENT_USAGE, RECENT_COUNT);\n return (\n \n Recent\n }>\n {(keys) =>\n keys.length === 0 ? (\n \n Colors you pick show up here.\n \n ) : (\n \n {keys.map((key) => {\n // Every key was recorded from `Color.toHex()`; one that no\n // longer parses is corrupt data, and throws rather than drawing.\n const c = Color.fromCss(key);\n if (!c) {\n throw new Error(\n `ColorPicker: recent color is not a color: ${key}`,\n );\n }\n return (\n \n onPick(c)}\n className=\"size-5 rounded-full border border-border transition-transform hover:scale-110\"\n style={{ background: key }}\n />\n \n );\n })}\n \n )\n }\n \n \n );\n}\n","import type { ClassName } from \"@plugins/primitives/plugins/css/plugins/ui-kit/core\";\nimport {\n cn,\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@plugins/primitives/plugins/css/plugins/ui-kit/web\";\nimport { useState, type ReactNode } from \"react\";\nimport { ColorPicker, type ColorPickerProps } from \"./color-picker\";\n\nexport interface ColorPickerPopoverProps extends ColorPickerProps {\n children?: ReactNode;\n contentClassName?: ClassName;\n}\n\nexport function ColorPickerPopover({\n children,\n contentClassName,\n ...pickerProps\n}: ColorPickerPopoverProps) {\n const [open, setOpen] = useState(false);\n // Bumped on every open: a fresh picker per open, so its \"before\" swatch is\n // the color this open started from, not the one the first open did.\n const [session, setSession] = useState(0);\n\n const trigger = children ?? (\n \n );\n\n return (\n {\n if (next) setSession((n) => n + 1);\n setOpen(next);\n }}\n >\n \n {trigger}\n \n \n \n \n \n );\n}\n","import type { PluginDefinition } from \"@plugins/framework/plugins/web-sdk/core\";\n\nexport { ColorArea, type ColorAreaProps } from \"./internal/color-area\";\nexport { HueSlider, type HueSliderProps } from \"./internal/hue-slider\";\nexport { AlphaSlider, type AlphaSliderProps } from \"./internal/alpha-slider\";\nexport {\n ColorValueFields,\n type ColorValueFieldsProps,\n} from \"./internal/color-value-fields\";\nexport {\n SwatchGrid,\n type Swatch,\n type SwatchGridProps,\n} from \"./internal/swatch-grid\";\nexport { ColorPicker, type ColorPickerProps } from \"./internal/color-picker\";\nexport {\n ColorPickerPopover,\n type ColorPickerPopoverProps,\n} from \"./internal/color-picker-popover\";\n\nexport default {\n description:\n \"Composable color picker primitive: a fitted (always-in-gamut) OKLCH ColorArea, HueSlider, AlphaSlider, per-channel ColorValueFields (HEX / OKLCH / HSL), SwatchGrid with named suggestions, and ColorPicker / ColorPickerPopover with before/after, Reset, eyedropper and a shared Recent row. The Color math (parse, convert, gamut) is in core.\",\n contributions: [],\n} satisfies PluginDefinition;\n"],"mappings":"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"}