@sanity/color-input 3.1.1 → 3.1.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.
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","../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","_ref","onChange","rgb","hsl","hex","disableAlpha","_a","sanity","useTheme","inputStyles","useMemo","input","width","padding","border","boxShadow","concat","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","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","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","_c","ColorListWrap","styled","__template","ColorBoxContainer","div","ColorBox","validateColors","colors","reduce","cls","ColorList","_ref2","wrap","map","_ref3","idx","onClick","background","ReadOnlyContainer","ColorPickerInner","props","onUnset","readOnly","Card","radius","jsxs","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","undefined","colorTypeName","components","preview","select","prepare","_ref4","subtitle","media","opacity","top","left","hsvaColor","colorInput","definePlugin","schema","types"],"mappings":"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","x_google_ignoreList":[3]}
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 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-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 {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)}{' '}\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\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","_ref","onChange","rgb","hsl","hex","disableAlpha","_a","sanity","useTheme","inputStyles","useMemo","input","width","padding","border","boxShadow","concat","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","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","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","_c","ColorListWrap","styled","__template","ColorBoxContainer","div","ColorBox","validateColors","colors","reduce","cls","ColorList","_ref2","wrap","map","_ref3","idx","onClick","background","ReadOnlyContainer","ColorPickerInner","props","onUnset","readOnly","Card","radius","jsxs","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","undefined","colorTypeName","components","preview","select","prepare","_ref4","subtitle","media","opacity","top","left","hsvaColor","colorInput","definePlugin","schema","types"],"mappings":"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","x_google_ignoreList":[3]}