{"version":3,"file":"css2rgb.cjs","sources":["../../../../../../../../../../.yarn/berry/cache/chroma-js-npm-3.2.0-d5c39f5077-10c0.zip/node_modules/chroma-js/src/io/css/css2rgb.js"],"sourcesContent":["import hsl2rgb from '../hsl/hsl2rgb.js';\nimport lab2rgb from '../lab/lab2rgb.js';\nimport lch2rgb from '../lch/lch2rgb.js';\nimport oklab2rgb from '../oklab/oklab2rgb.js';\nimport oklch2rgb from '../oklch/oklch2rgb.js';\nimport input from '../input.js';\nimport limit from '../../utils/limit.js';\nimport { getLabWhitePoint, setLabWhitePoint } from '../lab/lab-constants.js';\n\nconst INT_OR_PCT = /((?:-?\\d+)|(?:-?\\d+(?:\\.\\d+)?)%|none)/.source;\nconst FLOAT_OR_PCT = /((?:-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)%?)|none)/.source;\nconst PCT = /((?:-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)%)|none)/.source;\nconst RE_S = /\\s*/.source;\nconst SEP = /\\s+/.source;\nconst COMMA = /\\s*,\\s*/.source;\nconst ANLGE = /((?:-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:deg)?)|none)/.source;\nconst ALPHA = /\\s*(?:\\/\\s*((?:[01]|[01]?\\.\\d+)|\\d+(?:\\.\\d+)?%))?/.source;\n\n// e.g. rgb(250 20 0), rgb(100% 50% 20%), rgb(100% 50% 20% / 0.5)\nconst RE_RGB = new RegExp(\n    '^rgba?\\\\(' +\n        RE_S +\n        [INT_OR_PCT, INT_OR_PCT, INT_OR_PCT].join(SEP) +\n        ALPHA +\n        '\\\\)$'\n);\nconst RE_RGB_LEGACY = new RegExp(\n    '^rgb\\\\(' +\n        RE_S +\n        [INT_OR_PCT, INT_OR_PCT, INT_OR_PCT].join(COMMA) +\n        RE_S +\n        '\\\\)$'\n);\nconst RE_RGBA_LEGACY = new RegExp(\n    '^rgba\\\\(' +\n        RE_S +\n        [INT_OR_PCT, INT_OR_PCT, INT_OR_PCT, FLOAT_OR_PCT].join(COMMA) +\n        RE_S +\n        '\\\\)$'\n);\n\nconst RE_HSL = new RegExp(\n    '^hsla?\\\\(' + RE_S + [ANLGE, PCT, PCT].join(SEP) + ALPHA + '\\\\)$'\n);\nconst RE_HSL_LEGACY = new RegExp(\n    '^hsl?\\\\(' + RE_S + [ANLGE, PCT, PCT].join(COMMA) + RE_S + '\\\\)$'\n);\nconst RE_HSLA_LEGACY =\n    /^hsla\\(\\s*(-?\\d+(?:\\.\\d+)?),\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;\n\nconst RE_LAB = new RegExp(\n    '^lab\\\\(' +\n        RE_S +\n        [FLOAT_OR_PCT, FLOAT_OR_PCT, FLOAT_OR_PCT].join(SEP) +\n        ALPHA +\n        '\\\\)$'\n);\nconst RE_LCH = new RegExp(\n    '^lch\\\\(' +\n        RE_S +\n        [FLOAT_OR_PCT, FLOAT_OR_PCT, ANLGE].join(SEP) +\n        ALPHA +\n        '\\\\)$'\n);\nconst RE_OKLAB = new RegExp(\n    '^oklab\\\\(' +\n        RE_S +\n        [FLOAT_OR_PCT, FLOAT_OR_PCT, FLOAT_OR_PCT].join(SEP) +\n        ALPHA +\n        '\\\\)$'\n);\nconst RE_OKLCH = new RegExp(\n    '^oklch\\\\(' +\n        RE_S +\n        [FLOAT_OR_PCT, FLOAT_OR_PCT, ANLGE].join(SEP) +\n        ALPHA +\n        '\\\\)$'\n);\n\nconst { round } = Math;\n\nconst roundRGB = (rgb) => {\n    return rgb.map((v, i) => (i <= 2 ? limit(round(v), 0, 255) : v));\n};\n\nconst percentToAbsolute = (pct, min = 0, max = 100, signed = false) => {\n    if (typeof pct === 'string' && pct.endsWith('%')) {\n        pct = parseFloat(pct.substring(0, pct.length - 1)) / 100;\n        if (signed) {\n            // signed percentages are in the range -100% to 100%\n            pct = min + (pct + 1) * 0.5 * (max - min);\n        } else {\n            pct = min + pct * (max - min);\n        }\n    }\n    return +pct;\n};\n\nconst noneToValue = (v, noneValue) => {\n    return v === 'none' ? noneValue : v;\n};\n\nconst css2rgb = (css) => {\n    css = css.toLowerCase().trim();\n\n    if (css === 'transparent') {\n        return [0, 0, 0, 0];\n    }\n\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) or rgb(250,20,0)\n    if ((m = css.match(RE_RGB)) || (m = css.match(RE_RGB_LEGACY))) {\n        let rgb = m.slice(1, 4);\n        for (let i = 0; i < 3; i++) {\n            rgb[i] = +percentToAbsolute(noneToValue(rgb[i], 0), 0, 255);\n        }\n        rgb = roundRGB(rgb);\n        const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n        rgb[3] = alpha; // default alpha\n        return rgb;\n    }\n\n    // rgba(250,20,0,0.4)\n    if ((m = css.match(RE_RGBA_LEGACY))) {\n        const rgb = m.slice(1, 5);\n        for (let i = 0; i < 4; i++) {\n            rgb[i] = +percentToAbsolute(rgb[i], 0, 255);\n        }\n        return rgb;\n    }\n\n    // hsl(0,100%,50%)\n    if ((m = css.match(RE_HSL)) || (m = css.match(RE_HSL_LEGACY))) {\n        const hsl = m.slice(1, 4);\n        hsl[0] = +noneToValue(hsl[0].replace('deg', ''), 0);\n        hsl[1] = +percentToAbsolute(noneToValue(hsl[1], 0), 0, 100) * 0.01;\n        hsl[2] = +percentToAbsolute(noneToValue(hsl[2], 0), 0, 100) * 0.01;\n        const rgb = roundRGB(hsl2rgb(hsl));\n        const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n        rgb[3] = alpha;\n        return rgb;\n    }\n\n    // hsla(0,100%,50%,0.5)\n    if ((m = css.match(RE_HSLA_LEGACY))) {\n        const hsl = m.slice(1, 4);\n        hsl[1] *= 0.01;\n        hsl[2] *= 0.01;\n        const rgb = hsl2rgb(hsl);\n        for (let i = 0; i < 3; i++) {\n            rgb[i] = round(rgb[i]);\n        }\n        rgb[3] = +m[4]; // default alpha = 1\n        return rgb;\n    }\n\n    if ((m = css.match(RE_LAB))) {\n        const lab = m.slice(1, 4);\n        lab[0] = percentToAbsolute(noneToValue(lab[0], 0), 0, 100);\n        lab[1] = percentToAbsolute(noneToValue(lab[1], 0), -125, 125, true);\n        lab[2] = percentToAbsolute(noneToValue(lab[2], 0), -125, 125, true);\n        // convert to D50 Lab whitepoint\n        const wp = getLabWhitePoint();\n        setLabWhitePoint('d50');\n        const rgb = roundRGB(lab2rgb(lab));\n        // convert back to original Lab whitepoint\n        setLabWhitePoint(wp);\n        const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n        rgb[3] = alpha;\n        return rgb;\n    }\n\n    if ((m = css.match(RE_LCH))) {\n        const lch = m.slice(1, 4);\n        lch[0] = percentToAbsolute(lch[0], 0, 100);\n        lch[1] = percentToAbsolute(noneToValue(lch[1], 0), 0, 150, false);\n        lch[2] = +noneToValue(lch[2].replace('deg', ''), 0);\n        // convert to D50 Lab whitepoint\n        const wp = getLabWhitePoint();\n        setLabWhitePoint('d50');\n        const rgb = roundRGB(lch2rgb(lch));\n        // convert back to original Lab whitepoint\n        setLabWhitePoint(wp);\n        const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n        rgb[3] = alpha;\n        return rgb;\n    }\n\n    if ((m = css.match(RE_OKLAB))) {\n        const oklab = m.slice(1, 4);\n        oklab[0] = percentToAbsolute(noneToValue(oklab[0], 0), 0, 1);\n        oklab[1] = percentToAbsolute(noneToValue(oklab[1], 0), -0.4, 0.4, true);\n        oklab[2] = percentToAbsolute(noneToValue(oklab[2], 0), -0.4, 0.4, true);\n        const rgb = roundRGB(oklab2rgb(oklab));\n        const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n        rgb[3] = alpha;\n        return rgb;\n    }\n\n    if ((m = css.match(RE_OKLCH))) {\n        const oklch = m.slice(1, 4);\n        oklch[0] = percentToAbsolute(noneToValue(oklch[0], 0), 0, 1);\n        oklch[1] = percentToAbsolute(noneToValue(oklch[1], 0), 0, 0.4, false);\n        oklch[2] = +noneToValue(oklch[2].replace('deg', ''), 0);\n        const rgb = roundRGB(oklch2rgb(oklch));\n        const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n        rgb[3] = alpha;\n        return rgb;\n    }\n};\n\ncss2rgb.test = (s) => {\n    return (\n        // modern\n        RE_RGB.test(s) ||\n        RE_HSL.test(s) ||\n        RE_LAB.test(s) ||\n        RE_LCH.test(s) ||\n        RE_OKLAB.test(s) ||\n        RE_OKLCH.test(s) ||\n        // legacy\n        RE_RGB_LEGACY.test(s) ||\n        RE_RGBA_LEGACY.test(s) ||\n        RE_HSL_LEGACY.test(s) ||\n        RE_HSLA_LEGACY.test(s) ||\n        s === 'transparent'\n    );\n};\n\nexport default css2rgb;\n"],"names":["getLabWhitePoint","setLabWhitePoint","lab2rgb"],"mappings":"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","x_google_ignoreList":[0]}