Parse

File Parse third_party/color-bits.js

This tree is parsed live from the source file.

Classes

  • {{ item.name }}

    • {{ key }}

Not Classes

{{ getTree() }}

Comments

{{ getTreeComments() }}

Source

            /**
 * color-bits v1.1.1
 * High performance color library
 * 
 * @source https://github.com/romgrk/color-bits
 * @license ISC
 * 
 * This is a bundled version of the library for use in this project.
 * See the original repository for full documentation and source code.
 * 
 * Usage:
 *   <script src="./point_src/third_party/color-bits.js"></script>
 *   <script>
 *     // Access via global colorBits object
 *     const color = colorBits.rgb(255, 0, 0);
 *   </script>
 */

"use strict";
var colorBits = (() => {
  var __defProp = Object.defineProperty;
  var __getOwnPropNames = Object.getOwnPropertyNames;
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
  var __commonJS = (cb, mod) => function __require() {
    return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
  };
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);

  // node_modules/.pnpm/color-bits@1.1.1/node_modules/color-bits/build/bit.js
  var require_bit = __commonJS({
    "node_modules/.pnpm/color-bits@1.1.1/node_modules/color-bits/build/bit.js"(exports) {
      "use strict";
      Object.defineProperty(exports, "__esModule", { value: true });
      exports.cast = cast;
      exports.get = get;
      exports.set = set;
      var INT32_TO_UINT32_OFFSET = 2 ** 32;
      function cast(n) {
        if (n < 0) {
          return n + INT32_TO_UINT32_OFFSET;
        }
        return n;
      }
      function get(n, offset) {
        return n >> offset & 255;
      }
      function set(n, offset, byte) {
        return n ^ (n ^ byte << offset) & 255 << offset;
      }
    }
  });

  // node_modules/.pnpm/color-bits@1.1.1/node_modules/color-bits/build/core.js
  var require_core = __commonJS({
    "node_modules/.pnpm/color-bits@1.1.1/node_modules/color-bits/build/core.js"(exports) {
      "use strict";
      var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o, m, k, k2) {
        if (k2 === void 0) k2 = k;
        var desc = Object.getOwnPropertyDescriptor(m, k);
        if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
          desc = { enumerable: true, get: function() {
            return m[k];
          } };
        }
        Object.defineProperty(o, k2, desc);
      }) : (function(o, m, k, k2) {
        if (k2 === void 0) k2 = k;
        o[k2] = m[k];
      }));
      var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? (function(o, v) {
        Object.defineProperty(o, "default", { enumerable: true, value: v });
      }) : function(o, v) {
        o["default"] = v;
      });
      var __importStar = exports && exports.__importStar || function(mod) {
        if (mod && mod.__esModule) return mod;
        var result = {};
        if (mod != null) {
          for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
        }
        __setModuleDefault(result, mod);
        return result;
      };
      Object.defineProperty(exports, "__esModule", { value: true });
      exports.OFFSET_A = exports.OFFSET_B = exports.OFFSET_G = exports.OFFSET_R = void 0;
      exports.newColor = newColor;
      exports.from = from;
      exports.toNumber = toNumber;
      exports.getRed = getRed;
      exports.getGreen = getGreen;
      exports.getBlue = getBlue;
      exports.getAlpha = getAlpha;
      exports.setRed = setRed;
      exports.setGreen = setGreen;
      exports.setBlue = setBlue;
      exports.setAlpha = setAlpha;
      var bit = __importStar(require_bit());
      var { cast, get, set } = bit;
      exports.OFFSET_R = 24;
      exports.OFFSET_G = 16;
      exports.OFFSET_B = 8;
      exports.OFFSET_A = 0;
      function newColor(r, g, b, a) {
        return (r << exports.OFFSET_R) + (g << exports.OFFSET_G) + (b << exports.OFFSET_B) + (a << exports.OFFSET_A);
      }
      function from(color) {
        return newColor(get(color, exports.OFFSET_R), get(color, exports.OFFSET_G), get(color, exports.OFFSET_B), get(color, exports.OFFSET_A));
      }
      function toNumber(color) {
        return cast(color);
      }
      function getRed(c) {
        return get(c, exports.OFFSET_R);
      }
      function getGreen(c) {
        return get(c, exports.OFFSET_G);
      }
      function getBlue(c) {
        return get(c, exports.OFFSET_B);
      }
      function getAlpha(c) {
        return get(c, exports.OFFSET_A);
      }
      function setRed(c, value) {
        return set(c, exports.OFFSET_R, value);
      }
      function setGreen(c, value) {
        return set(c, exports.OFFSET_G, value);
      }
      function setBlue(c, value) {
        return set(c, exports.OFFSET_B, value);
      }
      function setAlpha(c, value) {
        return set(c, exports.OFFSET_A, value);
      }
    }
  });

  // node_modules/.pnpm/color-bits@1.1.1/node_modules/color-bits/build/convert.js
  var require_convert = __commonJS({
    "node_modules/.pnpm/color-bits@1.1.1/node_modules/color-bits/build/convert.js"(exports) {
      "use strict";
      Object.defineProperty(exports, "__esModule", { value: true });
      exports.labToXyzd50 = labToXyzd50;
      exports.xyzd50ToLab = xyzd50ToLab;
      exports.oklabToXyzd65 = oklabToXyzd65;
      exports.xyzd65ToOklab = xyzd65ToOklab;
      exports.lchToLab = lchToLab;
      exports.labToLch = labToLch;
      exports.displayP3ToXyzd50 = displayP3ToXyzd50;
      exports.xyzd50ToDisplayP3 = xyzd50ToDisplayP3;
      exports.proPhotoToXyzd50 = proPhotoToXyzd50;
      exports.xyzd50ToProPhoto = xyzd50ToProPhoto;
      exports.adobeRGBToXyzd50 = adobeRGBToXyzd50;
      exports.xyzd50ToAdobeRGB = xyzd50ToAdobeRGB;
      exports.rec2020ToXyzd50 = rec2020ToXyzd50;
      exports.xyzd50ToRec2020 = xyzd50ToRec2020;
      exports.xyzd50ToD65 = xyzd50ToD65;
      exports.xyzd65ToD50 = xyzd65ToD50;
      exports.xyzd65TosRGBLinear = xyzd65TosRGBLinear;
      exports.xyzd50TosRGBLinear = xyzd50TosRGBLinear;
      exports.srgbLinearToXyzd50 = srgbLinearToXyzd50;
      exports.srgbToXyzd50 = srgbToXyzd50;
      exports.xyzd50ToSrgb = xyzd50ToSrgb;
      exports.oklchToXyzd50 = oklchToXyzd50;
      exports.xyzd50ToOklch = xyzd50ToOklch;
      var D50_X = 0.9642;
      var D50_Y = 1;
      var D50_Z = 0.8251;
      function multiply(matrix, other) {
        const dst = [0, 0, 0];
        for (let row = 0; row < 3; ++row) {
          dst[row] = matrix[row][0] * other[0] + matrix[row][1] * other[1] + matrix[row][2] * other[2];
        }
        return dst;
      }
      var TransferFunction = class {
        constructor(g, a, b = 0, c = 0, d = 0, e = 0, f = 0) {
          __publicField(this, "g");
          __publicField(this, "a");
          __publicField(this, "b");
          __publicField(this, "c");
          __publicField(this, "d");
          __publicField(this, "e");
          __publicField(this, "f");
          this.g = g;
          this.a = a;
          this.b = b;
          this.c = c;
          this.d = d;
          this.e = e;
          this.f = f;
        }
        eval(val) {
          const sign = val < 0 ? -1 : 1;
          const abs = val * sign;
          if (abs < this.d) {
            return sign * (this.c * abs + this.f);
          }
          return sign * (Math.pow(this.a * abs + this.b, this.g) + this.e);
        }
      };
      var NAMED_TRANSFER_FN = {
        sRGB: new TransferFunction(2.4, 1 / 1.055, 0.055 / 1.055, 1 / 12.92, 0.04045, 0, 0),
        sRGB_INVERSE: new TransferFunction(0.416667, 1.13728, -0, 12.92, 31308e-7, -0.0549698, -0),
        proPhotoRGB: new TransferFunction(1.8, 1),
        proPhotoRGB_INVERSE: new TransferFunction(0.555556, 1, -0, 0, 0, 0, 0),
        k2Dot2: new TransferFunction(2.2, 1),
        k2Dot2_INVERSE: new TransferFunction(0.454545, 1),
        rec2020: new TransferFunction(2.22222, 0.909672, 0.0903276, 0.222222, 0.0812429, 0, 0),
        rec2020_INVERSE: new TransferFunction(0.45, 1.23439, -0, 4.5, 0.018054, -0.0993195, -0)
      };
      var NAMED_GAMUTS = {
        sRGB: [
          [0.436065674, 0.385147095, 0.143066406],
          [0.222488403, 0.716873169, 0.06060791],
          [0.013916016, 0.097076416, 0.714096069]
        ],
        sRGB_INVERSE: [
          [3.134112151374599, -1.6173924597114966, -0.4906334036481285],
          [-0.9787872938826594, 1.9162795854799963, 0.0334547139520088],
          [0.07198304248352326, -0.2289858493321844, 1.4053851325241447]
        ],
        displayP3: [
          [0.515102, 0.291965, 0.157153],
          [0.241182, 0.692236, 0.0665819],
          [-104941e-8, 0.0418818, 0.784378]
        ],
        displayP3_INVERSE: [
          [2.404045155982687, -0.9898986932663839, -0.3976317191366333],
          [-0.8422283799266768, 1.7988505115115485, 0.016048170293157416],
          [0.04818705979712955, -0.09737385156228891, 1.2735066448052303]
        ],
        adobeRGB: [
          [0.60974, 0.20528, 0.14919],
          [0.31111, 0.62567, 0.06322],
          [0.01947, 0.06087, 0.74457]
        ],
        adobeRGB_INVERSE: [
          [1.9625385510109137, -0.6106892546501431, -0.3413827467482388],
          [-0.9787580455521, 1.9161624707082339, 0.03341676594241408],
          [0.028696263137883395, -0.1406807819331586, 1.349252109991369]
        ],
        rec2020: [
          [0.673459, 0.165661, 0.1251],
          [0.279033, 0.675338, 0.0456288],
          [-193139e-8, 0.0299794, 0.797162]
        ],
        rec2020_INVERSE: [
          [1.647275201661012, -0.3936024771460771, -0.23598028884792507],
          [-0.6826176165196962, 1.647617775014935, 0.01281626807852422],
          [0.029662725298529837, -0.06291668721366285, 1.2533964313435522]
        ],
        xyz: [
          [1, 0, 0],
          [0, 1, 0],
          [0, 0, 1]
        ]
      };
      function degToRad(deg) {
        return deg * (Math.PI / 180);
      }
      function radToDeg(rad) {
        return rad * (180 / Math.PI);
      }
      function applyTransferFns(fn, r, g, b) {
        return [fn.eval(r), fn.eval(g), fn.eval(b)];
      }
      var OKLAB_TO_LMS_MATRIX = [
        [0.9999999984505198, 0.39633779217376786, 0.2158037580607588],
        [1.0000000088817609, -0.10556134232365635, -0.06385417477170591],
        [1.0000000546724108, -0.08948418209496575, -1.2914855378640917]
      ];
      var LMS_TO_OKLAB_MATRIX = [
        [0.2104542553, 0.7936177849999999, -0.0040720468],
        [1.9779984951000003, -2.4285922049999997, 0.4505937099000001],
        [0.025904037099999982, 0.7827717662, -0.8086757660000001]
      ];
      var XYZ_TO_LMS_MATRIX = [
        [0.8190224432164319, 0.3619062562801221, -0.12887378261216414],
        [0.0329836671980271, 0.9292868468965546, 0.03614466816999844],
        [0.048177199566046255, 0.26423952494422764, 0.6335478258136937]
      ];
      var LMS_TO_XYZ_MATRIX = [
        [1.226879873374156, -0.5578149965554814, 0.2813910501772159],
        [-0.040575762624313734, 1.1122868293970596, -0.07171106666151703],
        [-0.07637294974672144, -0.4214933239627915, 1.586924024427242]
      ];
      var PRO_PHOTO_TO_XYZD50_MATRIX = [
        [0.7976700747153241, 0.13519395152800417, 0.03135596341127167],
        [0.28803902352472205, 0.7118744007923554, 8661179538844252e-20],
        [2739876695467402e-22, -14405226518969991e-22, 0.825211112593861]
      ];
      var XYZD50_TO_PRO_PHOTO_MATRIX = [
        [1.3459533710138858, -0.25561367037652133, -0.051116041522131374],
        [-0.544600415668951, 1.5081687311475767, 0.020535163968720935],
        [-13975622054109725e-22, 2717590904589903e-21, 1.2118111696814942]
      ];
      var XYZD65_TO_XYZD50_MATRIX = [
        [1.0478573189120088, 0.022907374491829943, -0.050162247377152525],
        [0.029570500050499514, 0.9904755577034089, -0.017061518194840468],
        [-0.00924047197558879, 0.015052921526981566, 0.7519708530777581]
      ];
      var XYZD50_TO_XYZD65_MATRIX = [
        [0.9555366447632887, -0.02306009252137888, 0.06321844147263304],
        [-0.028315378228764922, 1.009951351591575, 0.021026001591792402],
        [0.012308773293784308, -0.02050053471777469, 1.3301947294775631]
      ];
      var XYZD65_TO_SRGB_MATRIX = [
        [3.2408089365140573, -1.5375788839307314, -0.4985609572551541],
        [-0.9692732213205414, 1.876110235238969, 0.041560501141251774],
        [0.05567030990267439, -0.2040007921971802, 1.0571046720577026]
      ];
      function labToXyzd50(l, a, b) {
        let y = (l + 16) / 116;
        let x = y + a / 500;
        let z = y - b / 200;
        function labInverseTransferFunction(t) {
          const delta = 24 / 116;
          if (t <= delta) {
            return 108 / 841 * (t - 16 / 116);
          }
          return t * t * t;
        }
        x = labInverseTransferFunction(x) * D50_X;
        y = labInverseTransferFunction(y) * D50_Y;
        z = labInverseTransferFunction(z) * D50_Z;
        return [x, y, z];
      }
      function xyzd50ToLab(x, y, z) {
        function labTransferFunction(t) {
          const deltaLimit = 24 / 116 * (24 / 116) * (24 / 116);
          if (t <= deltaLimit) {
            return 841 / 108 * t + 16 / 116;
          }
          return Math.pow(t, 1 / 3);
        }
        x = labTransferFunction(x / D50_X);
        y = labTransferFunction(y / D50_Y);
        z = labTransferFunction(z / D50_Z);
        const l = 116 * y - 16;
        const a = 500 * (x - y);
        const b = 200 * (y - z);
        return [l, a, b];
      }
      function oklabToXyzd65(l, a, b) {
        const labInput = [l, a, b];
        const lmsIntermediate = multiply(OKLAB_TO_LMS_MATRIX, labInput);
        lmsIntermediate[0] = lmsIntermediate[0] * lmsIntermediate[0] * lmsIntermediate[0];
        lmsIntermediate[1] = lmsIntermediate[1] * lmsIntermediate[1] * lmsIntermediate[1];
        lmsIntermediate[2] = lmsIntermediate[2] * lmsIntermediate[2] * lmsIntermediate[2];
        const xyzOutput = multiply(LMS_TO_XYZ_MATRIX, lmsIntermediate);
        return xyzOutput;
      }
      function xyzd65ToOklab(x, y, z) {
        const xyzInput = [x, y, z];
        const lmsIntermediate = multiply(XYZ_TO_LMS_MATRIX, xyzInput);
        lmsIntermediate[0] = Math.pow(lmsIntermediate[0], 1 / 3);
        lmsIntermediate[1] = Math.pow(lmsIntermediate[1], 1 / 3);
        lmsIntermediate[2] = Math.pow(lmsIntermediate[2], 1 / 3);
        const labOutput = multiply(LMS_TO_OKLAB_MATRIX, lmsIntermediate);
        return [labOutput[0], labOutput[1], labOutput[2]];
      }
      function lchToLab(l, c, h) {
        if (h === void 0) {
          return [l, 0, 0];
        }
        return [l, c * Math.cos(degToRad(h)), c * Math.sin(degToRad(h))];
      }
      function labToLch(l, a, b) {
        return [l, Math.sqrt(a * a + b * b), radToDeg(Math.atan2(b, a))];
      }
      function displayP3ToXyzd50(r, g, b) {
        const [mappedR, mappedG, mappedB] = applyTransferFns(NAMED_TRANSFER_FN.sRGB, r, g, b);
        const rgbInput = [mappedR, mappedG, mappedB];
        const xyzOutput = multiply(NAMED_GAMUTS.displayP3, rgbInput);
        return xyzOutput;
      }
      function xyzd50ToDisplayP3(x, y, z) {
        const xyzInput = [x, y, z];
        const rgbOutput = multiply(NAMED_GAMUTS.displayP3_INVERSE, xyzInput);
        return applyTransferFns(NAMED_TRANSFER_FN.sRGB_INVERSE, rgbOutput[0], rgbOutput[1], rgbOutput[2]);
      }
      function proPhotoToXyzd50(r, g, b) {
        const [mappedR, mappedG, mappedB] = applyTransferFns(NAMED_TRANSFER_FN.proPhotoRGB, r, g, b);
        const rgbInput = [mappedR, mappedG, mappedB];
        const xyzOutput = multiply(PRO_PHOTO_TO_XYZD50_MATRIX, rgbInput);
        return xyzOutput;
      }
      function xyzd50ToProPhoto(x, y, z) {
        const xyzInput = [x, y, z];
        const rgbOutput = multiply(XYZD50_TO_PRO_PHOTO_MATRIX, xyzInput);
        return applyTransferFns(NAMED_TRANSFER_FN.proPhotoRGB_INVERSE, rgbOutput[0], rgbOutput[1], rgbOutput[2]);
      }
      function adobeRGBToXyzd50(r, g, b) {
        const [mappedR, mappedG, mappedB] = applyTransferFns(NAMED_TRANSFER_FN.k2Dot2, r, g, b);
        const rgbInput = [mappedR, mappedG, mappedB];
        const xyzOutput = multiply(NAMED_GAMUTS.adobeRGB, rgbInput);
        return xyzOutput;
      }
      function xyzd50ToAdobeRGB(x, y, z) {
        const xyzInput = [x, y, z];
        const rgbOutput = multiply(NAMED_GAMUTS.adobeRGB_INVERSE, xyzInput);
        return applyTransferFns(NAMED_TRANSFER_FN.k2Dot2_INVERSE, rgbOutput[0], rgbOutput[1], rgbOutput[2]);
      }
      function rec2020ToXyzd50(r, g, b) {
        const [mappedR, mappedG, mappedB] = applyTransferFns(NAMED_TRANSFER_FN.rec2020, r, g, b);
        const rgbInput = [mappedR, mappedG, mappedB];
        const xyzOutput = multiply(NAMED_GAMUTS.rec2020, rgbInput);
        return xyzOutput;
      }
      function xyzd50ToRec2020(x, y, z) {
        const xyzInput = [x, y, z];
        const rgbOutput = multiply(NAMED_GAMUTS.rec2020_INVERSE, xyzInput);
        return applyTransferFns(NAMED_TRANSFER_FN.rec2020_INVERSE, rgbOutput[0], rgbOutput[1], rgbOutput[2]);
      }
      function xyzd50ToD65(x, y, z) {
        const xyzInput = [x, y, z];
        const xyzOutput = multiply(XYZD50_TO_XYZD65_MATRIX, xyzInput);
        return xyzOutput;
      }
      function xyzd65ToD50(x, y, z) {
        const xyzInput = [x, y, z];
        const xyzOutput = multiply(XYZD65_TO_XYZD50_MATRIX, xyzInput);
        return xyzOutput;
      }
      function xyzd65TosRGBLinear(x, y, z) {
        const xyzInput = [x, y, z];
        const rgbResult = multiply(XYZD65_TO_SRGB_MATRIX, xyzInput);
        return rgbResult;
      }
      function xyzd50TosRGBLinear(x, y, z) {
        const xyzInput = [x, y, z];
        const rgbResult = multiply(NAMED_GAMUTS.sRGB_INVERSE, xyzInput);
        return rgbResult;
      }
      function srgbLinearToXyzd50(r, g, b) {
        const rgbInput = [r, g, b];
        const xyzOutput = multiply(NAMED_GAMUTS.sRGB, rgbInput);
        return xyzOutput;
      }
      function srgbToXyzd50(r, g, b) {
        const [mappedR, mappedG, mappedB] = applyTransferFns(NAMED_TRANSFER_FN.sRGB, r, g, b);
        const rgbInput = [mappedR, mappedG, mappedB];
        const xyzOutput = multiply(NAMED_GAMUTS.sRGB, rgbInput);
        return xyzOutput;
      }
      function xyzd50ToSrgb(x, y, z) {
        const xyzInput = [x, y, z];
        const rgbOutput = multiply(NAMED_GAMUTS.sRGB_INVERSE, xyzInput);
        return applyTransferFns(NAMED_TRANSFER_FN.sRGB_INVERSE, rgbOutput[0], rgbOutput[1], rgbOutput[2]);
      }
      function oklchToXyzd50(lInput, c, h) {
        const [l, a, b] = lchToLab(lInput, c, h);
        const [x65, y65, z65] = oklabToXyzd65(l, a, b);
        return xyzd65ToD50(x65, y65, z65);
      }
      function xyzd50ToOklch(x, y, z) {
        const [x65, y65, z65] = xyzd50ToD65(x, y, z);
        const [l, a, b] = xyzd65ToOklab(x65, y65, z65);
        return labToLch(l, a, b);
      }
    }
  });

  // node_modules/.pnpm/color-bits@1.1.1/node_modules/color-bits/build/parse.js
  var require_parse = __commonJS({
    "node_modules/.pnpm/color-bits@1.1.1/node_modules/color-bits/build/parse.js"(exports) {
      "use strict";
      var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o, m, k, k2) {
        if (k2 === void 0) k2 = k;
        var desc = Object.getOwnPropertyDescriptor(m, k);
        if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
          desc = { enumerable: true, get: function() {
            return m[k];
          } };
        }
        Object.defineProperty(o, k2, desc);
      }) : (function(o, m, k, k2) {
        if (k2 === void 0) k2 = k;
        o[k2] = m[k];
      }));
      var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? (function(o, v) {
        Object.defineProperty(o, "default", { enumerable: true, value: v });
      }) : function(o, v) {
        o["default"] = v;
      });
      var __importStar = exports && exports.__importStar || function(mod) {
        if (mod && mod.__esModule) return mod;
        var result = {};
        if (mod != null) {
          for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
        }
        __setModuleDefault(result, mod);
        return result;
      };
      Object.defineProperty(exports, "__esModule", { value: true });
      exports.parse = parse;
      exports.parseHex = parseHex;
      exports.parseColor = parseColor;
      var core_1 = require_core();
      var convert = __importStar(require_convert());
      var HASH = "#".charCodeAt(0);
      var PERCENT = "%".charCodeAt(0);
      var G = "g".charCodeAt(0);
      var N = "n".charCodeAt(0);
      var D = "d".charCodeAt(0);
      var E = "e".charCodeAt(0);
      var PATTERN = (() => {
        const NAME = "(\\w+)";
        const SEPARATOR = "[\\s,\\/]";
        const VALUE = "([^\\s,\\/]+)";
        const SEPARATOR_THEN_VALUE = `(?:${SEPARATOR}+${VALUE})`;
        return new RegExp(`${NAME}\\(
      ${SEPARATOR}*
      ${VALUE}
      ${SEPARATOR_THEN_VALUE}
      ${SEPARATOR_THEN_VALUE}
      ${SEPARATOR_THEN_VALUE}?
      ${SEPARATOR_THEN_VALUE}?
      ${SEPARATOR}*
    \\)`.replace(/\s/g, ""));
      })();
      function parse(color) {
        if (color.charCodeAt(0) === HASH) {
          return parseHex(color);
        } else {
          return parseColor(color);
        }
      }
      function parseHex(color) {
        let r = 0;
        let g = 0;
        let b = 0;
        let a = 255;
        switch (color.length) {
          // #59f
          case 4: {
            r = (hexValue(color.charCodeAt(1)) << 4) + hexValue(color.charCodeAt(1));
            g = (hexValue(color.charCodeAt(2)) << 4) + hexValue(color.charCodeAt(2));
            b = (hexValue(color.charCodeAt(3)) << 4) + hexValue(color.charCodeAt(3));
            break;
          }
          // #5599ff
          case 7: {
            r = (hexValue(color.charCodeAt(1)) << 4) + hexValue(color.charCodeAt(2));
            g = (hexValue(color.charCodeAt(3)) << 4) + hexValue(color.charCodeAt(4));
            b = (hexValue(color.charCodeAt(5)) << 4) + hexValue(color.charCodeAt(6));
            break;
          }
          // #5599ff88
          case 9: {
            r = (hexValue(color.charCodeAt(1)) << 4) + hexValue(color.charCodeAt(2));
            g = (hexValue(color.charCodeAt(3)) << 4) + hexValue(color.charCodeAt(4));
            b = (hexValue(color.charCodeAt(5)) << 4) + hexValue(color.charCodeAt(6));
            a = (hexValue(color.charCodeAt(7)) << 4) + hexValue(color.charCodeAt(8));
            break;
          }
          default: {
            break;
          }
        }
        return (0, core_1.newColor)(r, g, b, a);
      }
      function hexValue(c) {
        return (c & 15) + 9 * (c >> 6);
      }
      function parseColor(color) {
        const match = PATTERN.exec(color);
        if (match === null) {
          throw new Error(`Color.parse(): invalid CSS color: "${color}"`);
        }
        const format = match[1];
        const p1 = match[2];
        const p2 = match[3];
        const p3 = match[4];
        const p4 = match[5];
        const p5 = match[6];
        switch (format) {
          case "rgb":
          case "rgba": {
            const r = parseColorChannel(p1);
            const g = parseColorChannel(p2);
            const b = parseColorChannel(p3);
            const a = p4 ? parseAlphaChannel(p4) : 255;
            return (0, core_1.newColor)(r, g, b, a);
          }
          case "hsl":
          case "hsla": {
            const h = parseAngle(p1);
            const s = parsePercentage(p2);
            const l = parsePercentage(p3);
            const a = p4 ? parseAlphaChannel(p4) : 255;
            let r, g, b;
            if (s === 0) {
              r = g = b = Math.round(l * 255);
            } else {
              const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
              const p = 2 * l - q;
              r = Math.round(hueToRGB(p, q, h + 1 / 3) * 255);
              g = Math.round(hueToRGB(p, q, h) * 255);
              b = Math.round(hueToRGB(p, q, h - 1 / 3) * 255);
            }
            return (0, core_1.newColor)(r, g, b, a);
          }
          case "hwb": {
            const h = parseAngle(p1);
            const w = parsePercentage(p2);
            const bl = parsePercentage(p3);
            const a = p4 ? parseAlphaChannel(p4) : 255;
            const s = 1;
            const l = 0.5;
            const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
            const p = 2 * l - q;
            let r = Math.round(hueToRGB(p, q, h + 1 / 3) * 255);
            let g = Math.round(hueToRGB(p, q, h) * 255);
            let b = Math.round(hueToRGB(p, q, h - 1 / 3) * 255);
            r = hwbApply(r, w, bl);
            g = hwbApply(g, w, bl);
            b = hwbApply(b, w, bl);
            return (0, core_1.newColor)(r, g, b, a);
          }
          case "lab": {
            const l = parsePercentageFor(p1, 100);
            const aa = parsePercentageFor(p2, 125);
            const b = parsePercentageFor(p3, 125);
            const a = p4 ? parseAlphaChannel(p4) : 255;
            return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.labToXyzd50(l, aa, b)));
          }
          case "lch": {
            const l = parsePercentageFor(p1, 100);
            const c = parsePercentageFor(p2, 150);
            const h = parseAngle(p3) * 360;
            const a = p4 ? parseAlphaChannel(p4) : 255;
            return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.labToXyzd50(...convert.lchToLab(l, c, h))));
          }
          case "oklab": {
            const l = parsePercentageFor(p1, 1);
            const aa = parsePercentageFor(p2, 0.4);
            const b = parsePercentageFor(p3, 0.4);
            const a = p4 ? parseAlphaChannel(p4) : 255;
            return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.xyzd65ToD50(...convert.oklabToXyzd65(l, aa, b))));
          }
          case "oklch": {
            const l = parsePercentageOrValue(p1);
            const c = parsePercentageOrValue(p2);
            const h = parsePercentageOrValue(p3);
            const a = p4 ? parseAlphaChannel(p4) : 255;
            return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.oklchToXyzd50(l, c, h)));
          }
          case "color": {
            const colorspace = p1;
            const c1 = parsePercentageOrValue(p2);
            const c2 = parsePercentageOrValue(p3);
            const c3 = parsePercentageOrValue(p4);
            const a = p5 ? parseAlphaChannel(p5) : 255;
            switch (colorspace) {
              // RGB color spaces
              case "srgb": {
                return newColorFromArray(a, [c1, c2, c3]);
              }
              case "srgb-linear": {
                return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.srgbLinearToXyzd50(c1, c2, c3)));
              }
              case "display-p3": {
                return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.displayP3ToXyzd50(c1, c2, c3)));
              }
              case "a98-rgb": {
                return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.adobeRGBToXyzd50(c1, c2, c3)));
              }
              case "prophoto-rgb": {
                return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.proPhotoToXyzd50(c1, c2, c3)));
              }
              case "rec2020": {
                return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.rec2020ToXyzd50(c1, c2, c3)));
              }
              // XYZ color spaces
              case "xyz":
              case "xyz-d65": {
                return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.xyzd65ToD50(c1, c2, c3)));
              }
              case "xyz-d50": {
                return newColorFromArray(a, convert.xyzd50ToSrgb(c1, c2, c3));
              }
              default:
            }
          }
          default:
        }
        throw new Error(`Color.parse(): invalid CSS color: "${color}"`);
      }
      function parseColorChannel(channel) {
        if (channel.charCodeAt(channel.length - 1) === PERCENT) {
          return Math.round(parseFloat(channel) / 100 * 255);
        }
        return Math.round(parseFloat(channel));
      }
      function parseAlphaChannel(channel) {
        return Math.round(parseAlphaValue(channel) * 255);
      }
      function parseAlphaValue(channel) {
        if (channel.charCodeAt(0) === N) {
          return 0;
        }
        if (channel.charCodeAt(channel.length - 1) === PERCENT) {
          return parseFloat(channel) / 100;
        }
        return parseFloat(channel);
      }
      function parseAngle(angle) {
        let factor = 1;
        switch (angle.charCodeAt(angle.length - 1)) {
          case E: {
            return 0;
          }
          case D: {
            if (angle.charCodeAt(Math.max(0, angle.length - 4)) === G) {
              factor = 400;
            } else {
              factor = 2 * Math.PI;
            }
            break;
          }
          case N: {
            factor = 1;
            break;
          }
          // case G: // 'deg', but no need to check as it's also the default
          default: {
            factor = 360;
          }
        }
        return parseFloat(angle) / factor;
      }
      function parsePercentage(value) {
        if (value.charCodeAt(0) === N) {
          return 0;
        }
        return parseFloat(value) / 100;
      }
      function parsePercentageOrValue(value) {
        if (value.charCodeAt(0) === N) {
          return 0;
        }
        if (value.charCodeAt(value.length - 1) === PERCENT) {
          return parseFloat(value) / 100;
        }
        return parseFloat(value);
      }
      function parsePercentageFor(value, range) {
        if (value.charCodeAt(0) === N) {
          return 0;
        }
        if (value.charCodeAt(value.length - 1) === PERCENT) {
          return parseFloat(value) / 100 * range;
        }
        return parseFloat(value);
      }
      function hueToRGB(p, q, t) {
        if (t < 0) {
          t += 1;
        }
        ;
        if (t > 1) {
          t -= 1;
        }
        ;
        if (t < 1 / 6) {
          return p + (q - p) * 6 * t;
        }
        ;
        if (t < 1 / 2) {
          return q;
        }
        ;
        if (t < 2 / 3) {
          return p + (q - p) * (2 / 3 - t) * 6;
        }
        ;
        {
          return p;
        }
        ;
      }
      function hwbApply(channel, w, b) {
        let result = channel / 255;
        result *= 1 - w - b;
        result += w;
        return Math.round(result * 255);
      }
      function clamp(value) {
        return Math.max(0, Math.min(255, value));
      }
      function newColorFromArray(a, rgb) {
        const r = clamp(Math.round(rgb[0] * 255));
        const g = clamp(Math.round(rgb[1] * 255));
        const b = clamp(Math.round(rgb[2] * 255));
        return (0, core_1.newColor)(r, g, b, a);
      }
    }
  });

  // node_modules/.pnpm/color-bits@1.1.1/node_modules/color-bits/build/format.js
  var require_format = __commonJS({
    "node_modules/.pnpm/color-bits@1.1.1/node_modules/color-bits/build/format.js"(exports) {
      "use strict";
      var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o, m, k, k2) {
        if (k2 === void 0) k2 = k;
        var desc = Object.getOwnPropertyDescriptor(m, k);
        if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
          desc = { enumerable: true, get: function() {
            return m[k];
          } };
        }
        Object.defineProperty(o, k2, desc);
      }) : (function(o, m, k, k2) {
        if (k2 === void 0) k2 = k;
        o[k2] = m[k];
      }));
      var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? (function(o, v) {
        Object.defineProperty(o, "default", { enumerable: true, value: v });
      }) : function(o, v) {
        o["default"] = v;
      });
      var __importStar = exports && exports.__importStar || function(mod) {
        if (mod && mod.__esModule) return mod;
        var result = {};
        if (mod != null) {
          for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
        }
        __setModuleDefault(result, mod);
        return result;
      };
      Object.defineProperty(exports, "__esModule", { value: true });
      exports.format = void 0;
      exports.formatHEXA = formatHEXA;
      exports.formatHEX = formatHEX;
      exports.formatRGBA = formatRGBA;
      exports.toRGBA = toRGBA;
      exports.formatHSLA = formatHSLA;
      exports.toHSLA = toHSLA;
      exports.formatHWBA = formatHWBA;
      exports.toHWBA = toHWBA;
      var core = __importStar(require_core());
      var { getRed, getGreen, getBlue, getAlpha } = core;
      var buffer = [0, 0, 0];
      var FORMAT_HEX = Array.from({ length: 256 }).map((_, byte) => byte.toString(16).padStart(2, "0"));
      exports.format = formatHEXA;
      function formatHEXA(color) {
        return "#" + FORMAT_HEX[getRed(color)] + FORMAT_HEX[getGreen(color)] + FORMAT_HEX[getBlue(color)] + FORMAT_HEX[getAlpha(color)];
      }
      function formatHEX(color) {
        return "#" + FORMAT_HEX[getRed(color)] + FORMAT_HEX[getGreen(color)] + FORMAT_HEX[getBlue(color)];
      }
      function formatRGBA(color) {
        return `rgba(${getRed(color)} ${getGreen(color)} ${getBlue(color)} / ${getAlpha(color) / 255})`;
      }
      function toRGBA(color) {
        return {
          r: getRed(color),
          g: getGreen(color),
          b: getBlue(color),
          a: getAlpha(color)
        };
      }
      function formatHSLA(color) {
        rgbToHSL(getRed(color), getGreen(color), getBlue(color));
        const h = buffer[0];
        const s = buffer[1];
        const l = buffer[2];
        const a = getAlpha(color) / 255;
        return `hsla(${h} ${s}% ${l}% / ${a})`;
      }
      function toHSLA(color) {
        rgbToHSL(getRed(color), getGreen(color), getBlue(color));
        const h = buffer[0];
        const s = buffer[1];
        const l = buffer[2];
        const a = getAlpha(color) / 255;
        return { h, s, l, a };
      }
      function formatHWBA(color) {
        rgbToHWB(getRed(color), getGreen(color), getBlue(color));
        const h = buffer[0];
        const w = buffer[1];
        const b = buffer[2];
        const a = getAlpha(color) / 255;
        return `hsla(${h} ${w}% ${b}% / ${a})`;
      }
      function toHWBA(color) {
        rgbToHWB(getRed(color), getGreen(color), getBlue(color));
        const h = buffer[0];
        const w = buffer[1];
        const b = buffer[2];
        const a = getAlpha(color) / 255;
        return { h, w, b, a };
      }
      function rgbToHSL(r, g, b) {
        r /= 255;
        g /= 255;
        b /= 255;
        const l = Math.max(r, g, b);
        const s = l - Math.min(r, g, b);
        const h = s ? l === r ? (g - b) / s : l === g ? 2 + (b - r) / s : 4 + (r - g) / s : 0;
        buffer[0] = 60 * h < 0 ? 60 * h + 360 : 60 * h;
        buffer[1] = 100 * (s ? l <= 0.5 ? s / (2 * l - s) : s / (2 - (2 * l - s)) : 0);
        buffer[2] = 100 * (2 * l - s) / 2;
      }
      function rgbToHWB(r, g, b) {
        r /= 255;
        g /= 255;
        b /= 255;
        const w = Math.min(r, g, b);
        const v = Math.max(r, g, b);
        const black = 1 - v;
        if (v === w) {
          buffer[0] = 0;
          buffer[1] = w;
          buffer[2] = black;
          return;
        }
        let f = r === w ? g - b : g === w ? b - r : r - g;
        let i = r === w ? 3 : g === w ? 5 : 1;
        buffer[0] = (i - f / (v - w)) / 6;
        buffer[1] = w;
        buffer[2] = black;
      }
    }
  });

  // node_modules/.pnpm/color-bits@1.1.1/node_modules/color-bits/build/functions.js
  var require_functions = __commonJS({
    "node_modules/.pnpm/color-bits@1.1.1/node_modules/color-bits/build/functions.js"(exports) {
      "use strict";
      var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o, m, k, k2) {
        if (k2 === void 0) k2 = k;
        var desc = Object.getOwnPropertyDescriptor(m, k);
        if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
          desc = { enumerable: true, get: function() {
            return m[k];
          } };
        }
        Object.defineProperty(o, k2, desc);
      }) : (function(o, m, k, k2) {
        if (k2 === void 0) k2 = k;
        o[k2] = m[k];
      }));
      var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? (function(o, v) {
        Object.defineProperty(o, "default", { enumerable: true, value: v });
      }) : function(o, v) {
        o["default"] = v;
      });
      var __importStar = exports && exports.__importStar || function(mod) {
        if (mod && mod.__esModule) return mod;
        var result = {};
        if (mod != null) {
          for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
        }
        __setModuleDefault(result, mod);
        return result;
      };
      Object.defineProperty(exports, "__esModule", { value: true });
      exports.alpha = alpha;
      exports.darken = darken;
      exports.lighten = lighten;
      exports.blend = blend;
      exports.getLuminance = getLuminance;
      var core = __importStar(require_core());
      var { getRed, getGreen, getBlue, getAlpha, setAlpha, newColor } = core;
      function alpha(color, value) {
        return setAlpha(color, Math.round(value * 255));
      }
      function darken(color, coefficient) {
        const r = getRed(color);
        const g = getGreen(color);
        const b = getBlue(color);
        const a = getAlpha(color);
        const factor = 1 - coefficient;
        return newColor(r * factor, g * factor, b * factor, a);
      }
      function lighten(color, coefficient) {
        const r = getRed(color);
        const g = getGreen(color);
        const b = getBlue(color);
        const a = getAlpha(color);
        return newColor(r + (255 - r) * coefficient, g + (255 - g) * coefficient, b + (255 - b) * coefficient, a);
      }
      function blend(background, overlay, opacity, gamma = 1) {
        const blendChannel = (b2, o) => Math.round((b2 ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);
        const r = blendChannel(getRed(background), getRed(overlay));
        const g = blendChannel(getGreen(background), getGreen(overlay));
        const b = blendChannel(getBlue(background), getBlue(overlay));
        return newColor(r, g, b, 255);
      }
      function getLuminance(color) {
        const r = getRed(color) / 255;
        const g = getGreen(color) / 255;
        const b = getBlue(color) / 255;
        const apply = (v) => v <= 0.03928 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4;
        const r1 = apply(r);
        const g1 = apply(g);
        const b1 = apply(b);
        return Math.round((0.2126 * r1 + 0.7152 * g1 + 0.0722 * b1) * 1e3) / 1e3;
      }
    }
  });

  // node_modules/.pnpm/color-bits@1.1.1/node_modules/color-bits/build/index.js
  var require_build = __commonJS({
    "node_modules/.pnpm/color-bits@1.1.1/node_modules/color-bits/build/index.js"(exports) {
      var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o, m, k, k2) {
        if (k2 === void 0) k2 = k;
        var desc = Object.getOwnPropertyDescriptor(m, k);
        if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
          desc = { enumerable: true, get: function() {
            return m[k];
          } };
        }
        Object.defineProperty(o, k2, desc);
      }) : (function(o, m, k, k2) {
        if (k2 === void 0) k2 = k;
        o[k2] = m[k];
      }));
      var __exportStar = exports && exports.__exportStar || function(m, exports2) {
        for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) __createBinding(exports2, m, p);
      };
      Object.defineProperty(exports, "__esModule", { value: true });
      __exportStar(require_core(), exports);
      __exportStar(require_parse(), exports);
      __exportStar(require_format(), exports);
      __exportStar(require_functions(), exports);
    }
  });
  return require_build();
})();

copy