@sanity/color-input 5.0.0 → 5.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,34 +1,25 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import { c } from "react-compiler-runtime";
3
+ import { AddIcon, TrashIcon } from "@sanity/icons";
4
+ import { Flex, useTheme, Box, Button, Card, Stack, Text, Inline } from "@sanity/ui";
3
5
  import { useRef, useState, useEffect, useDeferredValue, startTransition } from "react";
4
6
  import { CustomPicker } from "react-color";
5
7
  import { EditableInput, Saturation, Hue, Alpha, Checkboard } from "react-color/lib/components/common";
6
8
  import { set, setIfMissing, unset } from "sanity";
7
9
  import { styled } from "styled-components";
8
10
  import { useEffectEvent } from "use-effect-event";
9
- import { AddIcon, TrashIcon } from "@sanity/icons";
10
- import { Flex, useTheme, Box, Button, Card, Stack, Text, Inline } from "@sanity/ui";
11
11
  import tinycolor from "tinycolor2";
12
12
  import { isValidHex } from "react-color/lib/helpers/color";
13
- const ColorListWrap = styled(Flex)`
14
- gap: 0.25em;
15
- `, ColorBoxContainer = styled.div`
16
- width: 2.1em;
17
- height: 2.1em;
18
- cursor: pointer;
19
- position: relative;
20
- overflow: hidden;
21
- border-radius: 3px;
22
- background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAADFJREFUOE9jZGBgEGHAD97gk2YcNYBhmIQBgWSAP52AwoAQwJvQRg1gACckQoC2gQgAIF8IscwEtKYAAAAASUVORK5CYII=')
23
- left center #fff;
24
- `, ColorBox$1 = styled.div`
25
- border-radius: inherit;
26
- box-shadow: inset 0 0 0 1px var(--card-shadow-outline-color);
27
- content: '';
28
- position: absolute;
29
- inset: 0;
30
- z-index: 1;
31
- `, validateColors = (colors) => colors.reduce((cls, c2) => {
13
+ const ColorListWrap = styled(Flex).withConfig({
14
+ displayName: "ColorListWrap",
15
+ componentId: "sc-nrr1l2-0"
16
+ })`gap:0.25em;`, ColorBoxContainer = styled.div.withConfig({
17
+ displayName: "ColorBoxContainer",
18
+ componentId: "sc-nrr1l2-1"
19
+ })`width:2.1em;height:2.1em;cursor:pointer;position:relative;overflow:hidden;border-radius:3px;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAADFJREFUOE9jZGBgEGHAD97gk2YcNYBhmIQBgWSAP52AwoAQwJvQRg1gACckQoC2gQgAIF8IscwEtKYAAAAASUVORK5CYII=') left center #fff;`, ColorBox$1 = styled.div.withConfig({
20
+ displayName: "ColorBox",
21
+ componentId: "sc-nrr1l2-2"
22
+ })`border-radius:inherit;box-shadow:inset 0 0 0 1px var(--card-shadow-outline-color);content:'';position:absolute;inset:0;z-index:1;`, validateColors = (colors) => colors.reduce((cls, c2) => {
32
23
  const color = c2.hex ? tinycolor(c2.hex) : tinycolor(c2);
33
24
  return color.isValid() && cls.push({
34
25
  color: c2,
@@ -149,18 +140,13 @@ const ColorPickerFields = (t0) => {
149
140
  t15,
150
141
  t16
151
142
  ] }), $[38] = t11, $[39] = t13, $[40] = t15, $[41] = t16, $[42] = t9, $[43] = t17) : t17 = $[43], t17;
152
- }, ColorBox = styled(Box)`
153
- position: absolute;
154
- top: 0;
155
- left: 0;
156
- width: 100%;
157
- height: 100%;
158
- `, ReadOnlyContainer = styled(Flex)`
159
- margin-top: 6rem;
160
- background-color: var(--card-bg-color);
161
- position: relative;
162
- width: 100%;
163
- `, ColorPickerInner = (props) => {
143
+ }, ColorBox = styled(Box).withConfig({
144
+ displayName: "ColorBox",
145
+ componentId: "sc-13q7kbw-0"
146
+ })`position:absolute;top:0;left:0;width:100%;height:100%;`, ReadOnlyContainer = styled(Flex).withConfig({
147
+ displayName: "ReadOnlyContainer",
148
+ componentId: "sc-13q7kbw-1"
149
+ })`margin-top:6rem;background-color:var(--card-bg-color);position:relative;width:100%;`, ColorPickerInner = (props) => {
164
150
  const $ = c(47), {
165
151
  width,
166
152
  color: t0,
@@ -1 +1 @@
1
- {"version":3,"file":"ColorInput.js","sources":["../../src/ColorList.tsx","../../src/ColorPickerFields.tsx","../../src/ColorInput.tsx"],"sourcesContent":["import type {Color, ColorChangeHandler} from 'react-color'\n\nimport {styled} from 'styled-components'\nimport tinycolor from 'tinycolor2'\n\nimport {Flex} from '@sanity/ui'\n\nconst ColorListWrap = styled(Flex)`\n gap: 0.25em;\n`\n\nconst ColorBoxContainer = styled.div`\n width: 2.1em;\n height: 2.1em;\n cursor: pointer;\n position: relative;\n overflow: hidden;\n border-radius: 3px;\n background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAADFJREFUOE9jZGBgEGHAD97gk2YcNYBhmIQBgWSAP52AwoAQwJvQRg1gACckQoC2gQgAIF8IscwEtKYAAAAASUVORK5CYII=')\n left center #fff;\n`\n\nconst ColorBox = styled.div`\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px var(--card-shadow-outline-color);\n content: '';\n position: absolute;\n inset: 0;\n z-index: 1;\n`\n\ninterface ValidatedColor {\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 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 cls.push({\n color: c,\n backgroundColor: color.toRgbString(),\n })\n }\n return cls\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(({color, backgroundColor}, idx) => (\n <ColorBoxContainer\n key={`${backgroundColor}-${idx}`}\n onClick={() => {\n onChange(color)\n }}\n >\n <ColorBox style={{background: backgroundColor}} />\n </ColorBoxContainer>\n ))}\n </ColorListWrap>\n )\n}\n","import type {Color, ColorChangeHandler, HSLColor, RGBColor} from 'react-color'\nimport type {EditableInputStyles} from 'react-color/lib/components/common/EditableInput'\n\nimport {useCallback, useMemo} from 'react'\nimport {EditableInput} from 'react-color/lib/components/common'\n// @ts-expect-error missing export\nimport {isValidHex} from 'react-color/lib/helpers/color'\n\nimport {Box, Flex, useTheme} from '@sanity/ui'\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) => {\n const {sanity} = useTheme()\n\n const inputStyles: EditableInputStyles = useMemo(\n () => ({\n input: {\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: `inset 0 0 0 1px ${sanity.color.input.default.enabled.border}`,\n color: sanity.color.input.default.enabled.fg,\n backgroundColor: sanity.color.input.default.enabled.bg,\n fontSize: sanity.fonts.text.sizes[0]?.fontSize,\n textAlign: 'center',\n },\n label: {\n display: 'block',\n textAlign: 'center',\n fontSize: sanity.fonts.label.sizes[0]?.fontSize,\n color: sanity.color.base.fg,\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize',\n },\n }),\n [sanity],\n )\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 <Box flex={2} marginRight={1}>\n <EditableInput\n style={inputStyles}\n label=\"hex\"\n value={hex?.replace('#', '')}\n onChange={handleChange}\n />\n </Box>\n <Box flex={1} marginRight={1}>\n <EditableInput\n style={inputStyles}\n label=\"r\"\n value={rgb?.r}\n onChange={handleChange}\n dragLabel\n dragMax={255}\n />\n </Box>\n <Box flex={1} marginRight={1}>\n <EditableInput\n style={inputStyles}\n label=\"g\"\n value={rgb?.g}\n onChange={handleChange}\n dragLabel\n dragMax={255}\n />\n </Box>\n <Box flex={1} marginRight={1}>\n <EditableInput\n style={inputStyles}\n label=\"b\"\n value={rgb?.b}\n onChange={handleChange}\n dragLabel\n dragMax={255}\n />\n </Box>\n {!disableAlpha && (\n <Box flex={1}>\n <EditableInput\n style={inputStyles}\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 type {CustomPickerInjectedProps} from 'react-color/lib/components/common/ColorWrap'\n\nimport {startTransition, useCallback, useDeferredValue, useEffect, useRef, useState} from 'react'\nimport {type Color, CustomPicker} from 'react-color'\nimport {Alpha, Checkboard, Hue, Saturation} from 'react-color/lib/components/common'\nimport {type ObjectInputProps, set, setIfMissing, unset} from 'sanity'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {AddIcon} from '@sanity/icons'\nimport {TrashIcon} from '@sanity/icons'\nimport {Box, Button, Card, Flex, Inline, Stack, Text} from '@sanity/ui'\n\nimport type {ColorSchemaType, ColorValue} from './types'\n\nimport {ColorList} from './ColorList'\nimport {ColorPickerFields} from './ColorPickerFields'\n\nconst ColorBox = styled(Box)`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n`\n\nconst ReadOnlyContainer = styled(Flex)`\n margin-top: 6rem;\n background-color: var(--card-bg-color);\n position: relative;\n width: 100%;\n`\n\ninterface ColorPickerProps extends CustomPickerInjectedProps<Color> {\n width?: string\n disableAlpha: boolean\n colorList?: Array<Color> | undefined\n readOnly?: boolean\n onUnset: () => void\n color: ColorValue\n}\n\nconst ColorPickerInner = (props: ColorPickerProps) => {\n const {\n width,\n color: {rgb, hex, hsv, hsl},\n onChange,\n onUnset,\n disableAlpha,\n colorList,\n readOnly,\n } = props\n\n if (!hsl || !hsv) {\n return null\n }\n\n return (\n <div style={{width}}>\n <Card padding={1} border radius={1}>\n <Stack space={2}>\n {!readOnly && (\n <>\n <Card overflow=\"hidden\" style={{position: 'relative', height: '5em'}}>\n <Saturation onChange={onChange} hsl={hsl} hsv={hsv} />\n </Card>\n\n <Card\n shadow={1}\n radius={3}\n overflow=\"hidden\"\n style={{position: 'relative', height: '10px'}}\n >\n <Hue hsl={hsl} onChange={!readOnly && onChange} />\n </Card>\n\n {!disableAlpha && (\n <Card\n shadow={1}\n radius={3}\n overflow=\"hidden\"\n style={{position: 'relative', height: '10px', background: '#fff'}}\n >\n <Alpha rgb={rgb} hsl={hsl} onChange={onChange} />\n </Card>\n )}\n </>\n )}\n <Flex>\n <Card\n flex={1}\n radius={2}\n overflow=\"hidden\"\n style={{position: 'relative', minWidth: '4em', background: '#fff'}}\n >\n <Checkboard\n size={8}\n white=\"transparent\"\n grey=\"rgba(0,0,0,.08)\"\n renderers={{} as {canvas: unknown}}\n />\n <ColorBox\n style={{\n backgroundColor: `rgba(${rgb?.r},${rgb?.g},${rgb?.b},${rgb?.a})`,\n }}\n />\n\n {readOnly && (\n <ReadOnlyContainer\n padding={2}\n paddingBottom={1}\n sizing=\"border\"\n justify=\"space-between\"\n >\n <Stack space={3} marginTop={1}>\n <Text size={3} weight=\"bold\">\n {hex}\n </Text>\n\n <Inline space={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 <Box style={{width: 200}}>\n <ColorPickerFields\n rgb={rgb}\n hsl={hsl}\n hex={hex}\n onChange={onChange}\n disableAlpha={disableAlpha}\n />\n </Box>\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 ColorPicker = CustomPicker(ColorPickerInner)\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) {\n const {onChange, readOnly} = props\n const value = props.value as ColorValue | undefined\n const type = props.schemaType as ColorSchemaType\n const focusRef = useRef<HTMLButtonElement>(null)\n\n // use local state so we can have instant ui updates while debouncing patch emits\n const [color, setColor] = useState(value)\n // Marking the `setColor` in a transition allows React to interrupt render should the user start dragging the input before React is finished rendering\n useEffect(() => startTransition(() => setColor(value)), [value])\n\n // The color picker emits onChange events continuously while the user is sliding the\n // hue/saturation/alpha selectors. This debounces the event to avoid excessive patches\n // and massively improve render performance and avoid jank\n const [emitColor, setEmitColor] = useState<typeof value>(undefined)\n const debouncedColor = useDeferredValue(emitColor)\n const handleChange = useEffectEvent((nextColor: ColorValue) => {\n const fieldPatches = type.fields\n .filter((field) => field.name in nextColor)\n .map((field) => {\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 useEffect(() => {\n if (!debouncedColor) return undefined\n const raf = requestAnimationFrame(() => handleChange(debouncedColor))\n return () => cancelAnimationFrame(raf)\n }, [debouncedColor])\n\n const handleCreateColor = useCallback(() => {\n setColor(DEFAULT_COLOR)\n setEmitColor(DEFAULT_COLOR)\n }, [])\n\n const handleColorChange = useCallback((nextColor: ColorValue) => {\n setColor(nextColor)\n setEmitColor(nextColor)\n }, [])\n\n const handleUnset = useCallback(() => {\n setColor(undefined)\n onChange(unset())\n }, [onChange])\n\n return (\n <>\n {value && value.hex ? (\n <ColorPicker\n color={color!}\n onChange={handleColorChange}\n readOnly={readOnly || (typeof type.readOnly === 'boolean' && type.readOnly)}\n disableAlpha={!!type.options?.disableAlpha}\n colorList={type.options?.colorList}\n onUnset={handleUnset}\n />\n ) : (\n <Button\n icon={AddIcon}\n mode=\"ghost\"\n text=\"Create color\"\n ref={focusRef}\n disabled={Boolean(readOnly)}\n onClick={handleCreateColor}\n />\n )}\n </>\n )\n}\n"],"names":["ColorListWrap","styled","Flex","ColorBoxContainer","div","ColorBox","validateColors","colors","reduce","cls","c","color","hex","tinycolor","isValid","push","backgroundColor","toRgbString","ColorList","t0","$","_c","onChange","t1","t2","t3","idx","background","map","ColorPickerFields","rgb","hsl","disableAlpha","sanity","useTheme","input","default","enabled","border","fonts","text","sizes","fontSize","bg","fg","width","padding","boxShadow","textAlign","t4","label","t5","base","display","paddingTop","paddingBottom","textTransform","t6","inputStyles","t7","data","isValidHex","source","r","g","b","Number","a","alpha","h","s","l","handleChange","t8","replace","t9","t10","t11","t12","t13","t14","t15","t16","Math","round","t17","Box","ReadOnlyContainer","ColorPickerInner","props","onUnset","colorList","readOnly","hsv","position","height","Symbol","for","minWidth","TrashIcon","ColorPicker","CustomPicker","DEFAULT_COLOR","v","ColorInput","value","type","schemaType","focusRef","useRef","setColor","useState","startTransition","useEffect","emitColor","setEmitColor","undefined","debouncedColor","useDeferredValue","fields","name","nextColor","fieldPatches","filter","field","field_0","nextFieldValue","isObject","jsonType","set","Object","assign","_type","setIfMissing","useEffectEvent","raf","requestAnimationFrame","cancelAnimationFrame","handleCreateColor","nextColor_0","handleColorChange","unset","handleUnset","options","AddIcon","Boolean"],"mappings":";;;;;;;;;;;;AAOA,MAAMA,gBAAgBC,OAAOC,IAAI;AAAA;AAAA,GAI3BC,oBAAoBF,OAAOG;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAW3BC,aAAWJ,OAAOG;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAmBlBE,iBAAkBC,CAAAA,WACtBA,OAAOC,OAAO,CAACC,KAA4BC,OAAM;AAE/C,QAAMC,QAAQD,GAAEE,MAAMC,UAAUH,GAAEE,GAAG,IAAIC,UAAUH,EAAC;AACpD,SAAIC,MAAMG,aACRL,IAAIM,KAAK;AAAA,IACPJ,OAAOD;AAAAA,IACPM,iBAAiBL,MAAMM,YAAAA;AAAAA,EAAY,CACpC,GAEIR;AACT,GAAG,EAAE;AAEA,SAAAS,UAAAC,IAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GAAmB;AAAA,IAAAd;AAAAA,IAAAe;AAAAA,EAAAA,IAAAH;AACxB,MAAI,CAACZ;AAAM,WAAS;AAAI,MAAAgB;AAAA,MAAAH,EAAA,CAAA,MAAAb,UAAAa,SAAAE,UAAA;AAAA,QAAAE;AAAAJ,aAAAE,YAGQE,MAAAA,CAAAC,IAAAC,QAAA;AAAC,YAAA;AAAA,QAAAf;AAAAA,QAAAK;AAAAA,MAAAA,IAAAS;AAAwB,aACnD,oBAAC,mBAAA,EAEU,SAAA,MAAA;AACPH,iBAASX,KAAK;AAAA,MAAC,GAGjB,UAAA,oBAACN,YAAA,EAAgB,OAAA;AAAA,QAAAsB,YAAaX;AAAAA,MAAAA,GAAgB,EAAA,GALzC,GAAGA,eAAe,IAAIU,GAAG,EAMhC;AAAA,IAAoB,GACrBN,OAAAE,UAAAF,OAAAI,OAAAA,MAAAJ,EAAA,CAAA,GATAG,KAAAjB,eAAeC,MAAM,EAACqB,IAAKJ,GAS3B,GAACJ,OAAAb,QAAAa,OAAAE,UAAAF,OAAAG;AAAAA,EAAA;AAAAA,SAAAH,EAAA,CAAA;AAAA,MAAAI;AAAA,SAAAJ,SAAAG,MAVJC,KAAA,oBAAC,eAAA,EAAmB,MAAA,QACjBD,UAAAA,GAAAA,CAUH,GAAgBH,OAAAG,IAAAH,OAAAI,MAAAA,KAAAJ,EAAA,CAAA,GAXhBI;AAWgB;AClDb,MAAMK,oBAAoBV,CAAAA,OAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAAC;AAAA,IAAAC;AAAAA,IAAAQ;AAAAA,IAAAC;AAAAA,IAAAnB;AAAAA,IAAAoB;AAAAA,EAAAA,IAAAb,IAOhC;AAAA,IAAAc;AAAAA,EAAAA,IAAiBC,SAAAA,GAQAX,KAAA,mBAAmBU,OAAMtB,MAAMwB,MAAMC,QAAQC,QAAQC,MAAO,IAG7Dd,KAAAS,OAAMM,MAAMC,KAAKC,MAAM,CAAA,GAAaC;AAAA,MAAAjB;AAAAL,IAAA,CAAA,MAAAa,OAAAtB,MAAAwB,MAAAC,QAAAC,QAAAM,MAAAvB,EAAA,CAAA,MAAAa,OAAAtB,MAAAwB,MAAAC,QAAAC,QAAAO,MAAAxB,EAAA,CAAA,MAAAG,MAAAH,SAAAI,MAPzCC,KAAA;AAAA,IAAAoB,OACE;AAAA,IAAKC,SACH;AAAA,IAAaR,QACd;AAAA,IAAMS,WACHxB;AAAAA,IAA8DZ,OAClEsB,OAAMtB,MAAMwB,MAAMC,QAAQC,QAAQO;AAAAA,IAAG5B,iBAC3BiB,OAAMtB,MAAMwB,MAAMC,QAAQC,QAAQM;AAAAA,IAAGD,UAC5ClB;AAAAA,IAAoCwB,WACnC;AAAA,EAAA,GACZ5B,EAAA,CAAA,IAAAa,OAAAtB,MAAAwB,MAAAC,QAAAC,QAAAM,IAAAvB,EAAA,CAAA,IAAAa,OAAAtB,MAAAwB,MAAAC,QAAAC,QAAAO,IAAAxB,OAAAG,IAAAH,OAAAI,IAAAJ,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAIW,QAAA6B,KAAAhB,OAAMM,MAAMW,MAAMT,MAAM,CAAA,GAAaC;AAAA,MAAAS;AAAA/B,IAAA,CAAA,MAAAa,OAAAtB,MAAAyC,KAAAR,MAAAxB,EAAA,CAAA,MAAA6B,MAH1CE,KAAA;AAAA,IAAAE,SACI;AAAA,IAAOL,WACL;AAAA,IAAQN,UACTO;AAAAA,IAAqCtC,OACxCsB,OAAMtB,MAAMyC,KAAKR;AAAAA,IAAGU,YACf;AAAA,IAAKC,eACF;AAAA,IAAKC,eACL;AAAA,EAAA,GAChBpC,OAAAa,OAAAtB,MAAAyC,KAAAR,IAAAxB,OAAA6B,IAAA7B,OAAA+B,MAAAA,KAAA/B,EAAA,CAAA;AAAA,MAAAqC;AAAArC,IAAA,CAAA,MAAAK,MAAAL,SAAA+B,MAnBIM,KAAA;AAAA,IAAAtB,OACEV;AAAAA,IASNyB,OACMC;AAAAA,EAAAA,GASR/B,OAAAK,IAAAL,OAAA+B,IAAA/B,QAAAqC,MAAAA,KAAArC,EAAA,EAAA;AArBH,QAAAsC,cACSD;AAsBR,MAAAE;AAAAvC,IAAA,EAAA,MAAAW,OAAAX,UAAAE,YAAAF,EAAA,EAAA,MAAAU,OAGC6B,KAAAC,CAAAA,SAAA;AACE,QAAI,SAASA,QAAQA,KAAIhD,OAAWiD,WAAWD,KAAIhD,GAAO;AACxDU,eAAS;AAAA,QAAAV,KACFgD,KAAIhD;AAAAA,QAAOkD,QACR;AAAA,MAAA,CACT;AAAA,aAEDhC,QACE,OAAO8B,QAAQA,KAAIG,KAAW,OAAOH,QAAQA,KAAII,KAAW,OAAOJ,QAAQA,KAAIK;AAEjF3C,eAAS;AAAA,QAAAyC,GACJG,OAAON,KAAIG,CAAc,KAAJjC,IAAGiC;AAAAA,QAAEC,GAC1BE,OAAON,KAAII,CAAc,KAAJlC,IAAGkC;AAAAA,QAAEC,GAC1BC,OAAON,KAAIK,CAAc,KAAJnC,IAAGmC;AAAAA,QAAEE,GAC1BrC,IAAGqC;AAAAA,QAAEL,QACA;AAAA,MAAA,CACT;AAAA,aACQ/B,OAAO,OAAO6B,QAAQA,KAAIO,GAAK;AACxC,UAAAC,QAAYF,OAAON,KAAIO,CAAK;AACxBC,cAAQ,IACVA,QAAQA,IACCA,QAAQ,QACjBA,QAAQA,MAEVA,QAAAA,QAAS,KAET9C,SAAS;AAAA,QAAA+C,GACJtC,IAAGsC;AAAAA,QAAEC,GACLvC,IAAGuC;AAAAA,QAAEC,GACLxC,IAAGwC;AAAAA,QAAEJ,GACLC;AAAAA,QAAKN,QACA;AAAA,MAAA,CACT;AAAA,IAAC;AAAA,EACH,GACF1C,QAAAW,KAAAX,QAAAE,UAAAF,QAAAU,KAAAV,QAAAuC,MAAAA,KAAAvC,EAAA,EAAA;AAnCH,QAAAoD,eAAiEb;AAqChE,MAAAc;AAAArD,YAAAR,OAQc6D,KAAA7D,KAAG8D,QAAU,KAAK,EAAE,GAACtD,QAAAR,KAAAQ,QAAAqD,MAAAA,KAAArD,EAAA,EAAA;AAAA,MAAAuD;AAAAvD,IAAA,EAAA,MAAAoD,gBAAApD,UAAAsC,eAAAtC,EAAA,EAAA,MAAAqD,MAJhCE,yBAAC,OAAU,SAAgB,aAAA,GACzB,UAAA,oBAAC,eAAA,EACQjB,OAAAA,aACD,OAAA,OACC,OAAAe,IACGD,UAAAA,aAAAA,CAAY,GAE1B,GAAMpD,QAAAoD,cAAApD,QAAAsC,aAAAtC,QAAAqD,IAAArD,QAAAuD,MAAAA,KAAAvD,EAAA,EAAA;AAKK,QAAAwD,MAAA9C,KAAGiC;AAAG,MAAAc;AAAAzD,IAAA,EAAA,MAAAoD,gBAAApD,UAAAsC,eAAAtC,EAAA,EAAA,MAAAwD,OAJjBC,MAAA,oBAAC,KAAA,EAAU,MAAA,GAAgB,aAAA,GACzB,8BAAC,eAAA,EACQnB,oBACD,OAAA,KACC,OAAAkB,KACGJ,UAAAA,cACV,WAAA,IACS,cAAG,GAEhB,GAAMpD,QAAAoD,cAAApD,QAAAsC,aAAAtC,QAAAwD,KAAAxD,QAAAyD,OAAAA,MAAAzD,EAAA,EAAA;AAKK,QAAA0D,MAAAhD,KAAGkC;AAAG,MAAAe;AAAA3D,IAAA,EAAA,MAAAoD,gBAAApD,UAAAsC,eAAAtC,EAAA,EAAA,MAAA0D,OAJjBC,MAAA,oBAAC,KAAA,EAAU,MAAA,GAAgB,aAAA,GACzB,8BAAC,eAAA,EACQrB,oBACD,OAAA,KACC,OAAAoB,KACGN,UAAAA,cACV,WAAA,IACS,cAAG,GAEhB,GAAMpD,QAAAoD,cAAApD,QAAAsC,aAAAtC,QAAA0D,KAAA1D,QAAA2D,OAAAA,MAAA3D,EAAA,EAAA;AAKK,QAAA4D,MAAAlD,KAAGmC;AAAG,MAAAgB;AAAA7D,IAAA,EAAA,MAAAoD,gBAAApD,UAAAsC,eAAAtC,EAAA,EAAA,MAAA4D,OAJjBC,MAAA,oBAAC,KAAA,EAAU,MAAA,GAAgB,aAAA,GACzB,8BAAC,eAAA,EACQvB,oBACD,OAAA,KACC,OAAAsB,KACGR,UAAAA,cACV,WAAA,IACS,cAAG,GAEhB,GAAMpD,QAAAoD,cAAApD,QAAAsC,aAAAtC,QAAA4D,KAAA5D,QAAA6D,OAAAA,MAAA7D,EAAA,EAAA;AAAA,MAAA8D;AAAA9D,IAAA,EAAA,MAAAY,gBAAAZ,UAAAoD,gBAAApD,EAAA,EAAA,MAAAsC,eAAAtC,EAAA,EAAA,MAAAU,KAAAqC,KACLe,MAAA,CAAClD,gBACA,oBAAC,KAAA,EAAU,MAAA,GACT,UAAA,oBAAC,eAAA,EACQ0B,OAAAA,aACD,OAAA,KACC,OAAAyB,KAAIC,OAAQtD,KAAGqC,KAAH,KAAe,GAAG,GAC3BK,UAAAA,cACV,WAAA,IACS,SAAA,IAAA,CAAG,EAAA,CAEhB,GACDpD,QAAAY,cAAAZ,QAAAoD,cAAApD,QAAAsC,aAAAtC,EAAA,EAAA,IAAAU,KAAAqC,GAAA/C,QAAA8D,OAAAA,MAAA9D,EAAA,EAAA;AAAA,MAAAiE;AAAA,SAAAjE,EAAA,EAAA,MAAAyD,OAAAzD,EAAA,EAAA,MAAA2D,OAAA3D,EAAA,EAAA,MAAA6D,OAAA7D,EAAA,EAAA,MAAA8D,OAAA9D,UAAAuD,MAlDHU,MAAA,qBAAC,MAAA,EACCV,UAAAA;AAAAA,IAAAA;AAAAA,IAQAE;AAAAA,IAUAE;AAAAA,IAUAE;AAAAA,IAUCC;AAAAA,EAAAA,EAAAA,CAYH,GAAO9D,QAAAyD,KAAAzD,QAAA2D,KAAA3D,QAAA6D,KAAA7D,QAAA8D,KAAA9D,QAAAuD,IAAAvD,QAAAiE,OAAAA,MAAAjE,EAAA,EAAA,GAnDPiE;AAmDO,GC7HLhF,WAAWJ,OAAOqF,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQrBC,oBAAoBtF,OAAOC,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,GAgB/BsF,mBAAmBC,CAAAA,UAAA;AAAA,QAAArE,IAAAC,EAAA,EAAA,GACvB;AAAA,IAAAwB;AAAAA,IAAAlC,OAAAQ;AAAAA,IAAAG;AAAAA,IAAAoE;AAAAA,IAAA1D;AAAAA,IAAA2D;AAAAA,IAAAC;AAAAA,EAAAA,IAQIH,OANK;AAAA,IAAA3D;AAAAA,IAAAlB;AAAAA,IAAAiF;AAAAA,IAAA9D;AAAAA,EAAAA,IAAAZ;AAQT,MAAI,CAACY,OAAD,CAAS8D;AAAG,WACP;AACR,MAAAtE;AAAAH,WAAAyB,SAGatB,KAAA;AAAA,IAAAsB;AAAAA,EAAAA,GAAOzB,OAAAyB,OAAAzB,OAAAG,MAAAA,KAAAH,EAAA,CAAA;AAAA,MAAAI;AAAAJ,WAAAY,gBAAAZ,EAAA,CAAA,MAAAW,OAAAX,EAAA,CAAA,MAAAyE,OAAAzE,EAAA,CAAA,MAAAE,YAAAF,SAAAwE,YAAAxE,EAAA,CAAA,MAAAU,OAGZN,KAAA,CAACoE,YAAD,qBAAA,UAAA,EAEG,UAAA;AAAA,IAAA,oBAAC,MAAA,EAAc,UAAA,UAAgB,OAAA;AAAA,MAAAE,UAAW;AAAA,MAAUC,QAAU;AAAA,IAAA,GAC5D,UAAA,oBAAC,YAAA,EAAqBzE,UAAeS,KAAU8D,KAAG,GACpD;AAAA,IAEA,oBAAC,QACS,QAAA,GACA,WACC,UAAA,UACF,OAAA;AAAA,MAAAC,UAAW;AAAA,MAAUC,QAAU;AAAA,IAAA,GAEtC,8BAAC,KAAA,EAAShE,KAAe,UAAA,CAAC6D,YAADtE,aAC3B;AAAA,IAEC,CAACU,gBACA,oBAAC,MAAA,EACS,QAAA,GACA,WACC,UAAA,UACF,OAAA;AAAA,MAAA8D,UAAW;AAAA,MAAUC,QAAU;AAAA,MAAMpE,YAAc;AAAA,IAAA,GAE1D,UAAA,oBAAC,OAAA,EAAWG,KAAUC,KAAeT,aACvC;AAAA,EAAA,EAAA,CACD,GAEJF,OAAAY,cAAAZ,OAAAW,KAAAX,OAAAyE,KAAAzE,OAAAE,UAAAF,OAAAwE,UAAAxE,OAAAU,KAAAV,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAAA,MAAAK;AAAAL,IAAA,CAAA,MAAA4E,OAAAC,IAAA,2BAAA,KAMUxE,KAAA;AAAA,IAAAqE,UAAW;AAAA,IAAUI,UAAY;AAAA,IAAKvE,YAAc;AAAA,EAAA,GAAOP,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAAA,MAAA6B;AAAA7B,IAAA,EAAA,MAAA4E,OAAAC,IAAA,2BAAA,KAMrDhD,SAAE7B,QAAA6B,MAAAA,KAAA7B,EAAA,EAAA;AAAA,MAAA+B;AAAA/B,IAAA,EAAA,MAAA4E,OAAAC,IAAA,2BAAA,KAJf9C,KAAA,oBAAC,YAAA,EACO,MAAA,GACA,OAAA,eACD,MAAA,mBACM,WAAAF,GAAAA,CAAuB,GAClC7B,QAAA+B,MAAAA,KAAA/B,EAAA,EAAA;AAGmB,QAAAqC,KAAA,QAAQ3B,KAAGiC,CAAG,IAAIjC,KAAGkC,CAAG,IAAIlC,KAAGmC,CAAG,IAAInC,KAAGqC,CAAG;AAAG,MAAAR;AAAAvC,YAAAqC,MAFpEE,KAAA,oBAAC,YACQ,OAAA;AAAA,IAAA3C,iBACYyC;AAAAA,EAAAA,EACnB,CAAC,GACDrC,QAAAqC,IAAArC,QAAAuC,MAAAA,KAAAvC,EAAA,EAAA;AAAA,MAAAqD;AAAArD,IAAA,EAAA,MAAAR,OAAAQ,EAAA,EAAA,MAAAW,KAAAsC,KAAAjD,EAAA,EAAA,MAAAW,KAAAwC,KAAAnD,EAAA,EAAA,MAAAW,KAAAuC,KAAAlD,UAAAwE,YAAAxE,EAAA,EAAA,MAAAU,KAAAmC,KAAA7C,EAAA,EAAA,MAAAU,KAAAkC,KAAA5C,EAAA,EAAA,MAAAU,KAAAiC,KAEDU,KAAAmB,YACC,oBAAC,mBAAA,EACU,SAAA,GACM,eAAA,GACR,QAAA,UACC,SAAA,iBAER,UAAA,qBAAC,OAAA,EAAa,OAAA,GAAc,WAAA,GAC1B,UAAA;AAAA,IAAA,oBAAC,MAAA,EAAW,MAAA,GAAU,QAAA,QACnBhF,UAAAA,KACH;AAAA,IAEA,qBAAC,QAAA,EAAc,OAAA,GACb,UAAA;AAAA,MAAA,qBAAC,MAAA,EAAW,MAAA,GACV,UAAA;AAAA,QAAA,oBAAA,YAAQ,UAAA,QAAA,CAAK;AAAA,QACZkB,KAAGiC;AAAAA,QAAI;AAAA,QAAEjC,KAAGkC;AAAAA,QAAI;AAAA,QAAElC,KAAGmC;AAAAA,MAAAA,GACxB;AAAA,MACA,qBAAC,MAAA,EAAW,MAAA,GACV,UAAA;AAAA,QAAA,oBAAA,YAAQ,UAAA,QAAA,CAAK;AAAA,QAAS;AAAA,QAAEkB,KAAIC,MAAOrD,KAAGsC,KAAH,CAAW;AAAA,QAAG;AAAA,QAChDc,KAAIC,OAAQrD,KAAGuC,KAAH,KAAe,GAAG;AAAA,QAAE;AAAA,QAAGa,KAAIC,OAAQrD,KAAGwC,KAAH,KAAe,GAAG;AAAA,QAAE;AAAA,MAAA,EAAA,CACtE;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GACF,EAAA,CACF,GACDnD,QAAAR,KAAAQ,EAAA,EAAA,IAAAW,KAAAsC,GAAAjD,EAAA,EAAA,IAAAW,KAAAwC,GAAAnD,EAAA,EAAA,IAAAW,KAAAuC,GAAAlD,QAAAwE,UAAAxE,EAAA,EAAA,IAAAU,KAAAmC,GAAA7C,EAAA,EAAA,IAAAU,KAAAkC,GAAA5C,EAAA,EAAA,IAAAU,KAAAiC,GAAA3C,QAAAqD,MAAAA,KAAArD,EAAA,EAAA;AAAA,MAAAuD;AAAAvD,IAAA,EAAA,MAAAuC,MAAAvC,UAAAqD,MA1CHE,KAAA,qBAAC,MAAA,EACO,MAAA,GACE,QAAA,GACC,UAAA,UACF,OAAAlD,IAEP0B,UAAAA;AAAAA,IAAAA;AAAAA,IAMAQ;AAAAA,IAMCc;AAAAA,EAAAA,EAAAA,CAyBH,GAAOrD,QAAAuC,IAAAvC,QAAAqD,IAAArD,QAAAuD,MAAAA,KAAAvD,EAAA,EAAA;AAAA,MAAAwD;AAAAxD,IAAA,EAAA,MAAAY,gBAAAZ,EAAA,EAAA,MAAAR,OAAAQ,EAAA,EAAA,MAAAW,OAAAX,UAAAE,YAAAF,EAAA,EAAA,MAAAsE,WAAAtE,EAAA,EAAA,MAAAwE,YAAAxE,EAAA,EAAA,MAAAU,OAEN8C,OAACgB,YACA,qBAAC,MAAA,EAAW,OAAA,cAAyB,YAAA,GACnC,UAAA;AAAA,IAAA,oBAAC,OAAW,OAAA;AAAA,MAAA/C,OAAQ;AAAA,IAAA,GAClB,8BAAC,mBAAA,EACMf,KACAC,KACAnB,KACKU,UACIU,cAAY,GAE9B;AAAA,IACA,oBAAC,KAAA,EAAgB,YAAA,GACf,8BAAC,QAAA,EAAgB0D,SAAAA,SAAe,OAAA,gBAAqBS,MAAAA,WAAgB,MAAA,YAAU,EAAA,CACjF;AAAA,EAAA,EAAA,CACF,GACD/E,QAAAY,cAAAZ,QAAAR,KAAAQ,QAAAW,KAAAX,QAAAE,UAAAF,QAAAsE,SAAAtE,QAAAwE,UAAAxE,QAAAU,KAAAV,QAAAwD,OAAAA,MAAAxD,EAAA,EAAA;AAAA,MAAAyD;AAAAzD,IAAA,EAAA,MAAAwD,OAAAxD,UAAAuD,MA7DHE,MAAA,qBAAC,MAAA,EACCF,UAAAA;AAAAA,IAAAA;AAAAA,IA6CCC;AAAAA,EAAAA,EAAAA,CAgBH,GAAOxD,QAAAwD,KAAAxD,QAAAuD,IAAAvD,QAAAyD,OAAAA,MAAAzD,EAAA,EAAA;AAAA,MAAA0D;AAAA1D,IAAA,EAAA,MAAAuE,aAAAvE,UAAAE,YACNwD,MAAAa,aAAa,oBAAC,WAAA,EAAkBA,QAAAA,WAAqBrE,UAAQ,GAAIF,QAAAuE,WAAAvE,QAAAE,UAAAF,QAAA0D,OAAAA,MAAA1D,EAAA,EAAA;AAAA,MAAA2D;AAAA3D,IAAA,EAAA,MAAAyD,OAAAzD,UAAA0D,OAAA1D,EAAA,EAAA,MAAAI,MA5FtEuD,0BAAC,MAAA,EAAc,YAAG,QAAA,IAAe,QAAA,GAC/B,UAAA,qBAAC,OAAA,EAAa,OAAA,GACXvD,UAAAA;AAAAA,IAAAA;AAAAA,IA2BDqD;AAAAA,IA+DCC;AAAAA,EAAAA,GACH,EAAA,CACF,GAAO1D,QAAAyD,KAAAzD,QAAA0D,KAAA1D,QAAAI,IAAAJ,QAAA2D,OAAAA,MAAA3D,EAAA,EAAA;AAAA,MAAA4D;AAAA,SAAA5D,EAAA,EAAA,MAAAG,MAAAH,UAAA2D,OA/FTC,MAAA,oBAAA,OAAA,EAAY,OAAAzD,IACVwD,UAAAA,IAAAA,CA+FF,GAAM3D,QAAAG,IAAAH,QAAA2D,KAAA3D,QAAA4D,OAAAA,MAAA5D,EAAA,EAAA,GAhGN4D;AAgGM,GAIJoB,cAAcC,aAAab,gBAAgB,GAE3Cc,gBAA+C;AAAA,EACnD1F,KAAK;AAAA,EACLmB,KAAK;AAAA,IAACsC,GAAG;AAAA,IAAKC,GAAG;AAAA,IAAQC,GAAG;AAAA,IAAQJ,GAAG;AAAA,EAAA;AAAA,EACvC0B,KAAK;AAAA,IAACxB,GAAG;AAAA,IAAKC,GAAG;AAAA,IAAQiC,GAAG;AAAA,IAAQpC,GAAG;AAAA,EAAA;AAAA,EACvCrC,KAAK;AAAA,IAACiC,GAAG;AAAA,IAAIC,GAAG;AAAA,IAAKC,GAAG;AAAA,IAAKE,GAAG;AAAA,EAAA;AAAA,EAChCL,QAAQ;AACV;AAEA,SAAe0C,WAAAf,OAAA;AAAA,QAAArE,IAAAC,EAAA,EAAA,GACb;AAAA,IAAAC;AAAAA,IAAAsE;AAAAA,EAAAA,IAA6BH,OAC7BgB,QAAchB,MAAKgB,OACnBC,OAAajB,MAAKkB,YAClBC,WAAiBC,OAA0B,IAAI,GAG/C,CAAAlG,OAAAmG,QAAA,IAA0BC,SAASN,KAAK;AAAC,MAAAtF,IAAAI;AAAAH,WAAAqF,SAE/BtF,KAAAA,MAAM6F,gBAAgB,MAAMF,SAASL,KAAK,CAAC,GAAGlF,KAAA,CAACkF,KAAK,GAACrF,OAAAqF,OAAArF,OAAAD,IAAAC,OAAAG,OAAAJ,KAAAC,EAAA,CAAA,GAAAG,KAAAH,EAAA,CAAA,IAA/D6F,UAAU9F,IAA8CI,EAAO;AAK/D,QAAA,CAAA2F,WAAAC,YAAA,IAAkCJ,SAAuBK,MAAS,GAClEC,iBAAuBC,iBAAiBJ,SAAS;AAAC,MAAA1F;AAAAJ,IAAA,CAAA,MAAAE,YAAAF,EAAA,CAAA,MAAAsF,KAAAa,UAAAnG,EAAA,CAAA,MAAAsF,KAAAc,QACdhG,KAAAiG,CAAAA,cAAA;AAClC,UAAAC,eAAqBhB,KAAIa,OAAOI,OACtBC,CAAAA,UAAWA,MAAKJ,QAASC,SAAS,EAAC7F,IACtCiG,CAAAA,YAAA;AACH,YAAAC,iBAAuBL,UAAUG,QAAKJ,IAAK,GAC3CO,WAAiBH,QAAKlB,KAAKsB,aAAc;AAAQ,aAC1CC,IACLF,WAAWG,OAAMC,OAAQ;AAAA,QAAAC,OAAQR,QAAKlB,KAAKc;AAAAA,MAAAA,GAAQM,cAA+B,IAAlFA,gBACA,CAACF,QAAKJ,IAAK,CACb;AAAA,IAAC,CACF;AAEHlG,aAAS,CACP+G,aAAa;AAAA,MAAAD,OAAQ1B,KAAIc;AAAAA,IAAAA,CAAM,GAC/BS,IAAIvB,KAAIc,MAAO,CAAC,OAAO,CAAC,GACxBS,IAAIR,UAAS3F,KAAOqC,GAAE,CAAC,OAAO,CAAC,GAAC,GAC7BuD,YAAY,CAChB;AAAA,EAAC,GACHtG,OAAAE,UAAAF,EAAA,CAAA,IAAAsF,KAAAa,QAAAnG,EAAA,CAAA,IAAAsF,KAAAc,MAAApG,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAlBD,QAAAoD,eAAqB8D,eAAe9G,EAkBnC;AAAC,MAAAC;AAAAL,IAAA,CAAA,MAAAiG,kBAAAjG,SAAAoD,gBACQ/C,KAAAA,MAAA;AACR,QAAI,CAAC4F;AAAc;AACnB,UAAAkB,MAAYC,sBAAsB,MAAMhE,aAAa6C,cAAc,CAAC;AAAC,WAC9D,MAAMoB,qBAAqBF,GAAG;AAAA,EAAC,GACvCnH,OAAAiG,gBAAAjG,OAAAoD,cAAApD,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAAA,MAAA6B;AAAA7B,YAAAiG,kBAAEpE,KAAA,CAACoE,cAAc,GAACjG,QAAAiG,gBAAAjG,QAAA6B,MAAAA,KAAA7B,EAAA,EAAA,GAJnB6F,UAAUxF,IAIPwB,EAAgB;AAAC,MAAAE;AAAA/B,IAAA,EAAA,MAAA4E,OAAAC,IAAA,2BAAA,KAEkB9C,KAAAA,MAAA;AACpC2D,aAASR,aAAa,GACtBa,aAAab,aAAa;AAAA,EAAC,GAC5BlF,QAAA+B,MAAAA,KAAA/B,EAAA,EAAA;AAHD,QAAAsH,oBAA0BvF;AAGpB,MAAAM;AAAArC,IAAA,EAAA,MAAA4E,OAAAC,IAAA,2BAAA,KAEgCxC,KAAAkF,CAAAA,gBAAA;AACpC7B,aAASW,WAAS,GAClBN,aAAaM,WAAS;AAAA,EAAC,GACxBrG,QAAAqC,MAAAA,KAAArC,EAAA,EAAA;AAHD,QAAAwH,oBAA0BnF;AAGpB,MAAAE;AAAAvC,YAAAE,YAE0BqC,KAAAA,MAAA;AAC9BmD,aAASM,MAAS,GAClB9F,SAASuH,MAAAA,CAAO;AAAA,EAAC,GAClBzH,QAAAE,UAAAF,QAAAuC,MAAAA,KAAAvC,EAAA,EAAA;AAHD,QAAA0H,cAAoBnF;AAGN,MAAAc;AAAA,SAAArD,EAAA,EAAA,MAAAT,SAAAS,UAAA0H,eAAA1H,EAAA,EAAA,MAAAwE,YAAAxE,EAAA,EAAA,MAAAsF,KAAAqC,SAAApD,aAAAvE,EAAA,EAAA,MAAAsF,KAAAqC,SAAA/G,gBAAAZ,EAAA,EAAA,MAAAsF,KAAAd,YAAAxE,UAAAqF,SAGZhC,KAAA,oBAAA,UAAA,EACGgC,UAAAA,SAASA,MAAK7F,MACb,oBAAC,aAAA,EACQD,OACGiI,UAAAA,mBACA,UAAAhD,YAAa,OAAOc,KAAId,YAAc,aAAac,KAAId,UACnD,eAAC,CAACc,KAAIqC,SAAsB/G,cAC/B,WAAA0E,KAAIqC,SAAmBpD,WACzBmD,SAAAA,YAAAA,KAGX,oBAAC,QAAA,EACOE,MAAAA,SACD,MAAA,SACA,MAAA,gBACApC,KAAAA,UACK,UAAAqC,CAAAA,CAAQrD,UACT8C,SAAAA,kBAAAA,CAAiB,EAAA,CAE7B,GACAtH,QAAAT,OAAAS,QAAA0H,aAAA1H,QAAAwE,UAAAxE,EAAA,EAAA,IAAAsF,KAAAqC,SAAApD,WAAAvE,EAAA,EAAA,IAAAsF,KAAAqC,SAAA/G,cAAAZ,EAAA,EAAA,IAAAsF,KAAAd,UAAAxE,QAAAqF,OAAArF,QAAAqD,MAAAA,KAAArD,EAAA,EAAA,GApBHqD;AAoBG;"}
1
+ {"version":3,"file":"ColorInput.js","sources":["../../src/ColorList.tsx","../../src/ColorPickerFields.tsx","../../src/ColorInput.tsx"],"sourcesContent":["import type {Color, ColorChangeHandler} from 'react-color'\n\nimport {Flex} from '@sanity/ui'\nimport {styled} from 'styled-components'\nimport tinycolor from 'tinycolor2'\n\nconst ColorListWrap = styled(Flex)`\n gap: 0.25em;\n`\n\nconst ColorBoxContainer = styled.div`\n width: 2.1em;\n height: 2.1em;\n cursor: pointer;\n position: relative;\n overflow: hidden;\n border-radius: 3px;\n background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAADFJREFUOE9jZGBgEGHAD97gk2YcNYBhmIQBgWSAP52AwoAQwJvQRg1gACckQoC2gQgAIF8IscwEtKYAAAAASUVORK5CYII=')\n left center #fff;\n`\n\nconst ColorBox = styled.div`\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px var(--card-shadow-outline-color);\n content: '';\n position: absolute;\n inset: 0;\n z-index: 1;\n`\n\ninterface ValidatedColor {\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 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 cls.push({\n color: c,\n backgroundColor: color.toRgbString(),\n })\n }\n return cls\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(({color, backgroundColor}, idx) => (\n <ColorBoxContainer\n key={`${backgroundColor}-${idx}`}\n onClick={() => {\n onChange(color)\n }}\n >\n <ColorBox style={{background: backgroundColor}} />\n </ColorBoxContainer>\n ))}\n </ColorListWrap>\n )\n}\n","import type {Color, ColorChangeHandler, HSLColor, RGBColor} from 'react-color'\nimport type {EditableInputStyles} from 'react-color/lib/components/common/EditableInput'\n\nimport {Box, Flex, useTheme} from '@sanity/ui'\nimport {useCallback, useMemo} from 'react'\nimport {EditableInput} from 'react-color/lib/components/common'\n// @ts-expect-error missing export\nimport {isValidHex} from 'react-color/lib/helpers/color'\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 {sanity} = useTheme()\n\n const inputStyles: EditableInputStyles = useMemo(\n () => ({\n input: {\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: `inset 0 0 0 1px ${sanity.color.input.default.enabled.border}`,\n color: sanity.color.input.default.enabled.fg,\n backgroundColor: sanity.color.input.default.enabled.bg,\n fontSize: sanity.fonts.text.sizes[0]?.fontSize,\n textAlign: 'center',\n },\n label: {\n display: 'block',\n textAlign: 'center',\n fontSize: sanity.fonts.label.sizes[0]?.fontSize,\n color: sanity.color.base.fg,\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize',\n },\n }),\n [sanity],\n )\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 <Box flex={2} marginRight={1}>\n <EditableInput\n style={inputStyles}\n label=\"hex\"\n value={hex?.replace('#', '')}\n onChange={handleChange}\n />\n </Box>\n <Box flex={1} marginRight={1}>\n <EditableInput\n style={inputStyles}\n label=\"r\"\n value={rgb?.r}\n onChange={handleChange}\n dragLabel\n dragMax={255}\n />\n </Box>\n <Box flex={1} marginRight={1}>\n <EditableInput\n style={inputStyles}\n label=\"g\"\n value={rgb?.g}\n onChange={handleChange}\n dragLabel\n dragMax={255}\n />\n </Box>\n <Box flex={1} marginRight={1}>\n <EditableInput\n style={inputStyles}\n label=\"b\"\n value={rgb?.b}\n onChange={handleChange}\n dragLabel\n dragMax={255}\n />\n </Box>\n {!disableAlpha && (\n <Box flex={1}>\n <EditableInput\n style={inputStyles}\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 type {CustomPickerInjectedProps} from 'react-color/lib/components/common/ColorWrap'\n\nimport {AddIcon} from '@sanity/icons'\nimport {TrashIcon} from '@sanity/icons'\nimport {Box, Button, Card, Flex, Inline, Stack, Text} from '@sanity/ui'\nimport {startTransition, useCallback, useDeferredValue, useEffect, useRef, useState} from 'react'\nimport {type Color, CustomPicker} from 'react-color'\nimport {Alpha, Checkboard, Hue, Saturation} from 'react-color/lib/components/common'\nimport {type ObjectInputProps, set, setIfMissing, unset} from 'sanity'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport type {ColorSchemaType, ColorValue} from './types'\n\nimport {ColorList} from './ColorList'\nimport {ColorPickerFields} from './ColorPickerFields'\n\nconst ColorBox = styled(Box)`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n`\n\nconst ReadOnlyContainer = styled(Flex)`\n margin-top: 6rem;\n background-color: var(--card-bg-color);\n position: relative;\n width: 100%;\n`\n\ninterface ColorPickerProps extends CustomPickerInjectedProps<Color> {\n width?: string\n disableAlpha: boolean\n colorList?: Array<Color> | undefined\n readOnly?: boolean\n onUnset: () => void\n color: ColorValue\n}\n\nconst ColorPickerInner = (props: ColorPickerProps) => {\n const {\n width,\n color: {rgb, hex, hsv, hsl},\n onChange,\n onUnset,\n disableAlpha,\n colorList,\n readOnly,\n } = props\n\n if (!hsl || !hsv) {\n return null\n }\n\n return (\n <div style={{width}}>\n <Card padding={1} border radius={1}>\n <Stack space={2}>\n {!readOnly && (\n <>\n <Card overflow=\"hidden\" style={{position: 'relative', height: '5em'}}>\n <Saturation onChange={onChange} hsl={hsl} hsv={hsv} />\n </Card>\n\n <Card\n shadow={1}\n radius={3}\n overflow=\"hidden\"\n style={{position: 'relative', height: '10px'}}\n >\n <Hue hsl={hsl} onChange={!readOnly && onChange} />\n </Card>\n\n {!disableAlpha && (\n <Card\n shadow={1}\n radius={3}\n overflow=\"hidden\"\n style={{position: 'relative', height: '10px', background: '#fff'}}\n >\n <Alpha rgb={rgb} hsl={hsl} onChange={onChange} />\n </Card>\n )}\n </>\n )}\n <Flex>\n <Card\n flex={1}\n radius={2}\n overflow=\"hidden\"\n style={{position: 'relative', minWidth: '4em', background: '#fff'}}\n >\n <Checkboard\n size={8}\n white=\"transparent\"\n grey=\"rgba(0,0,0,.08)\"\n renderers={{} as {canvas: unknown}}\n />\n <ColorBox\n style={{\n backgroundColor: `rgba(${rgb?.r},${rgb?.g},${rgb?.b},${rgb?.a})`,\n }}\n />\n\n {readOnly && (\n <ReadOnlyContainer\n padding={2}\n paddingBottom={1}\n sizing=\"border\"\n justify=\"space-between\"\n >\n <Stack space={3} marginTop={1}>\n <Text size={3} weight=\"bold\">\n {hex}\n </Text>\n\n <Inline space={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 <Box style={{width: 200}}>\n <ColorPickerFields\n rgb={rgb}\n hsl={hsl}\n hex={hex}\n onChange={onChange}\n disableAlpha={disableAlpha}\n />\n </Box>\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 ColorPicker = CustomPicker(ColorPickerInner)\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 const value = props.value as ColorValue | undefined\n const type = props.schemaType as ColorSchemaType\n const focusRef = useRef<HTMLButtonElement>(null)\n\n // use local state so we can have instant ui updates while debouncing patch emits\n const [color, setColor] = useState(value)\n // Marking the `setColor` in a transition allows React to interrupt render should the user start dragging the input before React is finished rendering\n useEffect(() => startTransition(() => setColor(value)), [value])\n\n // The color picker emits onChange events continuously while the user is sliding the\n // hue/saturation/alpha selectors. This debounces the event to avoid excessive patches\n // and massively improve render performance and avoid jank\n const [emitColor, setEmitColor] = useState<typeof value>(undefined)\n const debouncedColor = useDeferredValue(emitColor)\n const handleChange = useEffectEvent((nextColor: ColorValue) => {\n const fieldPatches = type.fields\n .filter((field) => field.name in nextColor)\n .map((field) => {\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 useEffect(() => {\n if (!debouncedColor) return undefined\n const raf = requestAnimationFrame(() => handleChange(debouncedColor))\n return () => cancelAnimationFrame(raf)\n }, [debouncedColor])\n\n const handleCreateColor = useCallback(() => {\n setColor(DEFAULT_COLOR)\n setEmitColor(DEFAULT_COLOR)\n }, [])\n\n const handleColorChange = useCallback((nextColor: ColorValue) => {\n setColor(nextColor)\n setEmitColor(nextColor)\n }, [])\n\n const handleUnset = useCallback(() => {\n setColor(undefined)\n onChange(unset())\n }, [onChange])\n\n return (\n <>\n {value && value.hex ? (\n <ColorPicker\n color={color!}\n onChange={handleColorChange}\n readOnly={readOnly || (typeof type.readOnly === 'boolean' && type.readOnly)}\n disableAlpha={!!type.options?.disableAlpha}\n colorList={type.options?.colorList}\n onUnset={handleUnset}\n />\n ) : (\n <Button\n icon={AddIcon}\n mode=\"ghost\"\n text=\"Create color\"\n ref={focusRef}\n disabled={Boolean(readOnly)}\n onClick={handleCreateColor}\n />\n )}\n </>\n )\n}\n"],"names":["ColorListWrap","styled","Flex","withConfig","displayName","componentId","ColorBoxContainer","div","ColorBox","validateColors","colors","reduce","cls","c","color","hex","tinycolor","isValid","push","backgroundColor","toRgbString","ColorList","t0","$","_c","onChange","t1","t2","t3","idx","background","map","ColorPickerFields","rgb","hsl","disableAlpha","sanity","useTheme","input","default","enabled","border","fonts","text","sizes","fontSize","bg","fg","width","padding","boxShadow","textAlign","t4","label","t5","base","display","paddingTop","paddingBottom","textTransform","t6","inputStyles","t7","data","isValidHex","source","r","g","b","Number","a","alpha","h","s","l","handleChange","t8","replace","t9","t10","t11","t12","t13","t14","t15","t16","Math","round","t17","Box","ReadOnlyContainer","ColorPickerInner","props","onUnset","colorList","readOnly","hsv","position","height","Symbol","for","minWidth","TrashIcon","ColorPicker","CustomPicker","DEFAULT_COLOR","v","ColorInput","value","type","schemaType","focusRef","useRef","setColor","useState","startTransition","useEffect","emitColor","setEmitColor","undefined","debouncedColor","useDeferredValue","fields","name","nextColor","fieldPatches","filter","field","field_0","nextFieldValue","isObject","jsonType","set","Object","assign","_type","setIfMissing","useEffectEvent","raf","requestAnimationFrame","cancelAnimationFrame","handleCreateColor","nextColor_0","handleColorChange","unset","handleUnset","options","AddIcon","Boolean"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import * as sanity14 from "sanity";
1
+ import * as sanity8 from "sanity";
2
2
  import { ObjectDefinition, ObjectInputProps, ObjectOptions, ObjectSchemaType } from "sanity";
3
3
  import { Color, HSLColor, HSVColor, RGBColor } from "react-color";
4
- import * as react2 from "react";
4
+ import * as react0 from "react";
5
5
  interface ColorValue {
6
6
  hex: string;
7
7
  hsl: HSLColor;
@@ -33,32 +33,33 @@ declare const color: {
33
33
  type: "object";
34
34
  name: "color";
35
35
  } & Omit<ObjectDefinition, "preview"> & {
36
- preview?: sanity14.PreviewConfig<{
36
+ preview?: sanity8.PreviewConfig<{
37
37
  title: string;
38
38
  alpha: string;
39
39
  hex: string;
40
40
  hsl: string;
41
- }, Record<"alpha" | "hex" | "hsl" | "title", any>>;
41
+ }, Record<"alpha" | "hex" | "hsl" | "title", any>> | undefined;
42
42
  };
43
43
  declare const hslaColor: {
44
44
  type: "object";
45
45
  name: "hslaColor";
46
- } & Omit<sanity14.ObjectDefinition, "preview"> & {
47
- preview?: sanity14.PreviewConfig<Record<string, string>, Record<never, any>>;
46
+ } & Omit<sanity8.ObjectDefinition, "preview"> & {
47
+ preview?: sanity8.PreviewConfig<Record<string, string>, Record<never, any>> | undefined;
48
48
  };
49
49
  declare const hsvaColor: {
50
50
  type: "object";
51
51
  name: "hsvaColor";
52
- } & Omit<sanity14.ObjectDefinition, "preview"> & {
53
- preview?: sanity14.PreviewConfig<Record<string, string>, Record<never, any>>;
52
+ } & Omit<sanity8.ObjectDefinition, "preview"> & {
53
+ preview?: sanity8.PreviewConfig<Record<string, string>, Record<never, any>> | undefined;
54
54
  };
55
55
  declare const rgbaColor: {
56
56
  type: "object";
57
57
  name: "rgbaColor";
58
- } & Omit<sanity14.ObjectDefinition, "preview"> & {
59
- preview?: sanity14.PreviewConfig<Record<string, string>, Record<never, any>>;
58
+ } & Omit<sanity8.ObjectDefinition, "preview"> & {
59
+ preview?: sanity8.PreviewConfig<Record<string, string>, Record<never, any>> | undefined;
60
60
  };
61
- declare function ColorInput$1(props: ObjectInputProps): react2.JSX.Element;
62
- declare const ColorInput: react2.LazyExoticComponent<typeof ColorInput$1>;
63
- declare const colorInput: sanity14.Plugin<void>;
64
- export { type ColorDefinition, ColorInput, type ColorInputProps, type ColorOptions, type ColorSchemaType, type ColorValue, color, colorInput, hslaColor, hsvaColor, rgbaColor };
61
+ declare function ColorInput$1(props: ObjectInputProps): React.JSX.Element;
62
+ declare const ColorInput: react0.LazyExoticComponent<typeof ColorInput$1>;
63
+ declare const colorInput: sanity8.Plugin<void>;
64
+ export { type ColorDefinition, ColorInput, type ColorInputProps, type ColorOptions, type ColorSchemaType, type ColorValue, color, colorInput, hslaColor, hsvaColor, rgbaColor };
65
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":["Color","HSLColor","HSVColor","RGBColor","ObjectInputProps","ObjectOptions","ObjectSchemaType","ColorValue","ColorOptions","Array","Omit","ColorSchemaType","ColorInputProps","ObjectDefinition","ColorOptions","colorTypeName","ColorDefinition","Omit","_0","sideEffect","color","Record","sanity8","PreviewConfig","hslaColor","sanity9","ObjectDefinition","Omit","Record","PreviewConfig","hsvaColor","sanity11","ObjectDefinition","Omit","Record","PreviewConfig","rgbaColor","sanity13","ObjectDefinition","Omit","Record","PreviewConfig","ObjectInputProps","ColorInput","React","JSX","Element","default","react0","ColorInput","__ColorInput0","default","LazyExoticComponent","color","ColorDefinition","hslaColor","hsvaColor","rgbaColor","colorInput","sanity7","Plugin","ColorInput","ColorInputProps","ColorOptions","ColorSchemaType","ColorValue"],"sources":["../src/types.d.ts","../src/schemas/color.d.ts","../src/schemas/hslaColor.d.ts","../src/schemas/hsvaColor.d.ts","../src/schemas/rgbaColor.d.ts","../src/ColorInput.d.ts","../src/LazyColorInput.d.ts","../src/index.d.ts"],"sourcesContent":["import type { Color, HSLColor, HSVColor, RGBColor } from 'react-color';\nimport type { ObjectInputProps, ObjectOptions, ObjectSchemaType } from 'sanity';\nexport interface ColorValue {\n hex: string;\n hsl: HSLColor;\n hsv: HSVColor;\n rgb: RGBColor;\n}\nexport interface ColorOptions extends Omit<ObjectOptions, 'columns'> {\n disableAlpha?: boolean;\n colorList?: Array<Color>;\n}\nexport type ColorSchemaType = Omit<ObjectSchemaType, 'options'> & {\n options?: ColorOptions;\n};\nexport type ColorInputProps = ObjectInputProps<ColorValue, ColorSchemaType>;\n//# sourceMappingURL=types.d.ts.map","import { type ObjectDefinition } from 'sanity';\nimport { type ColorOptions } from '../types';\ndeclare const colorTypeName: \"color\";\n/**\n * @public\n */\nexport interface ColorDefinition extends Omit<ObjectDefinition, 'type' | 'fields' | 'options'> {\n type: typeof colorTypeName;\n options?: ColorOptions;\n}\ndeclare module 'sanity' {\n interface IntrinsicDefinitions {\n color: ColorDefinition;\n }\n}\nexport declare const color: {\n type: \"object\";\n name: \"color\";\n} & Omit<ObjectDefinition, \"preview\"> & {\n preview?: import(\"sanity\").PreviewConfig<{\n title: string;\n alpha: string;\n hex: string;\n hsl: string;\n }, Record<\"alpha\" | \"hex\" | \"hsl\" | \"title\", any>> | undefined;\n};\nexport {};\n//# sourceMappingURL=color.d.ts.map","export declare const hslaColor: {\n type: \"object\";\n name: \"hslaColor\";\n} & Omit<import(\"sanity\").ObjectDefinition, \"preview\"> & {\n preview?: import(\"sanity\").PreviewConfig<Record<string, string>, Record<never, any>> | undefined;\n};\n//# sourceMappingURL=hslaColor.d.ts.map","export declare const hsvaColor: {\n type: \"object\";\n name: \"hsvaColor\";\n} & Omit<import(\"sanity\").ObjectDefinition, \"preview\"> & {\n preview?: import(\"sanity\").PreviewConfig<Record<string, string>, Record<never, any>> | undefined;\n};\n//# sourceMappingURL=hsvaColor.d.ts.map","export declare const rgbaColor: {\n type: \"object\";\n name: \"rgbaColor\";\n} & Omit<import(\"sanity\").ObjectDefinition, \"preview\"> & {\n preview?: import(\"sanity\").PreviewConfig<Record<string, string>, Record<never, any>> | undefined;\n};\n//# sourceMappingURL=rgbaColor.d.ts.map","import { type ObjectInputProps } from 'sanity';\nexport default function ColorInput(props: ObjectInputProps): React.JSX.Element;\n//# sourceMappingURL=ColorInput.d.ts.map","export declare const ColorInput: import(\"react\").LazyExoticComponent<typeof import(\"./ColorInput\").default>;\n//# sourceMappingURL=LazyColorInput.d.ts.map","import { color, type ColorDefinition } from './schemas/color';\nimport { hslaColor } from './schemas/hslaColor';\nimport { hsvaColor } from './schemas/hsvaColor';\nimport { rgbaColor } from './schemas/rgbaColor';\nexport declare const colorInput: import(\"sanity\").Plugin<void>;\nexport { color, hslaColor, hsvaColor, rgbaColor };\nexport { ColorInput } from './LazyColorInput';\nexport type { ColorDefinition };\nexport type { ColorInputProps, ColorOptions, ColorSchemaType, ColorValue } from './types';\n//# sourceMappingURL=index.d.ts.map"],"mappings":";;;;UAEiBO,UAAAA;;OAERN;EAFQM,GAAAA,EAGRL,QAHkB;EAElBD,GAAAA,EAEAE,QAFAF;;AAEAE,UAEQK,YAAAA,SAAqBE,IAF7BP,CAEkCE,aAFlCF,EAAAA,SAAAA,CAAAA,CAAAA;EAAQ,YAAA,CAAA,EAAA,OAAA;EAEAK,SAAAA,CAAAA,EAEDC,KAFa,CAEPT,KAFO,CAAA;;AAEPA,KAEVW,eAAAA,GAAkBD,IAFRV,CAEaM,gBAFbN,EAAAA,SAAAA,CAAAA,GAAAA;EAANS,OAAAA,CAAAA,EAGFD,YAHEC;CAFsBC;AAAI,KAO9BE,eAAAA,GAAkBR,gBAPY,CAOKG,UAPL,EAOiBI,eAPjB,CAAA;cCN5BI;;;ADAd;AAESd,UCEQe,eAAAA,SAAwBC,IDFhChB,CCEqCY,gBDFrCZ,EAAAA,MAAAA,GAAAA,QAAAA,GAAAA,SAAAA,CAAAA,CAAAA;EACAC,IAAAA,EAAAA,OCEQa,aDFRb;EACAC,OAAAA,CAAAA,ECEKW,YDFLX;;AAET,eAAiBK,QAAY,CAAA;EAAcH,UAAAA,oBAAAA,CAAAA;IAErBL,KAAAA,ECEPgB,eDFOhB;EAANS;;AAF0B,cCOrBW,KDPqB,EAAA;EAI9BT,IAAAA,EAAAA,QAAAA;EAAuBL,IAAAA,EAAAA,OAAAA;CAALI,GCM1BO,IDN0BP,CCMrBG,gBDNqBH,EAAAA,SAAAA,CAAAA,GAAAA;EAChBF,OAAAA,CAAAA,ECWDc,OAAAA,CALkBC,aDNjBf,CAAAA;IAAY,KAAA,EAAA,MAAA;IAEdI,KAAAA,EAAAA,MAAAA;IAAmCL,GAAAA,EAAAA,MAAAA;IAAYI,GAAAA,EAAAA,MAAAA;EAA7BP,CAAAA,ECSvBiB,MDTuBjB,CAAAA,OAAAA,GAAAA,KAAAA,GAAAA,KAAAA,GAAAA,OAAAA,EAAAA,GAAAA,CAAAA,CAAAA,GAAAA,SAAAA;CAAgB;cEfzBoB;;;IAGjBG,KAEHF,OAAAA,CAFyBC,gBAAAA;YACiDD,OAAAA,CAA5CI,cAAcD,wBAAwBA;AFFrE,CAAA;cGFqBE;;;IAGjBG,KAEHF,OAAAA,CAFyBC,gBAAAA;YACiDD,OAAAA,CAA5CI,cAAcD,wBAAwBA;AHFrE,CAAA;cIFqBE;;;IAGjBG,KAEHF,OAAAA,CAFyBC,gBAAAA;YACiDD,OAAAA,CAA5CI,cAAcD,wBAAwBA;AJFrE,CAAA;iBKDwBG,YAAAA,QAAkBD,mBAAmBE,KAAAA,CAAMC,GAAAA,CAAIC;cCDlDG,YAAqFD,MAAAA,CAAzDI,2BAA0DF;cCItFQ,YAAyCC,OAAAA,CAAZC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanity/color-input",
3
- "version": "5.0.0",
3
+ "version": "5.0.2",
4
4
  "description": "Color input",
5
5
  "keywords": [
6
6
  "sanity",
@@ -24,10 +24,7 @@
24
24
  "author": "Sanity.io <hello@sanity.io>",
25
25
  "type": "module",
26
26
  "exports": {
27
- ".": {
28
- "source": "./src/index.ts",
29
- "default": "./dist/index.js"
30
- },
27
+ ".": "./dist/index.js",
31
28
  "./package.json": "./package.json"
32
29
  },
33
30
  "types": "./dist/index.d.ts",
@@ -43,20 +40,21 @@
43
40
  "use-effect-event": "^2.0.3"
44
41
  },
45
42
  "devDependencies": {
46
- "@sanity/pkg-utils": "^9.1.1",
47
- "@types/react": "^19.2.6",
43
+ "@sanity/pkg-utils": "^10.1.1",
44
+ "@types/react": "^19.2.7",
48
45
  "@types/react-color": "^2.17.12",
49
46
  "@types/tinycolor2": "^1.4.6",
50
- "@typescript/native-preview": "7.0.0-dev.20251121.1",
47
+ "@typescript/native-preview": "7.0.0-dev.20251202.1",
51
48
  "babel-plugin-react-compiler": "^1.0.0",
49
+ "babel-plugin-styled-components": "^2.1.4",
52
50
  "eslint": "^9.39.1",
53
- "react": "^19.2.0",
54
- "sanity": "^4.17.0",
51
+ "react": "^19.2.1",
52
+ "sanity": "^4.20.3",
55
53
  "styled-components": "^6.1.19",
56
54
  "typescript": "5.9.3",
57
- "@repo/eslint-config": "0.0.1",
55
+ "@repo/eslint-config": "0.0.4",
58
56
  "@repo/package.config": "0.0.0",
59
- "@repo/tsconfig": "0.0.0"
57
+ "@repo/tsconfig": "1.0.0"
60
58
  },
61
59
  "peerDependencies": {
62
60
  "react": "^18.3 || ^19",
@@ -66,9 +64,6 @@
66
64
  "engines": {
67
65
  "node": ">=20.19 <22 || >=22.12"
68
66
  },
69
- "publishConfig": {
70
- "access": "public"
71
- },
72
67
  "scripts": {
73
68
  "build": "pkg build --strict --check --clean",
74
69
  "lint": "eslint .",