@sanity/color-input 3.0.1 → 3.1.0
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.
- package/LICENSE +1 -1
- package/README.md +38 -9
- package/lib/{src/index.d.ts → index.d.ts} +2 -0
- package/lib/index.esm.js +1714 -1
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +1730 -1
- package/lib/index.js.map +1 -1
- package/package.json +31 -26
- package/src/ColorInput.tsx +3 -1
- package/src/ColorList.tsx +67 -0
- package/src/ColorPicker.tsx +8 -5
- package/src/ColorPickerFields.tsx +2 -2
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/schemas/hslaColor.ts","../src/schemas/rgbaColor.ts","../src/ColorPickerFields.tsx","../src/ColorPicker.tsx","../src/ColorInput.tsx","../src/schemas/color.tsx","../src/schemas/hsvaColor.ts","../src/index.ts"],"sourcesContent":["import {defineType} from 'sanity'\n\nexport const hslaColor = defineType({\n title: 'Hue Saturation Lightness',\n name: 'hslaColor',\n type: 'object',\n fields: [\n {name: 'h', type: 'number', title: 'Hue'},\n {name: 's', type: 'number', title: 'Saturation'},\n {name: 'l', type: 'number', title: 'Lightness'},\n {name: 'a', type: 'number', title: 'Alpha'},\n ],\n})\n","import {defineType} from 'sanity'\n\nexport const rgbaColor = defineType({\n title: 'Red Green Blue (rgb)',\n name: 'rgbaColor',\n type: 'object',\n fields: [\n {name: 'r', type: 'number', title: 'Red'},\n {name: 'g', type: 'number', title: 'Green'},\n {name: 'b', type: 'number', title: 'Blue'},\n {name: 'a', type: 'number', title: 'Alpha'},\n ],\n})\n","import React, {useCallback, useMemo} from 'react'\n// @ts-expect-error missing export\nimport {isValidHex} from 'react-color/lib/helpers/color'\nimport {EditableInput} from 'react-color/lib/components/common'\nimport {Box, Flex, useTheme} from '@sanity/ui'\nimport {ColorChangeHandler, HEXColor, HSLColor, HSVColor, RGBColor} from 'react-color'\nimport {EditableInputStyles} from 'react-color/lib/components/common/EditableInput'\n\ninterface ColorPickerFieldsProps {\n rgb?: RGBColor\n hsl?: HSLColor\n hex?: string\n disableAlpha: boolean\n onChange: ColorChangeHandler<HSLColor | HSVColor | RGBColor | HEXColor>\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 React from 'react'\nimport {Alpha, Checkboard, Hue, Saturation} from 'react-color/lib/components/common'\nimport {CustomPicker, HEXColor, HSLColor, HSVColor, RGBColor} from 'react-color'\nimport {Box, Button, Card, Flex, Inline, Stack, Text} from '@sanity/ui'\nimport {TrashIcon} from '@sanity/icons'\nimport styled from 'styled-components'\nimport {ColorPickerFields} from './ColorPickerFields'\nimport {CustomPickerInjectedProps} from 'react-color/lib/components/common/ColorWrap'\nimport {ColorValue} from './ColorInput'\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\nexport interface ColorPickerProps\n extends CustomPickerInjectedProps<HSLColor | HSVColor | RGBColor | HEXColor> {\n width?: string\n disableAlpha: boolean\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 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'}}\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'}}\n >\n <Checkboard />\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)} {Math.round(hsl?.s ?? 0)}%{' '}\n {Math.round(hsl?.l ?? 0)}\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 </Stack>\n </Card>\n </div>\n )\n}\n\nexport const ColorPicker = CustomPicker(ColorPickerInner)\n","import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {ObjectOptions, set, setIfMissing, unset} from 'sanity'\nimport {debounce} from 'lodash'\nimport {Button} from '@sanity/ui'\nimport {AddIcon} from '@sanity/icons'\nimport {ColorPicker} from './ColorPicker'\nimport {ObjectInputProps} from 'sanity'\nimport {HSLColor, HSVColor, RGBColor} from 'react-color'\nimport {ObjectSchemaType} from 'sanity'\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 interface ColorValue {\n hex: string\n hsl: HSLColor\n hsv: HSVColor\n rgb: RGBColor\n}\n\nexport interface ColorOptions extends Omit<ObjectOptions, 'columns'> {\n disableAlpha?: boolean\n}\n\nexport type ColorSchemaType = Omit<ObjectSchemaType, 'options'> & {\n options?: ColorOptions\n}\nexport type ColorInputProps = ObjectInputProps<ColorValue, ColorSchemaType>\n\nexport 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 useEffect(() => setColor(value), [value])\n\n const emitSetColor = useCallback(\n (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 [onChange, type]\n )\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 const debouncedColorChange = useMemo(() => debounce(emitSetColor, 100), [emitSetColor])\n const handleColorChange = useCallback(\n (nextColor: ColorValue) => {\n setColor(nextColor)\n debouncedColorChange(nextColor)\n },\n [debouncedColorChange, setColor]\n )\n\n const handleCreateColor = useCallback(() => {\n setColor(DEFAULT_COLOR)\n emitSetColor(DEFAULT_COLOR)\n }, [emitSetColor])\n\n const handleUnset = useCallback(() => {\n setColor(undefined)\n onChange(unset())\n }, [onChange])\n\n return (\n <>\n {value && value.hex ? (\n <ColorPicker\n /* ref={this.focusRef}*/\n color={color}\n onChange={handleColorChange}\n readOnly={readOnly || (typeof type.readOnly === 'boolean' && type.readOnly)}\n disableAlpha={!!type.options?.disableAlpha}\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","import React from 'react'\nimport {ColorInput, ColorOptions} from '../ColorInput'\nimport {defineType, ObjectDefinition} from 'sanity'\n\nconst round = (val: number = 1) => Math.round(val * 100)\n\nconst colorTypeName = 'color' as const\n\n/**\n * @public\n */\nexport interface ColorDefinition extends Omit<ObjectDefinition, 'type' | 'fields' | 'options'> {\n type: typeof colorTypeName\n options?: ColorOptions\n}\n\ndeclare module '@sanity/types' {\n // makes type: 'color' narrow correctly when using defineTyp/defineField/defineArrayMember\n export interface IntrinsicDefinitions {\n color: ColorDefinition\n }\n}\n\nexport const color = defineType({\n name: colorTypeName,\n type: 'object',\n title: 'Color',\n components: {input: ColorInput},\n fields: [\n {\n title: 'Hex',\n name: 'hex',\n type: 'string',\n },\n {\n title: 'Alpha',\n name: 'alpha',\n type: 'number',\n },\n {\n title: 'Hue Saturation Lightness',\n name: 'hsl',\n type: 'hslaColor',\n },\n {\n title: 'Hue Saturation Value',\n name: 'hsv',\n type: 'hsvaColor',\n },\n {\n title: 'Red Green Blue (rgb)',\n name: 'rgb',\n type: 'rgbaColor',\n },\n ],\n preview: {\n select: {\n title: 'hex',\n alpha: 'alpha',\n hex: 'hex',\n hsl: 'hsl',\n },\n prepare({\n title,\n hex,\n hsl,\n alpha,\n }: {\n title?: string\n alpha?: number\n hex?: string\n hsl?: {h: number; s: number; l: number}\n }) {\n let subtitle = hex || 'No color set'\n if (hsl) {\n subtitle = `H:${round(hsl.h)} S:${round(hsl.s)} L:${round(hsl.l)} A:${round(alpha)}`\n }\n return {\n title: title,\n subtitle: subtitle,\n media: () => (\n <div\n style={{\n backgroundColor: hex ?? '#000',\n opacity: alpha ?? 1,\n position: 'absolute',\n height: '100%',\n width: '100%',\n top: '0',\n left: '0',\n }}\n />\n ),\n }\n },\n },\n})\n","import {defineType} from 'sanity'\n\nexport const hsvaColor = defineType({\n title: 'Hue Saturation Value',\n name: 'hsvaColor',\n type: 'object',\n fields: [\n {name: 'h', type: 'number', title: 'Hue'},\n {name: 's', type: 'number', title: 'Saturation'},\n {name: 'v', type: 'number', title: 'Value'},\n {name: 'a', type: 'number', title: 'Alpha'},\n ],\n})\n","import {definePlugin} from 'sanity'\nimport {hslaColor} from './schemas/hslaColor'\nimport {rgbaColor} from './schemas/rgbaColor'\nimport {color, ColorDefinition} from './schemas/color'\nimport {hsvaColor} from './schemas/hsvaColor'\n\nexport const colorInput = definePlugin({\n name: '@sanity/color-input',\n schema: {\n types: [hslaColor, hsvaColor, rgbaColor, color],\n },\n})\n\nexport {hslaColor, rgbaColor, color, hsvaColor}\nexport {ColorInput} from './ColorInput'\nexport type {ColorDefinition}\nexport type {ColorValue, ColorInputProps, ColorOptions, ColorSchemaType} from './ColorInput'\n"],"names":["hslaColor","defineType","title","name","type","fields","rgbaColor","ColorPickerFields","_ref","onChange","rgb","hsl","hex","disableAlpha","_a","sanity","useTheme","inputStyles","useMemo","input","width","padding","border","boxShadow","color","default","enabled","fg","backgroundColor","bg","fontSize","fonts","text","sizes","textAlign","label","display","base","paddingTop","paddingBottom","textTransform","handleChange","useCallback","data","isValidHex","source","r","g","b","Number","a","alpha","h","s","l","jsxs","Flex","children","jsx","Box","flex","marginRight","EditableInput","style","value","replace","dragLabel","dragMax","Math","round","ColorBox","styled","_templateObject","_taggedTemplateLiteral","ReadOnlyContainer","_templateObject2","ColorPicker","CustomPicker","props","_b","_c","hsv","onUnset","readOnly","Card","radius","Stack","space","Fragment","overflow","position","height","Saturation","shadow","Hue","Alpha","minWidth","Checkboard","concat","sizing","justify","marginTop","Text","size","weight","Inline","align","marginLeft","Button","onClick","icon","TrashIcon","tone","DEFAULT_COLOR","v","ColorInput","schemaType","focusRef","useRef","setColor","useState","useEffect","emitSetColor","nextColor","fieldPatches","filter","field","map","nextFieldValue","isObject","jsonType","set","Object","assign","_type","setIfMissing","debouncedColorChange","debounce","handleColorChange","handleCreateColor","handleUnset","unset","options","AddIcon","mode","ref","disabled","Boolean","val","components","preview","select","prepare","_ref2","subtitle","media","opacity","top","left","hsvaColor","colorInput","definePlugin","schema","types"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/schemas/hslaColor.ts","../src/schemas/rgbaColor.ts","../src/ColorPickerFields.tsx","../node_modules/tinycolor2/esm/tinycolor.js","../src/ColorList.tsx","../src/ColorPicker.tsx","../src/ColorInput.tsx","../src/schemas/color.tsx","../src/schemas/hsvaColor.ts","../src/index.ts"],"sourcesContent":["import {defineType} from 'sanity'\n\nexport const hslaColor = defineType({\n title: 'Hue Saturation Lightness',\n name: 'hslaColor',\n type: 'object',\n fields: [\n {name: 'h', type: 'number', title: 'Hue'},\n {name: 's', type: 'number', title: 'Saturation'},\n {name: 'l', type: 'number', title: 'Lightness'},\n {name: 'a', type: 'number', title: 'Alpha'},\n ],\n})\n","import {defineType} from 'sanity'\n\nexport const rgbaColor = defineType({\n title: 'Red Green Blue (rgb)',\n name: 'rgbaColor',\n type: 'object',\n fields: [\n {name: 'r', type: 'number', title: 'Red'},\n {name: 'g', type: 'number', title: 'Green'},\n {name: 'b', type: 'number', title: 'Blue'},\n {name: 'a', type: 'number', title: 'Alpha'},\n ],\n})\n","import React, {useCallback, useMemo} from 'react'\n// @ts-expect-error missing export\nimport {isValidHex} from 'react-color/lib/helpers/color'\nimport {EditableInput} from 'react-color/lib/components/common'\nimport {Box, Flex, useTheme} from '@sanity/ui'\nimport {Color, ColorChangeHandler, HSLColor, RGBColor} from 'react-color'\nimport {EditableInputStyles} from 'react-color/lib/components/common/EditableInput'\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","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n if (_typeof(color) == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n}\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// <http://www.w3.org/TR/css3-color/>\n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n};\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\nfunction _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\nfunction _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n}\nfunction _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\nfunction _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba);\n};\n\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n\n// `contrast`\n// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\ntinycolor.readability = function (color1, color2) {\n var c1 = tinycolor(color1);\n var c2 = tinycolor(color2);\n return (Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) / (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05);\n};\n\n// `isReadable`\n// Ensure that foreground and background color combinations meet WCAG2 guidelines.\n// The third argument is an optional Object.\n// the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n// the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n// If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n\n// *Example*\n// tinycolor.isReadable(\"#000\", \"#111\") => false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n};\n\n// Big List of Colors\n// ------------------\n// <https://www.w3.org/TR/css-color-4/#named-colors>\nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\nvar matchers = function () {\n // <http://www.w3.org/TR/css3-values/#integers>\n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // <http://www.w3.org/TR/css3-values/#number-value>\n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n}();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n return false;\n}\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","import React from 'react'\nimport {Flex} from '@sanity/ui'\nimport styled from 'styled-components'\nimport {Color, ColorChangeHandler} from 'react-color'\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=') left center #fff;\n`\n\nconst ColorBox = styled.div`\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-ignore\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 const ColorList = ({colors, onChange}: ColorListProps) => {\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 React from 'react'\nimport {Alpha, Checkboard, Hue, Saturation} from 'react-color/lib/components/common'\nimport {Color, CustomPicker} from 'react-color'\nimport {Box, Button, Card, Flex, Inline, Stack, Text} from '@sanity/ui'\nimport {TrashIcon} from '@sanity/icons'\nimport styled from 'styled-components'\nimport {ColorPickerFields} from './ColorPickerFields'\nimport {CustomPickerInjectedProps} from 'react-color/lib/components/common/ColorWrap'\nimport {ColorValue} from './ColorInput'\nimport {ColorList} from './ColorList'\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\nexport interface ColorPickerProps extends CustomPickerInjectedProps<Color> {\n width?: string\n disableAlpha: boolean\n colorList?: Array<Color>\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 <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)} {Math.round(hsl?.s ?? 0)}%{' '}\n {Math.round(hsl?.l ?? 0)}\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\nexport const ColorPicker = CustomPicker(ColorPickerInner)\n","import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {ObjectOptions, set, setIfMissing, unset} from 'sanity'\nimport {debounce} from 'lodash'\nimport {Button} from '@sanity/ui'\nimport {AddIcon} from '@sanity/icons'\nimport {ColorPicker} from './ColorPicker'\nimport {ObjectInputProps} from 'sanity'\nimport {Color, HSLColor, HSVColor, RGBColor} from 'react-color'\nimport {ObjectSchemaType} from 'sanity'\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 interface ColorValue {\n hex: string\n hsl: HSLColor\n hsv: HSVColor\n rgb: RGBColor\n}\n\nexport interface ColorOptions extends Omit<ObjectOptions, 'columns'> {\n disableAlpha?: boolean\n colorList?: Array<Color>\n}\n\nexport type ColorSchemaType = Omit<ObjectSchemaType, 'options'> & {\n options?: ColorOptions\n}\nexport type ColorInputProps = ObjectInputProps<ColorValue, ColorSchemaType>\n\nexport 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 useEffect(() => setColor(value), [value])\n\n const emitSetColor = useCallback(\n (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 [onChange, type]\n )\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 const debouncedColorChange = useMemo(() => debounce(emitSetColor, 100), [emitSetColor])\n const handleColorChange = useCallback(\n (nextColor: ColorValue) => {\n setColor(nextColor)\n debouncedColorChange(nextColor)\n },\n [debouncedColorChange, setColor]\n )\n\n const handleCreateColor = useCallback(() => {\n setColor(DEFAULT_COLOR)\n emitSetColor(DEFAULT_COLOR)\n }, [emitSetColor])\n\n const handleUnset = useCallback(() => {\n setColor(undefined)\n onChange(unset())\n }, [onChange])\n\n return (\n <>\n {value && value.hex ? (\n <ColorPicker\n /* ref={this.focusRef}*/\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","import React from 'react'\nimport {ColorInput, ColorOptions} from '../ColorInput'\nimport {defineType, ObjectDefinition} from 'sanity'\n\nconst round = (val: number = 1) => Math.round(val * 100)\n\nconst colorTypeName = 'color' as const\n\n/**\n * @public\n */\nexport interface ColorDefinition extends Omit<ObjectDefinition, 'type' | 'fields' | 'options'> {\n type: typeof colorTypeName\n options?: ColorOptions\n}\n\ndeclare module '@sanity/types' {\n // makes type: 'color' narrow correctly when using defineTyp/defineField/defineArrayMember\n export interface IntrinsicDefinitions {\n color: ColorDefinition\n }\n}\n\nexport const color = defineType({\n name: colorTypeName,\n type: 'object',\n title: 'Color',\n components: {input: ColorInput},\n fields: [\n {\n title: 'Hex',\n name: 'hex',\n type: 'string',\n },\n {\n title: 'Alpha',\n name: 'alpha',\n type: 'number',\n },\n {\n title: 'Hue Saturation Lightness',\n name: 'hsl',\n type: 'hslaColor',\n },\n {\n title: 'Hue Saturation Value',\n name: 'hsv',\n type: 'hsvaColor',\n },\n {\n title: 'Red Green Blue (rgb)',\n name: 'rgb',\n type: 'rgbaColor',\n },\n ],\n preview: {\n select: {\n title: 'hex',\n alpha: 'alpha',\n hex: 'hex',\n hsl: 'hsl',\n },\n prepare({\n title,\n hex,\n hsl,\n alpha,\n }: {\n title?: string\n alpha?: number\n hex?: string\n hsl?: {h: number; s: number; l: number}\n }) {\n let subtitle = hex || 'No color set'\n if (hsl) {\n subtitle = `H:${round(hsl.h)} S:${round(hsl.s)} L:${round(hsl.l)} A:${round(alpha)}`\n }\n return {\n title: title,\n subtitle: subtitle,\n media: () => (\n <div\n style={{\n backgroundColor: hex ?? '#000',\n opacity: alpha ?? 1,\n position: 'absolute',\n height: '100%',\n width: '100%',\n top: '0',\n left: '0',\n }}\n />\n ),\n }\n },\n },\n})\n","import {defineType} from 'sanity'\n\nexport const hsvaColor = defineType({\n title: 'Hue Saturation Value',\n name: 'hsvaColor',\n type: 'object',\n fields: [\n {name: 'h', type: 'number', title: 'Hue'},\n {name: 's', type: 'number', title: 'Saturation'},\n {name: 'v', type: 'number', title: 'Value'},\n {name: 'a', type: 'number', title: 'Alpha'},\n ],\n})\n","import {definePlugin} from 'sanity'\nimport {hslaColor} from './schemas/hslaColor'\nimport {rgbaColor} from './schemas/rgbaColor'\nimport {color, ColorDefinition} from './schemas/color'\nimport {hsvaColor} from './schemas/hsvaColor'\n\nexport const colorInput = definePlugin({\n name: '@sanity/color-input',\n schema: {\n types: [hslaColor, hsvaColor, rgbaColor, color],\n },\n})\n\nexport {hslaColor, rgbaColor, color, hsvaColor}\nexport {ColorInput} from './ColorInput'\nexport type {ColorDefinition}\nexport type {ColorValue, ColorInputProps, ColorOptions, ColorSchemaType} from './ColorInput'\n"],"names":["hslaColor","defineType","title","name","type","fields","rgbaColor","ColorPickerFields","onChange","rgb","hsl","hex","disableAlpha","_a","sanity","useTheme","inputStyles","useMemo","input","width","padding","border","boxShadow","color","default","enabled","fg","backgroundColor","bg","fontSize","fonts","text","sizes","textAlign","label","display","base","paddingTop","paddingBottom","textTransform","handleChange","useCallback","data","isValidHex","source","r","g","b","Number","a","alpha","h","s","l","jsxs","Flex","children","jsx","Box","flex","marginRight","EditableInput","style","value","replace","dragLabel","dragMax","Math","round","_typeof","obj","Symbol","iterator","constructor","prototype","trimLeft","trimRight","tinycolor","opts","inputToRGB","_originalInput","_r","_g","_b","_roundA","_format","format","_gradientType","gradientType","_ok","ok","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","R","G","B","pow","setAlpha","boundAlpha","toHsv","hsv","rgbToHsv","v","toHsvString","toHsl","rgbToHsl","toHslString","toHex","allow3Char","rgbToHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","bound01","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","rgbaToArgbHex","secondHex8String","toString","formatSet","formattedString","hasAlpha","needsAlphaFormat","clone","_applyModification","fn","args","apply","concat","slice","call","lighten","_lighten","arguments","brighten","_brighten","darken","_darken","desaturate","_desaturate","saturate","_saturate","greyscale","_greyscale","spin","_spin","_applyCombination","analogous","_analogous","complement","_complement","monochromatic","_monochromatic","splitcomplement","_splitcomplement","triad","polyad","tetrad","fromRatio","newColor","i","hasOwnProperty","convertToPercentage","stringInputToObject","isValidCSSUnit","rgbToRgb","String","substr","hsvToRgb","hslToRgb","min","max","d","hue2rgb","p","q","t","floor","f","mod","pad2","charAt","join","convertDecimalToHex","equals","color1","color2","random","amount","clamp01","hue","number","isNaN","Error","result","step","push","results","slices","part","ret","modification","mix","rgb1","rgb2","rgba","readability","c1","c2","isReadable","wcag2","wcag2Parms","out","validateWCAG2Parms","level","size","mostReadable","baseColor","colorList","bestColor","bestScore","includeFallbackColors","length","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flip","o","flipped","parseFloat","n","isOnePointZero","processPercent","isPercentage","parseInt","abs","val","parseIntFromHex","indexOf","c","convertHexToDecimal","matchers","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","RegExp","hsla","hsva","hex3","hex6","hex4","hex8","exec","toLowerCase","named","match","parms","toUpperCase","ColorListWrap","styled","ColorBoxContainer","div","ColorBox","validateColors","colors","reduce","cls","ColorList","wrap","map","idx","onClick","background","ReadOnlyContainer","ColorPickerInner","props","_c","onUnset","readOnly","Card","radius","Stack","space","Fragment","overflow","position","height","Saturation","shadow","Hue","Alpha","minWidth","Checkboard","sizing","justify","marginTop","Text","weight","Inline","align","marginLeft","Button","icon","TrashIcon","tone","ColorPicker","CustomPicker","DEFAULT_COLOR","ColorInput","schemaType","focusRef","useRef","setColor","useState","useEffect","emitSetColor","nextColor","fieldPatches","filter","field","nextFieldValue","isObject","jsonType","set","Object","assign","_type","setIfMissing","debouncedColorChange","debounce","handleColorChange","handleCreateColor","handleUnset","unset","options","AddIcon","mode","ref","disabled","Boolean","colorTypeName","components","preview","select","prepare","subtitle","media","opacity","top","left","hsvaColor","colorInput","definePlugin","schema","types"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sanity/color-input",
|
|
3
|
-
"version": "3.0
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "Color input",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sanity",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"author": "Sanity.io <hello@sanity.io>",
|
|
24
24
|
"exports": {
|
|
25
25
|
".": {
|
|
26
|
-
"types": "./lib/
|
|
26
|
+
"types": "./lib/index.d.ts",
|
|
27
27
|
"source": "./src/index.ts",
|
|
28
28
|
"import": "./lib/index.esm.js",
|
|
29
29
|
"require": "./lib/index.js",
|
|
@@ -34,24 +34,24 @@
|
|
|
34
34
|
"main": "./lib/index.js",
|
|
35
35
|
"module": "./lib/index.esm.js",
|
|
36
36
|
"source": "./src/index.ts",
|
|
37
|
-
"types": "./lib/
|
|
37
|
+
"types": "./lib/index.d.ts",
|
|
38
38
|
"files": [
|
|
39
|
-
"src",
|
|
40
39
|
"lib",
|
|
41
|
-
"
|
|
42
|
-
"
|
|
40
|
+
"sanity.json",
|
|
41
|
+
"src",
|
|
42
|
+
"v2-incompatible.js"
|
|
43
43
|
],
|
|
44
44
|
"scripts": {
|
|
45
45
|
"prebuild": "npm run clean && plugin-kit verify-package --silent && pkg-utils",
|
|
46
|
-
"build": "pkg-utils build --strict",
|
|
46
|
+
"build": "run-s clean && plugin-kit verify-package --silent && pkg-utils build --strict && pkg-utils --strict",
|
|
47
47
|
"clean": "rimraf lib",
|
|
48
48
|
"compile": "tsc --noEmit",
|
|
49
|
-
"format": "prettier
|
|
49
|
+
"format": "prettier --write --cache --ignore-unknown .",
|
|
50
50
|
"link-watch": "plugin-kit link-watch",
|
|
51
51
|
"lint": "eslint .",
|
|
52
52
|
"prepare": "husky install",
|
|
53
|
-
"prepublishOnly": "
|
|
54
|
-
"watch": "pkg-utils watch"
|
|
53
|
+
"prepublishOnly": "run-s build",
|
|
54
|
+
"watch": "pkg-utils watch --strict"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"@sanity/icons": "^2.0.0",
|
|
@@ -63,34 +63,39 @@
|
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@commitlint/cli": "^17.2.0",
|
|
65
65
|
"@commitlint/config-conventional": "^17.2.0",
|
|
66
|
-
"@sanity/pkg-utils": "^1.
|
|
67
|
-
"@sanity/plugin-kit": "^
|
|
68
|
-
"@sanity/semantic-release-preset": "^
|
|
66
|
+
"@sanity/pkg-utils": "^2.1.0",
|
|
67
|
+
"@sanity/plugin-kit": "^3.1.1",
|
|
68
|
+
"@sanity/semantic-release-preset": "^4.0.0",
|
|
69
|
+
"@types/react": "^18.0.26",
|
|
69
70
|
"@types/react-color": "^2.17.6",
|
|
70
71
|
"@types/styled-components": "^5.1.25",
|
|
71
|
-
"@
|
|
72
|
-
"@typescript-eslint/
|
|
73
|
-
"eslint": "^
|
|
74
|
-
"eslint
|
|
72
|
+
"@types/tinycolor2": "^1.4.3",
|
|
73
|
+
"@typescript-eslint/eslint-plugin": "^5.48.0",
|
|
74
|
+
"@typescript-eslint/parser": "^5.48.0",
|
|
75
|
+
"eslint": "^8.31.0",
|
|
76
|
+
"eslint-config-prettier": "^8.6.0",
|
|
75
77
|
"eslint-config-sanity": "^6.0.0",
|
|
76
78
|
"eslint-plugin-prettier": "^4.2.1",
|
|
77
|
-
"eslint-plugin-react": "^7.31.
|
|
79
|
+
"eslint-plugin-react": "^7.31.11",
|
|
78
80
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
79
81
|
"husky": "^8.0.1",
|
|
80
82
|
"lint-staged": "^13.0.3",
|
|
81
|
-
"
|
|
83
|
+
"npm-run-all": "^4.1.5",
|
|
84
|
+
"prettier": "^2.8.1",
|
|
82
85
|
"prettier-plugin-packagejson": "^2.3.0",
|
|
83
|
-
"react": "^18",
|
|
86
|
+
"react": "^18.2.0",
|
|
87
|
+
"react-dom": "^18.2.0",
|
|
88
|
+
"react-is": "^18.2.0",
|
|
84
89
|
"rimraf": "^3.0.2",
|
|
85
|
-
"sanity": "^3.
|
|
86
|
-
"semantic-release": "^
|
|
87
|
-
"styled-components": "^5.
|
|
88
|
-
"typescript": "^4.
|
|
90
|
+
"sanity": "^3.1.4",
|
|
91
|
+
"semantic-release": "^21.0.0",
|
|
92
|
+
"styled-components": "^5.3.6",
|
|
93
|
+
"typescript": "^4.9.4"
|
|
89
94
|
},
|
|
90
95
|
"peerDependencies": {
|
|
91
96
|
"react": "^18",
|
|
92
|
-
"sanity": "^3
|
|
93
|
-
"styled-components": "^5.2
|
|
97
|
+
"sanity": "^3",
|
|
98
|
+
"styled-components": "^5.2"
|
|
94
99
|
},
|
|
95
100
|
"engines": {
|
|
96
101
|
"node": ">=14"
|
package/src/ColorInput.tsx
CHANGED
|
@@ -5,7 +5,7 @@ import {Button} from '@sanity/ui'
|
|
|
5
5
|
import {AddIcon} from '@sanity/icons'
|
|
6
6
|
import {ColorPicker} from './ColorPicker'
|
|
7
7
|
import {ObjectInputProps} from 'sanity'
|
|
8
|
-
import {HSLColor, HSVColor, RGBColor} from 'react-color'
|
|
8
|
+
import {Color, HSLColor, HSVColor, RGBColor} from 'react-color'
|
|
9
9
|
import {ObjectSchemaType} from 'sanity'
|
|
10
10
|
|
|
11
11
|
const DEFAULT_COLOR: ColorValue & {source: string} = {
|
|
@@ -25,6 +25,7 @@ export interface ColorValue {
|
|
|
25
25
|
|
|
26
26
|
export interface ColorOptions extends Omit<ObjectOptions, 'columns'> {
|
|
27
27
|
disableAlpha?: boolean
|
|
28
|
+
colorList?: Array<Color>
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
export type ColorSchemaType = Omit<ObjectSchemaType, 'options'> & {
|
|
@@ -95,6 +96,7 @@ export function ColorInput(props: ObjectInputProps) {
|
|
|
95
96
|
onChange={handleColorChange}
|
|
96
97
|
readOnly={readOnly || (typeof type.readOnly === 'boolean' && type.readOnly)}
|
|
97
98
|
disableAlpha={!!type.options?.disableAlpha}
|
|
99
|
+
colorList={type.options?.colorList}
|
|
98
100
|
onUnset={handleUnset}
|
|
99
101
|
/>
|
|
100
102
|
) : (
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import {Flex} from '@sanity/ui'
|
|
3
|
+
import styled from 'styled-components'
|
|
4
|
+
import {Color, ColorChangeHandler} from 'react-color'
|
|
5
|
+
import tinycolor from 'tinycolor2'
|
|
6
|
+
|
|
7
|
+
const ColorListWrap = styled(Flex)`
|
|
8
|
+
gap: 0.25em;
|
|
9
|
+
`
|
|
10
|
+
|
|
11
|
+
const ColorBoxContainer = styled.div`
|
|
12
|
+
width: 2.1em;
|
|
13
|
+
height: 2.1em;
|
|
14
|
+
cursor: pointer;
|
|
15
|
+
position: relative;
|
|
16
|
+
overflow: hidden;
|
|
17
|
+
border-radius: 3px;
|
|
18
|
+
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAADFJREFUOE9jZGBgEGHAD97gk2YcNYBhmIQBgWSAP52AwoAQwJvQRg1gACckQoC2gQgAIF8IscwEtKYAAAAASUVORK5CYII=') left center #fff;
|
|
19
|
+
`
|
|
20
|
+
|
|
21
|
+
const ColorBox = styled.div`
|
|
22
|
+
content: '';
|
|
23
|
+
position: absolute;
|
|
24
|
+
inset: 0;
|
|
25
|
+
z-index: 1;
|
|
26
|
+
`
|
|
27
|
+
|
|
28
|
+
interface ValidatedColor {
|
|
29
|
+
color: Color
|
|
30
|
+
backgroundColor: string
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
interface ColorListProps {
|
|
34
|
+
colors?: Array<Color>
|
|
35
|
+
onChange: ColorChangeHandler<Color>
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const validateColors = (colors: Array<Color>) =>
|
|
39
|
+
colors.reduce((cls: Array<ValidatedColor>, c) => {
|
|
40
|
+
// @ts-ignore
|
|
41
|
+
const color = c.hex ? tinycolor(c.hex) : tinycolor(c)
|
|
42
|
+
if (color.isValid()) {
|
|
43
|
+
cls.push({
|
|
44
|
+
color: c,
|
|
45
|
+
backgroundColor: color.toRgbString(),
|
|
46
|
+
})
|
|
47
|
+
}
|
|
48
|
+
return cls
|
|
49
|
+
}, [])
|
|
50
|
+
|
|
51
|
+
export const ColorList = ({colors, onChange}: ColorListProps) => {
|
|
52
|
+
if (!colors) return null
|
|
53
|
+
return (
|
|
54
|
+
<ColorListWrap wrap="wrap">
|
|
55
|
+
{validateColors(colors).map(({color, backgroundColor}, idx) => (
|
|
56
|
+
<ColorBoxContainer
|
|
57
|
+
key={`${backgroundColor}-${idx}`}
|
|
58
|
+
onClick={() => {
|
|
59
|
+
onChange(color)
|
|
60
|
+
}}
|
|
61
|
+
>
|
|
62
|
+
<ColorBox style={{background: backgroundColor}} />
|
|
63
|
+
</ColorBoxContainer>
|
|
64
|
+
))}
|
|
65
|
+
</ColorListWrap>
|
|
66
|
+
)
|
|
67
|
+
}
|