@sanity/color-input 5.0.1 → 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.
|
@@ -10,25 +10,16 @@ import { styled } from "styled-components";
|
|
|
10
10
|
import { useEffectEvent } from "use-effect-event";
|
|
11
11
|
import tinycolor from "tinycolor2";
|
|
12
12
|
import { isValidHex } from "react-color/lib/helpers/color";
|
|
13
|
-
const ColorListWrap = styled(Flex)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
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 {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","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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"}
|
|
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":";;;;;;;;;;;;AAMA,MAAMA,gBAAgBC,OAAOC,IAAI,EAACC,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,gBAI5BC,oBAAoBL,OAAOM,IAAGJ,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,2TAW9BG,aAAWP,OAAOM,IAAGJ,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,sIAmBrBI,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,WAAWP,OAAOwF,GAAG,EAACtF,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,2DAQtBqF,oBAAoBzF,OAAOC,IAAI,EAACC,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,wFAgBhCsF,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;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -38,25 +38,25 @@ declare const color: {
|
|
|
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
46
|
} & Omit<sanity8.ObjectDefinition, "preview"> & {
|
|
47
|
-
preview?: sanity8.PreviewConfig<Record<string, string>, Record<never, any
|
|
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
52
|
} & Omit<sanity8.ObjectDefinition, "preview"> & {
|
|
53
|
-
preview?: sanity8.PreviewConfig<Record<string, string>, Record<never, any
|
|
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
58
|
} & Omit<sanity8.ObjectDefinition, "preview"> & {
|
|
59
|
-
preview?: sanity8.PreviewConfig<Record<string, string>, Record<never, any
|
|
59
|
+
preview?: sanity8.PreviewConfig<Record<string, string>, Record<never, any>> | undefined;
|
|
60
60
|
};
|
|
61
61
|
declare function ColorInput$1(props: ObjectInputProps): React.JSX.Element;
|
|
62
62
|
declare const ColorInput: react0.LazyExoticComponent<typeof ColorInput$1>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +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","
|
|
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.
|
|
3
|
+
"version": "5.0.2",
|
|
4
4
|
"description": "Color input",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sanity",
|
|
@@ -40,18 +40,19 @@
|
|
|
40
40
|
"use-effect-event": "^2.0.3"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@sanity/pkg-utils": "^10.
|
|
43
|
+
"@sanity/pkg-utils": "^10.1.1",
|
|
44
44
|
"@types/react": "^19.2.7",
|
|
45
45
|
"@types/react-color": "^2.17.12",
|
|
46
46
|
"@types/tinycolor2": "^1.4.6",
|
|
47
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
47
|
+
"@typescript/native-preview": "7.0.0-dev.20251202.1",
|
|
48
48
|
"babel-plugin-react-compiler": "^1.0.0",
|
|
49
|
+
"babel-plugin-styled-components": "^2.1.4",
|
|
49
50
|
"eslint": "^9.39.1",
|
|
50
|
-
"react": "^19.2.
|
|
51
|
-
"sanity": "^4.20.
|
|
51
|
+
"react": "^19.2.1",
|
|
52
|
+
"sanity": "^4.20.3",
|
|
52
53
|
"styled-components": "^6.1.19",
|
|
53
54
|
"typescript": "5.9.3",
|
|
54
|
-
"@repo/eslint-config": "0.0.
|
|
55
|
+
"@repo/eslint-config": "0.0.4",
|
|
55
56
|
"@repo/package.config": "0.0.0",
|
|
56
57
|
"@repo/tsconfig": "1.0.0"
|
|
57
58
|
},
|