{"version":3,"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","../../src/palette/helper.ts","../../src/palette/use-palette.ts"],"names":["rgb","max","round","hsl","delta","min","floor","rgb2hsl","pow","cos","sqrt","num","rnd","abs","sign","lab","lch","PI","sin","atan2","colors","f","_pos","log","limits","hsv","color"],"mappings":"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","file":"index.mjs","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 chroma from 'chroma-js';\n\nconst MAX_VALUE = 500;\nconst delta = { xs: 0.01, sm: 0.02, md: 0.03, lg: 0.08, xl: 0.14 };\n\nconst normalizeHue = (input: number, range: number): number => ((input % range) + range) % range;\n\nexport const markDarkColor = (color: string) => {\n  const hsv = chroma(color).hsv();\n  return chroma(hsv[0], hsv[1] * 0.92, Math.min(hsv[2] + 0.01, 1), 'hsv').hex();\n};\n\n// 计算 hsv 颜色的 h 值\nexport const calculateHue = (color: number[], end: number, defaultValue?: number): number => {\n  defaultValue === void 0 && (defaultValue = MAX_VALUE);\n\n  const interval = end - defaultValue;\n\n  let offset: number;\n  if (end <= defaultValue) {\n    if (color[0] > 80 && color[0] < 260) {\n      offset = interval * delta.xs;\n    } else {\n      offset = -interval * delta.sm;\n    }\n  } else if (color[0] > 20 && color[0] < 48) {\n    offset = -interval * delta.md;\n  } else if (color[0] >= 48 && color[0] < 260) {\n    offset = interval * delta.xs;\n  } else {\n    offset = -interval * delta.sm;\n  }\n\n  return normalizeHue(color[0] + offset, 360);\n};\n\n// 计算颜色的饱和度\nexport const calculateSaturation = (hsv: number[], range: number, max?: number): number => {\n  max === void 0 && (max = MAX_VALUE);\n\n  // 计算区间大小\n  const interval = (range - max) / 100;\n\n  let offset = 0;\n  if (range < max) {\n    offset = (interval * hsv[1]) / 5;\n    if (range < 100) {\n      offset -= delta.sm;\n    }\n  } else if (range > max) {\n    if (hsv[0] < 30 || hsv[0] > 200) {\n      offset = interval * delta.md;\n    } else {\n      offset = interval * delta.xs;\n    }\n    if (hsv[1] === 0) {\n      offset = 0;\n    }\n  }\n\n  const newSaturation = hsv[1] + offset;\n  return newSaturation > 1 ? 1 : newSaturation < 0 ? 0 : newSaturation;\n};\n\n// 计算颜色的亮度\nexport const calculateLightness = (hsv: number[], range: number, max?: number): number => {\n  max === void 0 && (max = MAX_VALUE);\n\n  // 计算区间大小\n  const interval = (range - max) / 100;\n\n  let offset = 0;\n\n  if (range < max) {\n    if (hsv[1] < 0.1) {\n      offset = ((interval * (1 - hsv[2])) / 5) * 1.06;\n    } else {\n      offset = (interval * (1 - hsv[2])) / 5;\n    }\n  } else if (range > max) {\n    if ((hsv[0] < 30 || hsv[0] > 200) && hsv[0] > 0) {\n      offset = interval * delta.lg;\n      if (hsv[2] > 0.8) {\n        offset = interval * delta.xl;\n      }\n    } else {\n      offset = (interval * hsv[2]) / 6;\n    }\n  }\n\n  const newLightness = hsv[2] - offset;\n  return newLightness > 1 ? 1 : newLightness < 0 ? 0 : newLightness;\n};\n","import chroma from 'chroma-js';\nimport debounce from 'lodash/debounce.js';\n\nimport { calculateHue, calculateLightness, calculateSaturation, markDarkColor } from './helper';\n\nconst COLOR_STOPS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900];\n\n// 纯色色阶推导\nexport const createSolidColorScale = (color: string, mode = 'light') => {\n  const isDark = mode === 'dark';\n  let baseColor = isDark ? markDarkColor(color) : color;\n\n  const luminance = chroma(baseColor).luminance();\n  if (luminance < 0.1) {\n    baseColor = chroma(baseColor).set('hsl.l', 0.4).hex();\n  } else if (luminance > 0.9) {\n    baseColor = chroma(baseColor).set('hsl.l', 0.6).hex();\n  }\n  const hsv = chroma(baseColor).hsv();\n\n  const colors = COLOR_STOPS.map((stop) => {\n    const h = calculateHue(hsv, stop, 500);\n    const s = calculateSaturation(hsv, stop, 500);\n    const v = calculateLightness(hsv, stop, 500);\n    return chroma(h, s, v, 'hsv');\n  });\n\n  return isDark ? colors.reverse() : colors;\n};\n\nexport const genTailwindTheme = (color: string) => {\n  const lightColors = createSolidColorScale(color, 'light');\n  const darkColors = createSolidColorScale(color, 'dark');\n\n  const twColors: Record<string, string[]> = {};\n  ['monkeys', 'monkeys-dark'].forEach((name, i) => {\n    const colors = {};\n    if (!i) {\n      lightColors.map((it, stopIndex) =>\n        Object.assign(colors, {\n          [COLOR_STOPS[stopIndex]]: it.rgb().join(' '),\n        }),\n      );\n    } else {\n      darkColors.map((it, stopIndex) =>\n        Object.assign(colors, {\n          [COLOR_STOPS[stopIndex]]: it.rgb().join(' '),\n        }),\n      );\n    }\n    Object.assign(twColors, { [name]: colors });\n  });\n\n  return twColors;\n};\n\nexport const setTailwindTheme = debounce((color: string) => {\n  const twColors = genTailwindTheme(color);\n\n  let styles = '';\n  Object.entries(twColors).forEach(([colorName, colorValues]) => {\n    styles += (colorName === 'monkeys-dark' ? '.dark' : ':root,::selection') + '{';\n    Object.entries(colorValues).forEach(([stop, color]) => {\n      styles += `--monkeys-${stop}:${color};`;\n    });\n    styles += '}';\n  });\n\n  const themeDOM = document.getElementById('monkeys-theme');\n  if (!themeDOM) {\n    const newThemeDOM = document.createElement('style');\n    newThemeDOM.id = 'monkeys-theme';\n    document.head.appendChild(newThemeDOM);\n    newThemeDOM.innerHTML = styles;\n  } else {\n    themeDOM.innerHTML = styles;\n  }\n}, 64);\n"]}