{"version":3,"file":"ep-number-badge-BMsSV0dm.js","sources":["../../../node_modules/chroma-js/src/utils/limit.js","../../../node_modules/chroma-js/src/utils/clip_rgb.js","../../../node_modules/chroma-js/src/utils/type.js","../../../node_modules/chroma-js/src/utils/unpack.js","../../../node_modules/chroma-js/src/utils/last.js","../../../node_modules/chroma-js/src/utils/index.js","../../../node_modules/chroma-js/src/io/input.js","../../../node_modules/chroma-js/src/Color.js","../../../node_modules/chroma-js/src/version.js","../../../node_modules/chroma-js/src/chroma.js","../../../node_modules/chroma-js/src/io/cmyk/cmyk2rgb.js","../../../node_modules/chroma-js/src/io/cmyk/rgb2cmyk.js","../../../node_modules/chroma-js/src/io/cmyk/index.js","../../../node_modules/chroma-js/src/io/css/hsl2css.js","../../../node_modules/chroma-js/src/io/hsl/rgb2hsl.js","../../../node_modules/chroma-js/src/io/css/rgb2css.js","../../../node_modules/chroma-js/src/io/hsl/hsl2rgb.js","../../../node_modules/chroma-js/src/io/css/css2rgb.js","../../../node_modules/chroma-js/src/io/css/index.js","../../../node_modules/chroma-js/src/io/gl/index.js","../../../node_modules/chroma-js/src/io/hcg/hcg2rgb.js","../../../node_modules/chroma-js/src/io/hcg/rgb2hcg.js","../../../node_modules/chroma-js/src/io/hcg/index.js","../../../node_modules/chroma-js/src/io/hex/hex2rgb.js","../../../node_modules/chroma-js/src/io/hex/rgb2hex.js","../../../node_modules/chroma-js/src/io/hex/index.js","../../../node_modules/chroma-js/src/io/hsi/hsi2rgb.js","../../../node_modules/chroma-js/src/io/hsi/rgb2hsi.js","../../../node_modules/chroma-js/src/io/hsi/index.js","../../../node_modules/chroma-js/src/io/hsl/index.js","../../../node_modules/chroma-js/src/io/hsv/hsv2rgb.js","../../../node_modules/chroma-js/src/io/hsv/rgb2hsv.js","../../../node_modules/chroma-js/src/io/hsv/index.js","../../../node_modules/chroma-js/src/io/lab/lab-constants.js","../../../node_modules/chroma-js/src/io/lab/lab2rgb.js","../../../node_modules/chroma-js/src/io/lab/rgb2lab.js","../../../node_modules/chroma-js/src/io/lab/index.js","../../../node_modules/chroma-js/src/io/lch/lch2lab.js","../../../node_modules/chroma-js/src/io/lch/lch2rgb.js","../../../node_modules/chroma-js/src/io/lch/hcl2rgb.js","../../../node_modules/chroma-js/src/io/lch/lab2lch.js","../../../node_modules/chroma-js/src/io/lch/rgb2lch.js","../../../node_modules/chroma-js/src/io/lch/index.js","../../../node_modules/chroma-js/src/colors/w3cx11.js","../../../node_modules/chroma-js/src/io/named/index.js","../../../node_modules/chroma-js/src/io/num/num2rgb.js","../../../node_modules/chroma-js/src/io/num/rgb2num.js","../../../node_modules/chroma-js/src/io/num/index.js","../../../node_modules/chroma-js/src/io/rgb/index.js","../../../node_modules/chroma-js/src/io/temp/temperature2rgb.js","../../../node_modules/chroma-js/src/io/temp/rgb2temperature.js","../../../node_modules/chroma-js/src/io/temp/index.js","../../../node_modules/chroma-js/src/io/oklab/oklab2rgb.js","../../../node_modules/chroma-js/src/io/oklab/rgb2oklab.js","../../../node_modules/chroma-js/src/io/oklab/index.js","../../../node_modules/chroma-js/src/io/oklch/oklch2rgb.js","../../../node_modules/chroma-js/src/io/oklch/rgb2oklch.js","../../../node_modules/chroma-js/src/io/oklch/index.js","../../../node_modules/chroma-js/src/ops/alpha.js","../../../node_modules/chroma-js/src/ops/clipped.js","../../../node_modules/chroma-js/src/ops/darken.js","../../../node_modules/chroma-js/src/ops/get.js","../../../node_modules/chroma-js/src/ops/luminance.js","../../../node_modules/chroma-js/src/interpolator/index.js","../../../node_modules/chroma-js/src/generator/mix.js","../../../node_modules/chroma-js/src/ops/mix.js","../../../node_modules/chroma-js/src/ops/premultiply.js","../../../node_modules/chroma-js/src/ops/saturate.js","../../../node_modules/chroma-js/src/ops/set.js","../../../node_modules/chroma-js/src/ops/shade.js","../../../node_modules/chroma-js/src/interpolator/rgb.js","../../../node_modules/chroma-js/src/interpolator/lrgb.js","../../../node_modules/chroma-js/src/interpolator/lab.js","../../../node_modules/chroma-js/src/interpolator/_hsx.js","../../../node_modules/chroma-js/src/interpolator/lch.js","../../../node_modules/chroma-js/src/interpolator/num.js","../../../node_modules/chroma-js/src/interpolator/hcg.js","../../../node_modules/chroma-js/src/interpolator/hsi.js","../../../node_modules/chroma-js/src/interpolator/hsl.js","../../../node_modules/chroma-js/src/interpolator/hsv.js","../../../node_modules/chroma-js/src/interpolator/oklab.js","../../../node_modules/chroma-js/src/interpolator/oklch.js","../../../node_modules/chroma-js/src/generator/average.js","../../../node_modules/chroma-js/src/generator/scale.js","../../../node_modules/chroma-js/src/generator/bezier.js","../../../node_modules/chroma-js/src/generator/blend.js","../../../node_modules/chroma-js/src/generator/cubehelix.js","../../../node_modules/chroma-js/src/generator/random.js","../../../node_modules/chroma-js/src/utils/analyze.js","../../../node_modules/chroma-js/src/utils/contrast.js","../../../node_modules/chroma-js/src/utils/delta-e.js","../../../node_modules/chroma-js/src/utils/distance.js","../../../node_modules/chroma-js/src/utils/valid.js","../../../node_modules/chroma-js/src/utils/scales.js","../../../node_modules/chroma-js/src/colors/colorbrewer.js","../../../node_modules/chroma-js/index.js","../../../node_modules/@lit-labs/observers/mutation-controller.js","../../../node_modules/colors-named/lib/index.js","../src/functions/resolve_css_color.ts","../src/components/ep-number-badge.ts"],"sourcesContent":["import { min, max } from './index.js';\n\nexport default (x, low = 0, high = 1) => {\n return min(max(low, x), high);\n};\n","import limit from './limit.js';\n\nexport default (rgb) => {\n rgb._clipped = false;\n rgb._unclipped = rgb.slice(0);\n for (let i = 0; i <= 3; i++) {\n if (i < 3) {\n if (rgb[i] < 0 || rgb[i] > 255) rgb._clipped = true;\n rgb[i] = limit(rgb[i], 0, 255);\n } else if (i === 3) {\n rgb[i] = limit(rgb[i], 0, 1);\n }\n }\n return rgb;\n};\n","// ported from jQuery's $.type\nconst classToType = {};\nfor (let name of [\n 'Boolean',\n 'Number',\n 'String',\n 'Function',\n 'Array',\n 'Date',\n 'RegExp',\n 'Undefined',\n 'Null'\n]) {\n classToType[`[object ${name}]`] = name.toLowerCase();\n}\nexport default function (obj) {\n return classToType[Object.prototype.toString.call(obj)] || 'object';\n}\n","import type from './type.js';\n\nexport default (args, keyOrder = null) => {\n // if called with more than 3 arguments, we return the arguments\n if (args.length >= 3) return Array.prototype.slice.call(args);\n // with less than 3 args we check if first arg is object\n // and use the keyOrder string to extract and sort properties\n if (type(args[0]) == 'object' && keyOrder) {\n return keyOrder\n .split('')\n .filter((k) => args[0][k] !== undefined)\n .map((k) => args[0][k]);\n }\n // otherwise we just return the first argument\n // (which we suppose is an array of args)\n return args[0];\n};\n","import type from './type.js';\n\nexport default (args) => {\n if (args.length < 2) return null;\n const l = args.length - 1;\n if (type(args[l]) == 'string') return args[l].toLowerCase();\n return null;\n};\n","const { PI, min, max } = Math;\n\nexport { default as clip_rgb } from './clip_rgb.js';\nexport { default as limit } from './limit.js';\nexport { default as type } from './type.js';\nexport { default as unpack } from './unpack.js';\nexport { default as last } from './last.js';\n\nconst TWOPI = PI * 2;\nconst PITHIRD = PI / 3;\nconst DEG2RAD = PI / 180;\nconst RAD2DEG = 180 / PI;\n\nexport { PI, TWOPI, PITHIRD, DEG2RAD, RAD2DEG, min, max };\n","export default {\n format: {},\n autodetect: []\n};\n","import { last, clip_rgb, type } from './utils/index.js';\nimport _input from './io/input.js';\n\nclass Color {\n constructor(...args) {\n const me = this;\n if (\n type(args[0]) === 'object' &&\n args[0].constructor &&\n args[0].constructor === this.constructor\n ) {\n // the argument is already a Color instance\n return args[0];\n }\n // last argument could be the mode\n let mode = last(args);\n let autodetect = false;\n if (!mode) {\n autodetect = true;\n if (!_input.sorted) {\n _input.autodetect = _input.autodetect.sort((a, b) => b.p - a.p);\n _input.sorted = true;\n }\n // auto-detect format\n for (let chk of _input.autodetect) {\n mode = chk.test(...args);\n if (mode) break;\n }\n }\n if (_input.format[mode]) {\n const rgb = _input.format[mode].apply(\n null,\n autodetect ? args : args.slice(0, -1)\n );\n me._rgb = clip_rgb(rgb);\n } else {\n throw new Error('unknown format: ' + args);\n }\n // add alpha channel\n if (me._rgb.length === 3) me._rgb.push(1);\n }\n toString() {\n if (type(this.hex) == 'function') return this.hex();\n return `[${this._rgb.join(',')}]`;\n }\n}\nexport default Color;\n","// this gets updated automatically\nexport const version = '2.6.0';\n","import Color from './Color.js';\nimport { version } from './version.js';\n\nconst chroma = (...args) => {\n return new chroma.Color(...args);\n};\n\nchroma.Color = Color;\nchroma.version = version;\n\nexport default chroma;\n","import { unpack } from '../../utils/index.js';\n\nconst cmyk2rgb = (...args) => {\n args = unpack(args, 'cmyk');\n const [c, m, y, k] = args;\n const alpha = args.length > 4 ? args[4] : 1;\n if (k === 1) return [0, 0, 0, alpha];\n return [\n c >= 1 ? 0 : 255 * (1 - c) * (1 - k), // r\n m >= 1 ? 0 : 255 * (1 - m) * (1 - k), // g\n y >= 1 ? 0 : 255 * (1 - y) * (1 - k), // b\n alpha\n ];\n};\n\nexport default cmyk2rgb;\n","import { unpack } from '../../utils/index.js';\nconst { max } = Math;\n\nconst rgb2cmyk = (...args) => {\n let [r, g, b] = unpack(args, 'rgb');\n r = r / 255;\n g = g / 255;\n b = b / 255;\n const k = 1 - max(r, max(g, b));\n const f = k < 1 ? 1 / (1 - k) : 0;\n const c = (1 - r - k) * f;\n const m = (1 - g - k) * f;\n const y = (1 - b - k) * f;\n return [c, m, y, k];\n};\n\nexport default rgb2cmyk;\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport { unpack, type } from '../../utils/index.js';\nimport cmyk2rgb from './cmyk2rgb.js';\nimport rgb2cmyk from './rgb2cmyk.js';\n\nColor.prototype.cmyk = function () {\n return rgb2cmyk(this._rgb);\n};\n\nchroma.cmyk = (...args) => new Color(...args, 'cmyk');\n\ninput.format.cmyk = cmyk2rgb;\n\ninput.autodetect.push({\n p: 2,\n test: (...args) => {\n args = unpack(args, 'cmyk');\n if (type(args) === 'array' && args.length === 4) {\n return 'cmyk';\n }\n }\n});\n","import { unpack, last } from '../../utils/index.js';\nconst rnd = (a) => Math.round(a * 100) / 100;\n\n/*\n * supported arguments:\n * - hsl2css(h,s,l)\n * - hsl2css(h,s,l,a)\n * - hsl2css([h,s,l], mode)\n * - hsl2css([h,s,l,a], mode)\n * - hsl2css({h,s,l,a}, mode)\n */\nconst hsl2css = (...args) => {\n const hsla = unpack(args, 'hsla');\n let mode = last(args) || 'lsa';\n hsla[0] = rnd(hsla[0] || 0);\n hsla[1] = rnd(hsla[1] * 100) + '%';\n hsla[2] = rnd(hsla[2] * 100) + '%';\n if (mode === 'hsla' || (hsla.length > 3 && hsla[3] < 1)) {\n hsla[3] = hsla.length > 3 ? hsla[3] : 1;\n mode = 'hsla';\n } else {\n hsla.length = 3;\n }\n return `${mode}(${hsla.join(',')})`;\n};\n\nexport default hsl2css;\n","import { unpack, min, max } from '../../utils/index.js';\n\n/*\n * supported arguments:\n * - rgb2hsl(r,g,b)\n * - rgb2hsl(r,g,b,a)\n * - rgb2hsl([r,g,b])\n * - rgb2hsl([r,g,b,a])\n * - rgb2hsl({r,g,b,a})\n */\nconst rgb2hsl = (...args) => {\n args = unpack(args, 'rgba');\n let [r, g, b] = args;\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n const minRgb = min(r, g, b);\n const maxRgb = max(r, g, b);\n\n const l = (maxRgb + minRgb) / 2;\n let s, h;\n\n if (maxRgb === minRgb) {\n s = 0;\n h = Number.NaN;\n } else {\n s =\n l < 0.5\n ? (maxRgb - minRgb) / (maxRgb + minRgb)\n : (maxRgb - minRgb) / (2 - maxRgb - minRgb);\n }\n\n if (r == maxRgb) h = (g - b) / (maxRgb - minRgb);\n else if (g == maxRgb) h = 2 + (b - r) / (maxRgb - minRgb);\n else if (b == maxRgb) h = 4 + (r - g) / (maxRgb - minRgb);\n\n h *= 60;\n if (h < 0) h += 360;\n if (args.length > 3 && args[3] !== undefined) return [h, s, l, args[3]];\n return [h, s, l];\n};\n\nexport default rgb2hsl;\n","import { unpack, last } from '../../utils/index.js';\nimport hsl2css from './hsl2css.js';\nimport rgb2hsl from '../hsl/rgb2hsl.js';\nconst { round } = Math;\n\n/*\n * supported arguments:\n * - rgb2css(r,g,b)\n * - rgb2css(r,g,b,a)\n * - rgb2css([r,g,b], mode)\n * - rgb2css([r,g,b,a], mode)\n * - rgb2css({r,g,b,a}, mode)\n */\nconst rgb2css = (...args) => {\n const rgba = unpack(args, 'rgba');\n let mode = last(args) || 'rgb';\n if (mode.substr(0, 3) == 'hsl') {\n return hsl2css(rgb2hsl(rgba), mode);\n }\n rgba[0] = round(rgba[0]);\n rgba[1] = round(rgba[1]);\n rgba[2] = round(rgba[2]);\n if (mode === 'rgba' || (rgba.length > 3 && rgba[3] < 1)) {\n rgba[3] = rgba.length > 3 ? rgba[3] : 1;\n mode = 'rgba';\n }\n return `${mode}(${rgba.slice(0, mode === 'rgb' ? 3 : 4).join(',')})`;\n};\n\nexport default rgb2css;\n","import { unpack } from '../../utils/index.js';\nconst { round } = Math;\n\nconst hsl2rgb = (...args) => {\n args = unpack(args, 'hsl');\n const [h, s, l] = args;\n let r, g, b;\n if (s === 0) {\n r = g = b = l * 255;\n } else {\n const t3 = [0, 0, 0];\n const c = [0, 0, 0];\n const t2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const t1 = 2 * l - t2;\n const h_ = h / 360;\n t3[0] = h_ + 1 / 3;\n t3[1] = h_;\n t3[2] = h_ - 1 / 3;\n for (let i = 0; i < 3; i++) {\n if (t3[i] < 0) t3[i] += 1;\n if (t3[i] > 1) t3[i] -= 1;\n if (6 * t3[i] < 1) c[i] = t1 + (t2 - t1) * 6 * t3[i];\n else if (2 * t3[i] < 1) c[i] = t2;\n else if (3 * t3[i] < 2) c[i] = t1 + (t2 - t1) * (2 / 3 - t3[i]) * 6;\n else c[i] = t1;\n }\n [r, g, b] = [round(c[0] * 255), round(c[1] * 255), round(c[2] * 255)];\n }\n if (args.length > 3) {\n // keep alpha channel\n return [r, g, b, args[3]];\n }\n return [r, g, b, 1];\n};\n\nexport default hsl2rgb;\n","import hsl2rgb from '../hsl/hsl2rgb.js';\nimport input from '../input.js';\n\nconst RE_RGB = /^rgb\\(\\s*(-?\\d+),\\s*(-?\\d+)\\s*,\\s*(-?\\d+)\\s*\\)$/;\nconst RE_RGBA =\n /^rgba\\(\\s*(-?\\d+),\\s*(-?\\d+)\\s*,\\s*(-?\\d+)\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;\nconst RE_RGB_PCT =\n /^rgb\\(\\s*(-?\\d+(?:\\.\\d+)?)%,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*\\)$/;\nconst RE_RGBA_PCT =\n /^rgba\\(\\s*(-?\\d+(?:\\.\\d+)?)%,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;\nconst RE_HSL =\n /^hsl\\(\\s*(-?\\d+(?:\\.\\d+)?),\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*\\)$/;\nconst RE_HSLA =\n /^hsla\\(\\s*(-?\\d+(?:\\.\\d+)?),\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;\n\nconst { round } = Math;\n\nconst css2rgb = (css) => {\n css = css.toLowerCase().trim();\n let m;\n\n if (input.format.named) {\n try {\n return input.format.named(css);\n // eslint-disable-next-line\n } catch (e) {}\n }\n\n // rgb(250,20,0)\n if ((m = css.match(RE_RGB))) {\n const rgb = m.slice(1, 4);\n for (let i = 0; i < 3; i++) {\n rgb[i] = +rgb[i];\n }\n rgb[3] = 1; // default alpha\n return rgb;\n }\n\n // rgba(250,20,0,0.4)\n if ((m = css.match(RE_RGBA))) {\n const rgb = m.slice(1, 5);\n for (let i = 0; i < 4; i++) {\n rgb[i] = +rgb[i];\n }\n return rgb;\n }\n\n // rgb(100%,0%,0%)\n if ((m = css.match(RE_RGB_PCT))) {\n const rgb = m.slice(1, 4);\n for (let i = 0; i < 3; i++) {\n rgb[i] = round(rgb[i] * 2.55);\n }\n rgb[3] = 1; // default alpha\n return rgb;\n }\n\n // rgba(100%,0%,0%,0.4)\n if ((m = css.match(RE_RGBA_PCT))) {\n const rgb = m.slice(1, 5);\n for (let i = 0; i < 3; i++) {\n rgb[i] = round(rgb[i] * 2.55);\n }\n rgb[3] = +rgb[3];\n return rgb;\n }\n\n // hsl(0,100%,50%)\n if ((m = css.match(RE_HSL))) {\n const hsl = m.slice(1, 4);\n hsl[1] *= 0.01;\n hsl[2] *= 0.01;\n const rgb = hsl2rgb(hsl);\n rgb[3] = 1;\n return rgb;\n }\n\n // hsla(0,100%,50%,0.5)\n if ((m = css.match(RE_HSLA))) {\n const hsl = m.slice(1, 4);\n hsl[1] *= 0.01;\n hsl[2] *= 0.01;\n const rgb = hsl2rgb(hsl);\n rgb[3] = +m[4]; // default alpha = 1\n return rgb;\n }\n};\n\ncss2rgb.test = (s) => {\n return (\n RE_RGB.test(s) ||\n RE_RGBA.test(s) ||\n RE_RGB_PCT.test(s) ||\n RE_RGBA_PCT.test(s) ||\n RE_HSL.test(s) ||\n RE_HSLA.test(s)\n );\n};\n\nexport default css2rgb;\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport { type } from '../../utils/index.js';\n\nimport rgb2css from './rgb2css.js';\nimport css2rgb from './css2rgb.js';\n\nColor.prototype.css = function (mode) {\n return rgb2css(this._rgb, mode);\n};\n\nchroma.css = (...args) => new Color(...args, 'css');\n\ninput.format.css = css2rgb;\n\ninput.autodetect.push({\n p: 5,\n test: (h, ...rest) => {\n if (!rest.length && type(h) === 'string' && css2rgb.test(h)) {\n return 'css';\n }\n }\n});\n","import Color from '../../Color.js';\nimport chroma from '../../chroma.js';\nimport input from '../input.js';\nimport { unpack } from '../../utils/index.js';\n\ninput.format.gl = (...args) => {\n const rgb = unpack(args, 'rgba');\n rgb[0] *= 255;\n rgb[1] *= 255;\n rgb[2] *= 255;\n return rgb;\n};\n\nchroma.gl = (...args) => new Color(...args, 'gl');\n\nColor.prototype.gl = function () {\n const rgb = this._rgb;\n return [rgb[0] / 255, rgb[1] / 255, rgb[2] / 255, rgb[3]];\n};\n","import { unpack } from '../../utils/index.js';\nconst { floor } = Math;\n\n/*\n * this is basically just HSV with some minor tweaks\n *\n * hue.. [0..360]\n * chroma .. [0..1]\n * grayness .. [0..1]\n */\n\nconst hcg2rgb = (...args) => {\n args = unpack(args, 'hcg');\n let [h, c, _g] = args;\n let r, g, b;\n _g = _g * 255;\n const _c = c * 255;\n if (c === 0) {\n r = g = b = _g;\n } else {\n if (h === 360) h = 0;\n if (h > 360) h -= 360;\n if (h < 0) h += 360;\n h /= 60;\n const i = floor(h);\n const f = h - i;\n const p = _g * (1 - c);\n const q = p + _c * (1 - f);\n const t = p + _c * f;\n const v = p + _c;\n switch (i) {\n case 0:\n [r, g, b] = [v, t, p];\n break;\n case 1:\n [r, g, b] = [q, v, p];\n break;\n case 2:\n [r, g, b] = [p, v, t];\n break;\n case 3:\n [r, g, b] = [p, q, v];\n break;\n case 4:\n [r, g, b] = [t, p, v];\n break;\n case 5:\n [r, g, b] = [v, p, q];\n break;\n }\n }\n return [r, g, b, args.length > 3 ? args[3] : 1];\n};\n\nexport default hcg2rgb;\n","import { unpack, max, min } from '../../utils/index.js';\n\nconst rgb2hcg = (...args) => {\n const [r, g, b] = unpack(args, 'rgb');\n const minRgb = min(r, g, b);\n const maxRgb = max(r, g, b);\n const delta = maxRgb - minRgb;\n const c = (delta * 100) / 255;\n const _g = (minRgb / (255 - delta)) * 100;\n let h;\n if (delta === 0) {\n h = Number.NaN;\n } else {\n if (r === maxRgb) h = (g - b) / delta;\n if (g === maxRgb) h = 2 + (b - r) / delta;\n if (b === maxRgb) h = 4 + (r - g) / delta;\n h *= 60;\n if (h < 0) h += 360;\n }\n return [h, c, _g];\n};\n\nexport default rgb2hcg;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport hcg2rgb from './hcg2rgb.js';\nimport rgb2hcg from './rgb2hcg.js';\n\nColor.prototype.hcg = function () {\n return rgb2hcg(this._rgb);\n};\n\nchroma.hcg = (...args) => new Color(...args, 'hcg');\n\ninput.format.hcg = hcg2rgb;\n\ninput.autodetect.push({\n p: 1,\n test: (...args) => {\n args = unpack(args, 'hcg');\n if (type(args) === 'array' && args.length === 3) {\n return 'hcg';\n }\n }\n});\n","const RE_HEX = /^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\nconst RE_HEXA = /^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/;\n\nconst hex2rgb = (hex) => {\n if (hex.match(RE_HEX)) {\n // remove optional leading #\n if (hex.length === 4 || hex.length === 7) {\n hex = hex.substr(1);\n }\n // expand short-notation to full six-digit\n if (hex.length === 3) {\n hex = hex.split('');\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n const u = parseInt(hex, 16);\n const r = u >> 16;\n const g = (u >> 8) & 0xff;\n const b = u & 0xff;\n return [r, g, b, 1];\n }\n\n // match rgba hex format, eg #FF000077\n if (hex.match(RE_HEXA)) {\n if (hex.length === 5 || hex.length === 9) {\n // remove optional leading #\n hex = hex.substr(1);\n }\n // expand short-notation to full eight-digit\n if (hex.length === 4) {\n hex = hex.split('');\n hex =\n hex[0] +\n hex[0] +\n hex[1] +\n hex[1] +\n hex[2] +\n hex[2] +\n hex[3] +\n hex[3];\n }\n const u = parseInt(hex, 16);\n const r = (u >> 24) & 0xff;\n const g = (u >> 16) & 0xff;\n const b = (u >> 8) & 0xff;\n const a = Math.round(((u & 0xff) / 0xff) * 100) / 100;\n return [r, g, b, a];\n }\n\n // we used to check for css colors here\n // if _input.css? and rgb = _input.css hex\n // return rgb\n\n throw new Error(`unknown hex color: ${hex}`);\n};\n\nexport default hex2rgb;\n","import { unpack, last } from '../../utils/index.js';\nconst { round } = Math;\n\nconst rgb2hex = (...args) => {\n let [r, g, b, a] = unpack(args, 'rgba');\n let mode = last(args) || 'auto';\n if (a === undefined) a = 1;\n if (mode === 'auto') {\n mode = a < 1 ? 'rgba' : 'rgb';\n }\n r = round(r);\n g = round(g);\n b = round(b);\n const u = (r << 16) | (g << 8) | b;\n let str = '000000' + u.toString(16); //#.toUpperCase();\n str = str.substr(str.length - 6);\n let hxa = '0' + round(a * 255).toString(16);\n hxa = hxa.substr(hxa.length - 2);\n switch (mode.toLowerCase()) {\n case 'rgba':\n return `#${str}${hxa}`;\n case 'argb':\n return `#${hxa}${str}`;\n default:\n return `#${str}`;\n }\n};\n\nexport default rgb2hex;\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport { type } from '../../utils/index.js';\nimport input from '../input.js';\nimport hex2rgb from './hex2rgb.js';\nimport rgb2hex from './rgb2hex.js';\n\nColor.prototype.hex = function (mode) {\n return rgb2hex(this._rgb, mode);\n};\n\nchroma.hex = (...args) => new Color(...args, 'hex');\n\ninput.format.hex = hex2rgb;\ninput.autodetect.push({\n p: 4,\n test: (h, ...rest) => {\n if (\n !rest.length &&\n type(h) === 'string' &&\n [3, 4, 5, 6, 7, 8, 9].indexOf(h.length) >= 0\n ) {\n return 'hex';\n }\n }\n});\n","import { unpack, limit, TWOPI, PITHIRD } from '../../utils/index.js';\nconst { cos } = Math;\n\n/*\n * hue [0..360]\n * saturation [0..1]\n * intensity [0..1]\n */\nconst hsi2rgb = (...args) => {\n /*\n borrowed from here:\n http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/hsi2rgb.cpp\n */\n args = unpack(args, 'hsi');\n let [h, s, i] = args;\n let r, g, b;\n\n if (isNaN(h)) h = 0;\n if (isNaN(s)) s = 0;\n // normalize hue\n if (h > 360) h -= 360;\n if (h < 0) h += 360;\n h /= 360;\n if (h < 1 / 3) {\n b = (1 - s) / 3;\n r = (1 + (s * cos(TWOPI * h)) / cos(PITHIRD - TWOPI * h)) / 3;\n g = 1 - (b + r);\n } else if (h < 2 / 3) {\n h -= 1 / 3;\n r = (1 - s) / 3;\n g = (1 + (s * cos(TWOPI * h)) / cos(PITHIRD - TWOPI * h)) / 3;\n b = 1 - (r + g);\n } else {\n h -= 2 / 3;\n g = (1 - s) / 3;\n b = (1 + (s * cos(TWOPI * h)) / cos(PITHIRD - TWOPI * h)) / 3;\n r = 1 - (g + b);\n }\n r = limit(i * r * 3);\n g = limit(i * g * 3);\n b = limit(i * b * 3);\n return [r * 255, g * 255, b * 255, args.length > 3 ? args[3] : 1];\n};\n\nexport default hsi2rgb;\n","import { unpack, TWOPI } from '../../utils/index.js';\nconst { min, sqrt, acos } = Math;\n\nconst rgb2hsi = (...args) => {\n /*\n borrowed from here:\n http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/rgb2hsi.cpp\n */\n let [r, g, b] = unpack(args, 'rgb');\n r /= 255;\n g /= 255;\n b /= 255;\n let h;\n const min_ = min(r, g, b);\n const i = (r + g + b) / 3;\n const s = i > 0 ? 1 - min_ / i : 0;\n if (s === 0) {\n h = NaN;\n } else {\n h = (r - g + (r - b)) / 2;\n h /= sqrt((r - g) * (r - g) + (r - b) * (g - b));\n h = acos(h);\n if (b > g) {\n h = TWOPI - h;\n }\n h /= TWOPI;\n }\n return [h * 360, s, i];\n};\n\nexport default rgb2hsi;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport hsi2rgb from './hsi2rgb.js';\nimport rgb2hsi from './rgb2hsi.js';\n\nColor.prototype.hsi = function () {\n return rgb2hsi(this._rgb);\n};\n\nchroma.hsi = (...args) => new Color(...args, 'hsi');\n\ninput.format.hsi = hsi2rgb;\n\ninput.autodetect.push({\n p: 2,\n test: (...args) => {\n args = unpack(args, 'hsi');\n if (type(args) === 'array' && args.length === 3) {\n return 'hsi';\n }\n }\n});\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport hsl2rgb from './hsl2rgb.js';\nimport rgb2hsl from './rgb2hsl.js';\n\nColor.prototype.hsl = function () {\n return rgb2hsl(this._rgb);\n};\n\nchroma.hsl = (...args) => new Color(...args, 'hsl');\n\ninput.format.hsl = hsl2rgb;\n\ninput.autodetect.push({\n p: 2,\n test: (...args) => {\n args = unpack(args, 'hsl');\n if (type(args) === 'array' && args.length === 3) {\n return 'hsl';\n }\n }\n});\n","import { unpack } from '../../utils/index.js';\nconst { floor } = Math;\n\nconst hsv2rgb = (...args) => {\n args = unpack(args, 'hsv');\n let [h, s, v] = args;\n let r, g, b;\n v *= 255;\n if (s === 0) {\n r = g = b = v;\n } else {\n if (h === 360) h = 0;\n if (h > 360) h -= 360;\n if (h < 0) h += 360;\n h /= 60;\n\n const i = floor(h);\n const f = h - i;\n const p = v * (1 - s);\n const q = v * (1 - s * f);\n const t = v * (1 - s * (1 - f));\n\n switch (i) {\n case 0:\n [r, g, b] = [v, t, p];\n break;\n case 1:\n [r, g, b] = [q, v, p];\n break;\n case 2:\n [r, g, b] = [p, v, t];\n break;\n case 3:\n [r, g, b] = [p, q, v];\n break;\n case 4:\n [r, g, b] = [t, p, v];\n break;\n case 5:\n [r, g, b] = [v, p, q];\n break;\n }\n }\n return [r, g, b, args.length > 3 ? args[3] : 1];\n};\n\nexport default hsv2rgb;\n","import { unpack } from '../../utils/index.js';\nconst { min, max } = Math;\n\n/*\n * supported arguments:\n * - rgb2hsv(r,g,b)\n * - rgb2hsv([r,g,b])\n * - rgb2hsv({r,g,b})\n */\nconst rgb2hsl = (...args) => {\n args = unpack(args, 'rgb');\n let [r, g, b] = args;\n const min_ = min(r, g, b);\n const max_ = max(r, g, b);\n const delta = max_ - min_;\n let h, s, v;\n v = max_ / 255.0;\n if (max_ === 0) {\n h = Number.NaN;\n s = 0;\n } else {\n s = delta / max_;\n if (r === max_) h = (g - b) / delta;\n if (g === max_) h = 2 + (b - r) / delta;\n if (b === max_) h = 4 + (r - g) / delta;\n h *= 60;\n if (h < 0) h += 360;\n }\n return [h, s, v];\n};\n\nexport default rgb2hsl;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport hsv2rgb from './hsv2rgb.js';\nimport rgb2hsv from './rgb2hsv.js';\n\nColor.prototype.hsv = function () {\n return rgb2hsv(this._rgb);\n};\n\nchroma.hsv = (...args) => new Color(...args, 'hsv');\n\ninput.format.hsv = hsv2rgb;\n\ninput.autodetect.push({\n p: 2,\n test: (...args) => {\n args = unpack(args, 'hsv');\n if (type(args) === 'array' && args.length === 3) {\n return 'hsv';\n }\n }\n});\n","export default {\n // Corresponds roughly to RGB brighter/darker\n Kn: 18,\n\n // D65 standard referent\n Xn: 0.95047,\n Yn: 1,\n Zn: 1.08883,\n\n t0: 0.137931034, // 4 / 29\n t1: 0.206896552, // 6 / 29\n t2: 0.12841855, // 3 * t1 * t1\n t3: 0.008856452 // t1 * t1 * t1\n};\n","import LAB_CONSTANTS from './lab-constants.js';\nimport { unpack } from '../../utils/index.js';\nconst { pow } = Math;\n\n/*\n * L* [0..100]\n * a [-100..100]\n * b [-100..100]\n */\nconst lab2rgb = (...args) => {\n args = unpack(args, 'lab');\n const [l, a, b] = args;\n let x, y, z, r, g, b_;\n\n y = (l + 16) / 116;\n x = isNaN(a) ? y : y + a / 500;\n z = isNaN(b) ? y : y - b / 200;\n\n y = LAB_CONSTANTS.Yn * lab_xyz(y);\n x = LAB_CONSTANTS.Xn * lab_xyz(x);\n z = LAB_CONSTANTS.Zn * lab_xyz(z);\n\n r = xyz_rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z); // D65 -> sRGB\n g = xyz_rgb(-0.969266 * x + 1.8760108 * y + 0.041556 * z);\n b_ = xyz_rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z);\n\n return [r, g, b_, args.length > 3 ? args[3] : 1];\n};\n\nconst xyz_rgb = (r) => {\n return 255 * (r <= 0.00304 ? 12.92 * r : 1.055 * pow(r, 1 / 2.4) - 0.055);\n};\n\nconst lab_xyz = (t) => {\n return t > LAB_CONSTANTS.t1\n ? t * t * t\n : LAB_CONSTANTS.t2 * (t - LAB_CONSTANTS.t0);\n};\n\nexport default lab2rgb;\n","import LAB_CONSTANTS from './lab-constants.js';\nimport { unpack } from '../../utils/index.js';\nconst { pow } = Math;\n\nconst rgb2lab = (...args) => {\n const [r, g, b] = unpack(args, 'rgb');\n const [x, y, z] = rgb2xyz(r, g, b);\n const l = 116 * y - 16;\n return [l < 0 ? 0 : l, 500 * (x - y), 200 * (y - z)];\n};\n\nconst rgb_xyz = (r) => {\n if ((r /= 255) <= 0.04045) return r / 12.92;\n return pow((r + 0.055) / 1.055, 2.4);\n};\n\nconst xyz_lab = (t) => {\n if (t > LAB_CONSTANTS.t3) return pow(t, 1 / 3);\n return t / LAB_CONSTANTS.t2 + LAB_CONSTANTS.t0;\n};\n\nconst rgb2xyz = (r, g, b) => {\n r = rgb_xyz(r);\n g = rgb_xyz(g);\n b = rgb_xyz(b);\n const x = xyz_lab(\n (0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / LAB_CONSTANTS.Xn\n );\n const y = xyz_lab(\n (0.2126729 * r + 0.7151522 * g + 0.072175 * b) / LAB_CONSTANTS.Yn\n );\n const z = xyz_lab(\n (0.0193339 * r + 0.119192 * g + 0.9503041 * b) / LAB_CONSTANTS.Zn\n );\n return [x, y, z];\n};\n\nexport default rgb2lab;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport lab2rgb from './lab2rgb.js';\nimport rgb2lab from './rgb2lab.js';\n\nColor.prototype.lab = function () {\n return rgb2lab(this._rgb);\n};\n\nchroma.lab = (...args) => new Color(...args, 'lab');\n\ninput.format.lab = lab2rgb;\n\ninput.autodetect.push({\n p: 2,\n test: (...args) => {\n args = unpack(args, 'lab');\n if (type(args) === 'array' && args.length === 3) {\n return 'lab';\n }\n }\n});\n","import { unpack, DEG2RAD } from '../../utils/index.js';\nconst { sin, cos } = Math;\n\nconst lch2lab = (...args) => {\n /*\n Convert from a qualitative parameter h and a quantitative parameter l to a 24-bit pixel.\n These formulas were invented by David Dalrymple to obtain maximum contrast without going\n out of gamut if the parameters are in the range 0-1.\n\n A saturation multiplier was added by Gregor Aisch\n */\n let [l, c, h] = unpack(args, 'lch');\n if (isNaN(h)) h = 0;\n h = h * DEG2RAD;\n return [l, cos(h) * c, sin(h) * c];\n};\n\nexport default lch2lab;\n","import { unpack } from '../../utils/index.js';\nimport lch2lab from './lch2lab.js';\nimport lab2rgb from '../lab/lab2rgb.js';\n\nconst lch2rgb = (...args) => {\n args = unpack(args, 'lch');\n const [l, c, h] = args;\n const [L, a, b_] = lch2lab(l, c, h);\n const [r, g, b] = lab2rgb(L, a, b_);\n return [r, g, b, args.length > 3 ? args[3] : 1];\n};\n\nexport default lch2rgb;\n","import { unpack } from '../../utils/index.js';\nimport lch2rgb from './lch2rgb.js';\n\nconst hcl2rgb = (...args) => {\n const hcl = unpack(args, 'hcl').reverse();\n return lch2rgb(...hcl);\n};\n\nexport default hcl2rgb;\n","import { unpack, RAD2DEG } from '../../utils/index.js';\nconst { sqrt, atan2, round } = Math;\n\nconst lab2lch = (...args) => {\n const [l, a, b] = unpack(args, 'lab');\n const c = sqrt(a * a + b * b);\n let h = (atan2(b, a) * RAD2DEG + 360) % 360;\n if (round(c * 10000) === 0) h = Number.NaN;\n return [l, c, h];\n};\n\nexport default lab2lch;\n","import { unpack } from '../../utils/index.js';\nimport rgb2lab from '../lab/rgb2lab.js';\nimport lab2lch from './lab2lch.js';\n\nconst rgb2lch = (...args) => {\n const [r, g, b] = unpack(args, 'rgb');\n const [l, a, b_] = rgb2lab(r, g, b);\n return lab2lch(l, a, b_);\n};\n\nexport default rgb2lch;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport lch2rgb from './lch2rgb.js';\nimport hcl2rgb from './hcl2rgb.js';\nimport rgb2lch from './rgb2lch.js';\n\nColor.prototype.lch = function () {\n return rgb2lch(this._rgb);\n};\nColor.prototype.hcl = function () {\n return rgb2lch(this._rgb).reverse();\n};\n\nchroma.lch = (...args) => new Color(...args, 'lch');\nchroma.hcl = (...args) => new Color(...args, 'hcl');\n\ninput.format.lch = lch2rgb;\ninput.format.hcl = hcl2rgb;\n['lch', 'hcl'].forEach((m) =>\n input.autodetect.push({\n p: 2,\n test: (...args) => {\n args = unpack(args, m);\n if (type(args) === 'array' && args.length === 3) {\n return m;\n }\n }\n })\n);\n","/**\n\tX11 color names\n\n\thttp://www.w3.org/TR/css3-color/#svg-color\n*/\n\nconst w3cx11 = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\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: '#ff00ff',\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 laserlemon: '#ffff54',\n lavender: '#e6e6fa',\n lavenderblush: '#fff0f5',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrod: '#fafad2',\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: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n maroon2: '#7f0000',\n maroon3: '#b03060',\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 purple2: '#7f007f',\n purple3: '#a020f0',\n rebeccapurple: '#663399',\n red: '#ff0000',\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: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32'\n};\n\nexport default w3cx11;\n","import Color from '../../Color.js';\nimport input from '../input.js';\nimport { type } from '../../utils/index.js';\n\nimport w3cx11 from '../../colors/w3cx11.js';\nimport hex2rgb from '../hex/hex2rgb.js';\nimport rgb2hex from '../hex/rgb2hex.js';\n\nColor.prototype.name = function () {\n const hex = rgb2hex(this._rgb, 'rgb');\n for (let n of Object.keys(w3cx11)) {\n if (w3cx11[n] === hex) return n.toLowerCase();\n }\n return hex;\n};\n\ninput.format.named = (name) => {\n name = name.toLowerCase();\n if (w3cx11[name]) return hex2rgb(w3cx11[name]);\n throw new Error('unknown color name: ' + name);\n};\n\ninput.autodetect.push({\n p: 5,\n test: (h, ...rest) => {\n if (!rest.length && type(h) === 'string' && w3cx11[h.toLowerCase()]) {\n return 'named';\n }\n }\n});\n","import { type } from '../../utils/index.js';\n\nconst num2rgb = (num) => {\n if (type(num) == 'number' && num >= 0 && num <= 0xffffff) {\n const r = num >> 16;\n const g = (num >> 8) & 0xff;\n const b = num & 0xff;\n return [r, g, b, 1];\n }\n throw new Error('unknown num color: ' + num);\n};\n\nexport default num2rgb;\n","import { unpack } from '../../utils/index.js';\n\nconst rgb2num = (...args) => {\n const [r, g, b] = unpack(args, 'rgb');\n return (r << 16) + (g << 8) + b;\n};\n\nexport default rgb2num;\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport { type } from '../../utils/index.js';\nimport num2rgb from './num2rgb.js';\nimport rgb2num from './rgb2num.js';\n\nColor.prototype.num = function () {\n return rgb2num(this._rgb);\n};\n\nchroma.num = (...args) => new Color(...args, 'num');\n\ninput.format.num = num2rgb;\n\ninput.autodetect.push({\n p: 5,\n test: (...args) => {\n if (\n args.length === 1 &&\n type(args[0]) === 'number' &&\n args[0] >= 0 &&\n args[0] <= 0xffffff\n ) {\n return 'num';\n }\n }\n});\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport { unpack, type } from '../../utils/index.js';\nconst { round } = Math;\n\nColor.prototype.rgb = function (rnd = true) {\n if (rnd === false) return this._rgb.slice(0, 3);\n return this._rgb.slice(0, 3).map(round);\n};\n\nColor.prototype.rgba = function (rnd = true) {\n return this._rgb.slice(0, 4).map((v, i) => {\n return i < 3 ? (rnd === false ? v : round(v)) : v;\n });\n};\n\nchroma.rgb = (...args) => new Color(...args, 'rgb');\n\ninput.format.rgb = (...args) => {\n const rgba = unpack(args, 'rgba');\n if (rgba[3] === undefined) rgba[3] = 1;\n return rgba;\n};\n\ninput.autodetect.push({\n p: 3,\n test: (...args) => {\n args = unpack(args, 'rgba');\n if (\n type(args) === 'array' &&\n (args.length === 3 ||\n (args.length === 4 &&\n type(args[3]) == 'number' &&\n args[3] >= 0 &&\n args[3] <= 1))\n ) {\n return 'rgb';\n }\n }\n});\n","/*\n * Based on implementation by Neil Bartlett\n * https://github.com/neilbartlett/color-temperature\n */\n\nconst { log } = Math;\n\nconst temperature2rgb = (kelvin) => {\n const temp = kelvin / 100;\n let r, g, b;\n if (temp < 66) {\n r = 255;\n g =\n temp < 6\n ? 0\n : -155.25485562709179 -\n 0.44596950469579133 * (g = temp - 2) +\n 104.49216199393888 * log(g);\n b =\n temp < 20\n ? 0\n : -254.76935184120902 +\n 0.8274096064007395 * (b = temp - 10) +\n 115.67994401066147 * log(b);\n } else {\n r =\n 351.97690566805693 +\n 0.114206453784165 * (r = temp - 55) -\n 40.25366309332127 * log(r);\n g =\n 325.4494125711974 +\n 0.07943456536662342 * (g = temp - 50) -\n 28.0852963507957 * log(g);\n b = 255;\n }\n return [r, g, b, 1];\n};\n\nexport default temperature2rgb;\n","/*\n * Based on implementation by Neil Bartlett\n * https://github.com/neilbartlett/color-temperature\n **/\n\nimport temperature2rgb from './temperature2rgb.js';\nimport { unpack } from '../../utils/index.js';\nconst { round } = Math;\n\nconst rgb2temperature = (...args) => {\n const rgb = unpack(args, 'rgb');\n const r = rgb[0],\n b = rgb[2];\n let minTemp = 1000;\n let maxTemp = 40000;\n const eps = 0.4;\n let temp;\n while (maxTemp - minTemp > eps) {\n temp = (maxTemp + minTemp) * 0.5;\n const rgb = temperature2rgb(temp);\n if (rgb[2] / rgb[0] >= b / r) {\n maxTemp = temp;\n } else {\n minTemp = temp;\n }\n }\n return round(temp);\n};\n\nexport default rgb2temperature;\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport temperature2rgb from './temperature2rgb.js';\nimport rgb2temperature from './rgb2temperature.js';\n\nColor.prototype.temp =\n Color.prototype.kelvin =\n Color.prototype.temperature =\n function () {\n return rgb2temperature(this._rgb);\n };\n\nchroma.temp =\n chroma.kelvin =\n chroma.temperature =\n (...args) => new Color(...args, 'temp');\n\ninput.format.temp =\n input.format.kelvin =\n input.format.temperature =\n temperature2rgb;\n","import { unpack } from '../../utils/index.js';\nconst { pow, sign } = Math;\n\n/*\n * L* [0..100]\n * a [-100..100]\n * b [-100..100]\n */\nconst oklab2rgb = (...args) => {\n args = unpack(args, 'lab');\n const [L, a, b] = args;\n\n const l = pow(L + 0.3963377774 * a + 0.2158037573 * b, 3);\n const m = pow(L - 0.1055613458 * a - 0.0638541728 * b, 3);\n const s = pow(L - 0.0894841775 * a - 1.291485548 * b, 3);\n\n return [\n 255 * lrgb2rgb(+4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s),\n 255 * lrgb2rgb(-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s),\n 255 * lrgb2rgb(-0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s),\n args.length > 3 ? args[3] : 1\n ];\n};\n\nexport default oklab2rgb;\n\nfunction lrgb2rgb(c) {\n const abs = Math.abs(c);\n if (abs > 0.0031308) {\n return (sign(c) || 1) * (1.055 * pow(abs, 1 / 2.4) - 0.055);\n }\n return c * 12.92;\n}\n","import { unpack } from '../../utils/index.js';\nconst { cbrt, pow, sign } = Math;\n\nconst rgb2oklab = (...args) => {\n // OKLab color space implementation taken from\n // https://bottosson.github.io/posts/oklab/\n const [r, g, b] = unpack(args, 'rgb');\n const [lr, lg, lb] = [\n rgb2lrgb(r / 255),\n rgb2lrgb(g / 255),\n rgb2lrgb(b / 255)\n ];\n const l = cbrt(0.4122214708 * lr + 0.5363325363 * lg + 0.0514459929 * lb);\n const m = cbrt(0.2119034982 * lr + 0.6806995451 * lg + 0.1073969566 * lb);\n const s = cbrt(0.0883024619 * lr + 0.2817188376 * lg + 0.6299787005 * lb);\n\n return [\n 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s,\n 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s,\n 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s\n ];\n};\n\nexport default rgb2oklab;\n\nfunction rgb2lrgb(c) {\n const abs = Math.abs(c);\n if (abs < 0.04045) {\n return c / 12.92;\n }\n return (sign(c) || 1) * pow((abs + 0.055) / 1.055, 2.4);\n}\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport oklab2rgb from './oklab2rgb.js';\nimport rgb2oklab from './rgb2oklab.js';\n\nColor.prototype.oklab = function () {\n return rgb2oklab(this._rgb);\n};\n\nchroma.oklab = (...args) => new Color(...args, 'oklab');\n\ninput.format.oklab = oklab2rgb;\n\ninput.autodetect.push({\n p: 3,\n test: (...args) => {\n args = unpack(args, 'oklab');\n if (type(args) === 'array' && args.length === 3) {\n return 'oklab';\n }\n }\n});\n","import { unpack } from '../../utils/index.js';\nimport lch2lab from '../lch/lch2lab.js';\nimport oklab2rgb from '../oklab/oklab2rgb.js';\n\nconst oklch2rgb = (...args) => {\n args = unpack(args, 'lch');\n const [l, c, h] = args;\n const [L, a, b_] = lch2lab(l, c, h);\n const [r, g, b] = oklab2rgb(L, a, b_);\n return [r, g, b, args.length > 3 ? args[3] : 1];\n};\n\nexport default oklch2rgb;\n","import { unpack } from '../../utils/index.js';\nimport rgb2oklab from '../oklab/rgb2oklab.js';\nimport lab2lch from '../lch/lab2lch.js';\n\nconst rgb2oklch = (...args) => {\n const [r, g, b] = unpack(args, 'rgb');\n const [l, a, b_] = rgb2oklab(r, g, b);\n return lab2lch(l, a, b_);\n};\n\nexport default rgb2oklch;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport oklch2rgb from './oklch2rgb.js';\nimport rgb2oklch from './rgb2oklch.js';\n\nColor.prototype.oklch = function () {\n return rgb2oklch(this._rgb);\n};\n\nchroma.oklch = (...args) => new Color(...args, 'oklch');\n\ninput.format.oklch = oklch2rgb;\n\ninput.autodetect.push({\n p: 3,\n test: (...args) => {\n args = unpack(args, 'oklch');\n if (type(args) === 'array' && args.length === 3) {\n return 'oklch';\n }\n }\n});\n","import Color from '../Color.js';\nimport { type } from '../utils/index.js';\n\nColor.prototype.alpha = function (a, mutate = false) {\n if (a !== undefined && type(a) === 'number') {\n if (mutate) {\n this._rgb[3] = a;\n return this;\n }\n return new Color([this._rgb[0], this._rgb[1], this._rgb[2], a], 'rgb');\n }\n return this._rgb[3];\n};\n","import Color from '../Color.js';\n\nColor.prototype.clipped = function () {\n return this._rgb._clipped || false;\n};\n","import '../io/lab/index.js';\nimport Color from '../Color.js';\nimport LAB_CONSTANTS from '../io/lab/lab-constants.js';\n\nColor.prototype.darken = function (amount = 1) {\n const me = this;\n const lab = me.lab();\n lab[0] -= LAB_CONSTANTS.Kn * amount;\n return new Color(lab, 'lab').alpha(me.alpha(), true);\n};\n\nColor.prototype.brighten = function (amount = 1) {\n return this.darken(-amount);\n};\n\nColor.prototype.darker = Color.prototype.darken;\nColor.prototype.brighter = Color.prototype.brighten;\n","import Color from '../Color.js';\n\nColor.prototype.get = function (mc) {\n const [mode, channel] = mc.split('.');\n const src = this[mode]();\n if (channel) {\n const i = mode.indexOf(channel) - (mode.substr(0, 2) === 'ok' ? 2 : 0);\n if (i > -1) return src[i];\n throw new Error(`unknown channel ${channel} in mode ${mode}`);\n } else {\n return src;\n }\n};\n","import Color from '../Color.js';\nimport { type } from '../utils/index.js';\nconst { pow } = Math;\n\nconst EPS = 1e-7;\nconst MAX_ITER = 20;\n\nColor.prototype.luminance = function (lum, mode = 'rgb') {\n if (lum !== undefined && type(lum) === 'number') {\n if (lum === 0) {\n // return pure black\n return new Color([0, 0, 0, this._rgb[3]], 'rgb');\n }\n if (lum === 1) {\n // return pure white\n return new Color([255, 255, 255, this._rgb[3]], 'rgb');\n }\n // compute new color using...\n let cur_lum = this.luminance();\n let max_iter = MAX_ITER;\n\n const test = (low, high) => {\n const mid = low.interpolate(high, 0.5, mode);\n const lm = mid.luminance();\n if (Math.abs(lum - lm) < EPS || !max_iter--) {\n // close enough\n return mid;\n }\n return lm > lum ? test(low, mid) : test(mid, high);\n };\n\n const rgb = (\n cur_lum > lum\n ? test(new Color([0, 0, 0]), this)\n : test(this, new Color([255, 255, 255]))\n ).rgb();\n return new Color([...rgb, this._rgb[3]]);\n }\n return rgb2luminance(...this._rgb.slice(0, 3));\n};\n\nconst rgb2luminance = (r, g, b) => {\n // relative luminance\n // see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n r = luminance_x(r);\n g = luminance_x(g);\n b = luminance_x(b);\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nconst luminance_x = (x) => {\n x /= 255;\n return x <= 0.03928 ? x / 12.92 : pow((x + 0.055) / 1.055, 2.4);\n};\n","export default {};\n","import Color from '../Color.js';\nimport { type } from '../utils/index.js';\nimport interpolator from '../interpolator/index.js';\n\nexport default (col1, col2, f = 0.5, ...rest) => {\n let mode = rest[0] || 'lrgb';\n if (!interpolator[mode] && !rest.length) {\n // fall back to the first supported mode\n mode = Object.keys(interpolator)[0];\n }\n if (!interpolator[mode]) {\n throw new Error(`interpolation mode ${mode} is not defined`);\n }\n if (type(col1) !== 'object') col1 = new Color(col1);\n if (type(col2) !== 'object') col2 = new Color(col2);\n return interpolator[mode](col1, col2, f).alpha(\n col1.alpha() + f * (col2.alpha() - col1.alpha())\n );\n};\n","import Color from '../Color.js';\nimport mix from '../generator/mix.js';\n\nColor.prototype.mix = Color.prototype.interpolate = function (\n col2,\n f = 0.5,\n ...rest\n) {\n return mix(this, col2, f, ...rest);\n};\n","import Color from '../Color.js';\n\nColor.prototype.premultiply = function (mutate = false) {\n const rgb = this._rgb;\n const a = rgb[3];\n if (mutate) {\n this._rgb = [rgb[0] * a, rgb[1] * a, rgb[2] * a, a];\n return this;\n } else {\n return new Color([rgb[0] * a, rgb[1] * a, rgb[2] * a, a], 'rgb');\n }\n};\n","import '../io/lch/index.js';\nimport Color from '../Color.js';\nimport LAB_CONSTANTS from '../io/lab/lab-constants.js';\n\nColor.prototype.saturate = function (amount = 1) {\n const me = this;\n const lch = me.lch();\n lch[1] += LAB_CONSTANTS.Kn * amount;\n if (lch[1] < 0) lch[1] = 0;\n return new Color(lch, 'lch').alpha(me.alpha(), true);\n};\n\nColor.prototype.desaturate = function (amount = 1) {\n return this.saturate(-amount);\n};\n","import Color from '../Color.js';\nimport { type } from '../utils/index.js';\n\nColor.prototype.set = function (mc, value, mutate = false) {\n const [mode, channel] = mc.split('.');\n const src = this[mode]();\n if (channel) {\n const i = mode.indexOf(channel) - (mode.substr(0, 2) === 'ok' ? 2 : 0);\n if (i > -1) {\n if (type(value) == 'string') {\n switch (value.charAt(0)) {\n case '+':\n src[i] += +value;\n break;\n case '-':\n src[i] += +value;\n break;\n case '*':\n src[i] *= +value.substr(1);\n break;\n case '/':\n src[i] /= +value.substr(1);\n break;\n default:\n src[i] = +value;\n }\n } else if (type(value) === 'number') {\n src[i] = value;\n } else {\n throw new Error(`unsupported value for Color.set`);\n }\n const out = new Color(src, mode);\n if (mutate) {\n this._rgb = out._rgb;\n return this;\n }\n return out;\n }\n throw new Error(`unknown channel ${channel} in mode ${mode}`);\n } else {\n return src;\n }\n};\n","import '../io/lab/index.js';\nimport Color from '../Color.js';\nimport mix from '../generator/mix.js';\n\nColor.prototype.tint = function (f = 0.5, ...rest) {\n return mix(this, 'white', f, ...rest);\n};\n\nColor.prototype.shade = function (f = 0.5, ...rest) {\n return mix(this, 'black', f, ...rest);\n};\n","import Color from '../Color.js';\nimport index from './index.js';\n\nconst rgb = (col1, col2, f) => {\n const xyz0 = col1._rgb;\n const xyz1 = col2._rgb;\n return new Color(\n xyz0[0] + f * (xyz1[0] - xyz0[0]),\n xyz0[1] + f * (xyz1[1] - xyz0[1]),\n xyz0[2] + f * (xyz1[2] - xyz0[2]),\n 'rgb'\n );\n};\n\n// register interpolator\nindex.rgb = rgb;\n\nexport default rgb;\n","import Color from '../Color.js';\nconst { sqrt, pow } = Math;\nimport index from './index.js';\n\nconst lrgb = (col1, col2, f) => {\n const [x1, y1, z1] = col1._rgb;\n const [x2, y2, z2] = col2._rgb;\n return new Color(\n sqrt(pow(x1, 2) * (1 - f) + pow(x2, 2) * f),\n sqrt(pow(y1, 2) * (1 - f) + pow(y2, 2) * f),\n sqrt(pow(z1, 2) * (1 - f) + pow(z2, 2) * f),\n 'rgb'\n );\n};\n\n// register interpolator\nindex.lrgb = lrgb;\n\nexport default lrgb;\n","import '../io/lab/index.js';\nimport index from './index.js';\nimport Color from '../Color.js';\n\nconst lab = (col1, col2, f) => {\n const xyz0 = col1.lab();\n const xyz1 = col2.lab();\n return new Color(\n xyz0[0] + f * (xyz1[0] - xyz0[0]),\n xyz0[1] + f * (xyz1[1] - xyz0[1]),\n xyz0[2] + f * (xyz1[2] - xyz0[2]),\n 'lab'\n );\n};\n\n// register interpolator\nindex.lab = lab;\n\nexport default lab;\n","import Color from '../Color.js';\n\nexport default (col1, col2, f, m) => {\n let xyz0, xyz1;\n if (m === 'hsl') {\n xyz0 = col1.hsl();\n xyz1 = col2.hsl();\n } else if (m === 'hsv') {\n xyz0 = col1.hsv();\n xyz1 = col2.hsv();\n } else if (m === 'hcg') {\n xyz0 = col1.hcg();\n xyz1 = col2.hcg();\n } else if (m === 'hsi') {\n xyz0 = col1.hsi();\n xyz1 = col2.hsi();\n } else if (m === 'lch' || m === 'hcl') {\n m = 'hcl';\n xyz0 = col1.hcl();\n xyz1 = col2.hcl();\n } else if (m === 'oklch') {\n xyz0 = col1.oklch().reverse();\n xyz1 = col2.oklch().reverse();\n }\n\n let hue0, hue1, sat0, sat1, lbv0, lbv1;\n if (m.substr(0, 1) === 'h' || m === 'oklch') {\n [hue0, sat0, lbv0] = xyz0;\n [hue1, sat1, lbv1] = xyz1;\n }\n\n let sat, hue, lbv, dh;\n\n if (!isNaN(hue0) && !isNaN(hue1)) {\n // both colors have hue\n if (hue1 > hue0 && hue1 - hue0 > 180) {\n dh = hue1 - (hue0 + 360);\n } else if (hue1 < hue0 && hue0 - hue1 > 180) {\n dh = hue1 + 360 - hue0;\n } else {\n dh = hue1 - hue0;\n }\n hue = hue0 + f * dh;\n } else if (!isNaN(hue0)) {\n hue = hue0;\n if ((lbv1 == 1 || lbv1 == 0) && m != 'hsv') sat = sat0;\n } else if (!isNaN(hue1)) {\n hue = hue1;\n if ((lbv0 == 1 || lbv0 == 0) && m != 'hsv') sat = sat1;\n } else {\n hue = Number.NaN;\n }\n\n if (sat === undefined) sat = sat0 + f * (sat1 - sat0);\n lbv = lbv0 + f * (lbv1 - lbv0);\n return m === 'oklch'\n ? new Color([lbv, sat, hue], m)\n : new Color([hue, sat, lbv], m);\n};\n","import '../io/lch/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst lch = (col1, col2, f) => {\n return interpolate_hsx(col1, col2, f, 'lch');\n};\n\n// register interpolator\nindex.lch = lch;\nindex.hcl = lch;\n\nexport default lch;\n","import '../io/num/index.js';\nimport index from './index.js';\n\nimport Color from '../Color.js';\n\nconst num = (col1, col2, f) => {\n const c1 = col1.num();\n const c2 = col2.num();\n return new Color(c1 + f * (c2 - c1), 'num');\n};\n\n// register interpolator\nindex.num = num;\n\nexport default num;\n","import '../io/hcg/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst hcg = (col1, col2, f) => {\n return interpolate_hsx(col1, col2, f, 'hcg');\n};\n\n// register interpolator\nindex.hcg = hcg;\n\nexport default hcg;\n","import '../io/hsi/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst hsi = (col1, col2, f) => {\n return interpolate_hsx(col1, col2, f, 'hsi');\n};\n\n// register interpolator\nindex.hsi = hsi;\n\nexport default hsi;\n","import '../io/hsl/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst hsl = (col1, col2, f) => {\n return interpolate_hsx(col1, col2, f, 'hsl');\n};\n\n// register interpolator\nindex.hsl = hsl;\n\nexport default hsl;\n","import '../io/hsv/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst hsv = (col1, col2, f) => {\n return interpolate_hsx(col1, col2, f, 'hsv');\n};\n\n// register interpolator\nindex.hsv = hsv;\n\nexport default hsv;\n","import '../io/oklab/index.js';\nimport index from './index.js';\nimport Color from '../Color.js';\n\nconst oklab = (col1, col2, f) => {\n const xyz0 = col1.oklab();\n const xyz1 = col2.oklab();\n return new Color(\n xyz0[0] + f * (xyz1[0] - xyz0[0]),\n xyz0[1] + f * (xyz1[1] - xyz0[1]),\n xyz0[2] + f * (xyz1[2] - xyz0[2]),\n 'oklab'\n );\n};\n\n// register interpolator\nindex.oklab = oklab;\n\nexport default oklab;\n","import '../io/lch/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst oklch = (col1, col2, f) => {\n return interpolate_hsx(col1, col2, f, 'oklch');\n};\n\n// register interpolator\nindex.oklch = oklch;\n\nexport default oklch;\n","import Color from '../Color.js';\nimport { clip_rgb } from '../utils/index.js';\n\nconst { pow, sqrt, PI, cos, sin, atan2 } = Math;\n\nexport default (colors, mode = 'lrgb', weights = null) => {\n const l = colors.length;\n if (!weights) weights = Array.from(new Array(l)).map(() => 1);\n // normalize weights\n const k =\n l /\n weights.reduce(function (a, b) {\n return a + b;\n });\n weights.forEach((w, i) => {\n weights[i] *= k;\n });\n // convert colors to Color objects\n colors = colors.map((c) => new Color(c));\n if (mode === 'lrgb') {\n return _average_lrgb(colors, weights);\n }\n const first = colors.shift();\n const xyz = first.get(mode);\n const cnt = [];\n let dx = 0;\n let dy = 0;\n // initial color\n for (let i = 0; i < xyz.length; i++) {\n xyz[i] = (xyz[i] || 0) * weights[0];\n cnt.push(isNaN(xyz[i]) ? 0 : weights[0]);\n if (mode.charAt(i) === 'h' && !isNaN(xyz[i])) {\n const A = (xyz[i] / 180) * PI;\n dx += cos(A) * weights[0];\n dy += sin(A) * weights[0];\n }\n }\n\n let alpha = first.alpha() * weights[0];\n colors.forEach((c, ci) => {\n const xyz2 = c.get(mode);\n alpha += c.alpha() * weights[ci + 1];\n for (let i = 0; i < xyz.length; i++) {\n if (!isNaN(xyz2[i])) {\n cnt[i] += weights[ci + 1];\n if (mode.charAt(i) === 'h') {\n const A = (xyz2[i] / 180) * PI;\n dx += cos(A) * weights[ci + 1];\n dy += sin(A) * weights[ci + 1];\n } else {\n xyz[i] += xyz2[i] * weights[ci + 1];\n }\n }\n }\n });\n\n for (let i = 0; i < xyz.length; i++) {\n if (mode.charAt(i) === 'h') {\n let A = (atan2(dy / cnt[i], dx / cnt[i]) / PI) * 180;\n while (A < 0) A += 360;\n while (A >= 360) A -= 360;\n xyz[i] = A;\n } else {\n xyz[i] = xyz[i] / cnt[i];\n }\n }\n alpha /= l;\n return new Color(xyz, mode).alpha(alpha > 0.99999 ? 1 : alpha, true);\n};\n\nconst _average_lrgb = (colors, weights) => {\n const l = colors.length;\n const xyz = [0, 0, 0, 0];\n for (let i = 0; i < colors.length; i++) {\n const col = colors[i];\n const f = weights[i] / l;\n const rgb = col._rgb;\n xyz[0] += pow(rgb[0], 2) * f;\n xyz[1] += pow(rgb[1], 2) * f;\n xyz[2] += pow(rgb[2], 2) * f;\n xyz[3] += rgb[3] * f;\n }\n xyz[0] = sqrt(xyz[0]);\n xyz[1] = sqrt(xyz[1]);\n xyz[2] = sqrt(xyz[2]);\n if (xyz[3] > 0.9999999) xyz[3] = 1;\n return new Color(clip_rgb(xyz));\n};\n","// minimal multi-purpose interface\n\n// @requires utils color analyze\nimport chroma from '../chroma.js';\nimport { limit, type } from '../utils/index.js';\n\nconst { pow } = Math;\n\nexport default function (colors) {\n // constructor\n let _mode = 'rgb';\n let _nacol = chroma('#ccc');\n let _spread = 0;\n // const _fixed = false;\n let _domain = [0, 1];\n let _pos = [];\n let _padding = [0, 0];\n let _classes = false;\n let _colors = [];\n let _out = false;\n let _min = 0;\n let _max = 1;\n let _correctLightness = false;\n let _colorCache = {};\n let _useCache = true;\n let _gamma = 1;\n\n // private methods\n\n const setColors = function (colors) {\n colors = colors || ['#fff', '#000'];\n if (\n colors &&\n type(colors) === 'string' &&\n chroma.brewer &&\n chroma.brewer[colors.toLowerCase()]\n ) {\n colors = chroma.brewer[colors.toLowerCase()];\n }\n if (type(colors) === 'array') {\n // handle single color\n if (colors.length === 1) {\n colors = [colors[0], colors[0]];\n }\n // make a copy of the colors\n colors = colors.slice(0);\n // convert to chroma classes\n for (let c = 0; c < colors.length; c++) {\n colors[c] = chroma(colors[c]);\n }\n // auto-fill color position\n _pos.length = 0;\n for (let c = 0; c < colors.length; c++) {\n _pos.push(c / (colors.length - 1));\n }\n }\n resetCache();\n return (_colors = colors);\n };\n\n const getClass = function (value) {\n if (_classes != null) {\n const n = _classes.length - 1;\n let i = 0;\n while (i < n && value >= _classes[i]) {\n i++;\n }\n return i - 1;\n }\n return 0;\n };\n\n let tMapLightness = (t) => t;\n let tMapDomain = (t) => t;\n\n // const classifyValue = function(value) {\n // let val = value;\n // if (_classes.length > 2) {\n // const n = _classes.length-1;\n // const i = getClass(value);\n // const minc = _classes[0] + ((_classes[1]-_classes[0]) * (0 + (_spread * 0.5))); // center of 1st class\n // const maxc = _classes[n-1] + ((_classes[n]-_classes[n-1]) * (1 - (_spread * 0.5))); // center of last class\n // val = _min + ((((_classes[i] + ((_classes[i+1] - _classes[i]) * 0.5)) - minc) / (maxc-minc)) * (_max - _min));\n // }\n // return val;\n // };\n\n const getColor = function (val, bypassMap) {\n let col, t;\n if (bypassMap == null) {\n bypassMap = false;\n }\n if (isNaN(val) || val === null) {\n return _nacol;\n }\n if (!bypassMap) {\n if (_classes && _classes.length > 2) {\n // find the class\n const c = getClass(val);\n t = c / (_classes.length - 2);\n } else if (_max !== _min) {\n // just interpolate between min/max\n t = (val - _min) / (_max - _min);\n } else {\n t = 1;\n }\n } else {\n t = val;\n }\n\n // domain map\n t = tMapDomain(t);\n\n if (!bypassMap) {\n t = tMapLightness(t); // lightness correction\n }\n\n if (_gamma !== 1) {\n t = pow(t, _gamma);\n }\n\n t = _padding[0] + t * (1 - _padding[0] - _padding[1]);\n\n t = limit(t, 0, 1);\n\n const k = Math.floor(t * 10000);\n\n if (_useCache && _colorCache[k]) {\n col = _colorCache[k];\n } else {\n if (type(_colors) === 'array') {\n //for i in [0.._pos.length-1]\n for (let i = 0; i < _pos.length; i++) {\n const p = _pos[i];\n if (t <= p) {\n col = _colors[i];\n break;\n }\n if (t >= p && i === _pos.length - 1) {\n col = _colors[i];\n break;\n }\n if (t > p && t < _pos[i + 1]) {\n t = (t - p) / (_pos[i + 1] - p);\n col = chroma.interpolate(\n _colors[i],\n _colors[i + 1],\n t,\n _mode\n );\n break;\n }\n }\n } else if (type(_colors) === 'function') {\n col = _colors(t);\n }\n if (_useCache) {\n _colorCache[k] = col;\n }\n }\n return col;\n };\n\n var resetCache = () => (_colorCache = {});\n\n setColors(colors);\n\n // public interface\n\n const f = function (v) {\n const c = chroma(getColor(v));\n if (_out && c[_out]) {\n return c[_out]();\n } else {\n return c;\n }\n };\n\n f.classes = function (classes) {\n if (classes != null) {\n if (type(classes) === 'array') {\n _classes = classes;\n _domain = [classes[0], classes[classes.length - 1]];\n } else {\n const d = chroma.analyze(_domain);\n if (classes === 0) {\n _classes = [d.min, d.max];\n } else {\n _classes = chroma.limits(d, 'e', classes);\n }\n }\n return f;\n }\n return _classes;\n };\n\n f.domain = function (domain) {\n if (!arguments.length) {\n return _domain;\n }\n _min = domain[0];\n _max = domain[domain.length - 1];\n _pos = [];\n const k = _colors.length;\n if (domain.length === k && _min !== _max) {\n // update positions\n for (let d of Array.from(domain)) {\n _pos.push((d - _min) / (_max - _min));\n }\n } else {\n for (let c = 0; c < k; c++) {\n _pos.push(c / (k - 1));\n }\n if (domain.length > 2) {\n // set domain map\n const tOut = domain.map((d, i) => i / (domain.length - 1));\n const tBreaks = domain.map((d) => (d - _min) / (_max - _min));\n if (!tBreaks.every((val, i) => tOut[i] === val)) {\n tMapDomain = (t) => {\n if (t <= 0 || t >= 1) return t;\n let i = 0;\n while (t >= tBreaks[i + 1]) i++;\n const f =\n (t - tBreaks[i]) / (tBreaks[i + 1] - tBreaks[i]);\n const out = tOut[i] + f * (tOut[i + 1] - tOut[i]);\n return out;\n };\n }\n }\n }\n _domain = [_min, _max];\n return f;\n };\n\n f.mode = function (_m) {\n if (!arguments.length) {\n return _mode;\n }\n _mode = _m;\n resetCache();\n return f;\n };\n\n f.range = function (colors, _pos) {\n setColors(colors, _pos);\n return f;\n };\n\n f.out = function (_o) {\n _out = _o;\n return f;\n };\n\n f.spread = function (val) {\n if (!arguments.length) {\n return _spread;\n }\n _spread = val;\n return f;\n };\n\n f.correctLightness = function (v) {\n if (v == null) {\n v = true;\n }\n _correctLightness = v;\n resetCache();\n if (_correctLightness) {\n tMapLightness = function (t) {\n const L0 = getColor(0, true).lab()[0];\n const L1 = getColor(1, true).lab()[0];\n const pol = L0 > L1;\n let L_actual = getColor(t, true).lab()[0];\n const L_ideal = L0 + (L1 - L0) * t;\n let L_diff = L_actual - L_ideal;\n let t0 = 0;\n let t1 = 1;\n let max_iter = 20;\n while (Math.abs(L_diff) > 1e-2 && max_iter-- > 0) {\n (function () {\n if (pol) {\n L_diff *= -1;\n }\n if (L_diff < 0) {\n t0 = t;\n t += (t1 - t) * 0.5;\n } else {\n t1 = t;\n t += (t0 - t) * 0.5;\n }\n L_actual = getColor(t, true).lab()[0];\n return (L_diff = L_actual - L_ideal);\n })();\n }\n return t;\n };\n } else {\n tMapLightness = (t) => t;\n }\n return f;\n };\n\n f.padding = function (p) {\n if (p != null) {\n if (type(p) === 'number') {\n p = [p, p];\n }\n _padding = p;\n return f;\n } else {\n return _padding;\n }\n };\n\n f.colors = function (numColors, out) {\n // If no arguments are given, return the original colors that were provided\n if (arguments.length < 2) {\n out = 'hex';\n }\n let result = [];\n\n if (arguments.length === 0) {\n result = _colors.slice(0);\n } else if (numColors === 1) {\n result = [f(0.5)];\n } else if (numColors > 1) {\n const dm = _domain[0];\n const dd = _domain[1] - dm;\n result = __range__(0, numColors, false).map((i) =>\n f(dm + (i / (numColors - 1)) * dd)\n );\n } else {\n // returns all colors based on the defined classes\n colors = [];\n let samples = [];\n if (_classes && _classes.length > 2) {\n for (\n let i = 1, end = _classes.length, asc = 1 <= end;\n asc ? i < end : i > end;\n asc ? i++ : i--\n ) {\n samples.push((_classes[i - 1] + _classes[i]) * 0.5);\n }\n } else {\n samples = _domain;\n }\n result = samples.map((v) => f(v));\n }\n\n if (chroma[out]) {\n result = result.map((c) => c[out]());\n }\n return result;\n };\n\n f.cache = function (c) {\n if (c != null) {\n _useCache = c;\n return f;\n } else {\n return _useCache;\n }\n };\n\n f.gamma = function (g) {\n if (g != null) {\n _gamma = g;\n return f;\n } else {\n return _gamma;\n }\n };\n\n f.nodata = function (d) {\n if (d != null) {\n _nacol = chroma(d);\n return f;\n } else {\n return _nacol;\n }\n };\n\n return f;\n}\n\nfunction __range__(left, right, inclusive) {\n let range = [];\n let ascending = left < right;\n let end = !inclusive ? right : ascending ? right + 1 : right - 1;\n for (let i = left; ascending ? i < end : i > end; ascending ? i++ : i--) {\n range.push(i);\n }\n return range;\n}\n","//\n// interpolates between a set of colors uzing a bezier spline\n//\n\n// @requires utils lab\nimport Color from '../Color.js';\nimport '../io/lab/index.js';\nimport scale from './scale.js';\n\n// nth row of the pascal triangle\nconst binom_row = function (n) {\n let row = [1, 1];\n for (let i = 1; i < n; i++) {\n let newrow = [1];\n for (let j = 1; j <= row.length; j++) {\n newrow[j] = (row[j] || 0) + row[j - 1];\n }\n row = newrow;\n }\n return row;\n};\n\nconst bezier = function (colors) {\n let I, lab0, lab1, lab2;\n colors = colors.map((c) => new Color(c));\n if (colors.length === 2) {\n // linear interpolation\n [lab0, lab1] = colors.map((c) => c.lab());\n I = function (t) {\n const lab = [0, 1, 2].map((i) => lab0[i] + t * (lab1[i] - lab0[i]));\n return new Color(lab, 'lab');\n };\n } else if (colors.length === 3) {\n // quadratic bezier interpolation\n [lab0, lab1, lab2] = colors.map((c) => c.lab());\n I = function (t) {\n const lab = [0, 1, 2].map(\n (i) =>\n (1 - t) * (1 - t) * lab0[i] +\n 2 * (1 - t) * t * lab1[i] +\n t * t * lab2[i]\n );\n return new Color(lab, 'lab');\n };\n } else if (colors.length === 4) {\n // cubic bezier interpolation\n let lab3;\n [lab0, lab1, lab2, lab3] = colors.map((c) => c.lab());\n I = function (t) {\n const lab = [0, 1, 2].map(\n (i) =>\n (1 - t) * (1 - t) * (1 - t) * lab0[i] +\n 3 * (1 - t) * (1 - t) * t * lab1[i] +\n 3 * (1 - t) * t * t * lab2[i] +\n t * t * t * lab3[i]\n );\n return new Color(lab, 'lab');\n };\n } else if (colors.length >= 5) {\n // general case (degree n bezier)\n let labs, row, n;\n labs = colors.map((c) => c.lab());\n n = colors.length - 1;\n row = binom_row(n);\n I = function (t) {\n const u = 1 - t;\n const lab = [0, 1, 2].map((i) =>\n labs.reduce(\n (sum, el, j) =>\n sum + row[j] * u ** (n - j) * t ** j * el[i],\n 0\n )\n );\n return new Color(lab, 'lab');\n };\n } else {\n throw new RangeError('No point in running bezier with only one color.');\n }\n return I;\n};\n\nexport default (colors) => {\n const f = bezier(colors);\n f.scale = () => scale(f);\n return f;\n};\n","/*\n * interpolates between a set of colors uzing a bezier spline\n * blend mode formulas taken from https://web.archive.org/web/20180110014946/http://www.venture-ware.com/kevin/coding/lets-learn-math-photoshop-blend-modes/\n */\n\nimport '../io/rgb/index.js';\nimport chroma from '../chroma.js';\n\nconst blend = (bottom, top, mode) => {\n if (!blend[mode]) {\n throw new Error('unknown blend mode ' + mode);\n }\n return blend[mode](bottom, top);\n};\n\nconst blend_f = (f) => (bottom, top) => {\n const c0 = chroma(top).rgb();\n const c1 = chroma(bottom).rgb();\n return chroma.rgb(f(c0, c1));\n};\n\nconst each = (f) => (c0, c1) => {\n const out = [];\n out[0] = f(c0[0], c1[0]);\n out[1] = f(c0[1], c1[1]);\n out[2] = f(c0[2], c1[2]);\n return out;\n};\n\nconst normal = (a) => a;\nconst multiply = (a, b) => (a * b) / 255;\nconst darken = (a, b) => (a > b ? b : a);\nconst lighten = (a, b) => (a > b ? a : b);\nconst screen = (a, b) => 255 * (1 - (1 - a / 255) * (1 - b / 255));\nconst overlay = (a, b) =>\n b < 128 ? (2 * a * b) / 255 : 255 * (1 - 2 * (1 - a / 255) * (1 - b / 255));\nconst burn = (a, b) => 255 * (1 - (1 - b / 255) / (a / 255));\nconst dodge = (a, b) => {\n if (a === 255) return 255;\n a = (255 * (b / 255)) / (1 - a / 255);\n return a > 255 ? 255 : a;\n};\n\n// # add = (a,b) ->\n// # if (a + b > 255) then 255 else a + b\n\nblend.normal = blend_f(each(normal));\nblend.multiply = blend_f(each(multiply));\nblend.screen = blend_f(each(screen));\nblend.overlay = blend_f(each(overlay));\nblend.darken = blend_f(each(darken));\nblend.lighten = blend_f(each(lighten));\nblend.dodge = blend_f(each(dodge));\nblend.burn = blend_f(each(burn));\n// blend.add = blend_f(each(add));\n\nexport default blend;\n","// cubehelix interpolation\n// based on D.A. Green \"A colour scheme for the display of astronomical intensity images\"\n// http://astron-soc.in/bulletin/11June/289392011.pdf\nimport { type, clip_rgb, TWOPI } from '../utils/index.js';\nimport chroma from '../chroma.js';\nconst { pow, sin, cos } = Math;\n\nexport default function (\n start = 300,\n rotations = -1.5,\n hue = 1,\n gamma = 1,\n lightness = [0, 1]\n) {\n let dh = 0,\n dl;\n if (type(lightness) === 'array') {\n dl = lightness[1] - lightness[0];\n } else {\n dl = 0;\n lightness = [lightness, lightness];\n }\n const f = function (fract) {\n const a = TWOPI * ((start + 120) / 360 + rotations * fract);\n const l = pow(lightness[0] + dl * fract, gamma);\n const h = dh !== 0 ? hue[0] + fract * dh : hue;\n const amp = (h * l * (1 - l)) / 2;\n const cos_a = cos(a);\n const sin_a = sin(a);\n const r = l + amp * (-0.14861 * cos_a + 1.78277 * sin_a);\n const g = l + amp * (-0.29227 * cos_a - 0.90649 * sin_a);\n const b = l + amp * (+1.97294 * cos_a);\n return chroma(clip_rgb([r * 255, g * 255, b * 255, 1]));\n };\n f.start = function (s) {\n if (s == null) {\n return start;\n }\n start = s;\n return f;\n };\n f.rotations = function (r) {\n if (r == null) {\n return rotations;\n }\n rotations = r;\n return f;\n };\n f.gamma = function (g) {\n if (g == null) {\n return gamma;\n }\n gamma = g;\n return f;\n };\n f.hue = function (h) {\n if (h == null) {\n return hue;\n }\n hue = h;\n if (type(hue) === 'array') {\n dh = hue[1] - hue[0];\n if (dh === 0) {\n hue = hue[1];\n }\n } else {\n dh = 0;\n }\n return f;\n };\n f.lightness = function (h) {\n if (h == null) {\n return lightness;\n }\n if (type(h) === 'array') {\n lightness = h;\n dl = h[1] - h[0];\n } else {\n lightness = [h, h];\n dl = 0;\n }\n return f;\n };\n f.scale = () => chroma.scale(f);\n f.hue(hue);\n return f;\n}\n","import Color from '../Color.js';\nconst digits = '0123456789abcdef';\n\nconst { floor, random } = Math;\n\nexport default () => {\n let code = '#';\n for (let i = 0; i < 6; i++) {\n code += digits.charAt(floor(random() * 16));\n }\n return new Color(code, 'hex');\n};\n","import type from './type.js';\n\nconst { log, pow, floor, abs } = Math;\n\nexport function analyze(data, key = null) {\n const r = {\n min: Number.MAX_VALUE,\n max: Number.MAX_VALUE * -1,\n sum: 0,\n values: [],\n count: 0\n };\n if (type(data) === 'object') {\n data = Object.values(data);\n }\n data.forEach((val) => {\n if (key && type(val) === 'object') val = val[key];\n if (val !== undefined && val !== null && !isNaN(val)) {\n r.values.push(val);\n r.sum += val;\n if (val < r.min) r.min = val;\n if (val > r.max) r.max = val;\n r.count += 1;\n }\n });\n\n r.domain = [r.min, r.max];\n\n r.limits = (mode, num) => limits(r, mode, num);\n\n return r;\n}\n\nexport function limits(data, mode = 'equal', num = 7) {\n if (type(data) == 'array') {\n data = analyze(data);\n }\n const { min, max } = data;\n const values = data.values.sort((a, b) => a - b);\n\n if (num === 1) {\n return [min, max];\n }\n\n const limits = [];\n\n if (mode.substr(0, 1) === 'c') {\n // continuous\n limits.push(min);\n limits.push(max);\n }\n\n if (mode.substr(0, 1) === 'e') {\n // equal interval\n limits.push(min);\n for (let i = 1; i < num; i++) {\n limits.push(min + (i / num) * (max - min));\n }\n limits.push(max);\n } else if (mode.substr(0, 1) === 'l') {\n // log scale\n if (min <= 0) {\n throw new Error(\n 'Logarithmic scales are only possible for values > 0'\n );\n }\n const min_log = Math.LOG10E * log(min);\n const max_log = Math.LOG10E * log(max);\n limits.push(min);\n for (let i = 1; i < num; i++) {\n limits.push(pow(10, min_log + (i / num) * (max_log - min_log)));\n }\n limits.push(max);\n } else if (mode.substr(0, 1) === 'q') {\n // quantile scale\n limits.push(min);\n for (let i = 1; i < num; i++) {\n const p = ((values.length - 1) * i) / num;\n const pb = floor(p);\n if (pb === p) {\n limits.push(values[pb]);\n } else {\n // p > pb\n const pr = p - pb;\n limits.push(values[pb] * (1 - pr) + values[pb + 1] * pr);\n }\n }\n limits.push(max);\n } else if (mode.substr(0, 1) === 'k') {\n // k-means clustering\n /*\n implementation based on\n http://code.google.com/p/figue/source/browse/trunk/figue.js#336\n simplified for 1-d input values\n */\n let cluster;\n const n = values.length;\n const assignments = new Array(n);\n const clusterSizes = new Array(num);\n let repeat = true;\n let nb_iters = 0;\n let centroids = null;\n\n // get seed values\n centroids = [];\n centroids.push(min);\n for (let i = 1; i < num; i++) {\n centroids.push(min + (i / num) * (max - min));\n }\n centroids.push(max);\n\n while (repeat) {\n // assignment step\n for (let j = 0; j < num; j++) {\n clusterSizes[j] = 0;\n }\n for (let i = 0; i < n; i++) {\n const value = values[i];\n let mindist = Number.MAX_VALUE;\n let best;\n for (let j = 0; j < num; j++) {\n const dist = abs(centroids[j] - value);\n if (dist < mindist) {\n mindist = dist;\n best = j;\n }\n clusterSizes[best]++;\n assignments[i] = best;\n }\n }\n\n // update centroids step\n const newCentroids = new Array(num);\n for (let j = 0; j < num; j++) {\n newCentroids[j] = null;\n }\n for (let i = 0; i < n; i++) {\n cluster = assignments[i];\n if (newCentroids[cluster] === null) {\n newCentroids[cluster] = values[i];\n } else {\n newCentroids[cluster] += values[i];\n }\n }\n for (let j = 0; j < num; j++) {\n newCentroids[j] *= 1 / clusterSizes[j];\n }\n\n // check convergence\n repeat = false;\n for (let j = 0; j < num; j++) {\n if (newCentroids[j] !== centroids[j]) {\n repeat = true;\n break;\n }\n }\n\n centroids = newCentroids;\n nb_iters++;\n\n if (nb_iters > 200) {\n repeat = false;\n }\n }\n\n // finished k-means clustering\n // the next part is borrowed from gabrielflor.it\n const kClusters = {};\n for (let j = 0; j < num; j++) {\n kClusters[j] = [];\n }\n for (let i = 0; i < n; i++) {\n cluster = assignments[i];\n kClusters[cluster].push(values[i]);\n }\n let tmpKMeansBreaks = [];\n for (let j = 0; j < num; j++) {\n tmpKMeansBreaks.push(kClusters[j][0]);\n tmpKMeansBreaks.push(kClusters[j][kClusters[j].length - 1]);\n }\n tmpKMeansBreaks = tmpKMeansBreaks.sort((a, b) => a - b);\n limits.push(tmpKMeansBreaks[0]);\n for (let i = 1; i < tmpKMeansBreaks.length; i += 2) {\n const v = tmpKMeansBreaks[i];\n if (!isNaN(v) && limits.indexOf(v) === -1) {\n limits.push(v);\n }\n }\n }\n return limits;\n}\n","import Color from '../Color.js';\nimport '../ops/luminance.js';\n\nexport default (a, b) => {\n // WCAG contrast ratio\n // see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n a = new Color(a);\n b = new Color(b);\n const l1 = a.luminance();\n const l2 = b.luminance();\n return l1 > l2 ? (l1 + 0.05) / (l2 + 0.05) : (l2 + 0.05) / (l1 + 0.05);\n};\n","import Color from '../Color.js';\nconst { sqrt, pow, min, max, atan2, abs, cos, sin, exp, PI } = Math;\n\nexport default function (a, b, Kl = 1, Kc = 1, Kh = 1) {\n // Delta E (CIE 2000)\n // see http://www.brucelindbloom.com/index.html?Eqn_DeltaE_CIE2000.html\n var rad2deg = function (rad) {\n return (360 * rad) / (2 * PI);\n };\n var deg2rad = function (deg) {\n return (2 * PI * deg) / 360;\n };\n a = new Color(a);\n b = new Color(b);\n const [L1, a1, b1] = Array.from(a.lab());\n const [L2, a2, b2] = Array.from(b.lab());\n const avgL = (L1 + L2) / 2;\n const C1 = sqrt(pow(a1, 2) + pow(b1, 2));\n const C2 = sqrt(pow(a2, 2) + pow(b2, 2));\n const avgC = (C1 + C2) / 2;\n const G = 0.5 * (1 - sqrt(pow(avgC, 7) / (pow(avgC, 7) + pow(25, 7))));\n const a1p = a1 * (1 + G);\n const a2p = a2 * (1 + G);\n const C1p = sqrt(pow(a1p, 2) + pow(b1, 2));\n const C2p = sqrt(pow(a2p, 2) + pow(b2, 2));\n const avgCp = (C1p + C2p) / 2;\n const arctan1 = rad2deg(atan2(b1, a1p));\n const arctan2 = rad2deg(atan2(b2, a2p));\n const h1p = arctan1 >= 0 ? arctan1 : arctan1 + 360;\n const h2p = arctan2 >= 0 ? arctan2 : arctan2 + 360;\n const avgHp =\n abs(h1p - h2p) > 180 ? (h1p + h2p + 360) / 2 : (h1p + h2p) / 2;\n const T =\n 1 -\n 0.17 * cos(deg2rad(avgHp - 30)) +\n 0.24 * cos(deg2rad(2 * avgHp)) +\n 0.32 * cos(deg2rad(3 * avgHp + 6)) -\n 0.2 * cos(deg2rad(4 * avgHp - 63));\n let deltaHp = h2p - h1p;\n deltaHp =\n abs(deltaHp) <= 180\n ? deltaHp\n : h2p <= h1p\n ? deltaHp + 360\n : deltaHp - 360;\n deltaHp = 2 * sqrt(C1p * C2p) * sin(deg2rad(deltaHp) / 2);\n const deltaL = L2 - L1;\n const deltaCp = C2p - C1p;\n const sl = 1 + (0.015 * pow(avgL - 50, 2)) / sqrt(20 + pow(avgL - 50, 2));\n const sc = 1 + 0.045 * avgCp;\n const sh = 1 + 0.015 * avgCp * T;\n const deltaTheta = 30 * exp(-pow((avgHp - 275) / 25, 2));\n const Rc = 2 * sqrt(pow(avgCp, 7) / (pow(avgCp, 7) + pow(25, 7)));\n const Rt = -Rc * sin(2 * deg2rad(deltaTheta));\n const result = sqrt(\n pow(deltaL / (Kl * sl), 2) +\n pow(deltaCp / (Kc * sc), 2) +\n pow(deltaHp / (Kh * sh), 2) +\n Rt * (deltaCp / (Kc * sc)) * (deltaHp / (Kh * sh))\n );\n return max(0, min(100, result));\n}\n","import Color from '../Color.js';\n\n// simple Euclidean distance\nexport default function (a, b, mode = 'lab') {\n // Delta E (CIE 1976)\n // see http://www.brucelindbloom.com/index.html?Equations.html\n a = new Color(a);\n b = new Color(b);\n const l1 = a.get(mode);\n const l2 = b.get(mode);\n let sum_sq = 0;\n for (let i in l1) {\n const d = (l1[i] || 0) - (l2[i] || 0);\n sum_sq += d * d;\n }\n return Math.sqrt(sum_sq);\n}\n","import Color from '../Color.js';\n\nexport default (...args) => {\n try {\n new Color(...args);\n return true;\n // eslint-disable-next-line\n } catch (e) {\n return false;\n }\n};\n","// some pre-defined color scales:\nimport chroma from '../chroma.js';\nimport '../io/hsl/index.js';\nimport scale from '../generator/scale.js';\n\nexport default {\n cool() {\n return scale([chroma.hsl(180, 1, 0.9), chroma.hsl(250, 0.7, 0.4)]);\n },\n hot() {\n return scale(['#000', '#f00', '#ff0', '#fff'], [0, 0.25, 0.75, 1]).mode(\n 'rgb'\n );\n }\n};\n","/**\n ColorBrewer colors for chroma.js\n\n Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The\n Pennsylvania State University.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software distributed\n under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n CONDITIONS OF ANY KIND, either express or implied. See the License for the\n specific language governing permissions and limitations under the License.\n*/\n\nconst colorbrewer = {\n // sequential\n OrRd: ['#fff7ec', '#fee8c8', '#fdd49e', '#fdbb84', '#fc8d59', '#ef6548', '#d7301f', '#b30000', '#7f0000'],\n PuBu: ['#fff7fb', '#ece7f2', '#d0d1e6', '#a6bddb', '#74a9cf', '#3690c0', '#0570b0', '#045a8d', '#023858'],\n BuPu: ['#f7fcfd', '#e0ecf4', '#bfd3e6', '#9ebcda', '#8c96c6', '#8c6bb1', '#88419d', '#810f7c', '#4d004b'],\n Oranges: ['#fff5eb', '#fee6ce', '#fdd0a2', '#fdae6b', '#fd8d3c', '#f16913', '#d94801', '#a63603', '#7f2704'],\n BuGn: ['#f7fcfd', '#e5f5f9', '#ccece6', '#99d8c9', '#66c2a4', '#41ae76', '#238b45', '#006d2c', '#00441b'],\n YlOrBr: ['#ffffe5', '#fff7bc', '#fee391', '#fec44f', '#fe9929', '#ec7014', '#cc4c02', '#993404', '#662506'],\n YlGn: ['#ffffe5', '#f7fcb9', '#d9f0a3', '#addd8e', '#78c679', '#41ab5d', '#238443', '#006837', '#004529'],\n Reds: ['#fff5f0', '#fee0d2', '#fcbba1', '#fc9272', '#fb6a4a', '#ef3b2c', '#cb181d', '#a50f15', '#67000d'],\n RdPu: ['#fff7f3', '#fde0dd', '#fcc5c0', '#fa9fb5', '#f768a1', '#dd3497', '#ae017e', '#7a0177', '#49006a'],\n Greens: ['#f7fcf5', '#e5f5e0', '#c7e9c0', '#a1d99b', '#74c476', '#41ab5d', '#238b45', '#006d2c', '#00441b'],\n YlGnBu: ['#ffffd9', '#edf8b1', '#c7e9b4', '#7fcdbb', '#41b6c4', '#1d91c0', '#225ea8', '#253494', '#081d58'],\n Purples: ['#fcfbfd', '#efedf5', '#dadaeb', '#bcbddc', '#9e9ac8', '#807dba', '#6a51a3', '#54278f', '#3f007d'],\n GnBu: ['#f7fcf0', '#e0f3db', '#ccebc5', '#a8ddb5', '#7bccc4', '#4eb3d3', '#2b8cbe', '#0868ac', '#084081'],\n Greys: ['#ffffff', '#f0f0f0', '#d9d9d9', '#bdbdbd', '#969696', '#737373', '#525252', '#252525', '#000000'],\n YlOrRd: ['#ffffcc', '#ffeda0', '#fed976', '#feb24c', '#fd8d3c', '#fc4e2a', '#e31a1c', '#bd0026', '#800026'],\n PuRd: ['#f7f4f9', '#e7e1ef', '#d4b9da', '#c994c7', '#df65b0', '#e7298a', '#ce1256', '#980043', '#67001f'],\n Blues: ['#f7fbff', '#deebf7', '#c6dbef', '#9ecae1', '#6baed6', '#4292c6', '#2171b5', '#08519c', '#08306b'],\n PuBuGn: ['#fff7fb', '#ece2f0', '#d0d1e6', '#a6bddb', '#67a9cf', '#3690c0', '#02818a', '#016c59', '#014636'],\n Viridis: ['#440154', '#482777', '#3f4a8a', '#31678e', '#26838f', '#1f9d8a', '#6cce5a', '#b6de2b', '#fee825'],\n\n // diverging\n Spectral: ['#9e0142', '#d53e4f', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#e6f598', '#abdda4', '#66c2a5', '#3288bd', '#5e4fa2'],\n RdYlGn: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#d9ef8b', '#a6d96a', '#66bd63', '#1a9850', '#006837'],\n RdBu: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#f7f7f7', '#d1e5f0', '#92c5de', '#4393c3', '#2166ac', '#053061'],\n PiYG: ['#8e0152', '#c51b7d', '#de77ae', '#f1b6da', '#fde0ef', '#f7f7f7', '#e6f5d0', '#b8e186', '#7fbc41', '#4d9221', '#276419'],\n PRGn: ['#40004b', '#762a83', '#9970ab', '#c2a5cf', '#e7d4e8', '#f7f7f7', '#d9f0d3', '#a6dba0', '#5aae61', '#1b7837', '#00441b'],\n RdYlBu: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee090', '#ffffbf', '#e0f3f8', '#abd9e9', '#74add1', '#4575b4', '#313695'],\n BrBG: ['#543005', '#8c510a', '#bf812d', '#dfc27d', '#f6e8c3', '#f5f5f5', '#c7eae5', '#80cdc1', '#35978f', '#01665e', '#003c30'],\n RdGy: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#ffffff', '#e0e0e0', '#bababa', '#878787', '#4d4d4d', '#1a1a1a'],\n PuOr: ['#7f3b08', '#b35806', '#e08214', '#fdb863', '#fee0b6', '#f7f7f7', '#d8daeb', '#b2abd2', '#8073ac', '#542788', '#2d004b'],\n\n // qualitative\n Set2: ['#66c2a5', '#fc8d62', '#8da0cb', '#e78ac3', '#a6d854', '#ffd92f', '#e5c494', '#b3b3b3'],\n Accent: ['#7fc97f', '#beaed4', '#fdc086', '#ffff99', '#386cb0', '#f0027f', '#bf5b17', '#666666'],\n Set1: ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3', '#ff7f00', '#ffff33', '#a65628', '#f781bf', '#999999'],\n Set3: ['#8dd3c7', '#ffffb3', '#bebada', '#fb8072', '#80b1d3', '#fdb462', '#b3de69', '#fccde5', '#d9d9d9', '#bc80bd', '#ccebc5', '#ffed6f'],\n Dark2: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e', '#e6ab02', '#a6761d', '#666666'],\n Paired: ['#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928'],\n Pastel2: ['#b3e2cd', '#fdcdac', '#cbd5e8', '#f4cae4', '#e6f5c9', '#fff2ae', '#f1e2cc', '#cccccc'],\n Pastel1: ['#fbb4ae', '#b3cde3', '#ccebc5', '#decbe4', '#fed9a6', '#ffffcc', '#e5d8bd', '#fddaec', '#f2f2f2']\n};\n\n// add lowercase aliases for case-insensitive matches\nfor (let key of Object.keys(colorbrewer)) {\n colorbrewer[key.toLowerCase()] = colorbrewer[key];\n}\n\nexport default colorbrewer;\n","import chroma from './src/chroma.js';\n\n// feel free to comment out anything to rollup\n// a smaller chroma.js built\n\n// io --> convert colors\nimport './src/io/cmyk/index.js';\nimport './src/io/css/index.js';\nimport './src/io/gl/index.js';\nimport './src/io/hcg/index.js';\nimport './src/io/hex/index.js';\nimport './src/io/hsi/index.js';\nimport './src/io/hsl/index.js';\nimport './src/io/hsv/index.js';\nimport './src/io/lab/index.js';\nimport './src/io/lch/index.js';\nimport './src/io/named/index.js';\nimport './src/io/num/index.js';\nimport './src/io/rgb/index.js';\nimport './src/io/temp/index.js';\nimport './src/io/oklab/index.js';\nimport './src/io/oklch/index.js';\n\n// operators --> modify existing Colors\nimport './src/ops/alpha.js';\nimport './src/ops/clipped.js';\nimport './src/ops/darken.js';\nimport './src/ops/get.js';\nimport './src/ops/luminance.js';\nimport './src/ops/mix.js';\nimport './src/ops/premultiply.js';\nimport './src/ops/saturate.js';\nimport './src/ops/set.js';\nimport './src/ops/shade.js';\n\n// interpolators\nimport './src/interpolator/rgb.js';\nimport './src/interpolator/lrgb.js';\nimport './src/interpolator/lab.js';\nimport './src/interpolator/lch.js';\nimport './src/interpolator/num.js';\nimport './src/interpolator/hcg.js';\nimport './src/interpolator/hsi.js';\nimport './src/interpolator/hsl.js';\nimport './src/interpolator/hsv.js';\nimport './src/interpolator/oklab.js';\nimport './src/interpolator/oklch.js';\n\n// generators -- > create new colors\nimport average from './src/generator/average.js';\nimport bezier from './src/generator/bezier.js';\nimport blend from './src/generator/blend.js';\nimport cubehelix from './src/generator/cubehelix.js';\nimport mix from './src/generator/mix.js';\nimport random from './src/generator/random.js';\nimport scale from './src/generator/scale.js';\n\n// other utility methods\nimport { analyze } from './src/utils/analyze.js';\nimport contrast from './src/utils/contrast.js';\nimport deltaE from './src/utils/delta-e.js';\nimport distance from './src/utils/distance.js';\nimport { limits } from './src/utils/analyze.js';\nimport valid from './src/utils/valid.js';\nimport input from './src/io/input.js';\n\n// scale\nimport scales from './src/utils/scales.js';\n\n// colors\nimport colors from './src/colors/w3cx11.js';\nimport brewer from './src/colors/colorbrewer.js';\n\nObject.assign(chroma, {\n average,\n bezier,\n blend,\n cubehelix,\n mix,\n interpolate: mix,\n random,\n scale,\n analyze,\n contrast,\n deltaE,\n distance,\n limits,\n valid,\n scales,\n input,\n colors,\n brewer\n});\n\nexport default chroma;\n","import{isServer as t}from\"lit-html/is-server.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s{constructor(s,{target:i,config:h,callback:o,skipInitial:e}){this.t=new Set,this.o=!1,this.i=!1,this.h=s,null!==i&&this.t.add(i??s),this.l=h,this.o=e??this.o,this.callback=o,t||(window.MutationObserver?(this.u=new MutationObserver((t=>{this.handleChanges(t),this.h.requestUpdate()})),s.addController(this)):console.warn(\"MutationController error: browser does not support MutationObserver.\"))}handleChanges(t){this.value=this.callback?.(t,this.u)}hostConnected(){for(const t of this.t)this.observe(t)}hostDisconnected(){this.disconnect()}async hostUpdated(){const t=this.u.takeRecords();(t.length||!this.o&&this.i)&&this.handleChanges(t),this.i=!1}observe(t){this.t.add(t),this.u.observe(t,this.l),this.i=!0,this.h.requestUpdate()}disconnect(){this.u.disconnect()}}export{s as MutationController};\n//# sourceMappingURL=mutation-controller.js.map\n","/**\n * A array with color names. Based on https://www.w3.org/TR/css-color-4/#named-colors\n */\nconst names = [\n 'aliceblue',\n 'antiquewhite',\n 'aqua',\n 'aquamarine',\n 'azure',\n 'beige',\n 'bisque',\n 'black',\n 'blanchedalmond',\n 'blue',\n 'blueviolet',\n 'brown',\n 'burlywood',\n 'cadetblue',\n 'chartreuse',\n 'chocolate',\n 'coral',\n 'cornflowerblue',\n 'cornsilk',\n 'crimson',\n 'cyan',\n 'darkblue',\n 'darkcyan',\n 'darkgoldenrod',\n 'darkgray',\n 'darkgreen',\n 'darkgrey',\n 'darkkhaki',\n 'darkmagenta',\n 'darkolivegreen',\n 'darkorange',\n 'darkorchid',\n 'darkred',\n 'darksalmon',\n 'darkseagreen',\n 'darkslateblue',\n 'darkslategray',\n 'darkslategrey',\n 'darkturquoise',\n 'darkviolet',\n 'deeppink',\n 'deepskyblue',\n 'dimgray',\n 'dimgrey',\n 'dodgerblue',\n 'firebrick',\n 'floralwhite',\n 'forestgreen',\n 'fuchsia',\n 'gainsboro',\n 'ghostwhite',\n 'gold',\n 'goldenrod',\n 'gray',\n 'green',\n 'greenyellow',\n 'grey',\n 'honeydew',\n 'hotpink',\n 'indianred',\n 'indigo',\n 'ivory',\n 'khaki',\n 'lavender',\n 'lavenderblush',\n 'lawngreen',\n 'lemonchiffon',\n 'lightblue',\n 'lightcoral',\n 'lightcyan',\n 'lightgoldenrodyellow',\n 'lightgray',\n 'lightgreen',\n 'lightgrey',\n 'lightpink',\n 'lightsalmon',\n 'lightseagreen',\n 'lightskyblue',\n 'lightslategray',\n 'lightslategrey',\n 'lightsteelblue',\n 'lightyellow',\n 'lime',\n 'limegreen',\n 'linen',\n 'magenta',\n 'maroon',\n 'mediumaquamarine',\n 'mediumblue',\n 'mediumorchid',\n 'mediumpurple',\n 'mediumseagreen',\n 'mediumslateblue',\n 'mediumspringgreen',\n 'mediumturquoise',\n 'mediumvioletred',\n 'midnightblue',\n 'mintcream',\n 'mistyrose',\n 'moccasin',\n 'navajowhite',\n 'navy',\n 'oldlace',\n 'olive',\n 'olivedrab',\n 'orange',\n 'orangered',\n 'orchid',\n 'palegoldenrod',\n 'palegreen',\n 'paleturquoise',\n 'palevioletred',\n 'papayawhip',\n 'peachpuff',\n 'peru',\n 'pink',\n 'plum',\n 'powderblue',\n 'purple',\n 'rebeccapurple',\n 'red',\n 'rosybrown',\n 'royalblue',\n 'saddlebrown',\n 'salmon',\n 'sandybrown',\n 'seagreen',\n 'seashell',\n 'sienna',\n 'silver',\n 'skyblue',\n 'slateblue',\n 'slategray',\n 'slategrey',\n 'snow',\n 'springgreen',\n 'steelblue',\n 'tan',\n 'teal',\n 'thistle',\n 'tomato',\n 'turquoise',\n 'violet',\n 'wheat',\n 'white',\n 'whitesmoke',\n 'yellow',\n 'yellowgreen',\n];\nexport default names;\n//# sourceMappingURL=index.js.map","\r\nimport type { Property } from 'csstype'\r\n\r\ntype RGBColor = `rgb(${number}, ${number}, ${number})`;\r\n\r\nexport function ResolveCSSColor(color: Property.Color): RGBColor {\r\n const template = document.createElement('template')\r\n template.style.color = color;\r\n document.body.appendChild(template)\r\n const result = getComputedStyle(template).color;\r\n template.remove()\r\n return result as RGBColor;\r\n}\r\n","import { css, html } from 'lit'\r\nimport { customElement, property } from 'lit/decorators.js'\r\nimport { MutationController } from '@lit-labs/observers/mutation-controller.js';\r\nimport { useEffect } from 'haunted';\r\nimport CSS_NAMED_COLORS from 'colors-named'\r\nimport chroma from 'chroma-js'\r\nimport { LitHauntedElement } from '../mixins/lit-haunted-element';\r\nimport { ResolveCSSColor } from '../functions/resolve_css_color';\r\n\r\nconst FONT_SIZE_EXPRESSION = css`var(--size)*0.66`;\r\nconst EXCLUDED_COLORS: string[] = ['blue']\r\nexport const NAMED_COLORS: string[] = Array.from(new Set([\r\n 'dodgerblue', 'green', '#D83E5D', 'darkorange', '#EABB00', 'blueviolet', // base\r\n 'mediumblue', 'olivedrab', '#AF1131', 'orangered', 'peru', 'indigo', // darker\r\n 'cornflowerblue', 'mediumseagreen', 'salmon', 'orange', 'gold', 'mediumpurple', // lighter\r\n 'deepskyblue', 'limegreen', 'hotpink', 'coral', '#FFD335', 'violet', // off saturated\r\n 'steelblue', 'teal', 'red', 'lightsalmon', 'tan', 'rebeccapurple', // off desaturated\r\n ...CSS_NAMED_COLORS]))\r\n .filter(value => {\r\n const color = chroma(value)\r\n const [_, saturation, lightness] = color.hsl()\r\n const luminance = color.luminance()\r\n return lightness < 0.75 && luminance < 0.7 && saturation > 0.1;\r\n })\r\n .filter(v => !EXCLUDED_COLORS.includes(v))\r\n\r\n@customElement('ep-number-badge')\r\nexport class EPNumberBadge extends LitHauntedElement {\r\n // Adjusts font-size whenever the slotted element mutates\r\n // @ts-ignore we\r\n private _observer = new MutationController(this, { \r\n target: this,\r\n callback: () => this._adjustFontSize(),\r\n config: { attributes: false, characterData: true, subtree: true, }\r\n })\r\n // Estimates the number of digits used to makeup the number\r\n get digits(): number {\r\n return this.textContent?.trim().length ?? 1;\r\n }\r\n\r\n @property({ type: Boolean, reflect: true })\r\n circle: boolean = false;\r\n\r\n @property({ type: Number, attribute: 'named-color-index' })\r\n namedColorIndex?: number;\r\n\r\n @property({ type: Number, })\r\n scale: number = 1.0;\r\n\r\n // (Attempts to) adjust the font-size so that the number fits cleanly inside the badge\r\n private _adjustFontSize() {\r\n const digits = this.digits;\r\n const coefficient = 1 - (0.1 * digits) + (digits > 2 ? 0 : 0.2)\r\n //console.log('digits?', digits, 'coefficient?', coefficient);\r\n this.style.fontSize = `calc(${FONT_SIZE_EXPRESSION} * ${Math.max(coefficient, 0.0001)} * ${this.scale})`;\r\n }\r\n\r\n // Adjusts font-size whenever the slotted element is replaced\r\n render() {\r\n useEffect(() => {\r\n if (this.namedColorIndex !== undefined) {\r\n const i = this.namedColorIndex % NAMED_COLORS.length;\r\n const namedColor = NAMED_COLORS[i] ?? NAMED_COLORS[0];\r\n const rgbExp = ResolveCSSColor(namedColor) // `rgb(0, 255, 255)`\r\n const rgb = rgbExp.substring(4, rgbExp.indexOf(')')) // `0, 255, 255`\r\n this.style.setProperty('--accent-rgb', rgb);\r\n }\r\n }, [this.namedColorIndex]);\r\n useEffect(() => this._adjustFontSize(), [this.scale])\r\n\r\n return html`\r\n \r\n `\r\n }\r\n static styles = css`\r\n :host {\r\n --size: 24px;\r\n --accent-rgb: 25,118,210;\r\n --font-prose: ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";\r\n display: inline-flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: var(--size);\r\n height: var(--size);\r\n background-color: rgba(var(--accent-rgb),0.25);\r\n border-radius: 25%;\r\n line-height: normal;\r\n }\r\n\r\n :host-context([circle]) {\r\n border-radius: 50%;\r\n }\r\n\r\n :host, ::slotted(*) {\r\n display: inline-flex!important;\r\n justify-content: center!important;\r\n align-items: center!important;\r\n color: rgb(var(--accent-rgb))!important;\r\n font-family: var(--font-prose);\r\n font-size: calc(${FONT_SIZE_EXPRESSION});\r\n font-weight: 500;\r\n vertical-align: middle;\r\n }\r\n `\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n 'ep-number-badge': EPNumberBadge\r\n }\r\n}\r\n"],"names":["limit","x","low","high","min","max","clip_rgb","rgb","i","classToType","name","type","obj","unpack","args","keyOrder","k","last","l","PI","TWOPI","PITHIRD","DEG2RAD","RAD2DEG","input","Color","me","mode","autodetect","_input","a","b","chk","version","chroma","cmyk2rgb","c","m","y","alpha","rgb2cmyk","r","g","f","rnd","hsl2css","hsla","rgb2hsl","minRgb","maxRgb","s","h","round","rgb2css","rgba","hsl2rgb","t3","t2","t1","h_","RE_RGB","RE_RGBA","RE_RGB_PCT","RE_RGBA_PCT","RE_HSL","RE_HSLA","css2rgb","css","hsl","rest","floor","hcg2rgb","_g","_c","p","q","t","rgb2hcg","delta","RE_HEX","RE_HEXA","hex2rgb","hex","u","rgb2hex","str","hxa","cos","hsi2rgb","sqrt","acos","rgb2hsi","min_","hsv2rgb","v","max_","rgb2hsv","LAB_CONSTANTS","pow","lab2rgb","z","b_","lab_xyz","xyz_rgb","rgb2lab","rgb2xyz","rgb_xyz","xyz_lab","sin","lch2lab","lch2rgb","L","hcl2rgb","hcl","atan2","lab2lch","rgb2lch","w3cx11","n","num2rgb","num","rgb2num","log","temperature2rgb","kelvin","temp","rgb2temperature","minTemp","maxTemp","eps","sign","oklab2rgb","lrgb2rgb","abs","cbrt","rgb2oklab","lr","lg","lb","rgb2lrgb","oklch2rgb","rgb2oklch","mutate","amount","lab","mc","channel","src","EPS","MAX_ITER","lum","cur_lum","max_iter","test","mid","lm","rgb2luminance","luminance_x","index","mix","col1","col2","interpolator","lch","value","out","xyz0","xyz1","lrgb","x1","y1","z1","x2","y2","z2","interpolate_hsx","hue0","hue1","sat0","sat1","lbv0","lbv1","sat","hue","lbv","dh","c1","c2","hcg","hsi","hsv","oklab","oklch","average","colors","weights","w","_average_lrgb","first","xyz","cnt","dx","dy","A","ci","xyz2","col","scale","_mode","_nacol","_spread","_domain","_pos","_padding","_classes","_colors","_out","_min","_max","_correctLightness","_colorCache","_useCache","_gamma","setColors","resetCache","getClass","tMapLightness","tMapDomain","getColor","val","bypassMap","classes","d","domain","tOut","tBreaks","_m","_o","L0","L1","pol","L_actual","L_ideal","L_diff","t0","numColors","result","dm","dd","__range__","samples","end","asc","left","right","inclusive","range","ascending","binom_row","row","newrow","j","bezier","I","lab0","lab1","lab2","lab3","labs","sum","el","bezier$1","blend","bottom","top","blend_f","c0","each","normal","multiply","darken","lighten","screen","overlay","burn","dodge","cubehelix","start","rotations","gamma","lightness","dl","fract","amp","cos_a","sin_a","digits","random","random$1","code","analyze","data","key","limits","values","min_log","max_log","pb","pr","cluster","assignments","clusterSizes","repeat","nb_iters","centroids","mindist","best","dist","newCentroids","kClusters","tmpKMeansBreaks","contrast","l1","l2","exp","deltaE","Kl","Kc","Kh","rad2deg","rad","deg2rad","deg","a1","b1","L2","a2","b2","avgL","C1","C2","avgC","G","a1p","a2p","C1p","C2p","avgCp","arctan1","arctan2","h1p","h2p","avgHp","T","deltaHp","deltaL","deltaCp","sl","sc","sh","deltaTheta","Rt","distance","sum_sq","valid","scales","colorbrewer","brewer","e","_a","names","ResolveCSSColor","color","template","FONT_SIZE_EXPRESSION","EXCLUDED_COLORS","NAMED_COLORS","CSS_NAMED_COLORS","_","saturation","luminance","EPNumberBadge","LitHauntedElement","MutationController","coefficient","useEffect","namedColor","rgbExp","html","__decorateClass","property","customElement"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97]}