{"version":3,"file":"rgb2oklab.mjs","sources":["../../../../../../../../../node_modules/chroma-js/src/io/oklab/rgb2oklab.js"],"sourcesContent":["import { unpack } from '../../utils/index.js';\nimport multiplyMatrices from '../../utils/multiply-matrices.js';\nimport { rgb2xyz } from '../lab/rgb2lab.js';\n\nconst rgb2oklab = (...args) => {\n    const [r, g, b, ...rest] = unpack(args, 'rgb');\n    const xyz = rgb2xyz(r, g, b);\n    const oklab = XYZ_to_OKLab(xyz);\n    return [...oklab, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\n// from https://www.w3.org/TR/css-color-4/#color-conversion-code\nfunction XYZ_to_OKLab(XYZ) {\n    // Given XYZ relative to D65, convert to OKLab\n    const XYZtoLMS = [\n        [0.819022437996703, 0.3619062600528904, -0.1288737815209879],\n        [0.0329836539323885, 0.9292868615863434, 0.0361446663506424],\n        [0.0481771893596242, 0.2642395317527308, 0.6335478284694309]\n    ];\n    const LMStoOKLab = [\n        [0.210454268309314, 0.7936177747023054, -0.0040720430116193],\n        [1.9779985324311684, -2.4285922420485799, 0.450593709617411],\n        [0.0259040424655478, 0.7827717124575296, -0.8086757549230774]\n    ];\n\n    const LMS = multiplyMatrices(XYZtoLMS, XYZ);\n    // JavaScript Math.cbrt returns a sign-matched cube root\n    // beware if porting to other languages\n    // especially if tempted to use a general power function\n    return multiplyMatrices(\n        LMStoOKLab,\n        LMS.map((c) => Math.cbrt(c))\n    );\n    // L in range [0,1]. For use in CSS, multiply by 100 and add a percent\n}\n\nexport default rgb2oklab;\n"],"names":[],"mappings":";;;;;AAIK,MAAC,SAAS,GAAG,CAAC,GAAG,IAAI,KAAK;AAC/B,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;AAClD,IAAI,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC;AACnC,IAAI,OAAO,CAAC,GAAG,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3E;;AAEA;AACA,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B;AACA,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,CAAC;AACpE,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC;AACpE,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB;AACnE,KAAK;AACL,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,CAAC;AACpE,QAAQ,CAAC,kBAAkB,EAAE,iBAAmB,EAAE,iBAAiB,CAAC;AACpE,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB;AACpE,KAAK;;AAEL,IAAI,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC;AAC/C;AACA;AACA;AACA,IAAI,OAAO,gBAAgB;AAC3B,QAAQ,UAAU;AAClB,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,KAAK;AACL;AACA;;;;","x_google_ignoreList":[0]}