@terrazzo/plugin-vanilla-extract 2.0.0-alpha.1 → 2.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/dist/index.js +15 -2960
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["FORMAT_ID","p","ident","tokensObj: any","k","name","p","k","FORMAT_CSS","FORMAT_VANILLA","output: string[]"],"sources":["../../plugin-css/dist/index.js","../../../node_modules/.pnpm/scule@1.3.0/node_modules/scule/dist/index.mjs","../src/lib.ts","../src/index.ts"],"sourcesContent":["//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rgb/parseNumber.js\nconst parseNumber = (color, len) => {\n\tif (typeof color !== \"number\") return;\n\tif (len === 3) return {\n\t\tmode: \"rgb\",\n\t\tr: (color >> 8 & 15 | color >> 4 & 240) / 255,\n\t\tg: (color >> 4 & 15 | color & 240) / 255,\n\t\tb: (color & 15 | color << 4 & 240) / 255\n\t};\n\tif (len === 4) return {\n\t\tmode: \"rgb\",\n\t\tr: (color >> 12 & 15 | color >> 8 & 240) / 255,\n\t\tg: (color >> 8 & 15 | color >> 4 & 240) / 255,\n\t\tb: (color >> 4 & 15 | color & 240) / 255,\n\t\talpha: (color & 15 | color << 4 & 240) / 255\n\t};\n\tif (len === 6) return {\n\t\tmode: \"rgb\",\n\t\tr: (color >> 16 & 255) / 255,\n\t\tg: (color >> 8 & 255) / 255,\n\t\tb: (color & 255) / 255\n\t};\n\tif (len === 8) return {\n\t\tmode: \"rgb\",\n\t\tr: (color >> 24 & 255) / 255,\n\t\tg: (color >> 16 & 255) / 255,\n\t\tb: (color >> 8 & 255) / 255,\n\t\talpha: (color & 255) / 255\n\t};\n};\nvar parseNumber_default = parseNumber;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/colors/named.js\nconst named = {\n\taliceblue: 15792383,\n\tantiquewhite: 16444375,\n\taqua: 65535,\n\taquamarine: 8388564,\n\tazure: 15794175,\n\tbeige: 16119260,\n\tbisque: 16770244,\n\tblack: 0,\n\tblanchedalmond: 16772045,\n\tblue: 255,\n\tblueviolet: 9055202,\n\tbrown: 10824234,\n\tburlywood: 14596231,\n\tcadetblue: 6266528,\n\tchartreuse: 8388352,\n\tchocolate: 13789470,\n\tcoral: 16744272,\n\tcornflowerblue: 6591981,\n\tcornsilk: 16775388,\n\tcrimson: 14423100,\n\tcyan: 65535,\n\tdarkblue: 139,\n\tdarkcyan: 35723,\n\tdarkgoldenrod: 12092939,\n\tdarkgray: 11119017,\n\tdarkgreen: 25600,\n\tdarkgrey: 11119017,\n\tdarkkhaki: 12433259,\n\tdarkmagenta: 9109643,\n\tdarkolivegreen: 5597999,\n\tdarkorange: 16747520,\n\tdarkorchid: 10040012,\n\tdarkred: 9109504,\n\tdarksalmon: 15308410,\n\tdarkseagreen: 9419919,\n\tdarkslateblue: 4734347,\n\tdarkslategray: 3100495,\n\tdarkslategrey: 3100495,\n\tdarkturquoise: 52945,\n\tdarkviolet: 9699539,\n\tdeeppink: 16716947,\n\tdeepskyblue: 49151,\n\tdimgray: 6908265,\n\tdimgrey: 6908265,\n\tdodgerblue: 2003199,\n\tfirebrick: 11674146,\n\tfloralwhite: 16775920,\n\tforestgreen: 2263842,\n\tfuchsia: 16711935,\n\tgainsboro: 14474460,\n\tghostwhite: 16316671,\n\tgold: 16766720,\n\tgoldenrod: 14329120,\n\tgray: 8421504,\n\tgreen: 32768,\n\tgreenyellow: 11403055,\n\tgrey: 8421504,\n\thoneydew: 15794160,\n\thotpink: 16738740,\n\tindianred: 13458524,\n\tindigo: 4915330,\n\tivory: 16777200,\n\tkhaki: 15787660,\n\tlavender: 15132410,\n\tlavenderblush: 16773365,\n\tlawngreen: 8190976,\n\tlemonchiffon: 16775885,\n\tlightblue: 11393254,\n\tlightcoral: 15761536,\n\tlightcyan: 14745599,\n\tlightgoldenrodyellow: 16448210,\n\tlightgray: 13882323,\n\tlightgreen: 9498256,\n\tlightgrey: 13882323,\n\tlightpink: 16758465,\n\tlightsalmon: 16752762,\n\tlightseagreen: 2142890,\n\tlightskyblue: 8900346,\n\tlightslategray: 7833753,\n\tlightslategrey: 7833753,\n\tlightsteelblue: 11584734,\n\tlightyellow: 16777184,\n\tlime: 65280,\n\tlimegreen: 3329330,\n\tlinen: 16445670,\n\tmagenta: 16711935,\n\tmaroon: 8388608,\n\tmediumaquamarine: 6737322,\n\tmediumblue: 205,\n\tmediumorchid: 12211667,\n\tmediumpurple: 9662683,\n\tmediumseagreen: 3978097,\n\tmediumslateblue: 8087790,\n\tmediumspringgreen: 64154,\n\tmediumturquoise: 4772300,\n\tmediumvioletred: 13047173,\n\tmidnightblue: 1644912,\n\tmintcream: 16121850,\n\tmistyrose: 16770273,\n\tmoccasin: 16770229,\n\tnavajowhite: 16768685,\n\tnavy: 128,\n\toldlace: 16643558,\n\tolive: 8421376,\n\tolivedrab: 7048739,\n\torange: 16753920,\n\torangered: 16729344,\n\torchid: 14315734,\n\tpalegoldenrod: 15657130,\n\tpalegreen: 10025880,\n\tpaleturquoise: 11529966,\n\tpalevioletred: 14381203,\n\tpapayawhip: 16773077,\n\tpeachpuff: 16767673,\n\tperu: 13468991,\n\tpink: 16761035,\n\tplum: 14524637,\n\tpowderblue: 11591910,\n\tpurple: 8388736,\n\trebeccapurple: 6697881,\n\tred: 16711680,\n\trosybrown: 12357519,\n\troyalblue: 4286945,\n\tsaddlebrown: 9127187,\n\tsalmon: 16416882,\n\tsandybrown: 16032864,\n\tseagreen: 3050327,\n\tseashell: 16774638,\n\tsienna: 10506797,\n\tsilver: 12632256,\n\tskyblue: 8900331,\n\tslateblue: 6970061,\n\tslategray: 7372944,\n\tslategrey: 7372944,\n\tsnow: 16775930,\n\tspringgreen: 65407,\n\tsteelblue: 4620980,\n\ttan: 13808780,\n\tteal: 32896,\n\tthistle: 14204888,\n\ttomato: 16737095,\n\tturquoise: 4251856,\n\tviolet: 15631086,\n\twheat: 16113331,\n\twhite: 16777215,\n\twhitesmoke: 16119285,\n\tyellow: 16776960,\n\tyellowgreen: 10145074\n};\nvar named_default = named;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rgb/parseNamed.js\nconst parseNamed = (color) => {\n\treturn parseNumber_default(named_default[color.toLowerCase()], 6);\n};\nvar parseNamed_default = parseNamed;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rgb/parseHex.js\nconst hex = /^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i;\nconst parseHex = (color) => {\n\tlet match;\n\treturn (match = color.match(hex)) ? parseNumber_default(parseInt(match[1], 16), match[1].length) : void 0;\n};\nvar parseHex_default = parseHex;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/util/regex.js\nconst num$1 = \"([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\";\nconst num_none = `(?:${num$1}|none)`;\nconst per = `${num$1}%`;\nconst per_none = `(?:${num$1}%|none)`;\nconst num_per = `(?:${num$1}%|${num$1})`;\nconst num_per_none = `(?:${num$1}%|${num$1}|none)`;\nconst hue$1 = `(?:${num$1}(deg|grad|rad|turn)|${num$1})`;\nconst hue_none = `(?:${num$1}(deg|grad|rad|turn)|${num$1}|none)`;\nconst c = `\\\\s*,\\\\s*`;\nconst rx_num_per_none = /* @__PURE__ */ new RegExp(\"^\" + num_per_none + \"$\");\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rgb/parseRgbLegacy.js\nconst rgb_num_old = /* @__PURE__ */ new RegExp(`^rgba?\\\\(\\\\s*${num$1}${c}${num$1}${c}${num$1}\\\\s*(?:,\\\\s*${num_per}\\\\s*)?\\\\)$`);\nconst rgb_per_old = /* @__PURE__ */ new RegExp(`^rgba?\\\\(\\\\s*${per}${c}${per}${c}${per}\\\\s*(?:,\\\\s*${num_per}\\\\s*)?\\\\)$`);\nconst parseRgbLegacy = (color) => {\n\tlet res = { mode: \"rgb\" };\n\tlet match;\n\tif (match = color.match(rgb_num_old)) {\n\t\tif (match[1] !== void 0) res.r = match[1] / 255;\n\t\tif (match[2] !== void 0) res.g = match[2] / 255;\n\t\tif (match[3] !== void 0) res.b = match[3] / 255;\n\t} else if (match = color.match(rgb_per_old)) {\n\t\tif (match[1] !== void 0) res.r = match[1] / 100;\n\t\tif (match[2] !== void 0) res.g = match[2] / 100;\n\t\tif (match[3] !== void 0) res.b = match[3] / 100;\n\t} else return;\n\tif (match[4] !== void 0) res.alpha = Math.max(0, Math.min(1, match[4] / 100));\n\telse if (match[5] !== void 0) res.alpha = Math.max(0, Math.min(1, +match[5]));\n\treturn res;\n};\nvar parseRgbLegacy_default = parseRgbLegacy;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/_prepare.js\nconst prepare = (color, mode) => color === void 0 ? void 0 : typeof color !== \"object\" ? parse_default(color) : color.mode !== void 0 ? color : mode ? {\n\t...color,\n\tmode\n} : void 0;\nvar _prepare_default = prepare;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/converter.js\nconst converter = (target_mode = \"rgb\") => (color) => (color = _prepare_default(color, target_mode)) !== void 0 ? color.mode === target_mode ? color : converters$1[color.mode][target_mode] ? converters$1[color.mode][target_mode](color) : target_mode === \"rgb\" ? converters$1[color.mode].rgb(color) : converters$1.rgb[target_mode](converters$1[color.mode].rgb(color)) : void 0;\nvar converter_default = converter;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/modes.js\nconst converters$1 = {};\nconst modes = {};\nconst parsers = [];\nconst colorProfiles = {};\nconst identity = (v) => v;\nconst useMode = (definition$28) => {\n\tconverters$1[definition$28.mode] = {\n\t\t...converters$1[definition$28.mode],\n\t\t...definition$28.toMode\n\t};\n\tObject.keys(definition$28.fromMode || {}).forEach((k$3) => {\n\t\tif (!converters$1[k$3]) converters$1[k$3] = {};\n\t\tconverters$1[k$3][definition$28.mode] = definition$28.fromMode[k$3];\n\t});\n\tif (!definition$28.ranges) definition$28.ranges = {};\n\tif (!definition$28.difference) definition$28.difference = {};\n\tdefinition$28.channels.forEach((channel) => {\n\t\tif (definition$28.ranges[channel] === void 0) definition$28.ranges[channel] = [0, 1];\n\t\tif (!definition$28.interpolate[channel]) throw new Error(`Missing interpolator for: ${channel}`);\n\t\tif (typeof definition$28.interpolate[channel] === \"function\") definition$28.interpolate[channel] = { use: definition$28.interpolate[channel] };\n\t\tif (!definition$28.interpolate[channel].fixup) definition$28.interpolate[channel].fixup = identity;\n\t});\n\tmodes[definition$28.mode] = definition$28;\n\t(definition$28.parse || []).forEach((parser) => {\n\t\tuseParser(parser, definition$28.mode);\n\t});\n\treturn converter_default(definition$28.mode);\n};\nconst getMode = (mode) => modes[mode];\nconst useParser = (parser, mode) => {\n\tif (typeof parser === \"string\") {\n\t\tif (!mode) throw new Error(`'mode' required when 'parser' is a string`);\n\t\tcolorProfiles[parser] = mode;\n\t} else if (typeof parser === \"function\") {\n\t\tif (parsers.indexOf(parser) < 0) parsers.push(parser);\n\t}\n};\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/parse.js\nconst IdentStartCodePoint = /[^\\x00-\\x7F]|[a-zA-Z_]/;\nconst IdentCodePoint = /[^\\x00-\\x7F]|[-\\w]/;\nconst Tok = {\n\tFunction: \"function\",\n\tIdent: \"ident\",\n\tNumber: \"number\",\n\tPercentage: \"percentage\",\n\tParenClose: \")\",\n\tNone: \"none\",\n\tHue: \"hue\",\n\tAlpha: \"alpha\"\n};\nlet _i = 0;\nfunction is_num(chars) {\n\tlet ch = chars[_i];\n\tlet ch1 = chars[_i + 1];\n\tif (ch === \"-\" || ch === \"+\") return /\\d/.test(ch1) || ch1 === \".\" && /\\d/.test(chars[_i + 2]);\n\tif (ch === \".\") return /\\d/.test(ch1);\n\treturn /\\d/.test(ch);\n}\nfunction is_ident(chars) {\n\tif (_i >= chars.length) return false;\n\tlet ch = chars[_i];\n\tif (IdentStartCodePoint.test(ch)) return true;\n\tif (ch === \"-\") {\n\t\tif (chars.length - _i < 2) return false;\n\t\tlet ch1 = chars[_i + 1];\n\t\tif (ch1 === \"-\" || IdentStartCodePoint.test(ch1)) return true;\n\t\treturn false;\n\t}\n\treturn false;\n}\nconst huenits = {\n\tdeg: 1,\n\trad: 180 / Math.PI,\n\tgrad: 9 / 10,\n\tturn: 360\n};\nfunction num(chars) {\n\tlet value = \"\";\n\tif (chars[_i] === \"-\" || chars[_i] === \"+\") value += chars[_i++];\n\tvalue += digits(chars);\n\tif (chars[_i] === \".\" && /\\d/.test(chars[_i + 1])) value += chars[_i++] + digits(chars);\n\tif (chars[_i] === \"e\" || chars[_i] === \"E\") {\n\t\tif ((chars[_i + 1] === \"-\" || chars[_i + 1] === \"+\") && /\\d/.test(chars[_i + 2])) value += chars[_i++] + chars[_i++] + digits(chars);\n\t\telse if (/\\d/.test(chars[_i + 1])) value += chars[_i++] + digits(chars);\n\t}\n\tif (is_ident(chars)) {\n\t\tlet id = ident(chars);\n\t\tif (id === \"deg\" || id === \"rad\" || id === \"turn\" || id === \"grad\") return {\n\t\t\ttype: Tok.Hue,\n\t\t\tvalue: value * huenits[id]\n\t\t};\n\t\treturn;\n\t}\n\tif (chars[_i] === \"%\") {\n\t\t_i++;\n\t\treturn {\n\t\t\ttype: Tok.Percentage,\n\t\t\tvalue: +value\n\t\t};\n\t}\n\treturn {\n\t\ttype: Tok.Number,\n\t\tvalue: +value\n\t};\n}\nfunction digits(chars) {\n\tlet v = \"\";\n\twhile (/\\d/.test(chars[_i])) v += chars[_i++];\n\treturn v;\n}\nfunction ident(chars) {\n\tlet v = \"\";\n\twhile (_i < chars.length && IdentCodePoint.test(chars[_i])) v += chars[_i++];\n\treturn v;\n}\nfunction identlike(chars) {\n\tlet v = ident(chars);\n\tif (chars[_i] === \"(\") {\n\t\t_i++;\n\t\treturn {\n\t\t\ttype: Tok.Function,\n\t\t\tvalue: v\n\t\t};\n\t}\n\tif (v === \"none\") return {\n\t\ttype: Tok.None,\n\t\tvalue: void 0\n\t};\n\treturn {\n\t\ttype: Tok.Ident,\n\t\tvalue: v\n\t};\n}\nfunction tokenize(str = \"\") {\n\tlet chars = str.trim();\n\tlet tokens = [];\n\tlet ch;\n\t_i = 0;\n\twhile (_i < chars.length) {\n\t\tch = chars[_i++];\n\t\tif (ch === \"\\n\" || ch === \"\t\" || ch === \" \") {\n\t\t\twhile (_i < chars.length && (chars[_i] === \"\\n\" || chars[_i] === \"\t\" || chars[_i] === \" \")) _i++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (ch === \",\") return;\n\t\tif (ch === \")\") {\n\t\t\ttokens.push({ type: Tok.ParenClose });\n\t\t\tcontinue;\n\t\t}\n\t\tif (ch === \"+\") {\n\t\t\t_i--;\n\t\t\tif (is_num(chars)) {\n\t\t\t\ttokens.push(num(chars));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (ch === \"-\") {\n\t\t\t_i--;\n\t\t\tif (is_num(chars)) {\n\t\t\t\ttokens.push(num(chars));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (is_ident(chars)) {\n\t\t\t\ttokens.push({\n\t\t\t\t\ttype: Tok.Ident,\n\t\t\t\t\tvalue: ident(chars)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (ch === \".\") {\n\t\t\t_i--;\n\t\t\tif (is_num(chars)) {\n\t\t\t\ttokens.push(num(chars));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (ch === \"/\") {\n\t\t\twhile (_i < chars.length && (chars[_i] === \"\\n\" || chars[_i] === \"\t\" || chars[_i] === \" \")) _i++;\n\t\t\tlet alpha;\n\t\t\tif (is_num(chars)) {\n\t\t\t\talpha = num(chars);\n\t\t\t\tif (alpha.type !== Tok.Hue) {\n\t\t\t\t\ttokens.push({\n\t\t\t\t\t\ttype: Tok.Alpha,\n\t\t\t\t\t\tvalue: alpha\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (is_ident(chars)) {\n\t\t\t\tif (ident(chars) === \"none\") {\n\t\t\t\t\ttokens.push({\n\t\t\t\t\t\ttype: Tok.Alpha,\n\t\t\t\t\t\tvalue: {\n\t\t\t\t\t\t\ttype: Tok.None,\n\t\t\t\t\t\t\tvalue: void 0\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (/\\d/.test(ch)) {\n\t\t\t_i--;\n\t\t\ttokens.push(num(chars));\n\t\t\tcontinue;\n\t\t}\n\t\tif (IdentStartCodePoint.test(ch)) {\n\t\t\t_i--;\n\t\t\ttokens.push(identlike(chars));\n\t\t\tcontinue;\n\t\t}\n\t\treturn;\n\t}\n\treturn tokens;\n}\nfunction parseColorSyntax(tokens) {\n\ttokens._i = 0;\n\tlet token = tokens[tokens._i++];\n\tif (!token || token.type !== Tok.Function || token.value !== \"color\") return;\n\ttoken = tokens[tokens._i++];\n\tif (token.type !== Tok.Ident) return;\n\tconst mode = colorProfiles[token.value];\n\tif (!mode) return;\n\tconst res = { mode };\n\tconst coords = consumeCoords(tokens, false);\n\tif (!coords) return;\n\tconst channels = getMode(mode).channels;\n\tfor (let ii = 0, c$1, ch; ii < channels.length; ii++) {\n\t\tc$1 = coords[ii];\n\t\tch = channels[ii];\n\t\tif (c$1.type !== Tok.None) {\n\t\t\tres[ch] = c$1.type === Tok.Number ? c$1.value : c$1.value / 100;\n\t\t\tif (ch === \"alpha\") res[ch] = Math.max(0, Math.min(1, res[ch]));\n\t\t}\n\t}\n\treturn res;\n}\nfunction consumeCoords(tokens, includeHue) {\n\tconst coords = [];\n\tlet token;\n\twhile (tokens._i < tokens.length) {\n\t\ttoken = tokens[tokens._i++];\n\t\tif (token.type === Tok.None || token.type === Tok.Number || token.type === Tok.Alpha || token.type === Tok.Percentage || includeHue && token.type === Tok.Hue) {\n\t\t\tcoords.push(token);\n\t\t\tcontinue;\n\t\t}\n\t\tif (token.type === Tok.ParenClose) {\n\t\t\tif (tokens._i < tokens.length) return;\n\t\t\tcontinue;\n\t\t}\n\t\treturn;\n\t}\n\tif (coords.length < 3 || coords.length > 4) return;\n\tif (coords.length === 4) {\n\t\tif (coords[3].type !== Tok.Alpha) return;\n\t\tcoords[3] = coords[3].value;\n\t}\n\tif (coords.length === 3) coords.push({\n\t\ttype: Tok.None,\n\t\tvalue: void 0\n\t});\n\treturn coords.every((c$1) => c$1.type !== Tok.Alpha) ? coords : void 0;\n}\nfunction parseModernSyntax(tokens, includeHue) {\n\ttokens._i = 0;\n\tlet token = tokens[tokens._i++];\n\tif (!token || token.type !== Tok.Function) return;\n\tlet coords = consumeCoords(tokens, includeHue);\n\tif (!coords) return;\n\tcoords.unshift(token.value);\n\treturn coords;\n}\nconst parse = (color) => {\n\tif (typeof color !== \"string\") return;\n\tconst tokens = tokenize(color);\n\tconst parsed = tokens ? parseModernSyntax(tokens, true) : void 0;\n\tlet result = void 0;\n\tlet i = 0;\n\tlet len = parsers.length;\n\twhile (i < len) if ((result = parsers[i++](color, parsed)) !== void 0) return result;\n\treturn tokens ? parseColorSyntax(tokens) : void 0;\n};\nvar parse_default = parse;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rgb/parseRgb.js\nfunction parseRgb(color, parsed) {\n\tif (!parsed || parsed[0] !== \"rgb\" && parsed[0] !== \"rgba\") return;\n\tconst res = { mode: \"rgb\" };\n\tconst [, r$1, g, b, alpha] = parsed;\n\tif (r$1.type === Tok.Hue || g.type === Tok.Hue || b.type === Tok.Hue) return;\n\tif (r$1.type !== Tok.None) res.r = r$1.type === Tok.Number ? r$1.value / 255 : r$1.value / 100;\n\tif (g.type !== Tok.None) res.g = g.type === Tok.Number ? g.value / 255 : g.value / 100;\n\tif (b.type !== Tok.None) res.b = b.type === Tok.Number ? b.value / 255 : b.value / 100;\n\tif (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));\n\treturn res;\n}\nvar parseRgb_default = parseRgb;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rgb/parseTransparent.js\nconst parseTransparent = (c$1) => c$1 === \"transparent\" ? {\n\tmode: \"rgb\",\n\tr: 0,\n\tg: 0,\n\tb: 0,\n\talpha: 0\n} : void 0;\nvar parseTransparent_default = parseTransparent;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/interpolate/lerp.js\nconst lerp = (a, b, t) => a + t * (b - a);\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/interpolate/piecewise.js\nconst get_classes = (arr) => {\n\tlet classes = [];\n\tfor (let i = 0; i < arr.length - 1; i++) {\n\t\tlet a = arr[i];\n\t\tlet b = arr[i + 1];\n\t\tif (a === void 0 && b === void 0) classes.push(void 0);\n\t\telse if (a !== void 0 && b !== void 0) classes.push([a, b]);\n\t\telse classes.push(a !== void 0 ? [a, a] : [b, b]);\n\t}\n\treturn classes;\n};\nconst interpolatorPiecewise = (interpolator) => (arr) => {\n\tlet classes = get_classes(arr);\n\treturn (t) => {\n\t\tlet cls = t * classes.length;\n\t\tlet idx = t >= 1 ? classes.length - 1 : Math.max(Math.floor(cls), 0);\n\t\tlet pair = classes[idx];\n\t\treturn pair === void 0 ? void 0 : interpolator(pair[0], pair[1], cls - idx);\n\t};\n};\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/interpolate/linear.js\nconst interpolatorLinear = interpolatorPiecewise(lerp);\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/fixup/alpha.js\nconst fixupAlpha = (arr) => {\n\tlet some_defined = false;\n\tlet res = arr.map((v) => {\n\t\tif (v !== void 0) {\n\t\t\tsome_defined = true;\n\t\t\treturn v;\n\t\t}\n\t\treturn 1;\n\t});\n\treturn some_defined ? res : arr;\n};\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rgb/definition.js\nconst definition$27 = {\n\tmode: \"rgb\",\n\tchannels: [\n\t\t\"r\",\n\t\t\"g\",\n\t\t\"b\",\n\t\t\"alpha\"\n\t],\n\tparse: [\n\t\tparseRgb_default,\n\t\tparseHex_default,\n\t\tparseRgbLegacy_default,\n\t\tparseNamed_default,\n\t\tparseTransparent_default,\n\t\t\"srgb\"\n\t],\n\tserialize: \"srgb\",\n\tinterpolate: {\n\t\tr: interpolatorLinear,\n\t\tg: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\tgamut: true,\n\twhite: {\n\t\tr: 1,\n\t\tg: 1,\n\t\tb: 1\n\t},\n\tblack: {\n\t\tr: 0,\n\t\tg: 0,\n\t\tb: 0\n\t}\n};\nvar definition_default$12 = definition$27;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/a98/convertA98ToXyz65.js\nconst linearize$2 = (v = 0) => Math.pow(Math.abs(v), 563 / 256) * Math.sign(v);\nconst convertA98ToXyz65 = (a98$2) => {\n\tlet r$1 = linearize$2(a98$2.r);\n\tlet g = linearize$2(a98$2.g);\n\tlet b = linearize$2(a98$2.b);\n\tlet res = {\n\t\tmode: \"xyz65\",\n\t\tx: .5766690429101305 * r$1 + .1855582379065463 * g + .1882286462349947 * b,\n\t\ty: .297344975250536 * r$1 + .6273635662554661 * g + .0752914584939979 * b,\n\t\tz: .0270313613864123 * r$1 + .0706888525358272 * g + .9913375368376386 * b\n\t};\n\tif (a98$2.alpha !== void 0) res.alpha = a98$2.alpha;\n\treturn res;\n};\nvar convertA98ToXyz65_default = convertA98ToXyz65;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/a98/convertXyz65ToA98.js\nconst gamma$2 = (v) => Math.pow(Math.abs(v), 256 / 563) * Math.sign(v);\nconst convertXyz65ToA98 = ({ x, y, z, alpha }) => {\n\tif (x === void 0) x = 0;\n\tif (y === void 0) y = 0;\n\tif (z === void 0) z = 0;\n\tlet res = {\n\t\tmode: \"a98\",\n\t\tr: gamma$2(x * 2.0415879038107465 - y * .5650069742788597 - .3447313507783297 * z),\n\t\tg: gamma$2(x * -.9692436362808798 + y * 1.8759675015077206 + .0415550574071756 * z),\n\t\tb: gamma$2(x * .0134442806320312 - y * .1183623922310184 + 1.0151749943912058 * z)\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertXyz65ToA98_default = convertXyz65ToA98;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lrgb/convertRgbToLrgb.js\nconst fn$3 = (c$1 = 0) => {\n\tconst abs$1 = Math.abs(c$1);\n\tif (abs$1 <= .04045) return c$1 / 12.92;\n\treturn (Math.sign(c$1) || 1) * Math.pow((abs$1 + .055) / 1.055, 2.4);\n};\nconst convertRgbToLrgb = ({ r: r$1, g, b, alpha }) => {\n\tlet res = {\n\t\tmode: \"lrgb\",\n\t\tr: fn$3(r$1),\n\t\tg: fn$3(g),\n\t\tb: fn$3(b)\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertRgbToLrgb_default = convertRgbToLrgb;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz65/convertRgbToXyz65.js\nconst convertRgbToXyz65 = (rgb$4) => {\n\tlet { r: r$1, g, b, alpha } = convertRgbToLrgb_default(rgb$4);\n\tlet res = {\n\t\tmode: \"xyz65\",\n\t\tx: .4123907992659593 * r$1 + .357584339383878 * g + .1804807884018343 * b,\n\t\ty: .2126390058715102 * r$1 + .715168678767756 * g + .0721923153607337 * b,\n\t\tz: .0193308187155918 * r$1 + .119194779794626 * g + .9505321522496607 * b\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertRgbToXyz65_default = convertRgbToXyz65;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lrgb/convertLrgbToRgb.js\nconst fn$2 = (c$1 = 0) => {\n\tconst abs$1 = Math.abs(c$1);\n\tif (abs$1 > .0031308) return (Math.sign(c$1) || 1) * (1.055 * Math.pow(abs$1, 1 / 2.4) - .055);\n\treturn c$1 * 12.92;\n};\nconst convertLrgbToRgb = ({ r: r$1, g, b, alpha }, mode = \"rgb\") => {\n\tlet res = {\n\t\tmode,\n\t\tr: fn$2(r$1),\n\t\tg: fn$2(g),\n\t\tb: fn$2(b)\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertLrgbToRgb_default = convertLrgbToRgb;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz65/convertXyz65ToRgb.js\nconst convertXyz65ToRgb = ({ x, y, z, alpha }) => {\n\tif (x === void 0) x = 0;\n\tif (y === void 0) y = 0;\n\tif (z === void 0) z = 0;\n\tlet res = convertLrgbToRgb_default({\n\t\tr: x * 3.2409699419045226 - y * 1.537383177570094 - .4986107602930034 * z,\n\t\tg: x * -.9692436362808796 + y * 1.8759675015077204 + .0415550574071756 * z,\n\t\tb: x * .0556300796969936 - y * .2039769588889765 + 1.0569715142428784 * z\n\t});\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertXyz65ToRgb_default = convertXyz65ToRgb;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/a98/definition.js\nconst definition$26 = {\n\t...definition_default$12,\n\tmode: \"a98\",\n\tparse: [\"a98-rgb\"],\n\tserialize: \"a98-rgb\",\n\tfromMode: {\n\t\trgb: (color) => convertXyz65ToA98_default(convertRgbToXyz65_default(color)),\n\t\txyz65: convertXyz65ToA98_default\n\t},\n\ttoMode: {\n\t\trgb: (color) => convertXyz65ToRgb_default(convertA98ToXyz65_default(color)),\n\t\txyz65: convertA98ToXyz65_default\n\t}\n};\nvar definition_default = definition$26;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/util/normalizeHue.js\nconst normalizeHue = (hue$2) => (hue$2 = hue$2 % 360) < 0 ? hue$2 + 360 : hue$2;\nvar normalizeHue_default = normalizeHue;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsl/convertHslToRgb.js\nfunction convertHslToRgb({ h, s, l, alpha }) {\n\th = normalizeHue_default(h !== void 0 ? h : 0);\n\tif (s === void 0) s = 0;\n\tif (l === void 0) l = 0;\n\tlet m1 = l + s * (l < .5 ? l : 1 - l);\n\tlet m2 = m1 - (m1 - l) * 2 * Math.abs(h / 60 % 2 - 1);\n\tlet res;\n\tswitch (Math.floor(h / 60)) {\n\t\tcase 0:\n\t\t\tres = {\n\t\t\t\tr: m1,\n\t\t\t\tg: m2,\n\t\t\t\tb: 2 * l - m1\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tres = {\n\t\t\t\tr: m2,\n\t\t\t\tg: m1,\n\t\t\t\tb: 2 * l - m1\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tres = {\n\t\t\t\tr: 2 * l - m1,\n\t\t\t\tg: m1,\n\t\t\t\tb: m2\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tres = {\n\t\t\t\tr: 2 * l - m1,\n\t\t\t\tg: m2,\n\t\t\t\tb: m1\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tres = {\n\t\t\t\tr: m2,\n\t\t\t\tg: 2 * l - m1,\n\t\t\t\tb: m1\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tres = {\n\t\t\t\tr: m1,\n\t\t\t\tg: 2 * l - m1,\n\t\t\t\tb: m2\n\t\t\t};\n\t\t\tbreak;\n\t\tdefault: res = {\n\t\t\tr: 2 * l - m1,\n\t\t\tg: 2 * l - m1,\n\t\t\tb: 2 * l - m1\n\t\t};\n\t}\n\tres.mode = \"rgb\";\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsl/convertRgbToHsl.js\nfunction convertRgbToHsl({ r: r$1, g, b, alpha }) {\n\tif (r$1 === void 0) r$1 = 0;\n\tif (g === void 0) g = 0;\n\tif (b === void 0) b = 0;\n\tlet M$1 = Math.max(r$1, g, b), m = Math.min(r$1, g, b);\n\tlet res = {\n\t\tmode: \"hsl\",\n\t\ts: M$1 === m ? 0 : (M$1 - m) / (1 - Math.abs(M$1 + m - 1)),\n\t\tl: .5 * (M$1 + m)\n\t};\n\tif (M$1 - m !== 0) res.h = (M$1 === r$1 ? (g - b) / (M$1 - m) + (g < b) * 6 : M$1 === g ? (b - r$1) / (M$1 - m) + 2 : (r$1 - g) / (M$1 - m) + 4) * 60;\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/util/hue.js\nconst hueToDeg = (val, unit) => {\n\tswitch (unit) {\n\t\tcase \"deg\": return +val;\n\t\tcase \"rad\": return val / Math.PI * 180;\n\t\tcase \"grad\": return val / 10 * 9;\n\t\tcase \"turn\": return val * 360;\n\t}\n};\nvar hue_default = hueToDeg;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsl/parseHslLegacy.js\nconst hsl_old = /* @__PURE__ */ new RegExp(`^hsla?\\\\(\\\\s*${hue$1}${c}${per}${c}${per}\\\\s*(?:,\\\\s*${num_per}\\\\s*)?\\\\)$`);\nconst parseHslLegacy = (color) => {\n\tlet match = color.match(hsl_old);\n\tif (!match) return;\n\tlet res = { mode: \"hsl\" };\n\tif (match[3] !== void 0) res.h = +match[3];\n\telse if (match[1] !== void 0 && match[2] !== void 0) res.h = hue_default(match[1], match[2]);\n\tif (match[4] !== void 0) res.s = Math.min(Math.max(0, match[4] / 100), 1);\n\tif (match[5] !== void 0) res.l = Math.min(Math.max(0, match[5] / 100), 1);\n\tif (match[6] !== void 0) res.alpha = Math.max(0, Math.min(1, match[6] / 100));\n\telse if (match[7] !== void 0) res.alpha = Math.max(0, Math.min(1, +match[7]));\n\treturn res;\n};\nvar parseHslLegacy_default = parseHslLegacy;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsl/parseHsl.js\nfunction parseHsl(color, parsed) {\n\tif (!parsed || parsed[0] !== \"hsl\" && parsed[0] !== \"hsla\") return;\n\tconst res = { mode: \"hsl\" };\n\tconst [, h, s, l, alpha] = parsed;\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) return;\n\t\tres.h = h.value;\n\t}\n\tif (s.type !== Tok.None) {\n\t\tif (s.type === Tok.Hue) return;\n\t\tres.s = s.value / 100;\n\t}\n\tif (l.type !== Tok.None) {\n\t\tif (l.type === Tok.Hue) return;\n\t\tres.l = l.value / 100;\n\t}\n\tif (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));\n\treturn res;\n}\nvar parseHsl_default = parseHsl;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/fixup/hue.js\nconst hue = (hues, fn$4) => {\n\treturn hues.map((hue$2, idx, arr) => {\n\t\tif (hue$2 === void 0) return hue$2;\n\t\tlet normalized = normalizeHue_default(hue$2);\n\t\tif (idx === 0 || hues[idx - 1] === void 0) return normalized;\n\t\treturn fn$4(normalized - normalizeHue_default(arr[idx - 1]));\n\t}).reduce((acc, curr) => {\n\t\tif (!acc.length || curr === void 0 || acc[acc.length - 1] === void 0) {\n\t\t\tacc.push(curr);\n\t\t\treturn acc;\n\t\t}\n\t\tacc.push(curr + acc[acc.length - 1]);\n\t\treturn acc;\n\t}, []);\n};\nconst fixupHueShorter = (arr) => hue(arr, (d) => Math.abs(d) <= 180 ? d : d - 360 * Math.sign(d));\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/difference.js\nconst differenceHueSaturation = (std, smp) => {\n\tif (std.h === void 0 || smp.h === void 0 || !std.s || !smp.s) return 0;\n\tlet std_h = normalizeHue_default(std.h);\n\tlet smp_h = normalizeHue_default(smp.h);\n\tlet dH = Math.sin((smp_h - std_h + 360) / 2 * Math.PI / 180);\n\treturn 2 * Math.sqrt(std.s * smp.s) * dH;\n};\nconst differenceHueNaive = (std, smp) => {\n\tif (std.h === void 0 || smp.h === void 0) return 0;\n\tlet std_h = normalizeHue_default(std.h);\n\tlet smp_h = normalizeHue_default(smp.h);\n\tif (Math.abs(smp_h - std_h) > 180) return std_h - (smp_h - 360 * Math.sign(smp_h - std_h));\n\treturn smp_h - std_h;\n};\nconst differenceHueChroma = (std, smp) => {\n\tif (std.h === void 0 || smp.h === void 0 || !std.c || !smp.c) return 0;\n\tlet std_h = normalizeHue_default(std.h);\n\tlet smp_h = normalizeHue_default(smp.h);\n\tlet dH = Math.sin((smp_h - std_h + 360) / 2 * Math.PI / 180);\n\treturn 2 * Math.sqrt(std.c * smp.c) * dH;\n};\nconst differenceEuclidean = (mode = \"rgb\", weights = [\n\t1,\n\t1,\n\t1,\n\t0\n]) => {\n\tlet def = getMode(mode);\n\tlet channels = def.channels;\n\tlet diffs = def.difference;\n\tlet conv = converter_default(mode);\n\treturn (std, smp) => {\n\t\tlet ConvStd = conv(std);\n\t\tlet ConvSmp = conv(smp);\n\t\treturn Math.sqrt(channels.reduce((sum, k$3, idx) => {\n\t\t\tlet delta = diffs[k$3] ? diffs[k$3](ConvStd, ConvSmp) : ConvStd[k$3] - ConvSmp[k$3];\n\t\t\treturn sum + (weights[idx] || 0) * Math.pow(isNaN(delta) ? 0 : delta, 2);\n\t\t}, 0));\n\t};\n};\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/average.js\nconst averageAngle = (val) => {\n\tlet sum = val.reduce((sum$1, val$1) => {\n\t\tif (val$1 !== void 0) {\n\t\t\tlet rad = val$1 * Math.PI / 180;\n\t\t\tsum$1.sin += Math.sin(rad);\n\t\t\tsum$1.cos += Math.cos(rad);\n\t\t}\n\t\treturn sum$1;\n\t}, {\n\t\tsin: 0,\n\t\tcos: 0\n\t});\n\tlet angle = Math.atan2(sum.sin, sum.cos) * 180 / Math.PI;\n\treturn angle < 0 ? 360 + angle : angle;\n};\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsl/definition.js\nconst definition$25 = {\n\tmode: \"hsl\",\n\ttoMode: { rgb: convertHslToRgb },\n\tfromMode: { rgb: convertRgbToHsl },\n\tchannels: [\n\t\t\"h\",\n\t\t\"s\",\n\t\t\"l\",\n\t\t\"alpha\"\n\t],\n\tranges: { h: [0, 360] },\n\tgamut: \"rgb\",\n\tparse: [parseHsl_default, parseHslLegacy_default],\n\tserialize: (c$1) => `hsl(${c$1.h !== void 0 ? c$1.h : \"none\"} ${c$1.s !== void 0 ? c$1.s * 100 + \"%\" : \"none\"} ${c$1.l !== void 0 ? c$1.l * 100 + \"%\" : \"none\"}${c$1.alpha < 1 ? ` / ${c$1.alpha}` : \"\"})`,\n\tinterpolate: {\n\t\th: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupHueShorter\n\t\t},\n\t\ts: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\tdifference: { h: differenceHueSaturation },\n\taverage: { h: averageAngle }\n};\nvar definition_default$1 = definition$25;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsv/convertHsvToRgb.js\nfunction convertHsvToRgb({ h, s, v, alpha }) {\n\th = normalizeHue_default(h !== void 0 ? h : 0);\n\tif (s === void 0) s = 0;\n\tif (v === void 0) v = 0;\n\tlet f$2 = Math.abs(h / 60 % 2 - 1);\n\tlet res;\n\tswitch (Math.floor(h / 60)) {\n\t\tcase 0:\n\t\t\tres = {\n\t\t\t\tr: v,\n\t\t\t\tg: v * (1 - s * f$2),\n\t\t\t\tb: v * (1 - s)\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tres = {\n\t\t\t\tr: v * (1 - s * f$2),\n\t\t\t\tg: v,\n\t\t\t\tb: v * (1 - s)\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tres = {\n\t\t\t\tr: v * (1 - s),\n\t\t\t\tg: v,\n\t\t\t\tb: v * (1 - s * f$2)\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tres = {\n\t\t\t\tr: v * (1 - s),\n\t\t\t\tg: v * (1 - s * f$2),\n\t\t\t\tb: v\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tres = {\n\t\t\t\tr: v * (1 - s * f$2),\n\t\t\t\tg: v * (1 - s),\n\t\t\t\tb: v\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tres = {\n\t\t\t\tr: v,\n\t\t\t\tg: v * (1 - s),\n\t\t\t\tb: v * (1 - s * f$2)\n\t\t\t};\n\t\t\tbreak;\n\t\tdefault: res = {\n\t\t\tr: v * (1 - s),\n\t\t\tg: v * (1 - s),\n\t\t\tb: v * (1 - s)\n\t\t};\n\t}\n\tres.mode = \"rgb\";\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsv/convertRgbToHsv.js\nfunction convertRgbToHsv({ r: r$1, g, b, alpha }) {\n\tif (r$1 === void 0) r$1 = 0;\n\tif (g === void 0) g = 0;\n\tif (b === void 0) b = 0;\n\tlet M$1 = Math.max(r$1, g, b), m = Math.min(r$1, g, b);\n\tlet res = {\n\t\tmode: \"hsv\",\n\t\ts: M$1 === 0 ? 0 : 1 - m / M$1,\n\t\tv: M$1\n\t};\n\tif (M$1 - m !== 0) res.h = (M$1 === r$1 ? (g - b) / (M$1 - m) + (g < b) * 6 : M$1 === g ? (b - r$1) / (M$1 - m) + 2 : (r$1 - g) / (M$1 - m) + 4) * 60;\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsv/definition.js\nconst definition$24 = {\n\tmode: \"hsv\",\n\ttoMode: { rgb: convertHsvToRgb },\n\tparse: [\"--hsv\"],\n\tserialize: \"--hsv\",\n\tfromMode: { rgb: convertRgbToHsv },\n\tchannels: [\n\t\t\"h\",\n\t\t\"s\",\n\t\t\"v\",\n\t\t\"alpha\"\n\t],\n\tranges: { h: [0, 360] },\n\tgamut: \"rgb\",\n\tinterpolate: {\n\t\th: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupHueShorter\n\t\t},\n\t\ts: interpolatorLinear,\n\t\tv: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\tdifference: { h: differenceHueSaturation },\n\taverage: { h: averageAngle }\n};\nvar definition_default$19 = definition$24;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hwb/convertHwbToRgb.js\nfunction convertHwbToRgb({ h, w, b, alpha }) {\n\tif (w === void 0) w = 0;\n\tif (b === void 0) b = 0;\n\tif (w + b > 1) {\n\t\tlet s = w + b;\n\t\tw /= s;\n\t\tb /= s;\n\t}\n\treturn convertHsvToRgb({\n\t\th,\n\t\ts: b === 1 ? 1 : 1 - w / (1 - b),\n\t\tv: 1 - b,\n\t\talpha\n\t});\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hwb/convertRgbToHwb.js\nfunction convertRgbToHwb(rgba) {\n\tlet hsv$2 = convertRgbToHsv(rgba);\n\tif (hsv$2 === void 0) return void 0;\n\tlet s = hsv$2.s !== void 0 ? hsv$2.s : 0;\n\tlet v = hsv$2.v !== void 0 ? hsv$2.v : 0;\n\tlet res = {\n\t\tmode: \"hwb\",\n\t\tw: (1 - s) * v,\n\t\tb: 1 - v\n\t};\n\tif (hsv$2.h !== void 0) res.h = hsv$2.h;\n\tif (hsv$2.alpha !== void 0) res.alpha = hsv$2.alpha;\n\treturn res;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hwb/parseHwb.js\nfunction ParseHwb(color, parsed) {\n\tif (!parsed || parsed[0] !== \"hwb\") return;\n\tconst res = { mode: \"hwb\" };\n\tconst [, h, w, b, alpha] = parsed;\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) return;\n\t\tres.h = h.value;\n\t}\n\tif (w.type !== Tok.None) {\n\t\tif (w.type === Tok.Hue) return;\n\t\tres.w = w.value / 100;\n\t}\n\tif (b.type !== Tok.None) {\n\t\tif (b.type === Tok.Hue) return;\n\t\tres.b = b.value / 100;\n\t}\n\tif (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));\n\treturn res;\n}\nvar parseHwb_default = ParseHwb;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hwb/definition.js\nconst definition$23 = {\n\tmode: \"hwb\",\n\ttoMode: { rgb: convertHwbToRgb },\n\tfromMode: { rgb: convertRgbToHwb },\n\tchannels: [\n\t\t\"h\",\n\t\t\"w\",\n\t\t\"b\",\n\t\t\"alpha\"\n\t],\n\tranges: { h: [0, 360] },\n\tgamut: \"rgb\",\n\tparse: [parseHwb_default],\n\tserialize: (c$1) => `hwb(${c$1.h !== void 0 ? c$1.h : \"none\"} ${c$1.w !== void 0 ? c$1.w * 100 + \"%\" : \"none\"} ${c$1.b !== void 0 ? c$1.b * 100 + \"%\" : \"none\"}${c$1.alpha < 1 ? ` / ${c$1.alpha}` : \"\"})`,\n\tinterpolate: {\n\t\th: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupHueShorter\n\t\t},\n\t\tw: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\tdifference: { h: differenceHueNaive },\n\taverage: { h: averageAngle }\n};\nvar definition_default$2 = definition$23;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz50/constants.js\nconst k = Math.pow(29, 3) / Math.pow(3, 3);\nconst e = Math.pow(6, 3) / Math.pow(29, 3);\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/constants.js\nconst D50 = {\n\tX: .3457 / .3585,\n\tY: 1,\n\tZ: .2958 / .3585\n};\nconst D65 = {\n\tX: .3127 / .329,\n\tY: 1,\n\tZ: .3583 / .329\n};\nconst k$2 = Math.pow(29, 3) / Math.pow(3, 3);\nconst e$2 = Math.pow(6, 3) / Math.pow(29, 3);\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab/convertLabToXyz50.js\nlet fn$1 = (v) => Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k;\nconst convertLabToXyz50 = ({ l, a, b, alpha }) => {\n\tif (l === void 0) l = 0;\n\tif (a === void 0) a = 0;\n\tif (b === void 0) b = 0;\n\tlet fy = (l + 16) / 116;\n\tlet fx = a / 500 + fy;\n\tlet fz = fy - b / 200;\n\tlet res = {\n\t\tmode: \"xyz50\",\n\t\tx: fn$1(fx) * D50.X,\n\t\ty: fn$1(fy) * D50.Y,\n\t\tz: fn$1(fz) * D50.Z\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertLabToXyz50_default = convertLabToXyz50;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz50/convertXyz50ToRgb.js\nconst convertXyz50ToRgb = ({ x, y, z, alpha }) => {\n\tif (x === void 0) x = 0;\n\tif (y === void 0) y = 0;\n\tif (z === void 0) z = 0;\n\tlet res = convertLrgbToRgb_default({\n\t\tr: x * 3.1341359569958707 - y * 1.6173863321612538 - .4906619460083532 * z,\n\t\tg: x * -.978795502912089 + y * 1.916254567259524 + .03344273116131949 * z,\n\t\tb: x * .07195537988411677 - y * .2289768264158322 + 1.405386058324125 * z\n\t});\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertXyz50ToRgb_default = convertXyz50ToRgb;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab/convertLabToRgb.js\nconst convertLabToRgb = (lab$2) => convertXyz50ToRgb_default(convertLabToXyz50_default(lab$2));\nvar convertLabToRgb_default = convertLabToRgb;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz50/convertRgbToXyz50.js\nconst convertRgbToXyz50 = (rgb$4) => {\n\tlet { r: r$1, g, b, alpha } = convertRgbToLrgb_default(rgb$4);\n\tlet res = {\n\t\tmode: \"xyz50\",\n\t\tx: .436065742824811 * r$1 + .3851514688337912 * g + .14307845442264197 * b,\n\t\ty: .22249319175623702 * r$1 + .7168870538238823 * g + .06061979053616537 * b,\n\t\tz: .013923904500943465 * r$1 + .09708128566574634 * g + .7140993584005155 * b\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertRgbToXyz50_default = convertRgbToXyz50;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab/convertXyz50ToLab.js\nconst f$1 = (value) => value > e ? Math.cbrt(value) : (k * value + 16) / 116;\nconst convertXyz50ToLab = ({ x, y, z, alpha }) => {\n\tif (x === void 0) x = 0;\n\tif (y === void 0) y = 0;\n\tif (z === void 0) z = 0;\n\tlet f0 = f$1(x / D50.X);\n\tlet f1 = f$1(y / D50.Y);\n\tlet f2 = f$1(z / D50.Z);\n\tlet res = {\n\t\tmode: \"lab\",\n\t\tl: 116 * f1 - 16,\n\t\ta: 500 * (f0 - f1),\n\t\tb: 200 * (f1 - f2)\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertXyz50ToLab_default = convertXyz50ToLab;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab/convertRgbToLab.js\nconst convertRgbToLab = (rgb$4) => {\n\tlet res = convertXyz50ToLab_default(convertRgbToXyz50_default(rgb$4));\n\tif (rgb$4.r === rgb$4.b && rgb$4.b === rgb$4.g) res.a = res.b = 0;\n\treturn res;\n};\nvar convertRgbToLab_default = convertRgbToLab;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab/parseLab.js\nfunction parseLab(color, parsed) {\n\tif (!parsed || parsed[0] !== \"lab\") return;\n\tconst res = { mode: \"lab\" };\n\tconst [, l, a, b, alpha] = parsed;\n\tif (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) return;\n\tif (l.type !== Tok.None) res.l = Math.min(Math.max(0, l.value), 100);\n\tif (a.type !== Tok.None) res.a = a.type === Tok.Number ? a.value : a.value * 125 / 100;\n\tif (b.type !== Tok.None) res.b = b.type === Tok.Number ? b.value : b.value * 125 / 100;\n\tif (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));\n\treturn res;\n}\nvar parseLab_default = parseLab;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab/definition.js\nconst definition$22 = {\n\tmode: \"lab\",\n\ttoMode: {\n\t\txyz50: convertLabToXyz50_default,\n\t\trgb: convertLabToRgb_default\n\t},\n\tfromMode: {\n\t\txyz50: convertXyz50ToLab_default,\n\t\trgb: convertRgbToLab_default\n\t},\n\tchannels: [\n\t\t\"l\",\n\t\t\"a\",\n\t\t\"b\",\n\t\t\"alpha\"\n\t],\n\tranges: {\n\t\tl: [0, 100],\n\t\ta: [-125, 125],\n\t\tb: [-125, 125]\n\t},\n\tparse: [parseLab_default],\n\tserialize: (c$1) => `lab(${c$1.l !== void 0 ? c$1.l : \"none\"} ${c$1.a !== void 0 ? c$1.a : \"none\"} ${c$1.b !== void 0 ? c$1.b : \"none\"}${c$1.alpha < 1 ? ` / ${c$1.alpha}` : \"\"})`,\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\ta: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t}\n};\nvar definition_default$3 = definition$22;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz65/constants.js\nconst k$1 = Math.pow(29, 3) / Math.pow(3, 3);\nconst e$1 = Math.pow(6, 3) / Math.pow(29, 3);\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab65/convertLab65ToXyz65.js\nlet fn = (v) => Math.pow(v, 3) > e$1 ? Math.pow(v, 3) : (116 * v - 16) / k$1;\nconst convertLab65ToXyz65 = ({ l, a, b, alpha }) => {\n\tif (l === void 0) l = 0;\n\tif (a === void 0) a = 0;\n\tif (b === void 0) b = 0;\n\tlet fy = (l + 16) / 116;\n\tlet fx = a / 500 + fy;\n\tlet fz = fy - b / 200;\n\tlet res = {\n\t\tmode: \"xyz65\",\n\t\tx: fn(fx) * D65.X,\n\t\ty: fn(fy) * D65.Y,\n\t\tz: fn(fz) * D65.Z\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertLab65ToXyz65_default = convertLab65ToXyz65;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab65/convertLab65ToRgb.js\nconst convertLab65ToRgb = (lab$2) => convertXyz65ToRgb_default(convertLab65ToXyz65_default(lab$2));\nvar convertLab65ToRgb_default = convertLab65ToRgb;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab65/convertXyz65ToLab65.js\nconst f = (value) => value > e$1 ? Math.cbrt(value) : (k$1 * value + 16) / 116;\nconst convertXyz65ToLab65 = ({ x, y, z, alpha }) => {\n\tif (x === void 0) x = 0;\n\tif (y === void 0) y = 0;\n\tif (z === void 0) z = 0;\n\tlet f0 = f(x / D65.X);\n\tlet f1 = f(y / D65.Y);\n\tlet f2 = f(z / D65.Z);\n\tlet res = {\n\t\tmode: \"lab65\",\n\t\tl: 116 * f1 - 16,\n\t\ta: 500 * (f0 - f1),\n\t\tb: 200 * (f1 - f2)\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertXyz65ToLab65_default = convertXyz65ToLab65;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab65/convertRgbToLab65.js\nconst convertRgbToLab65 = (rgb$4) => {\n\tlet res = convertXyz65ToLab65_default(convertRgbToXyz65_default(rgb$4));\n\tif (rgb$4.r === rgb$4.b && rgb$4.b === rgb$4.g) res.a = res.b = 0;\n\treturn res;\n};\nvar convertRgbToLab65_default = convertRgbToLab65;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab65/definition.js\nconst definition$21 = {\n\t...definition_default$3,\n\tmode: \"lab65\",\n\tparse: [\"--lab-d65\"],\n\tserialize: \"--lab-d65\",\n\ttoMode: {\n\t\txyz65: convertLab65ToXyz65_default,\n\t\trgb: convertLab65ToRgb_default\n\t},\n\tfromMode: {\n\t\txyz65: convertXyz65ToLab65_default,\n\t\trgb: convertRgbToLab65_default\n\t},\n\tranges: {\n\t\tl: [0, 100],\n\t\ta: [-125, 125],\n\t\tb: [-125, 125]\n\t}\n};\nvar definition_default$4 = definition$21;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lch/convertLabToLch.js\nconst convertLabToLch = ({ l, a, b, alpha }, mode = \"lch\") => {\n\tif (a === void 0) a = 0;\n\tif (b === void 0) b = 0;\n\tlet c$1 = Math.sqrt(a * a + b * b);\n\tlet res = {\n\t\tmode,\n\t\tl,\n\t\tc: c$1\n\t};\n\tif (c$1) res.h = normalizeHue_default(Math.atan2(b, a) * 180 / Math.PI);\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertLabToLch_default = convertLabToLch;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lch/convertLchToLab.js\nconst convertLchToLab = ({ l, c: c$1, h, alpha }, mode = \"lab\") => {\n\tif (h === void 0) h = 0;\n\tlet res = {\n\t\tmode,\n\t\tl,\n\t\ta: c$1 ? c$1 * Math.cos(h / 180 * Math.PI) : 0,\n\t\tb: c$1 ? c$1 * Math.sin(h / 180 * Math.PI) : 0\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertLchToLab_default = convertLchToLab;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lch/parseLch.js\nfunction parseLch(color, parsed) {\n\tif (!parsed || parsed[0] !== \"lch\") return;\n\tconst res = { mode: \"lch\" };\n\tconst [, l, c$1, h, alpha] = parsed;\n\tif (l.type !== Tok.None) {\n\t\tif (l.type === Tok.Hue) return;\n\t\tres.l = Math.min(Math.max(0, l.value), 100);\n\t}\n\tif (c$1.type !== Tok.None) res.c = Math.max(0, c$1.type === Tok.Number ? c$1.value : c$1.value * 150 / 100);\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) return;\n\t\tres.h = h.value;\n\t}\n\tif (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));\n\treturn res;\n}\nvar parseLch_default = parseLch;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lch/definition.js\nconst definition$20 = {\n\tmode: \"lch\",\n\ttoMode: {\n\t\tlab: convertLchToLab_default,\n\t\trgb: (c$1) => convertLabToRgb_default(convertLchToLab_default(c$1))\n\t},\n\tfromMode: {\n\t\trgb: (c$1) => convertLabToLch_default(convertRgbToLab_default(c$1)),\n\t\tlab: convertLabToLch_default\n\t},\n\tchannels: [\n\t\t\"l\",\n\t\t\"c\",\n\t\t\"h\",\n\t\t\"alpha\"\n\t],\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 150],\n\t\th: [0, 360]\n\t},\n\tparse: [parseLch_default],\n\tserialize: (c$1) => `lch(${c$1.l !== void 0 ? c$1.l : \"none\"} ${c$1.c !== void 0 ? c$1.c : \"none\"} ${c$1.h !== void 0 ? c$1.h : \"none\"}${c$1.alpha < 1 ? ` / ${c$1.alpha}` : \"\"})`,\n\tinterpolate: {\n\t\th: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupHueShorter\n\t\t},\n\t\tc: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\tdifference: { h: differenceHueChroma },\n\taverage: { h: averageAngle }\n};\nvar definition_default$5 = definition$20;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lch65/definition.js\nconst definition$19 = {\n\t...definition_default$5,\n\tmode: \"lch65\",\n\tparse: [\"--lch-d65\"],\n\tserialize: \"--lch-d65\",\n\ttoMode: {\n\t\tlab65: (c$1) => convertLchToLab_default(c$1, \"lab65\"),\n\t\trgb: (c$1) => convertLab65ToRgb_default(convertLchToLab_default(c$1, \"lab65\"))\n\t},\n\tfromMode: {\n\t\trgb: (c$1) => convertLabToLch_default(convertRgbToLab65_default(c$1), \"lch65\"),\n\t\tlab65: (c$1) => convertLabToLch_default(c$1, \"lch65\")\n\t},\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 150],\n\t\th: [0, 360]\n\t}\n};\nvar definition_default$23 = definition$19;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lrgb/definition.js\nconst definition$18 = {\n\t...definition_default$12,\n\tmode: \"lrgb\",\n\ttoMode: { rgb: convertLrgbToRgb_default },\n\tfromMode: { rgb: convertRgbToLrgb_default },\n\tparse: [\"srgb-linear\"],\n\tserialize: \"srgb-linear\"\n};\nvar definition_default$6 = definition$18;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklab/convertOklabToLrgb.js\nconst convertOklabToLrgb = ({ l, a, b, alpha }) => {\n\tif (l === void 0) l = 0;\n\tif (a === void 0) a = 0;\n\tif (b === void 0) b = 0;\n\tlet L = Math.pow(l + .3963377773761749 * a + .2158037573099136 * b, 3);\n\tlet M$1 = Math.pow(l - .1055613458156586 * a - .0638541728258133 * b, 3);\n\tlet S = Math.pow(l - .0894841775298119 * a - 1.2914855480194092 * b, 3);\n\tlet res = {\n\t\tmode: \"lrgb\",\n\t\tr: 4.076741636075957 * L - 3.3077115392580616 * M$1 + .2309699031821044 * S,\n\t\tg: -1.2684379732850317 * L + 2.6097573492876887 * M$1 - .3413193760026573 * S,\n\t\tb: -.0041960761386756 * L - .7034186179359362 * M$1 + 1.7076146940746117 * S\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertOklabToLrgb_default = convertOklabToLrgb;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklab/convertLrgbToOklab.js\nconst convertLrgbToOklab = ({ r: r$1, g, b, alpha }) => {\n\tif (r$1 === void 0) r$1 = 0;\n\tif (g === void 0) g = 0;\n\tif (b === void 0) b = 0;\n\tlet L = Math.cbrt(.412221469470763 * r$1 + .5363325372617348 * g + .0514459932675022 * b);\n\tlet M$1 = Math.cbrt(.2119034958178252 * r$1 + .6806995506452344 * g + .1073969535369406 * b);\n\tlet S = Math.cbrt(.0883024591900564 * r$1 + .2817188391361215 * g + .6299787016738222 * b);\n\tlet res = {\n\t\tmode: \"oklab\",\n\t\tl: .210454268309314 * L + .7936177747023054 * M$1 - .0040720430116193 * S,\n\t\ta: 1.9779985324311684 * L - 2.42859224204858 * M$1 + .450593709617411 * S,\n\t\tb: .0259040424655478 * L + .7827717124575296 * M$1 - .8086757549230774 * S\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertLrgbToOklab_default = convertLrgbToOklab;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklab/convertRgbToOklab.js\nconst convertRgbToOklab = (rgb$4) => {\n\tlet res = convertLrgbToOklab_default(convertRgbToLrgb_default(rgb$4));\n\tif (rgb$4.r === rgb$4.b && rgb$4.b === rgb$4.g) res.a = res.b = 0;\n\treturn res;\n};\nvar convertRgbToOklab_default = convertRgbToOklab;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklab/convertOklabToRgb.js\nconst convertOklabToRgb = (c$1) => convertLrgbToRgb_default(convertOklabToLrgb_default(c$1));\nvar convertOklabToRgb_default = convertOklabToRgb;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklab/parseOklab.js\nfunction parseOklab(color, parsed) {\n\tif (!parsed || parsed[0] !== \"oklab\") return;\n\tconst res = { mode: \"oklab\" };\n\tconst [, l, a, b, alpha] = parsed;\n\tif (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) return;\n\tif (l.type !== Tok.None) res.l = Math.min(Math.max(0, l.type === Tok.Number ? l.value : l.value / 100), 1);\n\tif (a.type !== Tok.None) res.a = a.type === Tok.Number ? a.value : a.value * .4 / 100;\n\tif (b.type !== Tok.None) res.b = b.type === Tok.Number ? b.value : b.value * .4 / 100;\n\tif (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));\n\treturn res;\n}\nvar parseOklab_default = parseOklab;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklab/definition.js\nconst definition$17 = {\n\t...definition_default$3,\n\tmode: \"oklab\",\n\ttoMode: {\n\t\tlrgb: convertOklabToLrgb_default,\n\t\trgb: convertOklabToRgb_default\n\t},\n\tfromMode: {\n\t\tlrgb: convertLrgbToOklab_default,\n\t\trgb: convertRgbToOklab_default\n\t},\n\tranges: {\n\t\tl: [0, 1],\n\t\ta: [-.4, .4],\n\t\tb: [-.4, .4]\n\t},\n\tparse: [parseOklab_default],\n\tserialize: (c$1) => `oklab(${c$1.l !== void 0 ? c$1.l : \"none\"} ${c$1.a !== void 0 ? c$1.a : \"none\"} ${c$1.b !== void 0 ? c$1.b : \"none\"}${c$1.alpha < 1 ? ` / ${c$1.alpha}` : \"\"})`\n};\nvar definition_default$7 = definition$17;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklch/parseOklch.js\nfunction parseOklch(color, parsed) {\n\tif (!parsed || parsed[0] !== \"oklch\") return;\n\tconst res = { mode: \"oklch\" };\n\tconst [, l, c$1, h, alpha] = parsed;\n\tif (l.type !== Tok.None) {\n\t\tif (l.type === Tok.Hue) return;\n\t\tres.l = Math.min(Math.max(0, l.type === Tok.Number ? l.value : l.value / 100), 1);\n\t}\n\tif (c$1.type !== Tok.None) res.c = Math.max(0, c$1.type === Tok.Number ? c$1.value : c$1.value * .4 / 100);\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) return;\n\t\tres.h = h.value;\n\t}\n\tif (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));\n\treturn res;\n}\nvar parseOklch_default = parseOklch;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklch/definition.js\nconst definition$16 = {\n\t...definition_default$5,\n\tmode: \"oklch\",\n\ttoMode: {\n\t\toklab: (c$1) => convertLchToLab_default(c$1, \"oklab\"),\n\t\trgb: (c$1) => convertOklabToRgb_default(convertLchToLab_default(c$1, \"oklab\"))\n\t},\n\tfromMode: {\n\t\trgb: (c$1) => convertLabToLch_default(convertRgbToOklab_default(c$1), \"oklch\"),\n\t\toklab: (c$1) => convertLabToLch_default(c$1, \"oklch\")\n\t},\n\tparse: [parseOklch_default],\n\tserialize: (c$1) => `oklch(${c$1.l !== void 0 ? c$1.l : \"none\"} ${c$1.c !== void 0 ? c$1.c : \"none\"} ${c$1.h !== void 0 ? c$1.h : \"none\"}${c$1.alpha < 1 ? ` / ${c$1.alpha}` : \"\"})`,\n\tranges: {\n\t\tl: [0, 1],\n\t\tc: [0, .4],\n\t\th: [0, 360]\n\t}\n};\nvar definition_default$8 = definition$16;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/p3/convertP3ToXyz65.js\nconst convertP3ToXyz65 = (rgb$4) => {\n\tlet { r: r$1, g, b, alpha } = convertRgbToLrgb_default(rgb$4);\n\tlet res = {\n\t\tmode: \"xyz65\",\n\t\tx: .486570948648216 * r$1 + .265667693169093 * g + .1982172852343625 * b,\n\t\ty: .2289745640697487 * r$1 + .6917385218365062 * g + .079286914093745 * b,\n\t\tz: 0 * r$1 + .0451133818589026 * g + 1.043944368900976 * b\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertP3ToXyz65_default = convertP3ToXyz65;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/p3/convertXyz65ToP3.js\nconst convertXyz65ToP3 = ({ x, y, z, alpha }) => {\n\tif (x === void 0) x = 0;\n\tif (y === void 0) y = 0;\n\tif (z === void 0) z = 0;\n\tlet res = convertLrgbToRgb_default({\n\t\tr: x * 2.4934969119414263 - y * .9313836179191242 - .402710784450717 * z,\n\t\tg: x * -.8294889695615749 + y * 1.7626640603183465 + .0236246858419436 * z,\n\t\tb: x * .0358458302437845 - y * .0761723892680418 + .9568845240076871 * z\n\t}, \"p3\");\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertXyz65ToP3_default = convertXyz65ToP3;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/p3/definition.js\nconst definition$15 = {\n\t...definition_default$12,\n\tmode: \"p3\",\n\tparse: [\"display-p3\"],\n\tserialize: \"display-p3\",\n\tfromMode: {\n\t\trgb: (color) => convertXyz65ToP3_default(convertRgbToXyz65_default(color)),\n\t\txyz65: convertXyz65ToP3_default\n\t},\n\ttoMode: {\n\t\trgb: (color) => convertXyz65ToRgb_default(convertP3ToXyz65_default(color)),\n\t\txyz65: convertP3ToXyz65_default\n\t}\n};\nvar definition_default$9 = definition$15;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/prophoto/convertXyz50ToProphoto.js\nconst gamma$1 = (v) => {\n\tlet abs$1 = Math.abs(v);\n\tif (abs$1 >= 1 / 512) return Math.sign(v) * Math.pow(abs$1, 1 / 1.8);\n\treturn 16 * v;\n};\nconst convertXyz50ToProphoto = ({ x, y, z, alpha }) => {\n\tif (x === void 0) x = 0;\n\tif (y === void 0) y = 0;\n\tif (z === void 0) z = 0;\n\tlet res = {\n\t\tmode: \"prophoto\",\n\t\tr: gamma$1(x * 1.3457868816471585 - y * .2555720873797946 - .0511018649755453 * z),\n\t\tg: gamma$1(x * -.5446307051249019 + y * 1.5082477428451466 + .0205274474364214 * z),\n\t\tb: gamma$1(x * 0 + y * 0 + 1.2119675456389452 * z)\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertXyz50ToProphoto_default = convertXyz50ToProphoto;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/prophoto/convertProphotoToXyz50.js\nconst linearize$1 = (v = 0) => {\n\tlet abs$1 = Math.abs(v);\n\tif (abs$1 >= 16 / 512) return Math.sign(v) * Math.pow(abs$1, 1.8);\n\treturn v / 16;\n};\nconst convertProphotoToXyz50 = (prophoto$2) => {\n\tlet r$1 = linearize$1(prophoto$2.r);\n\tlet g = linearize$1(prophoto$2.g);\n\tlet b = linearize$1(prophoto$2.b);\n\tlet res = {\n\t\tmode: \"xyz50\",\n\t\tx: .7977666449006423 * r$1 + .1351812974005331 * g + .0313477341283922 * b,\n\t\ty: .2880748288194013 * r$1 + .7118352342418731 * g + 899369387256e-16 * b,\n\t\tz: 0 * r$1 + 0 * g + .8251046025104602 * b\n\t};\n\tif (prophoto$2.alpha !== void 0) res.alpha = prophoto$2.alpha;\n\treturn res;\n};\nvar convertProphotoToXyz50_default = convertProphotoToXyz50;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/prophoto/definition.js\nconst definition$14 = {\n\t...definition_default$12,\n\tmode: \"prophoto\",\n\tparse: [\"prophoto-rgb\"],\n\tserialize: \"prophoto-rgb\",\n\tfromMode: {\n\t\txyz50: convertXyz50ToProphoto_default,\n\t\trgb: (color) => convertXyz50ToProphoto_default(convertRgbToXyz50_default(color))\n\t},\n\ttoMode: {\n\t\txyz50: convertProphotoToXyz50_default,\n\t\trgb: (color) => convertXyz50ToRgb_default(convertProphotoToXyz50_default(color))\n\t}\n};\nvar definition_default$10 = definition$14;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rec2020/convertXyz65ToRec2020.js\nconst α$1 = 1.09929682680944;\nconst β$1 = .018053968510807;\nconst gamma = (v) => {\n\tconst abs$1 = Math.abs(v);\n\tif (abs$1 > β$1) return (Math.sign(v) || 1) * (α$1 * Math.pow(abs$1, .45) - (α$1 - 1));\n\treturn 4.5 * v;\n};\nconst convertXyz65ToRec2020 = ({ x, y, z, alpha }) => {\n\tif (x === void 0) x = 0;\n\tif (y === void 0) y = 0;\n\tif (z === void 0) z = 0;\n\tlet res = {\n\t\tmode: \"rec2020\",\n\t\tr: gamma(x * 1.7166511879712683 - y * .3556707837763925 - .2533662813736599 * z),\n\t\tg: gamma(x * -.6666843518324893 + y * 1.6164812366349395 + .0157685458139111 * z),\n\t\tb: gamma(x * .0176398574453108 - y * .0427706132578085 + .9421031212354739 * z)\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertXyz65ToRec2020_default = convertXyz65ToRec2020;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rec2020/convertRec2020ToXyz65.js\nconst α = 1.09929682680944;\nconst β = .018053968510807;\nconst linearize = (v = 0) => {\n\tlet abs$1 = Math.abs(v);\n\tif (abs$1 < β * 4.5) return v / 4.5;\n\treturn (Math.sign(v) || 1) * Math.pow((abs$1 + α - 1) / α, 1 / .45);\n};\nconst convertRec2020ToXyz65 = (rec2020$2) => {\n\tlet r$1 = linearize(rec2020$2.r);\n\tlet g = linearize(rec2020$2.g);\n\tlet b = linearize(rec2020$2.b);\n\tlet res = {\n\t\tmode: \"xyz65\",\n\t\tx: .6369580483012911 * r$1 + .1446169035862083 * g + .1688809751641721 * b,\n\t\ty: .262700212011267 * r$1 + .6779980715188708 * g + .059301716469862 * b,\n\t\tz: 0 * r$1 + .0280726930490874 * g + 1.0609850577107909 * b\n\t};\n\tif (rec2020$2.alpha !== void 0) res.alpha = rec2020$2.alpha;\n\treturn res;\n};\nvar convertRec2020ToXyz65_default = convertRec2020ToXyz65;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rec2020/definition.js\nconst definition$13 = {\n\t...definition_default$12,\n\tmode: \"rec2020\",\n\tfromMode: {\n\t\txyz65: convertXyz65ToRec2020_default,\n\t\trgb: (color) => convertXyz65ToRec2020_default(convertRgbToXyz65_default(color))\n\t},\n\ttoMode: {\n\t\txyz65: convertRec2020ToXyz65_default,\n\t\trgb: (color) => convertXyz65ToRgb_default(convertRec2020ToXyz65_default(color))\n\t},\n\tparse: [\"rec2020\"],\n\tserialize: \"rec2020\"\n};\nvar definition_default$11 = definition$13;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz50/definition.js\nconst definition$12 = {\n\tmode: \"xyz50\",\n\tparse: [\"xyz-d50\"],\n\tserialize: \"xyz-d50\",\n\ttoMode: {\n\t\trgb: convertXyz50ToRgb_default,\n\t\tlab: convertXyz50ToLab_default\n\t},\n\tfromMode: {\n\t\trgb: convertRgbToXyz50_default,\n\t\tlab: convertLabToXyz50_default\n\t},\n\tchannels: [\n\t\t\"x\",\n\t\t\"y\",\n\t\t\"z\",\n\t\t\"alpha\"\n\t],\n\tranges: {\n\t\tx: [0, .964],\n\t\ty: [0, .999],\n\t\tz: [0, .825]\n\t},\n\tinterpolate: {\n\t\tx: interpolatorLinear,\n\t\ty: interpolatorLinear,\n\t\tz: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t}\n};\nvar definition_default$13 = definition$12;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz65/convertXyz65ToXyz50.js\nconst convertXyz65ToXyz50 = (xyz65$2) => {\n\tlet { x, y, z, alpha } = xyz65$2;\n\tif (x === void 0) x = 0;\n\tif (y === void 0) y = 0;\n\tif (z === void 0) z = 0;\n\tlet res = {\n\t\tmode: \"xyz50\",\n\t\tx: 1.0479298208405488 * x + .0229467933410191 * y - .0501922295431356 * z,\n\t\ty: .0296278156881593 * x + .990434484573249 * y - .0170738250293851 * z,\n\t\tz: -.0092430581525912 * x + .0150551448965779 * y + .7518742899580008 * z\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertXyz65ToXyz50_default = convertXyz65ToXyz50;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz65/convertXyz50ToXyz65.js\nconst convertXyz50ToXyz65 = (xyz50$2) => {\n\tlet { x, y, z, alpha } = xyz50$2;\n\tif (x === void 0) x = 0;\n\tif (y === void 0) y = 0;\n\tif (z === void 0) z = 0;\n\tlet res = {\n\t\tmode: \"xyz65\",\n\t\tx: .9554734527042182 * x - .0230985368742614 * y + .0632593086610217 * z,\n\t\ty: -.0283697069632081 * x + 1.0099954580058226 * y + .021041398966943 * z,\n\t\tz: .0123140016883199 * x - .0205076964334779 * y + 1.3303659366080753 * z\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertXyz50ToXyz65_default = convertXyz50ToXyz65;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz65/definition.js\nconst definition$11 = {\n\tmode: \"xyz65\",\n\ttoMode: {\n\t\trgb: convertXyz65ToRgb_default,\n\t\txyz50: convertXyz65ToXyz50_default\n\t},\n\tfromMode: {\n\t\trgb: convertRgbToXyz65_default,\n\t\txyz50: convertXyz50ToXyz65_default\n\t},\n\tranges: {\n\t\tx: [0, .95],\n\t\ty: [0, 1],\n\t\tz: [0, 1.088]\n\t},\n\tchannels: [\n\t\t\"x\",\n\t\t\"y\",\n\t\t\"z\",\n\t\t\"alpha\"\n\t],\n\tparse: [\"xyz\", \"xyz-d65\"],\n\tserialize: \"xyz-d65\",\n\tinterpolate: {\n\t\tx: interpolatorLinear,\n\t\ty: interpolatorLinear,\n\t\tz: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t}\n};\nvar definition_default$14 = definition$11;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/bootstrap/css.js\nconst a98$1 = useMode(definition_default);\nconst hsl$2 = useMode(definition_default$1);\nconst hsv$1 = useMode(definition_default$19);\nconst hwb$1 = useMode(definition_default$2);\nconst lab$1 = useMode(definition_default$3);\nconst lab65$1 = useMode(definition_default$4);\nconst lch$1 = useMode(definition_default$5);\nconst lch65$1 = useMode(definition_default$23);\nconst lrgb$1 = useMode(definition_default$6);\nconst oklab$1 = useMode(definition_default$7);\nconst oklch$1 = useMode(definition_default$8);\nconst p3$1 = useMode(definition_default$9);\nconst prophoto$1 = useMode(definition_default$10);\nconst rec2020$1 = useMode(definition_default$11);\nconst rgb$3 = useMode(definition_default$12);\nconst xyz50$1 = useMode(definition_default$13);\nconst xyz65$1 = useMode(definition_default$14);\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/cubehelix/constants.js\nconst M = [\n\t-.14861,\n\t1.78277,\n\t-.29227,\n\t-.90649,\n\t1.97294,\n\t0\n];\nconst degToRad = Math.PI / 180;\nconst radToDeg = 180 / Math.PI;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/cubehelix/convertRgbToCubehelix.js\nlet DE = M[3] * M[4];\nlet BE = M[1] * M[4];\nlet BCAD = M[1] * M[2] - M[0] * M[3];\nconst convertRgbToCubehelix = ({ r: r$1, g, b, alpha }) => {\n\tif (r$1 === void 0) r$1 = 0;\n\tif (g === void 0) g = 0;\n\tif (b === void 0) b = 0;\n\tlet l = (BCAD * b + r$1 * DE - g * BE) / (BCAD + DE - BE);\n\tlet x = b - l;\n\tlet y = (M[4] * (g - l) - M[2] * x) / M[3];\n\tlet res = {\n\t\tmode: \"cubehelix\",\n\t\tl,\n\t\ts: l === 0 || l === 1 ? void 0 : Math.sqrt(x * x + y * y) / (M[4] * l * (1 - l))\n\t};\n\tif (res.s) res.h = Math.atan2(y, x) * radToDeg - 120;\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertRgbToCubehelix_default = convertRgbToCubehelix;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/cubehelix/convertCubehelixToRgb.js\nconst convertCubehelixToRgb = ({ h, s, l, alpha }) => {\n\tlet res = { mode: \"rgb\" };\n\th = (h === void 0 ? 0 : h + 120) * degToRad;\n\tif (l === void 0) l = 0;\n\tlet amp = s === void 0 ? 0 : s * l * (1 - l);\n\tlet cosh = Math.cos(h);\n\tlet sinh = Math.sin(h);\n\tres.r = l + amp * (M[0] * cosh + M[1] * sinh);\n\tres.g = l + amp * (M[2] * cosh + M[3] * sinh);\n\tres.b = l + amp * (M[4] * cosh + M[5] * sinh);\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertCubehelixToRgb_default = convertCubehelixToRgb;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/cubehelix/definition.js\nconst definition$10 = {\n\tmode: \"cubehelix\",\n\tchannels: [\n\t\t\"h\",\n\t\t\"s\",\n\t\t\"l\",\n\t\t\"alpha\"\n\t],\n\tparse: [\"--cubehelix\"],\n\tserialize: \"--cubehelix\",\n\tranges: {\n\t\th: [0, 360],\n\t\ts: [0, 4.614],\n\t\tl: [0, 1]\n\t},\n\tfromMode: { rgb: convertRgbToCubehelix_default },\n\ttoMode: { rgb: convertCubehelixToRgb_default },\n\tinterpolate: {\n\t\th: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupHueShorter\n\t\t},\n\t\ts: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\tdifference: { h: differenceHueSaturation },\n\taverage: { h: averageAngle }\n};\nvar definition_default$15 = definition$10;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/dlch/constants.js\nconst kE = 1;\nconst kCH = 1;\nconst θ = 26 / 180 * Math.PI;\nconst cosθ = Math.cos(θ);\nconst sinθ = Math.sin(θ);\nconst factor = 100 / Math.log(139 / 100);\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/dlch/convertDlchToLab65.js\nconst convertDlchToLab65 = ({ l, c: c$1, h, alpha }) => {\n\tif (l === void 0) l = 0;\n\tif (c$1 === void 0) c$1 = 0;\n\tif (h === void 0) h = 0;\n\tlet res = {\n\t\tmode: \"lab65\",\n\t\tl: (Math.exp(l * kE / factor) - 1) / .0039\n\t};\n\tlet G = (Math.exp(.0435 * c$1 * kCH * kE) - 1) / .075;\n\tlet e$3 = G * Math.cos(h / 180 * Math.PI - θ);\n\tlet f$2 = G * Math.sin(h / 180 * Math.PI - θ);\n\tres.a = e$3 * cosθ - f$2 / .83 * sinθ;\n\tres.b = e$3 * sinθ + f$2 / .83 * cosθ;\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertDlchToLab65_default = convertDlchToLab65;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/dlch/convertLab65ToDlch.js\nconst convertLab65ToDlch = ({ l, a, b, alpha }) => {\n\tif (l === void 0) l = 0;\n\tif (a === void 0) a = 0;\n\tif (b === void 0) b = 0;\n\tlet e$3 = a * cosθ + b * sinθ;\n\tlet f$2 = .83 * (b * cosθ - a * sinθ);\n\tlet G = Math.sqrt(e$3 * e$3 + f$2 * f$2);\n\tlet res = {\n\t\tmode: \"dlch\",\n\t\tl: factor / kE * Math.log(1 + .0039 * l),\n\t\tc: Math.log(1 + .075 * G) / (.0435 * kCH * kE)\n\t};\n\tif (res.c) res.h = normalizeHue_default((Math.atan2(f$2, e$3) + θ) / Math.PI * 180);\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertLab65ToDlch_default = convertLab65ToDlch;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/dlab/definition.js\nconst convertDlabToLab65 = (c$1) => convertDlchToLab65_default(convertLabToLch_default(c$1, \"dlch\"));\nconst convertLab65ToDlab = (c$1) => convertLchToLab_default(convertLab65ToDlch_default(c$1), \"dlab\");\nconst definition$9 = {\n\tmode: \"dlab\",\n\tparse: [\"--din99o-lab\"],\n\tserialize: \"--din99o-lab\",\n\ttoMode: {\n\t\tlab65: convertDlabToLab65,\n\t\trgb: (c$1) => convertLab65ToRgb_default(convertDlabToLab65(c$1))\n\t},\n\tfromMode: {\n\t\tlab65: convertLab65ToDlab,\n\t\trgb: (c$1) => convertLab65ToDlab(convertRgbToLab65_default(c$1))\n\t},\n\tchannels: [\n\t\t\"l\",\n\t\t\"a\",\n\t\t\"b\",\n\t\t\"alpha\"\n\t],\n\tranges: {\n\t\tl: [0, 100],\n\t\ta: [-40.09, 45.501],\n\t\tb: [-40.469, 44.344]\n\t},\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\ta: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t}\n};\nvar definition_default$16 = definition$9;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/dlch/definition.js\nconst definition$8 = {\n\tmode: \"dlch\",\n\tparse: [\"--din99o-lch\"],\n\tserialize: \"--din99o-lch\",\n\ttoMode: {\n\t\tlab65: convertDlchToLab65_default,\n\t\tdlab: (c$1) => convertLchToLab_default(c$1, \"dlab\"),\n\t\trgb: (c$1) => convertLab65ToRgb_default(convertDlchToLab65_default(c$1))\n\t},\n\tfromMode: {\n\t\tlab65: convertLab65ToDlch_default,\n\t\tdlab: (c$1) => convertLabToLch_default(c$1, \"dlch\"),\n\t\trgb: (c$1) => convertLab65ToDlch_default(convertRgbToLab65_default(c$1))\n\t},\n\tchannels: [\n\t\t\"l\",\n\t\t\"c\",\n\t\t\"h\",\n\t\t\"alpha\"\n\t],\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 51.484],\n\t\th: [0, 360]\n\t},\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\tc: interpolatorLinear,\n\t\th: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupHueShorter\n\t\t},\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\tdifference: { h: differenceHueChroma },\n\taverage: { h: averageAngle }\n};\nvar definition_default$17 = definition$8;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsi/convertHsiToRgb.js\nfunction convertHsiToRgb({ h, s, i, alpha }) {\n\th = normalizeHue_default(h !== void 0 ? h : 0);\n\tif (s === void 0) s = 0;\n\tif (i === void 0) i = 0;\n\tlet f$2 = Math.abs(h / 60 % 2 - 1);\n\tlet res;\n\tswitch (Math.floor(h / 60)) {\n\t\tcase 0:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * (3 / (2 - f$2) - 1)),\n\t\t\t\tg: i * (1 + s * (3 * (1 - f$2) / (2 - f$2) - 1)),\n\t\t\t\tb: i * (1 - s)\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * (3 * (1 - f$2) / (2 - f$2) - 1)),\n\t\t\t\tg: i * (1 + s * (3 / (2 - f$2) - 1)),\n\t\t\t\tb: i * (1 - s)\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tres = {\n\t\t\t\tr: i * (1 - s),\n\t\t\t\tg: i * (1 + s * (3 / (2 - f$2) - 1)),\n\t\t\t\tb: i * (1 + s * (3 * (1 - f$2) / (2 - f$2) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tres = {\n\t\t\t\tr: i * (1 - s),\n\t\t\t\tg: i * (1 + s * (3 * (1 - f$2) / (2 - f$2) - 1)),\n\t\t\t\tb: i * (1 + s * (3 / (2 - f$2) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * (3 * (1 - f$2) / (2 - f$2) - 1)),\n\t\t\t\tg: i * (1 - s),\n\t\t\t\tb: i * (1 + s * (3 / (2 - f$2) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * (3 / (2 - f$2) - 1)),\n\t\t\t\tg: i * (1 - s),\n\t\t\t\tb: i * (1 + s * (3 * (1 - f$2) / (2 - f$2) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tdefault: res = {\n\t\t\tr: i * (1 - s),\n\t\t\tg: i * (1 - s),\n\t\t\tb: i * (1 - s)\n\t\t};\n\t}\n\tres.mode = \"rgb\";\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsi/convertRgbToHsi.js\nfunction convertRgbToHsi({ r: r$1, g, b, alpha }) {\n\tif (r$1 === void 0) r$1 = 0;\n\tif (g === void 0) g = 0;\n\tif (b === void 0) b = 0;\n\tlet M$1 = Math.max(r$1, g, b), m = Math.min(r$1, g, b);\n\tlet res = {\n\t\tmode: \"hsi\",\n\t\ts: r$1 + g + b === 0 ? 0 : 1 - 3 * m / (r$1 + g + b),\n\t\ti: (r$1 + g + b) / 3\n\t};\n\tif (M$1 - m !== 0) res.h = (M$1 === r$1 ? (g - b) / (M$1 - m) + (g < b) * 6 : M$1 === g ? (b - r$1) / (M$1 - m) + 2 : (r$1 - g) / (M$1 - m) + 4) * 60;\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsi/definition.js\nconst definition$7 = {\n\tmode: \"hsi\",\n\ttoMode: { rgb: convertHsiToRgb },\n\tparse: [\"--hsi\"],\n\tserialize: \"--hsi\",\n\tfromMode: { rgb: convertRgbToHsi },\n\tchannels: [\n\t\t\"h\",\n\t\t\"s\",\n\t\t\"i\",\n\t\t\"alpha\"\n\t],\n\tranges: { h: [0, 360] },\n\tgamut: \"rgb\",\n\tinterpolate: {\n\t\th: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupHueShorter\n\t\t},\n\t\ts: interpolatorLinear,\n\t\ti: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\tdifference: { h: differenceHueSaturation },\n\taverage: { h: averageAngle }\n};\nvar definition_default$18 = definition$7;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hdr/constants.js\nconst YW = 203;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hdr/transfer.js\nconst M1 = .1593017578125;\nconst M2 = 78.84375;\nconst C1 = .8359375;\nconst C2 = 18.8515625;\nconst C3 = 18.6875;\nfunction transferPqDecode(v) {\n\tif (v < 0) return 0;\n\tconst c$1 = Math.pow(v, 1 / M2);\n\treturn 1e4 * Math.pow(Math.max(0, c$1 - C1) / (C2 - C3 * c$1), 1 / M1);\n}\nfunction transferPqEncode(v) {\n\tif (v < 0) return 0;\n\tconst c$1 = Math.pow(v / 1e4, M1);\n\treturn Math.pow((C1 + C2 * c$1) / (1 + C3 * c$1), M2);\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/itp/convertItpToXyz65.js\nconst toRel = (c$1) => Math.max(c$1 / YW, 0);\nconst convertItpToXyz65 = ({ i, t, p: p$2, alpha }) => {\n\tif (i === void 0) i = 0;\n\tif (t === void 0) t = 0;\n\tif (p$2 === void 0) p$2 = 0;\n\tconst l = transferPqDecode(i + .008609037037932761 * t + .11102962500302593 * p$2);\n\tconst m = transferPqDecode(i - .00860903703793275 * t - .11102962500302599 * p$2);\n\tconst s = transferPqDecode(i + .5600313357106791 * t - .32062717498731885 * p$2);\n\tconst res = {\n\t\tmode: \"xyz65\",\n\t\tx: toRel(2.070152218389422 * l - 1.3263473389671556 * m + .2066510476294051 * s),\n\t\ty: toRel(.3647385209748074 * l + .680566024947227 * m - .0453045459220346 * s),\n\t\tz: toRel(-.049747207535812 * l - .0492609666966138 * m + 1.1880659249923042 * s)\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertItpToXyz65_default = convertItpToXyz65;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/itp/convertXyz65ToItp.js\nconst toAbs = (c$1 = 0) => Math.max(c$1 * YW, 0);\nconst convertXyz65ToItp = ({ x, y, z, alpha }) => {\n\tconst absX = toAbs(x);\n\tconst absY = toAbs(y);\n\tconst absZ = toAbs(z);\n\tconst l = transferPqEncode(.3592832590121217 * absX + .6976051147779502 * absY - .0358915932320289 * absZ);\n\tconst m = transferPqEncode(-.1920808463704995 * absX + 1.1004767970374323 * absY + .0753748658519118 * absZ);\n\tconst s = transferPqEncode(.0070797844607477 * absX + .0748396662186366 * absY + .8433265453898765 * absZ);\n\tconst i = .5 * l + .5 * m;\n\tconst t = 1.61376953125 * l - 3.323486328125 * m + 1.709716796875 * s;\n\tconst p$2 = 4.378173828125 * l - 4.24560546875 * m - .132568359375 * s;\n\tconst res = {\n\t\tmode: \"itp\",\n\t\ti,\n\t\tt,\n\t\tp: p$2\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertXyz65ToItp_default = convertXyz65ToItp;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/itp/definition.js\nconst definition$6 = {\n\tmode: \"itp\",\n\tchannels: [\n\t\t\"i\",\n\t\t\"t\",\n\t\t\"p\",\n\t\t\"alpha\"\n\t],\n\tparse: [\"--ictcp\"],\n\tserialize: \"--ictcp\",\n\ttoMode: {\n\t\txyz65: convertItpToXyz65_default,\n\t\trgb: (color) => convertXyz65ToRgb_default(convertItpToXyz65_default(color))\n\t},\n\tfromMode: {\n\t\txyz65: convertXyz65ToItp_default,\n\t\trgb: (color) => convertXyz65ToItp_default(convertRgbToXyz65_default(color))\n\t},\n\tranges: {\n\t\ti: [0, .581],\n\t\tt: [-.369, .272],\n\t\tp: [-.164, .331]\n\t},\n\tinterpolate: {\n\t\ti: interpolatorLinear,\n\t\tt: interpolatorLinear,\n\t\tp: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t}\n};\nvar definition_default$20 = definition$6;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jab/convertXyz65ToJab.js\nconst p$1 = 134.03437499999998;\nconst d0$1 = 16295499532821565e-27;\nconst jabPqEncode = (v) => {\n\tif (v < 0) return 0;\n\tlet vn$2 = Math.pow(v / 1e4, M1);\n\treturn Math.pow((C1 + C2 * vn$2) / (1 + C3 * vn$2), p$1);\n};\nconst abs = (v = 0) => Math.max(v * 203, 0);\nconst convertXyz65ToJab = ({ x, y, z, alpha }) => {\n\tx = abs(x);\n\ty = abs(y);\n\tz = abs(z);\n\tlet xp = 1.15 * x - .15 * z;\n\tlet yp = .66 * y + .34 * x;\n\tlet l = jabPqEncode(.41478972 * xp + .579999 * yp + .014648 * z);\n\tlet m = jabPqEncode(-.20151 * xp + 1.120649 * yp + .0531008 * z);\n\tlet s = jabPqEncode(-.0166008 * xp + .2648 * yp + .6684799 * z);\n\tlet i = (l + m) / 2;\n\tlet res = {\n\t\tmode: \"jab\",\n\t\tj: .44 * i / (1 - .56 * i) - d0$1,\n\t\ta: 3.524 * l - 4.066708 * m + .542708 * s,\n\t\tb: .199076 * l + 1.096799 * m - 1.295875 * s\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertXyz65ToJab_default = convertXyz65ToJab;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jab/convertJabToXyz65.js\nconst p = 134.03437499999998;\nconst d0 = 16295499532821565e-27;\nconst jabPqDecode = (v) => {\n\tif (v < 0) return 0;\n\tlet vp = Math.pow(v, 1 / p);\n\treturn 1e4 * Math.pow((C1 - vp) / (C3 * vp - C2), 1 / M1);\n};\nconst rel = (v) => v / 203;\nconst convertJabToXyz65 = ({ j, a, b, alpha }) => {\n\tif (j === void 0) j = 0;\n\tif (a === void 0) a = 0;\n\tif (b === void 0) b = 0;\n\tlet i = (j + d0) / (.44 + .56 * (j + d0));\n\tlet l = jabPqDecode(i + .13860504 * a + .058047316 * b);\n\tlet m = jabPqDecode(i - .13860504 * a - .058047316 * b);\n\tlet s = jabPqDecode(i - .096019242 * a - .8118919 * b);\n\tlet res = {\n\t\tmode: \"xyz65\",\n\t\tx: rel(1.661373024652174 * l - .914523081304348 * m + .23136208173913045 * s),\n\t\ty: rel(-.3250758611844533 * l + 1.571847026732543 * m - .21825383453227928 * s),\n\t\tz: rel(-.090982811 * l - .31272829 * m + 1.5227666 * s)\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertJabToXyz65_default = convertJabToXyz65;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jab/convertRgbToJab.js\nconst convertRgbToJab = (rgb$4) => {\n\tlet res = convertXyz65ToJab_default(convertRgbToXyz65_default(rgb$4));\n\tif (rgb$4.r === rgb$4.b && rgb$4.b === rgb$4.g) res.a = res.b = 0;\n\treturn res;\n};\nvar convertRgbToJab_default = convertRgbToJab;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jab/convertJabToRgb.js\nconst convertJabToRgb = (color) => convertXyz65ToRgb_default(convertJabToXyz65_default(color));\nvar convertJabToRgb_default = convertJabToRgb;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jab/definition.js\nconst definition$5 = {\n\tmode: \"jab\",\n\tchannels: [\n\t\t\"j\",\n\t\t\"a\",\n\t\t\"b\",\n\t\t\"alpha\"\n\t],\n\tparse: [\"--jzazbz\"],\n\tserialize: \"--jzazbz\",\n\tfromMode: {\n\t\trgb: convertRgbToJab_default,\n\t\txyz65: convertXyz65ToJab_default\n\t},\n\ttoMode: {\n\t\trgb: convertJabToRgb_default,\n\t\txyz65: convertJabToXyz65_default\n\t},\n\tranges: {\n\t\tj: [0, .222],\n\t\ta: [-.109, .129],\n\t\tb: [-.185, .134]\n\t},\n\tinterpolate: {\n\t\tj: interpolatorLinear,\n\t\ta: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t}\n};\nvar definition_default$21 = definition$5;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jch/convertJabToJch.js\nconst convertJabToJch = ({ j, a, b, alpha }) => {\n\tif (a === void 0) a = 0;\n\tif (b === void 0) b = 0;\n\tlet c$1 = Math.sqrt(a * a + b * b);\n\tlet res = {\n\t\tmode: \"jch\",\n\t\tj,\n\t\tc: c$1\n\t};\n\tif (c$1) res.h = normalizeHue_default(Math.atan2(b, a) * 180 / Math.PI);\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertJabToJch_default = convertJabToJch;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jch/convertJchToJab.js\nconst convertJchToJab = ({ j, c: c$1, h, alpha }) => {\n\tif (h === void 0) h = 0;\n\tlet res = {\n\t\tmode: \"jab\",\n\t\tj,\n\t\ta: c$1 ? c$1 * Math.cos(h / 180 * Math.PI) : 0,\n\t\tb: c$1 ? c$1 * Math.sin(h / 180 * Math.PI) : 0\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertJchToJab_default = convertJchToJab;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jch/definition.js\nconst definition$4 = {\n\tmode: \"jch\",\n\tparse: [\"--jzczhz\"],\n\tserialize: \"--jzczhz\",\n\ttoMode: {\n\t\tjab: convertJchToJab_default,\n\t\trgb: (c$1) => convertJabToRgb_default(convertJchToJab_default(c$1))\n\t},\n\tfromMode: {\n\t\trgb: (c$1) => convertJabToJch_default(convertRgbToJab_default(c$1)),\n\t\tjab: convertJabToJch_default\n\t},\n\tchannels: [\n\t\t\"j\",\n\t\t\"c\",\n\t\t\"h\",\n\t\t\"alpha\"\n\t],\n\tranges: {\n\t\tj: [0, .221],\n\t\tc: [0, .19],\n\t\th: [0, 360]\n\t},\n\tinterpolate: {\n\t\th: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupHueShorter\n\t\t},\n\t\tc: interpolatorLinear,\n\t\tj: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\tdifference: { h: differenceHueChroma },\n\taverage: { h: averageAngle }\n};\nvar definition_default$22 = definition$4;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lchuv/convertLuvToLchuv.js\nconst convertLuvToLchuv = ({ l, u, v, alpha }) => {\n\tif (u === void 0) u = 0;\n\tif (v === void 0) v = 0;\n\tlet c$1 = Math.sqrt(u * u + v * v);\n\tlet res = {\n\t\tmode: \"lchuv\",\n\t\tl,\n\t\tc: c$1\n\t};\n\tif (c$1) res.h = normalizeHue_default(Math.atan2(v, u) * 180 / Math.PI);\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertLuvToLchuv_default = convertLuvToLchuv;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lchuv/convertLchuvToLuv.js\nconst convertLchuvToLuv = ({ l, c: c$1, h, alpha }) => {\n\tif (h === void 0) h = 0;\n\tlet res = {\n\t\tmode: \"luv\",\n\t\tl,\n\t\tu: c$1 ? c$1 * Math.cos(h / 180 * Math.PI) : 0,\n\t\tv: c$1 ? c$1 * Math.sin(h / 180 * Math.PI) : 0\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertLchuvToLuv_default = convertLchuvToLuv;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/luv/convertXyz50ToLuv.js\nconst u_fn$1 = (x, y, z) => 4 * x / (x + 15 * y + 3 * z);\nconst v_fn$1 = (x, y, z) => 9 * y / (x + 15 * y + 3 * z);\nconst un$1 = u_fn$1(D50.X, D50.Y, D50.Z);\nconst vn$1 = v_fn$1(D50.X, D50.Y, D50.Z);\nconst l_fn = (value) => value <= e ? k * value : 116 * Math.cbrt(value) - 16;\nconst convertXyz50ToLuv = ({ x, y, z, alpha }) => {\n\tif (x === void 0) x = 0;\n\tif (y === void 0) y = 0;\n\tif (z === void 0) z = 0;\n\tlet l = l_fn(y / D50.Y);\n\tlet u = u_fn$1(x, y, z);\n\tlet v = v_fn$1(x, y, z);\n\tif (!isFinite(u) || !isFinite(v)) l = u = v = 0;\n\telse {\n\t\tu = 13 * l * (u - un$1);\n\t\tv = 13 * l * (v - vn$1);\n\t}\n\tlet res = {\n\t\tmode: \"luv\",\n\t\tl,\n\t\tu,\n\t\tv\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertXyz50ToLuv_default = convertXyz50ToLuv;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/luv/convertLuvToXyz50.js\nconst u_fn = (x, y, z) => 4 * x / (x + 15 * y + 3 * z);\nconst v_fn = (x, y, z) => 9 * y / (x + 15 * y + 3 * z);\nconst un = u_fn(D50.X, D50.Y, D50.Z);\nconst vn = v_fn(D50.X, D50.Y, D50.Z);\nconst convertLuvToXyz50 = ({ l, u, v, alpha }) => {\n\tif (l === void 0) l = 0;\n\tif (l === 0) return {\n\t\tmode: \"xyz50\",\n\t\tx: 0,\n\t\ty: 0,\n\t\tz: 0\n\t};\n\tif (u === void 0) u = 0;\n\tif (v === void 0) v = 0;\n\tlet up = u / (13 * l) + un;\n\tlet vp = v / (13 * l) + vn;\n\tlet y = D50.Y * (l <= 8 ? l / k : Math.pow((l + 16) / 116, 3));\n\tlet x = y * (9 * up) / (4 * vp);\n\tlet z = y * (12 - 3 * up - 20 * vp) / (4 * vp);\n\tlet res = {\n\t\tmode: \"xyz50\",\n\t\tx,\n\t\ty,\n\t\tz\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertLuvToXyz50_default = convertLuvToXyz50;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lchuv/definition.js\nconst convertRgbToLchuv = (rgb$4) => convertLuvToLchuv_default(convertXyz50ToLuv_default(convertRgbToXyz50_default(rgb$4)));\nconst convertLchuvToRgb = (lchuv$1) => convertXyz50ToRgb_default(convertLuvToXyz50_default(convertLchuvToLuv_default(lchuv$1)));\nconst definition$3 = {\n\tmode: \"lchuv\",\n\ttoMode: {\n\t\tluv: convertLchuvToLuv_default,\n\t\trgb: convertLchuvToRgb\n\t},\n\tfromMode: {\n\t\trgb: convertRgbToLchuv,\n\t\tluv: convertLuvToLchuv_default\n\t},\n\tchannels: [\n\t\t\"l\",\n\t\t\"c\",\n\t\t\"h\",\n\t\t\"alpha\"\n\t],\n\tparse: [\"--lchuv\"],\n\tserialize: \"--lchuv\",\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 176.956],\n\t\th: [0, 360]\n\t},\n\tinterpolate: {\n\t\th: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupHueShorter\n\t\t},\n\t\tc: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\tdifference: { h: differenceHueChroma },\n\taverage: { h: averageAngle }\n};\nvar definition_default$24 = definition$3;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/luv/definition.js\nconst definition$2 = {\n\tmode: \"luv\",\n\ttoMode: {\n\t\txyz50: convertLuvToXyz50_default,\n\t\trgb: (luv$1) => convertXyz50ToRgb_default(convertLuvToXyz50_default(luv$1))\n\t},\n\tfromMode: {\n\t\txyz50: convertXyz50ToLuv_default,\n\t\trgb: (rgb$4) => convertXyz50ToLuv_default(convertRgbToXyz50_default(rgb$4))\n\t},\n\tchannels: [\n\t\t\"l\",\n\t\t\"u\",\n\t\t\"v\",\n\t\t\"alpha\"\n\t],\n\tparse: [\"--luv\"],\n\tserialize: \"--luv\",\n\tranges: {\n\t\tl: [0, 100],\n\t\tu: [-84.936, 175.042],\n\t\tv: [-125.882, 87.243]\n\t},\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\tu: interpolatorLinear,\n\t\tv: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t}\n};\nvar definition_default$25 = definition$2;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/okhsl/helpers.js\nfunction toe(x) {\n\tconst k_1 = .206;\n\tconst k_2 = .03;\n\tconst k_3 = (1 + k_1) / (1 + k_2);\n\treturn .5 * (k_3 * x - k_1 + Math.sqrt((k_3 * x - k_1) * (k_3 * x - k_1) + 4 * k_2 * k_3 * x));\n}\nfunction toe_inv(x) {\n\tconst k_1 = .206;\n\tconst k_2 = .03;\n\tconst k_3 = (1 + k_1) / (1 + k_2);\n\treturn (x * x + k_1 * x) / (k_3 * (x + k_2));\n}\nfunction compute_max_saturation(a, b) {\n\tlet k0, k1, k2, k3, k4, wl, wm, ws;\n\tif (-1.88170328 * a - .80936493 * b > 1) {\n\t\tk0 = 1.19086277;\n\t\tk1 = 1.76576728;\n\t\tk2 = .59662641;\n\t\tk3 = .75515197;\n\t\tk4 = .56771245;\n\t\twl = 4.0767416621;\n\t\twm = -3.3077115913;\n\t\tws = .2309699292;\n\t} else if (1.81444104 * a - 1.19445276 * b > 1) {\n\t\tk0 = .73956515;\n\t\tk1 = -.45954404;\n\t\tk2 = .08285427;\n\t\tk3 = .1254107;\n\t\tk4 = .14503204;\n\t\twl = -1.2684380046;\n\t\twm = 2.6097574011;\n\t\tws = -.3413193965;\n\t} else {\n\t\tk0 = 1.35733652;\n\t\tk1 = -.00915799;\n\t\tk2 = -1.1513021;\n\t\tk3 = -.50559606;\n\t\tk4 = .00692167;\n\t\twl = -.0041960863;\n\t\twm = -.7034186147;\n\t\tws = 1.707614701;\n\t}\n\tlet S = k0 + k1 * a + k2 * b + k3 * a * a + k4 * a * b;\n\tlet k_l = .3963377774 * a + .2158037573 * b;\n\tlet k_m = -.1055613458 * a - .0638541728 * b;\n\tlet k_s = -.0894841775 * a - 1.291485548 * b;\n\t{\n\t\tlet l_ = 1 + S * k_l;\n\t\tlet m_ = 1 + S * k_m;\n\t\tlet s_ = 1 + S * k_s;\n\t\tlet l = l_ * l_ * l_;\n\t\tlet m = m_ * m_ * m_;\n\t\tlet s = s_ * s_ * s_;\n\t\tlet l_dS = 3 * k_l * l_ * l_;\n\t\tlet m_dS = 3 * k_m * m_ * m_;\n\t\tlet s_dS = 3 * k_s * s_ * s_;\n\t\tlet l_dS2 = 6 * k_l * k_l * l_;\n\t\tlet m_dS2 = 6 * k_m * k_m * m_;\n\t\tlet s_dS2 = 6 * k_s * k_s * s_;\n\t\tlet f$2 = wl * l + wm * m + ws * s;\n\t\tlet f1 = wl * l_dS + wm * m_dS + ws * s_dS;\n\t\tlet f2 = wl * l_dS2 + wm * m_dS2 + ws * s_dS2;\n\t\tS = S - f$2 * f1 / (f1 * f1 - .5 * f$2 * f2);\n\t}\n\treturn S;\n}\nfunction find_cusp(a, b) {\n\tlet S_cusp = compute_max_saturation(a, b);\n\tlet rgb$4 = convertOklabToLrgb_default({\n\t\tl: 1,\n\t\ta: S_cusp * a,\n\t\tb: S_cusp * b\n\t});\n\tlet L_cusp = Math.cbrt(1 / Math.max(rgb$4.r, rgb$4.g, rgb$4.b));\n\tlet C_cusp = L_cusp * S_cusp;\n\treturn [L_cusp, C_cusp];\n}\nfunction find_gamut_intersection(a, b, L1, C1$1, L0, cusp = null) {\n\tif (!cusp) cusp = find_cusp(a, b);\n\tlet t;\n\tif ((L1 - L0) * cusp[1] - (cusp[0] - L0) * C1$1 <= 0) t = cusp[1] * L0 / (C1$1 * cusp[0] + cusp[1] * (L0 - L1));\n\telse {\n\t\tt = cusp[1] * (L0 - 1) / (C1$1 * (cusp[0] - 1) + cusp[1] * (L0 - L1));\n\t\t{\n\t\t\tlet dL = L1 - L0;\n\t\t\tlet dC = C1$1;\n\t\t\tlet k_l = .3963377774 * a + .2158037573 * b;\n\t\t\tlet k_m = -.1055613458 * a - .0638541728 * b;\n\t\t\tlet k_s = -.0894841775 * a - 1.291485548 * b;\n\t\t\tlet l_dt = dL + dC * k_l;\n\t\t\tlet m_dt = dL + dC * k_m;\n\t\t\tlet s_dt = dL + dC * k_s;\n\t\t\t{\n\t\t\t\tlet L = L0 * (1 - t) + t * L1;\n\t\t\t\tlet C = t * C1$1;\n\t\t\t\tlet l_ = L + C * k_l;\n\t\t\t\tlet m_ = L + C * k_m;\n\t\t\t\tlet s_ = L + C * k_s;\n\t\t\t\tlet l = l_ * l_ * l_;\n\t\t\t\tlet m = m_ * m_ * m_;\n\t\t\t\tlet s = s_ * s_ * s_;\n\t\t\t\tlet ldt = 3 * l_dt * l_ * l_;\n\t\t\t\tlet mdt = 3 * m_dt * m_ * m_;\n\t\t\t\tlet sdt = 3 * s_dt * s_ * s_;\n\t\t\t\tlet ldt2 = 6 * l_dt * l_dt * l_;\n\t\t\t\tlet mdt2 = 6 * m_dt * m_dt * m_;\n\t\t\t\tlet sdt2 = 6 * s_dt * s_dt * s_;\n\t\t\t\tlet r$1 = 4.0767416621 * l - 3.3077115913 * m + .2309699292 * s - 1;\n\t\t\t\tlet r1 = 4.0767416621 * ldt - 3.3077115913 * mdt + .2309699292 * sdt;\n\t\t\t\tlet r2 = 4.0767416621 * ldt2 - 3.3077115913 * mdt2 + .2309699292 * sdt2;\n\t\t\t\tlet u_r = r1 / (r1 * r1 - .5 * r$1 * r2);\n\t\t\t\tlet t_r = -r$1 * u_r;\n\t\t\t\tlet g = -1.2684380046 * l + 2.6097574011 * m - .3413193965 * s - 1;\n\t\t\t\tlet g1 = -1.2684380046 * ldt + 2.6097574011 * mdt - .3413193965 * sdt;\n\t\t\t\tlet g2 = -1.2684380046 * ldt2 + 2.6097574011 * mdt2 - .3413193965 * sdt2;\n\t\t\t\tlet u_g = g1 / (g1 * g1 - .5 * g * g2);\n\t\t\t\tlet t_g = -g * u_g;\n\t\t\t\tlet b$1 = -.0041960863 * l - .7034186147 * m + 1.707614701 * s - 1;\n\t\t\t\tlet b1 = -.0041960863 * ldt - .7034186147 * mdt + 1.707614701 * sdt;\n\t\t\t\tlet b2 = -.0041960863 * ldt2 - .7034186147 * mdt2 + 1.707614701 * sdt2;\n\t\t\t\tlet u_b = b1 / (b1 * b1 - .5 * b$1 * b2);\n\t\t\t\tlet t_b = -b$1 * u_b;\n\t\t\t\tt_r = u_r >= 0 ? t_r : 1e6;\n\t\t\t\tt_g = u_g >= 0 ? t_g : 1e6;\n\t\t\t\tt_b = u_b >= 0 ? t_b : 1e6;\n\t\t\t\tt += Math.min(t_r, Math.min(t_g, t_b));\n\t\t\t}\n\t\t}\n\t}\n\treturn t;\n}\nfunction get_ST_max(a_, b_, cusp = null) {\n\tif (!cusp) cusp = find_cusp(a_, b_);\n\tlet L = cusp[0];\n\tlet C = cusp[1];\n\treturn [C / L, C / (1 - L)];\n}\nfunction get_Cs(L, a_, b_) {\n\tlet cusp = find_cusp(a_, b_);\n\tlet C_max = find_gamut_intersection(a_, b_, L, 1, L, cusp);\n\tlet ST_max = get_ST_max(a_, b_, cusp);\n\tlet S_mid = .11516993 + 1 / (7.4477897 + 4.1590124 * b_ + a_ * (-2.19557347 + 1.75198401 * b_ + a_ * (-2.13704948 - 10.02301043 * b_ + a_ * (-4.24894561 + 5.38770819 * b_ + 4.69891013 * a_))));\n\tlet T_mid = .11239642 + 1 / (1.6132032 - .68124379 * b_ + a_ * (.40370612 + .90148123 * b_ + a_ * (-.27087943 + .6122399 * b_ + a_ * (.00299215 - .45399568 * b_ - .14661872 * a_))));\n\tlet k$3 = C_max / Math.min(L * ST_max[0], (1 - L) * ST_max[1]);\n\tlet C_a = L * S_mid;\n\tlet C_b = (1 - L) * T_mid;\n\tlet C_mid = .9 * k$3 * Math.sqrt(Math.sqrt(1 / (1 / (C_a * C_a * C_a * C_a) + 1 / (C_b * C_b * C_b * C_b))));\n\tC_a = L * .4;\n\tC_b = (1 - L) * .8;\n\treturn [\n\t\tMath.sqrt(1 / (1 / (C_a * C_a) + 1 / (C_b * C_b))),\n\t\tC_mid,\n\t\tC_max\n\t];\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/okhsl/convertOklabToOkhsl.js\nfunction convertOklabToOkhsl(lab$2) {\n\tconst l = lab$2.l !== void 0 ? lab$2.l : 0;\n\tconst a = lab$2.a !== void 0 ? lab$2.a : 0;\n\tconst b = lab$2.b !== void 0 ? lab$2.b : 0;\n\tconst ret = {\n\t\tmode: \"okhsl\",\n\t\tl: toe(l)\n\t};\n\tif (lab$2.alpha !== void 0) ret.alpha = lab$2.alpha;\n\tlet c$1 = Math.sqrt(a * a + b * b);\n\tif (!c$1) {\n\t\tret.s = 0;\n\t\treturn ret;\n\t}\n\tlet [C_0, C_mid, C_max] = get_Cs(l, a / c$1, b / c$1);\n\tlet s;\n\tif (c$1 < C_mid) {\n\t\tlet k_0 = 0;\n\t\tlet k_1 = .8 * C_0;\n\t\tlet k_2 = 1 - k_1 / C_mid;\n\t\ts = (c$1 - k_0) / (k_1 + k_2 * (c$1 - k_0)) * .8;\n\t} else {\n\t\tlet k_0 = C_mid;\n\t\tlet k_1 = .2 * C_mid * C_mid * 1.25 * 1.25 / C_0;\n\t\tlet k_2 = 1 - k_1 / (C_max - C_mid);\n\t\ts = .8 + .2 * ((c$1 - k_0) / (k_1 + k_2 * (c$1 - k_0)));\n\t}\n\tif (s) {\n\t\tret.s = s;\n\t\tret.h = normalizeHue_default(Math.atan2(b, a) * 180 / Math.PI);\n\t}\n\treturn ret;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/okhsl/convertOkhslToOklab.js\nfunction convertOkhslToOklab(hsl$3) {\n\tlet h = hsl$3.h !== void 0 ? hsl$3.h : 0;\n\tlet s = hsl$3.s !== void 0 ? hsl$3.s : 0;\n\tlet l = hsl$3.l !== void 0 ? hsl$3.l : 0;\n\tconst ret = {\n\t\tmode: \"oklab\",\n\t\tl: toe_inv(l)\n\t};\n\tif (hsl$3.alpha !== void 0) ret.alpha = hsl$3.alpha;\n\tif (!s || l === 1) {\n\t\tret.a = ret.b = 0;\n\t\treturn ret;\n\t}\n\tlet a_ = Math.cos(h / 180 * Math.PI);\n\tlet b_ = Math.sin(h / 180 * Math.PI);\n\tlet [C_0, C_mid, C_max] = get_Cs(ret.l, a_, b_);\n\tlet t, k_0, k_1, k_2;\n\tif (s < .8) {\n\t\tt = 1.25 * s;\n\t\tk_0 = 0;\n\t\tk_1 = .8 * C_0;\n\t\tk_2 = 1 - k_1 / C_mid;\n\t} else {\n\t\tt = 5 * (s - .8);\n\t\tk_0 = C_mid;\n\t\tk_1 = .2 * C_mid * C_mid * 1.25 * 1.25 / C_0;\n\t\tk_2 = 1 - k_1 / (C_max - C_mid);\n\t}\n\tlet C = k_0 + t * k_1 / (1 - k_2 * t);\n\tret.a = C * a_;\n\tret.b = C * b_;\n\treturn ret;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/okhsl/modeOkhsl.js\nconst modeOkhsl = {\n\t...definition_default$1,\n\tmode: \"okhsl\",\n\tchannels: [\n\t\t\"h\",\n\t\t\"s\",\n\t\t\"l\",\n\t\t\"alpha\"\n\t],\n\tparse: [\"--okhsl\"],\n\tserialize: \"--okhsl\",\n\tfromMode: {\n\t\toklab: convertOklabToOkhsl,\n\t\trgb: (c$1) => convertOklabToOkhsl(convertRgbToOklab_default(c$1))\n\t},\n\ttoMode: {\n\t\toklab: convertOkhslToOklab,\n\t\trgb: (c$1) => convertOklabToRgb_default(convertOkhslToOklab(c$1))\n\t}\n};\nvar modeOkhsl_default = modeOkhsl;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/okhsv/convertOklabToOkhsv.js\nfunction convertOklabToOkhsv(lab$2) {\n\tlet l = lab$2.l !== void 0 ? lab$2.l : 0;\n\tlet a = lab$2.a !== void 0 ? lab$2.a : 0;\n\tlet b = lab$2.b !== void 0 ? lab$2.b : 0;\n\tlet c$1 = Math.sqrt(a * a + b * b);\n\tlet a_ = c$1 ? a / c$1 : 1;\n\tlet b_ = c$1 ? b / c$1 : 1;\n\tlet [S_max, T] = get_ST_max(a_, b_);\n\tlet S_0 = .5;\n\tlet k$3 = 1 - S_0 / S_max;\n\tlet t = T / (c$1 + l * T);\n\tlet L_v = t * l;\n\tlet C_v = t * c$1;\n\tlet L_vt = toe_inv(L_v);\n\tlet C_vt = C_v * L_vt / L_v;\n\tlet rgb_scale = convertOklabToLrgb_default({\n\t\tl: L_vt,\n\t\ta: a_ * C_vt,\n\t\tb: b_ * C_vt\n\t});\n\tlet scale_L = Math.cbrt(1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0));\n\tl = l / scale_L;\n\tc$1 = c$1 / scale_L * toe(l) / l;\n\tl = toe(l);\n\tconst ret = {\n\t\tmode: \"okhsv\",\n\t\ts: c$1 ? (S_0 + T) * C_v / (T * S_0 + T * k$3 * C_v) : 0,\n\t\tv: l ? l / L_v : 0\n\t};\n\tif (ret.s) ret.h = normalizeHue_default(Math.atan2(b, a) * 180 / Math.PI);\n\tif (lab$2.alpha !== void 0) ret.alpha = lab$2.alpha;\n\treturn ret;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/okhsv/convertOkhsvToOklab.js\nfunction convertOkhsvToOklab(hsv$2) {\n\tconst ret = { mode: \"oklab\" };\n\tif (hsv$2.alpha !== void 0) ret.alpha = hsv$2.alpha;\n\tconst h = hsv$2.h !== void 0 ? hsv$2.h : 0;\n\tconst s = hsv$2.s !== void 0 ? hsv$2.s : 0;\n\tconst v = hsv$2.v !== void 0 ? hsv$2.v : 0;\n\tconst a_ = Math.cos(h / 180 * Math.PI);\n\tconst b_ = Math.sin(h / 180 * Math.PI);\n\tconst [S_max, T] = get_ST_max(a_, b_);\n\tconst S_0 = .5;\n\tconst k$3 = 1 - S_0 / S_max;\n\tconst L_v = 1 - s * S_0 / (S_0 + T - T * k$3 * s);\n\tconst C_v = s * T * S_0 / (S_0 + T - T * k$3 * s);\n\tconst L_vt = toe_inv(L_v);\n\tconst C_vt = C_v * L_vt / L_v;\n\tconst rgb_scale = convertOklabToLrgb_default({\n\t\tl: L_vt,\n\t\ta: a_ * C_vt,\n\t\tb: b_ * C_vt\n\t});\n\tconst scale_L = Math.cbrt(1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0));\n\tconst L_new = toe_inv(v * L_v);\n\tconst C = C_v * L_new / L_v;\n\tret.l = L_new * scale_L;\n\tret.a = C * a_ * scale_L;\n\tret.b = C * b_ * scale_L;\n\treturn ret;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/okhsv/modeOkhsv.js\nconst modeOkhsv = {\n\t...definition_default$19,\n\tmode: \"okhsv\",\n\tchannels: [\n\t\t\"h\",\n\t\t\"s\",\n\t\t\"v\",\n\t\t\"alpha\"\n\t],\n\tparse: [\"--okhsv\"],\n\tserialize: \"--okhsv\",\n\tfromMode: {\n\t\toklab: convertOklabToOkhsv,\n\t\trgb: (c$1) => convertOklabToOkhsv(convertRgbToOklab_default(c$1))\n\t},\n\ttoMode: {\n\t\toklab: convertOkhsvToOklab,\n\t\trgb: (c$1) => convertOklabToRgb_default(convertOkhsvToOklab(c$1))\n\t}\n};\nvar modeOkhsv_default = modeOkhsv;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyb/constants.js\nconst bias = .0037930732552754493;\nconst bias_cbrt = Math.cbrt(bias);\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyb/convertRgbToXyb.js\nconst transfer$1 = (v) => Math.cbrt(v) - bias_cbrt;\nconst convertRgbToXyb = (color) => {\n\tconst { r: r$1, g, b, alpha } = convertRgbToLrgb_default(color);\n\tconst l = transfer$1(.3 * r$1 + .622 * g + .078 * b + bias);\n\tconst m = transfer$1(.23 * r$1 + .692 * g + .078 * b + bias);\n\tconst s = transfer$1(.2434226892454782 * r$1 + .2047674442449682 * g + .5518098665095535 * b + bias);\n\tconst res = {\n\t\tmode: \"xyb\",\n\t\tx: (l - m) / 2,\n\t\ty: (l + m) / 2,\n\t\tb: s - (l + m) / 2\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertRgbToXyb_default = convertRgbToXyb;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyb/convertXybToRgb.js\nconst transfer = (v) => Math.pow(v + bias_cbrt, 3);\nconst convertXybToRgb = ({ x, y, b, alpha }) => {\n\tif (x === void 0) x = 0;\n\tif (y === void 0) y = 0;\n\tif (b === void 0) b = 0;\n\tconst l = transfer(x + y) - bias;\n\tconst m = transfer(y - x) - bias;\n\tconst s = transfer(b + y) - bias;\n\tconst res = convertLrgbToRgb_default({\n\t\tr: 11.031566904639861 * l - 9.866943908131562 * m - .16462299650829934 * s,\n\t\tg: -3.2541473810744237 * l + 4.418770377582723 * m - .16462299650829934 * s,\n\t\tb: -3.6588512867136815 * l + 2.7129230459360922 * m + 1.9459282407775895 * s\n\t});\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertXybToRgb_default = convertXybToRgb;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyb/definition.js\nconst definition$1 = {\n\tmode: \"xyb\",\n\tchannels: [\n\t\t\"x\",\n\t\t\"y\",\n\t\t\"b\",\n\t\t\"alpha\"\n\t],\n\tparse: [\"--xyb\"],\n\tserialize: \"--xyb\",\n\ttoMode: { rgb: convertXybToRgb_default },\n\tfromMode: { rgb: convertRgbToXyb_default },\n\tranges: {\n\t\tx: [-.0154, .0281],\n\t\ty: [0, .8453],\n\t\tb: [-.2778, .388]\n\t},\n\tinterpolate: {\n\t\tx: interpolatorLinear,\n\t\ty: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t}\n};\nvar definition_default$26 = definition$1;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/yiq/convertRgbToYiq.js\nconst convertRgbToYiq = ({ r: r$1, g, b, alpha }) => {\n\tif (r$1 === void 0) r$1 = 0;\n\tif (g === void 0) g = 0;\n\tif (b === void 0) b = 0;\n\tconst res = {\n\t\tmode: \"yiq\",\n\t\ty: .29889531 * r$1 + .58662247 * g + .11448223 * b,\n\t\ti: .59597799 * r$1 - .2741761 * g - .32180189 * b,\n\t\tq: .21147017 * r$1 - .52261711 * g + .31114694 * b\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertRgbToYiq_default = convertRgbToYiq;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/yiq/convertYiqToRgb.js\nconst convertYiqToRgb = ({ y, i, q, alpha }) => {\n\tif (y === void 0) y = 0;\n\tif (i === void 0) i = 0;\n\tif (q === void 0) q = 0;\n\tconst res = {\n\t\tmode: \"rgb\",\n\t\tr: y + .95608445 * i + .6208885 * q,\n\t\tg: y - .27137664 * i - .6486059 * q,\n\t\tb: y - 1.10561724 * i + 1.70250126 * q\n\t};\n\tif (alpha !== void 0) res.alpha = alpha;\n\treturn res;\n};\nvar convertYiqToRgb_default = convertYiqToRgb;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/yiq/definition.js\nconst definition = {\n\tmode: \"yiq\",\n\ttoMode: { rgb: convertYiqToRgb_default },\n\tfromMode: { rgb: convertRgbToYiq_default },\n\tchannels: [\n\t\t\"y\",\n\t\t\"i\",\n\t\t\"q\",\n\t\t\"alpha\"\n\t],\n\tparse: [\"--yiq\"],\n\tserialize: \"--yiq\",\n\tranges: {\n\t\ti: [-.595, .595],\n\t\tq: [-.522, .522]\n\t},\n\tinterpolate: {\n\t\ty: interpolatorLinear,\n\t\ti: interpolatorLinear,\n\t\tq: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t}\n};\nvar definition_default$27 = definition;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/round.js\nconst r = (value, precision) => Math.round(value * (precision = Math.pow(10, precision))) / precision;\nconst round = (precision = 4) => (value) => typeof value === \"number\" ? r(value, precision) : value;\nvar round_default = round;\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/formatter.js\nlet twoDecimals = round_default(2);\nconst clamp = (value) => Math.max(0, Math.min(1, value || 0));\nconst fixup = (value) => Math.round(clamp(value) * 255);\nconst rgb$2 = converter_default(\"rgb\");\nconst hsl$1 = converter_default(\"hsl\");\nconst serializeHex = (color) => {\n\tif (color === void 0) return;\n\tlet r$1 = fixup(color.r);\n\tlet g = fixup(color.g);\n\tlet b = fixup(color.b);\n\treturn \"#\" + (1 << 24 | r$1 << 16 | g << 8 | b).toString(16).slice(1);\n};\nconst serializeHex8 = (color) => {\n\tif (color === void 0) return;\n\tlet a = fixup(color.alpha !== void 0 ? color.alpha : 1);\n\treturn serializeHex(color) + (256 | a).toString(16).slice(1);\n};\nconst formatCss = (c$1) => {\n\tconst color = _prepare_default(c$1);\n\tif (!color) return;\n\tconst def = getMode(color.mode);\n\tif (!def.serialize || typeof def.serialize === \"string\") {\n\t\tlet res = `color(${def.serialize || `--${color.mode}`} `;\n\t\tdef.channels.forEach((ch, i) => {\n\t\t\tif (ch !== \"alpha\") res += (i ? \" \" : \"\") + (color[ch] !== void 0 ? color[ch] : \"none\");\n\t\t});\n\t\tif (color.alpha !== void 0 && color.alpha < 1) res += ` / ${color.alpha}`;\n\t\treturn res + \")\";\n\t}\n\tif (typeof def.serialize === \"function\") return def.serialize(color);\n};\nconst formatHex = (c$1) => serializeHex(rgb$2(c$1));\nconst formatHex8 = (c$1) => serializeHex8(rgb$2(c$1));\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/clamp.js\nconst rgb$1 = converter_default(\"rgb\");\nconst fixup_rgb = (c$1) => {\n\tconst res = {\n\t\tmode: c$1.mode,\n\t\tr: Math.max(0, Math.min(c$1.r !== void 0 ? c$1.r : 0, 1)),\n\t\tg: Math.max(0, Math.min(c$1.g !== void 0 ? c$1.g : 0, 1)),\n\t\tb: Math.max(0, Math.min(c$1.b !== void 0 ? c$1.b : 0, 1))\n\t};\n\tif (c$1.alpha !== void 0) res.alpha = c$1.alpha;\n\treturn res;\n};\nconst inrange_rgb = (c$1) => {\n\treturn c$1 !== void 0 && (c$1.r === void 0 || c$1.r >= 0 && c$1.r <= 1) && (c$1.g === void 0 || c$1.g >= 0 && c$1.g <= 1) && (c$1.b === void 0 || c$1.b >= 0 && c$1.b <= 1);\n};\nfunction displayable(color) {\n\treturn inrange_rgb(rgb$1(color));\n}\nfunction inGamut(mode = \"rgb\") {\n\tconst { gamut } = getMode(mode);\n\tif (!gamut) return (color) => true;\n\tconst conv = converter_default(typeof gamut === \"string\" ? gamut : mode);\n\treturn (color) => inrange_rgb(conv(color));\n}\nfunction clampGamut(mode = \"rgb\") {\n\tconst { gamut } = getMode(mode);\n\tif (!gamut) return (color) => _prepare_default(color);\n\tconst destMode = typeof gamut === \"string\" ? gamut : mode;\n\tconst destConv = converter_default(destMode);\n\tconst inDestGamut = inGamut(destMode);\n\treturn (color) => {\n\t\tconst original = _prepare_default(color);\n\t\tif (!original) return;\n\t\tconst converted = destConv(original);\n\t\tif (inDestGamut(converted)) return original;\n\t\tconst clamped = fixup_rgb(converted);\n\t\tif (original.mode === clamped.mode) return clamped;\n\t\treturn converter_default(original.mode)(clamped);\n\t};\n}\nfunction toGamut(dest = \"rgb\", mode = \"oklch\", delta = differenceEuclidean(\"oklch\"), jnd = .02) {\n\tconst destConv = converter_default(dest);\n\tconst destMode = getMode(dest);\n\tif (!destMode.gamut) return (color) => destConv(color);\n\tconst inDestinationGamut = inGamut(dest);\n\tconst clipToGamut = clampGamut(dest);\n\tconst ucs = converter_default(mode);\n\tconst { ranges } = getMode(mode);\n\tif (!ranges.l || !ranges.c) throw new Error(\"LCH-like space expected\");\n\treturn (color) => {\n\t\tcolor = _prepare_default(color);\n\t\tif (color === void 0) return;\n\t\tconst candidate = { ...ucs(color) };\n\t\tif (candidate.l === void 0) candidate.l = 0;\n\t\tif (candidate.c === void 0) candidate.c = 0;\n\t\tif (candidate.l >= ranges.l[1]) {\n\t\t\tconst res = {\n\t\t\t\t...destMode.white,\n\t\t\t\tmode: dest\n\t\t\t};\n\t\t\tif (color.alpha !== void 0) res.alpha = color.alpha;\n\t\t\treturn res;\n\t\t}\n\t\tif (candidate.l <= ranges.l[0]) {\n\t\t\tconst res = {\n\t\t\t\t...destMode.black,\n\t\t\t\tmode: dest\n\t\t\t};\n\t\t\tif (color.alpha !== void 0) res.alpha = color.alpha;\n\t\t\treturn res;\n\t\t}\n\t\tif (inDestinationGamut(candidate)) return destConv(candidate);\n\t\tlet start = 0;\n\t\tlet end = candidate.c;\n\t\tlet epsilon = (ranges.c[1] - ranges.c[0]) / 4e3;\n\t\tlet clipped = clipToGamut(candidate);\n\t\twhile (end - start > epsilon) {\n\t\t\tcandidate.c = (start + end) * .5;\n\t\t\tclipped = clipToGamut(candidate);\n\t\t\tif (inDestinationGamut(candidate) || delta && jnd > 0 && delta(candidate, clipped) <= jnd) start = candidate.c;\n\t\t\telse end = candidate.c;\n\t\t}\n\t\treturn destConv(inDestinationGamut(candidate) ? candidate : clipped);\n\t};\n}\n\n//#endregion\n//#region ../token-tools/dist/string-D3-qmBT2.js\nconst HEX_RE = /^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i;\nconst CULORI_TO_CSS = {\n\ta98: \"a98-rgb\",\n\thsl: \"hsl\",\n\thwb: \"hwb\",\n\tlab: \"lab\",\n\tlab65: \"lab-d65\",\n\tlch: \"lch\",\n\tlrgb: \"srgb-linear\",\n\toklab: \"oklab\",\n\toklch: \"oklch\",\n\tokhsv: \"okhsv\",\n\tp3: \"display-p3\",\n\tprophoto: \"prophoto-rgb\",\n\trec2020: \"rec2020\",\n\trgb: \"srgb\",\n\txyz50: \"xyz-d50\",\n\txyz65: \"xyz-d65\"\n};\nconst CSS_TO_CULORI = {\n\t\"a98-rgb\": \"a98\",\n\t\"display-p3\": \"p3\",\n\thsl: \"hsl\",\n\thwb: \"hwb\",\n\tlab: \"lab\",\n\t\"lab-d65\": \"lab65\",\n\tlch: \"lch\",\n\toklab: \"oklab\",\n\toklch: \"oklch\",\n\tokhsv: \"okhsv\",\n\t\"prophoto-rgb\": \"prophoto\",\n\trec2020: \"rec2020\",\n\tsrgb: \"rgb\",\n\t\"srgb-linear\": \"lrgb\",\n\txyz: \"xyz65\",\n\t\"xyz-d50\": \"xyz50\",\n\t\"xyz-d65\": \"xyz65\"\n};\n/** Parse any color */\nfunction parseColor(color) {\n\tconst result = parse_default(color);\n\tif (!result) throw new Error(`Unable to parse color \"${color}\"`);\n\tif (!(result.mode in CULORI_TO_CSS)) throw new Error(`Unsupported color space: ${result.mode}`);\n\tconst colorSpace = CULORI_TO_CSS[result.mode];\n\tlet components = [\n\t\t0,\n\t\t0,\n\t\t0\n\t];\n\tswitch (result.mode) {\n\t\tcase \"a98\":\n\t\tcase \"rec2020\":\n\t\tcase \"p3\":\n\t\tcase \"prophoto\":\n\t\tcase \"lrgb\":\n\t\tcase \"rgb\":\n\t\t\tcomponents = [\n\t\t\t\tresult.r,\n\t\t\t\tresult.g,\n\t\t\t\tresult.b\n\t\t\t];\n\t\t\tbreak;\n\t\tcase \"hsl\": {\n\t\t\tconst maxS = COLORSPACE[colorSpace].ranges[1]?.[1] ?? 1;\n\t\t\tconst maxL = COLORSPACE[colorSpace].ranges[2]?.[1] ?? 1;\n\t\t\tcomponents = [\n\t\t\t\tresult.h ?? 0,\n\t\t\t\tresult.s * maxS,\n\t\t\t\tresult.l * maxL\n\t\t\t];\n\t\t\tbreak;\n\t\t}\n\t\tcase \"hwb\": {\n\t\t\tconst maxW = COLORSPACE[colorSpace].ranges[1]?.[1] ?? 1;\n\t\t\tconst maxB = COLORSPACE[colorSpace].ranges[2]?.[1] ?? 1;\n\t\t\tcomponents = [\n\t\t\t\tresult.h ?? 0,\n\t\t\t\tresult.w * maxW,\n\t\t\t\tresult.b * maxB\n\t\t\t];\n\t\t\tbreak;\n\t\t}\n\t\tcase \"lab\":\n\t\tcase \"lab65\":\n\t\tcase \"oklab\":\n\t\t\tcomponents = [\n\t\t\t\tresult.l,\n\t\t\t\tresult.a,\n\t\t\t\tresult.b\n\t\t\t];\n\t\t\tbreak;\n\t\tcase \"lch\":\n\t\tcase \"oklch\":\n\t\t\tcomponents = [\n\t\t\t\tresult.l,\n\t\t\t\tresult.c,\n\t\t\t\tresult.h ?? 0\n\t\t\t];\n\t\t\tbreak;\n\t\tcase \"okhsv\":\n\t\t\tcomponents = [\n\t\t\t\tresult.h ?? 0,\n\t\t\t\tresult.s,\n\t\t\t\tresult.v\n\t\t\t];\n\t\t\tbreak;\n\t\tcase \"xyz50\":\n\t\tcase \"xyz65\":\n\t\t\tcomponents = [\n\t\t\t\tresult.x,\n\t\t\t\tresult.y,\n\t\t\t\tresult.z\n\t\t\t];\n\t\t\tbreak;\n\t}\n\tconst value = {\n\t\tcolorSpace,\n\t\tcomponents,\n\t\talpha: result.alpha ?? 1\n\t};\n\tif (HEX_RE.test(color)) value.hex = formatHex(result);\n\treturn value;\n}\n/** Convert a color token to a Culori color */\nfunction tokenToCulori(value) {\n\tswitch (value.colorSpace) {\n\t\tcase \"a98-rgb\":\n\t\tcase \"display-p3\":\n\t\tcase \"prophoto-rgb\":\n\t\tcase \"rec2020\":\n\t\tcase \"srgb\":\n\t\tcase \"srgb-linear\": {\n\t\t\tconst [r$1, g, b] = value.components;\n\t\t\treturn {\n\t\t\t\tmode: CSS_TO_CULORI[value.colorSpace] || value.colorSpace,\n\t\t\t\tr: r$1,\n\t\t\t\tg,\n\t\t\t\tb,\n\t\t\t\talpha: value.alpha\n\t\t\t};\n\t\t}\n\t\tcase \"hsl\": {\n\t\t\tconst [h, s, l] = value.components;\n\t\t\tconst maxS = COLORSPACE[value.colorSpace].ranges[1]?.[1] ?? 1;\n\t\t\tconst maxL = COLORSPACE[value.colorSpace].ranges[2]?.[1] ?? 1;\n\t\t\treturn {\n\t\t\t\tmode: \"hsl\",\n\t\t\t\th,\n\t\t\t\ts: s / maxS,\n\t\t\t\tl: l / maxL,\n\t\t\t\talpha: value.alpha\n\t\t\t};\n\t\t}\n\t\tcase \"hwb\": {\n\t\t\tconst [h, w, b] = value.components;\n\t\t\tconst maxW = COLORSPACE[value.colorSpace].ranges[1]?.[1] ?? 1;\n\t\t\tconst maxB = COLORSPACE[value.colorSpace].ranges[2]?.[1] ?? 1;\n\t\t\treturn {\n\t\t\t\tmode: \"hwb\",\n\t\t\t\th,\n\t\t\t\tw: w / maxW,\n\t\t\t\tb: b / maxB,\n\t\t\t\talpha: value.alpha\n\t\t\t};\n\t\t}\n\t\tcase \"lab\":\n\t\tcase \"lab-d65\":\n\t\tcase \"oklab\": {\n\t\t\tconst [l = 0, a = 0, b = 0] = value.components;\n\t\t\treturn {\n\t\t\t\tmode: value.colorSpace === \"lab-d65\" ? \"lab65\" : value.colorSpace,\n\t\t\t\tl,\n\t\t\t\ta,\n\t\t\t\tb,\n\t\t\t\talpha: value.alpha\n\t\t\t};\n\t\t}\n\t\tcase \"lch\":\n\t\tcase \"oklch\": {\n\t\t\tconst [l, c$1, h] = value.components;\n\t\t\treturn {\n\t\t\t\tmode: value.colorSpace,\n\t\t\t\tl,\n\t\t\t\tc: c$1,\n\t\t\t\th,\n\t\t\t\talpha: value.alpha\n\t\t\t};\n\t\t}\n\t\tcase \"okhsv\": {\n\t\t\tconst [h, s, v] = value.components;\n\t\t\treturn {\n\t\t\t\tmode: value.colorSpace,\n\t\t\t\th,\n\t\t\t\ts,\n\t\t\t\tv,\n\t\t\t\talpha: value.alpha\n\t\t\t};\n\t\t}\n\t\tcase \"xyz\":\n\t\tcase \"xyz-d50\":\n\t\tcase \"xyz-d65\": {\n\t\t\tconst [x, y, z] = value.components;\n\t\t\treturn {\n\t\t\t\tmode: CSS_TO_CULORI[value.colorSpace],\n\t\t\t\tx,\n\t\t\t\ty,\n\t\t\t\tz,\n\t\t\t\talpha: value.alpha\n\t\t\t};\n\t\t}\n\t\tdefault: throw new Error(`Invalid colorSpace \"${value.colorSpace}\". Expected one of ${Object.keys(CSS_TO_CULORI).join(\", \")}`);\n\t}\n}\n/** Complete list of CSS Module 4 Colorspaces */\nconst COLORSPACE = {\n\t\"a98-rgb\": { ranges: [\n\t\t[0, 1],\n\t\t[0, 1],\n\t\t[0, 1]\n\t] },\n\t\"display-p3\": { ranges: [\n\t\t[0, 1],\n\t\t[0, 1],\n\t\t[0, 1]\n\t] },\n\thsl: { ranges: [\n\t\t[0, 360],\n\t\t[0, 100],\n\t\t[0, 100]\n\t] },\n\thwb: { ranges: [\n\t\t[0, 360],\n\t\t[0, 100],\n\t\t[0, 100]\n\t] },\n\tlab: { ranges: [\n\t\t[0, 100],\n\t\t[-125, 125],\n\t\t[-125, 125]\n\t] },\n\t\"lab-d65\": { ranges: [\n\t\t[0, 100],\n\t\t[-125, 125],\n\t\t[-125, 125]\n\t] },\n\tlch: { ranges: [\n\t\t[0, 100],\n\t\t[0, 150],\n\t\t[0, 360]\n\t] },\n\toklab: { ranges: [\n\t\t[0, 1],\n\t\t[-.4, .4],\n\t\t[-.4, .4]\n\t] },\n\toklch: { ranges: [\n\t\t[0, 1],\n\t\t[0, .4],\n\t\t[0, 360]\n\t] },\n\tokhsv: { ranges: [\n\t\t[0, 360],\n\t\t[0, 1],\n\t\t[0, 1]\n\t] },\n\t\"prophoto-rgb\": { ranges: [\n\t\t[0, 1],\n\t\t[0, 1],\n\t\t[0, 1]\n\t] },\n\trec2020: { ranges: [\n\t\t[0, 1],\n\t\t[0, 1],\n\t\t[0, 1]\n\t] },\n\tsrgb: { ranges: [\n\t\t[0, 1],\n\t\t[0, 1],\n\t\t[0, 1]\n\t] },\n\t\"srgb-linear\": { ranges: [\n\t\t[0, 1],\n\t\t[0, 1],\n\t\t[0, 1]\n\t] },\n\t\"xyz-d50\": { ranges: [\n\t\t[0, 1],\n\t\t[0, 1],\n\t\t[0, 1]\n\t] },\n\txyz: { ranges: [\n\t\t[0, 1],\n\t\t[0, 1],\n\t\t[0, 1]\n\t] },\n\t\"xyz-d65\": { ranges: [\n\t\t[0, 1],\n\t\t[0, 1],\n\t\t[0, 1]\n\t] }\n};\n/** Turn a string into kebab-case */\nfunction kebabCase(str) {\n\tlet output = \"\";\n\tfor (const c$1 of str.split(\"\")) {\n\t\tif (c$1 === \".\") {\n\t\t\toutput += \"-\";\n\t\t\tcontinue;\n\t\t}\n\t\tlet isFirstUppercase = true;\n\t\tif (isFirstUppercase && /\\p{Uppercase_Letter}/u.test(c$1)) {\n\t\t\toutput += `-${c$1.toLocaleLowerCase()}`;\n\t\t\tisFirstUppercase = false;\n\t\t\tcontinue;\n\t\t} else isFirstUppercase = true;\n\t\toutput += c$1;\n\t}\n\treturn output;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/wildcard-match@5.1.4/node_modules/wildcard-match/build/index.es.mjs\n/**\n* Escapes a character if it has a special meaning in regular expressions\n* and returns the character as is if it doesn't\n*/\nfunction escapeRegExpChar(char) {\n\tif (char === \"-\" || char === \"^\" || char === \"$\" || char === \"+\" || char === \".\" || char === \"(\" || char === \")\" || char === \"|\" || char === \"[\" || char === \"]\" || char === \"{\" || char === \"}\" || char === \"*\" || char === \"?\" || char === \"\\\\\") return \"\\\\\".concat(char);\n\telse return char;\n}\n/**\n* Escapes all characters in a given string that have a special meaning in regular expressions\n*/\nfunction escapeRegExpString(str) {\n\tvar result = \"\";\n\tfor (var i = 0; i < str.length; i++) result += escapeRegExpChar(str[i]);\n\treturn result;\n}\n/**\n* Transforms one or more glob patterns into a RegExp pattern\n*/\nfunction transform(pattern, separator) {\n\tif (separator === void 0) separator = true;\n\tif (Array.isArray(pattern)) {\n\t\tvar regExpPatterns = pattern.map(function(p$2) {\n\t\t\treturn \"^\".concat(transform(p$2, separator), \"$\");\n\t\t});\n\t\treturn \"(?:\".concat(regExpPatterns.join(\"|\"), \")\");\n\t}\n\tvar separatorSplitter = \"\";\n\tvar separatorMatcher = \"\";\n\tvar wildcard = \".\";\n\tif (separator === true) {\n\t\tseparatorSplitter = \"/\";\n\t\tseparatorMatcher = \"[/\\\\\\\\]\";\n\t\twildcard = \"[^/\\\\\\\\]\";\n\t} else if (separator) {\n\t\tseparatorSplitter = separator;\n\t\tseparatorMatcher = escapeRegExpString(separatorSplitter);\n\t\tif (separatorMatcher.length > 1) {\n\t\t\tseparatorMatcher = \"(?:\".concat(separatorMatcher, \")\");\n\t\t\twildcard = \"((?!\".concat(separatorMatcher, \").)\");\n\t\t} else wildcard = \"[^\".concat(separatorMatcher, \"]\");\n\t}\n\tvar requiredSeparator = separator ? \"\".concat(separatorMatcher, \"+?\") : \"\";\n\tvar optionalSeparator = separator ? \"\".concat(separatorMatcher, \"*?\") : \"\";\n\tvar segments = separator ? pattern.split(separatorSplitter) : [pattern];\n\tvar result = \"\";\n\tfor (var s = 0; s < segments.length; s++) {\n\t\tvar segment = segments[s];\n\t\tvar nextSegment = segments[s + 1];\n\t\tvar currentSeparator = \"\";\n\t\tif (!segment && s > 0) continue;\n\t\tif (separator) if (s === segments.length - 1) currentSeparator = optionalSeparator;\n\t\telse if (nextSegment !== \"**\") currentSeparator = requiredSeparator;\n\t\telse currentSeparator = \"\";\n\t\tif (separator && segment === \"**\") {\n\t\t\tif (currentSeparator) {\n\t\t\t\tresult += s === 0 ? \"\" : s === segments.length - 1 ? \"(?:\".concat(requiredSeparator, \"|$)\") : requiredSeparator;\n\t\t\t\tresult += \"(?:\".concat(wildcard, \"*?\").concat(currentSeparator, \")*?\");\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tfor (var c$1 = 0; c$1 < segment.length; c$1++) {\n\t\t\tvar char = segment[c$1];\n\t\t\tif (char === \"\\\\\") {\n\t\t\t\tif (c$1 < segment.length - 1) {\n\t\t\t\t\tresult += escapeRegExpChar(segment[c$1 + 1]);\n\t\t\t\t\tc$1++;\n\t\t\t\t}\n\t\t\t} else if (char === \"?\") result += wildcard;\n\t\t\telse if (char === \"*\") result += \"\".concat(wildcard, \"*?\");\n\t\t\telse result += escapeRegExpChar(char);\n\t\t}\n\t\tresult += currentSeparator;\n\t}\n\treturn result;\n}\nfunction isMatch(regexp, sample) {\n\tif (typeof sample !== \"string\") throw new TypeError(\"Sample must be a string, but \".concat(typeof sample, \" given\"));\n\treturn regexp.test(sample);\n}\n/**\n* Compiles one or more glob patterns into a RegExp and returns an isMatch function.\n* The isMatch function takes a sample string as its only argument and returns `true`\n* if the string matches the pattern(s).\n*\n* ```js\n* wildcardMatch('src/*.js')('src/index.js') //=> true\n* ```\n*\n* ```js\n* const isMatch = wildcardMatch('*.example.com', '.')\n* isMatch('foo.example.com') //=> true\n* isMatch('foo.bar.com') //=> false\n* ```\n*/\nfunction wildcardMatch(pattern, options) {\n\tif (typeof pattern !== \"string\" && !Array.isArray(pattern)) throw new TypeError(\"The first argument must be a single pattern string or an array of patterns, but \".concat(typeof pattern, \" given\"));\n\tif (typeof options === \"string\" || typeof options === \"boolean\") options = { separator: options };\n\tif (arguments.length === 2 && !(typeof options === \"undefined\" || typeof options === \"object\" && options !== null && !Array.isArray(options))) throw new TypeError(\"The second argument must be an options object or a string/boolean separator, but \".concat(typeof options, \" given\"));\n\toptions = options || {};\n\tif (options.separator === \"\\\\\") throw new Error(\"\\\\ is not a valid separator because it is used for escaping. Try setting the separator to `true` instead\");\n\tvar regexpPattern = transform(pattern, options.separator);\n\tvar regexp = new RegExp(\"^\".concat(regexpPattern, \"$\"), options.flags);\n\tvar fn$4 = isMatch.bind(null, regexp);\n\tfn$4.options = options;\n\tfn$4.pattern = pattern;\n\tfn$4.regexp = regexp;\n\treturn fn$4;\n}\n\n//#endregion\n//#region ../token-tools/dist/index.js\n/** Give a user pertinent feedback if they override a transform incorrectly */\nfunction validateCustomTransform(value, { $type }) {\n\tif (value) {\n\t\tif (typeof value !== \"string\" && typeof value !== \"object\" || Array.isArray(value)) throw new Error(`transform(): expected string or Object of strings, received ${Array.isArray(value) ? \"Array\" : typeof value}`);\n\t\tswitch ($type) {\n\t\t\tcase \"typography\":\n\t\t\t\tif (typeof value !== \"object\") throw new Error(\"transform(): typography tokens must be an object of keys\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/index.js\nconst a98 = useMode(definition_default);\nconst cubehelix = useMode(definition_default$15);\nconst dlab = useMode(definition_default$16);\nconst dlch = useMode(definition_default$17);\nconst hsi = useMode(definition_default$18);\nconst hsl = useMode(definition_default$1);\nconst hsv = useMode(definition_default$19);\nconst hwb = useMode(definition_default$2);\nconst itp = useMode(definition_default$20);\nconst jab = useMode(definition_default$21);\nconst jch = useMode(definition_default$22);\nconst lab = useMode(definition_default$3);\nconst lab65 = useMode(definition_default$4);\nconst lch = useMode(definition_default$5);\nconst lch65 = useMode(definition_default$23);\nconst lchuv = useMode(definition_default$24);\nconst lrgb = useMode(definition_default$6);\nconst luv = useMode(definition_default$25);\nconst okhsl = useMode(modeOkhsl_default);\nconst okhsv = useMode(modeOkhsv_default);\nconst oklab = useMode(definition_default$7);\nconst oklch = useMode(definition_default$8);\nconst p3 = useMode(definition_default$9);\nconst prophoto = useMode(definition_default$10);\nconst rec2020 = useMode(definition_default$11);\nconst rgb = useMode(definition_default$12);\nconst xyb = useMode(definition_default$26);\nconst xyz50 = useMode(definition_default$13);\nconst xyz65 = useMode(definition_default$14);\nconst yiq = useMode(definition_default$27);\n\n//#endregion\n//#region ../token-tools/dist/css.js\nfunction defaultAliasTransform(token) {\n\tif (!token) throw new Error(\"Undefined token\");\n\treturn `var(${makeCSSVar(token.id)})`;\n}\n/** Generate shorthand CSS for select token types */\nfunction generateShorthand({ $type, localID }) {\n\tswitch ($type) {\n\t\tcase \"transition\": return [\n\t\t\t\"duration\",\n\t\t\t\"delay\",\n\t\t\t\"timing-function\"\n\t\t].map((p$2) => makeCSSVar(`${localID}-${p$2}`, { wrapVar: true })).join(\" \");\n\t}\n}\nconst CSS_VAR_RE = /(?:(\\p{Uppercase_Letter}?[\\p{Lowercase_Letter}\\p{Number}]+|[\\p{Uppercase_Letter}\\p{Number}]+|[\\u{80}-\\u{10FFFF}\\p{Number}]+)|.)/u;\n/**\n* Generate a valid CSS variable from any string\n* Code by @dfrankland\n*/\nfunction makeCSSVar(name, { prefix, wrapVar = false } = {}) {\n\tif (typeof name !== \"string\") throw new Error(`makeCSSVar() Expected string, received ${name}`);\n\tlet property = name.split(CSS_VAR_RE).filter(Boolean).join(\"-\");\n\tif (prefix && !property.startsWith(`${prefix}-`)) property = `${prefix}-${property}`;\n\tconst finalProperty = `--${property}`.toLocaleLowerCase();\n\treturn wrapVar ? `var(${finalProperty})` : finalProperty;\n}\n/** Convert boolean value to CSS string */\nfunction transformBoolean(token, { tokensSet, transformAlias = defaultAliasTransform }) {\n\tif (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);\n\treturn token.$value === true ? \"1\" : \"0\";\n}\n/** Convert color value to CSS string */\nfunction transformColor(token, options) {\n\tconst { transformAlias = defaultAliasTransform, tokensSet } = options;\n\tif (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);\n\tconst { colorSpace, components, alpha = 1 } = typeof token.$value === \"string\" ? parseColor(token.$value) : token.$value;\n\tconst color = tokenToCulori({\n\t\tcolorSpace,\n\t\tcomponents,\n\t\talpha\n\t});\n\tif (!color) throw new Error(`Can’t convert color ${JSON.stringify(token.$value)} to Culori color`);\n\tlet formatColor = formatCss;\n\tif (options.color?.legacyHex) formatColor = color.alpha !== 1 ? formatHex8 : formatHex;\n\treturn displayable(color) ? formatColor(color) : downsample({\n\t\tcolorSpace,\n\t\tcomponents,\n\t\talpha\n\t}, color, options.color?.depth);\n}\nconst converters = {\n\ta98: useMode(definition_default),\n\thsl: useMode(definition_default$1),\n\thwb: useMode(definition_default$2),\n\tlab: useMode(definition_default$3),\n\tlab65: useMode(definition_default$4),\n\tlch: useMode(definition_default$5),\n\tlrgb: useMode(definition_default$6),\n\toklab: useMode(definition_default$7),\n\toklch: useMode(definition_default$8),\n\tokhsv: useMode(modeOkhsv_default),\n\tp3: useMode(definition_default$9),\n\tprophoto: useMode(definition_default$10),\n\trec2020: useMode(definition_default$11),\n\trgb: useMode(definition_default$12),\n\txyz50: useMode(definition_default$13),\n\txyz65: useMode(definition_default$14)\n};\nconst DEPTH_ROUNDING = {\n\t24: round_default(4),\n\t30: round_default(4),\n\t36: round_default(5),\n\t48: round_default(6)\n};\n/**\n* Downsample color to sRGB/Display P3/Rec2020 colorspaces.\n* Note: because Culori tends to convert to RGB color spaces to ensure the operation,\n* we have to do an additional step of converting back. So we’re not really converting;\n* we’re just preserving the original colorspace.\n*/\nfunction downsample($value, culoriColor, depth = 30) {\n\tif (!($value.colorSpace in CSS_TO_CULORI)) throw new Error(`Invalid colorSpace \"${$value.colorSpace}\". Expected one of: ${Object.keys(CSS_TO_CULORI).join(\", \")}`);\n\tconst conversionSpace = CSS_TO_CULORI[$value.colorSpace] || \"oklab\";\n\tlet gamutSpace = conversionSpace;\n\tif (gamutSpace === \"lab\" || gamutSpace === \"lab65\") gamutSpace = \"lch\";\n\telse if (gamutSpace === \"oklab\") gamutSpace = \"oklch\";\n\tlet srgb = converters[conversionSpace](toGamut(\"rgb\", gamutSpace)(culoriColor));\n\tlet p3$2 = converters[conversionSpace](toGamut(\"p3\", gamutSpace)(culoriColor));\n\tlet rec2020$2 = converters[conversionSpace](toGamut(\"rec2020\", gamutSpace)(culoriColor));\n\tif (typeof depth === \"number\") {\n\t\tif (!DEPTH_ROUNDING[depth]) throw new Error(`Invalid bit depth: ${depth}. Supported values: ${Object.keys(DEPTH_ROUNDING).join(\", \")}`);\n\t\tsrgb = roundColor(srgb, depth);\n\t\tp3$2 = roundColor(p3$2, depth);\n\t\trec2020$2 = roundColor(rec2020$2, depth);\n\t}\n\treturn {\n\t\t\".\": formatCss(culoriColor),\n\t\tsrgb: formatCss(srgb),\n\t\tp3: formatCss(p3$2),\n\t\trec2020: formatCss(rec2020$2)\n\t};\n}\n/** Round color to certain depth. */\nfunction roundColor(color, depth = 30) {\n\tif (depth === \"unlimited\") return color;\n\tconst newColor = { ...color };\n\tfor (const [k$3, v] of Object.entries(color)) {\n\t\tif (typeof v !== \"number\" || k$3 === \"mode\") continue;\n\t\tnewColor[k$3] = DEPTH_ROUNDING[depth](v);\n\t}\n\treturn newColor;\n}\n/** Convert dimension value to CSS */\nfunction transformDimension(token, options) {\n\tconst { tokensSet, transformAlias = defaultAliasTransform } = options;\n\tif (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);\n\treturn token.$value.value === 0 ? \"0\" : `${token.$value.value}${token.$value.unit}`;\n}\n/** Convert strokeStyle value to CSS */\nfunction transformStrokeStyle(token, options) {\n\tconst { tokensSet, transformAlias = defaultAliasTransform } = options;\n\tif (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);\n\treturn typeof token.$value === \"string\" ? token.$value : \"dashed\";\n}\n/** Convert border value to multiple CSS values */\nfunction transformBorder(token, options) {\n\tconst { tokensSet, transformAlias = defaultAliasTransform } = options;\n\tif (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);\n\tconst width = token.partialAliasOf?.width ? transformAlias(tokensSet[token.partialAliasOf.width]) : transformDimension({ $value: token.$value.width }, options);\n\tconst color = token.partialAliasOf?.color ? transformAlias(tokensSet[token.partialAliasOf.color]) : transformColor({ $value: token.$value.color }, options);\n\tconst style = token.partialAliasOf?.style ? transformAlias(tokensSet[token.partialAliasOf.style]) : transformStrokeStyle({ $value: token.$value.style }, options);\n\tconst formatBorder = (colorKey) => [\n\t\twidth,\n\t\tstyle,\n\t\ttypeof color === \"string\" ? color : color[colorKey]\n\t].join(\" \");\n\treturn typeof color === \"string\" || displayable(color.p3) ? formatBorder(\".\") : {\n\t\t\".\": formatBorder(\".\"),\n\t\tsrgb: formatBorder(\"srgb\"),\n\t\tp3: formatBorder(\"p3\"),\n\t\trec2020: formatBorder(\"rec2020\")\n\t};\n}\n/** Convert cubicBezier value to CSS */\nfunction transformCubicBezier(token, options) {\n\tconst { tokensSet, transformAlias = defaultAliasTransform } = options;\n\tif (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);\n\treturn `cubic-bezier(${token.$value.map((v, i) => token.partialAliasOf?.[i] ? transformAlias(tokensSet[token.partialAliasOf[i]]) : v).join(\", \")})`;\n}\n/** Convert duration value to CSS */\nfunction transformDuration(token, options) {\n\tconst { tokensSet, transformAlias = defaultAliasTransform } = options;\n\tif (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);\n\treturn `${token.$value.value}${token.$value.unit}`;\n}\nconst FONT_NAME_KEYWORD = /^[a-z-]+$/;\nfunction transformFontFamily(token, options) {\n\tconst { tokensSet, transformAlias = defaultAliasTransform } = options;\n\tif (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);\n\treturn token.$value.map((fontName) => FONT_NAME_KEYWORD.test(fontName) ? fontName : `\"${fontName}\"`).join(\", \");\n}\n/** Convert fontWeight value to CSS */\nfunction transformFontWeight(token, options) {\n\tconst { tokensSet, transformAlias = defaultAliasTransform } = options;\n\tif (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);\n\treturn String(token.$value);\n}\n/** Convert gradient value to CSS */\nfunction transformGradient(token, options) {\n\tconst { tokensSet, transformAlias = defaultAliasTransform } = options;\n\tif (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);\n\tlet isHDR = false;\n\tconst colors = [];\n\tconst positions = [];\n\tfor (let i = 0; i < token.$value.length; i++) {\n\t\tconst { color, position } = token.$value[i];\n\t\tconst colorValue = token.partialAliasOf?.[i]?.color ? transformAlias(tokensSet[token.partialAliasOf[i].color]) : transformColor({ $value: color }, options);\n\t\tif (typeof colorValue !== \"string\") isHDR = true;\n\t\tcolors.push(colorValue);\n\t\tpositions.push(token.partialAliasOf?.[i]?.position ? transformAlias(tokensSet[token.partialAliasOf[i].position]) : `${100 * position}%`);\n\t}\n\tfunction formatStop(i, colorKey = \".\") {\n\t\treturn `${typeof colors[i] === \"string\" ? colors[i] : colors[i][colorKey]} ${positions[i]}`;\n\t}\n\treturn !isHDR ? token.$value.map((_, i) => formatStop(i, positions[i])).join(\", \") : {\n\t\t\".\": token.$value.map((_, i) => formatStop(i, \".\")).join(\", \"),\n\t\tsrgb: token.$value.map((_, i) => formatStop(i, \"srgb\")).join(\", \"),\n\t\tp3: token.$value.map((_, i) => formatStop(i, \"p3\")).join(\", \"),\n\t\trec2020: token.$value.map((_, i) => formatStop(i, \"rec2020\")).join(\", \")\n\t};\n}\n/** Convert link value to CSS */\nfunction transformLink(token, options) {\n\tconst { tokensSet, transformAlias = defaultAliasTransform } = options;\n\tif (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);\n\treturn `url(\"${token.$value}\")`;\n}\n/** Convert number value to CSS */\nfunction transformNumber(token, options) {\n\tconst { tokensSet, transformAlias = defaultAliasTransform } = options;\n\tif (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);\n\treturn String(token.$value);\n}\n/** Convert shadow subvalue to CSS */\nfunction transformShadowLayer(value, options) {\n\tconst { tokensSet, colorValue, partialAliasOf, transformAlias = defaultAliasTransform } = options;\n\tconst offsetX = partialAliasOf?.offsetX ? transformAlias(tokensSet[partialAliasOf.offsetX]) : transformDimension({ $value: value.offsetX }, options);\n\tconst offsetY = partialAliasOf?.offsetY ? transformAlias(tokensSet[partialAliasOf.offsetY]) : transformDimension({ $value: value.offsetY }, options);\n\tconst blur = partialAliasOf?.blur ? transformAlias(tokensSet[partialAliasOf.blur]) : transformDimension({ $value: value.blur }, options);\n\tconst spread = partialAliasOf?.spread ? transformAlias(tokensSet[partialAliasOf.spread]) : transformDimension({ $value: value.spread }, options);\n\treturn [\n\t\tvalue?.inset === true ? \"inset\" : void 0,\n\t\toffsetX,\n\t\toffsetY,\n\t\tblur,\n\t\tspread,\n\t\tcolorValue\n\t].filter(Boolean).join(\" \");\n}\n/** Convert shadow value to CSS */\nfunction transformShadow(token, options) {\n\tconst { tokensSet, transformAlias = defaultAliasTransform } = options;\n\tif (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);\n\tconst colors = token.$value.map((v, i) => token.partialAliasOf?.[i]?.color ? transformAlias(tokensSet[token.partialAliasOf[i].color]) : transformColor({ $value: v.color }, options));\n\tconst isHDR = colors.some((c$1) => typeof c$1 === \"object\");\n\tconst formatShadow = (colorKey) => token.$value.map((v, i) => transformShadowLayer(v, {\n\t\ttokensSet,\n\t\tcolorValue: typeof colors[i] === \"string\" ? colors[i] : colors[i][colorKey],\n\t\tpartialAliasOf: token.partialAliasOf?.[i],\n\t\ttransformAlias\n\t})).join(\", \");\n\treturn !isHDR ? formatShadow(\".\") : {\n\t\t\".\": formatShadow(\".\"),\n\t\tsrgb: formatShadow(\"srgb\"),\n\t\tp3: formatShadow(\"p3\"),\n\t\trec2020: formatShadow(\"rec2020\")\n\t};\n}\n/** Convert string value to CSS */\nfunction transformString(token, options) {\n\tconst { tokensSet, transformAlias = defaultAliasTransform } = options;\n\tif (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);\n\treturn String(token.$value);\n}\n/** Convert transition value to shorthand */\nfunction transformTransition(token, options) {\n\tconst { tokensSet, transformAlias = defaultAliasTransform } = options;\n\tif (token.aliasChain?.[0]) return transformAlias(tokensSet[token.aliasChain[0]]);\n\tconst duration = token.partialAliasOf?.duration ? transformAlias(tokensSet[token.partialAliasOf.duration]) : transformDuration({ $value: token.$value.duration }, options);\n\tconst delay = token.partialAliasOf?.delay ? transformAlias(tokensSet[token.partialAliasOf.delay]) : transformDuration({ $value: token.$value.delay }, options);\n\tconst timingFunction = token.partialAliasOf?.timingFunction ? transformAlias(tokensSet[token.partialAliasOf.timingFunction]) : transformCubicBezier({ $value: token.$value.timingFunction }, options);\n\treturn `${duration} ${delay} ${timingFunction}`;\n}\n/** Convert typography value to multiple CSS values */\nfunction transformTypography(token, options) {\n\tconst { tokensSet, transformAlias = defaultAliasTransform } = options;\n\tconst output = {};\n\tfor (const [property, subvalue] of Object.entries(token.$value)) {\n\t\tlet transformedValue;\n\t\tconst aliasedID = token.aliasChain?.[0] ?? token.partialAliasOf?.[property];\n\t\tif (aliasedID) {\n\t\t\tconst resolvedToken = tokensSet[aliasedID];\n\t\t\ttransformedValue = transformAlias(resolvedToken.$type === \"typography\" ? { id: `${aliasedID}-${property}` } : resolvedToken);\n\t\t} else switch (property) {\n\t\t\tcase \"fontFamily\":\n\t\t\t\ttransformedValue = transformFontFamily({ $value: subvalue }, options);\n\t\t\t\tbreak;\n\t\t\tcase \"fontSize\":\n\t\t\tcase \"letterSpacing\":\n\t\t\t\ttransformedValue = transformDimension({ $value: subvalue }, options);\n\t\t\t\tbreak;\n\t\t\tcase \"fontWeight\":\n\t\t\t\ttransformedValue = transformFontWeight({ $value: subvalue }, options);\n\t\t\t\tbreak;\n\t\t\tcase \"lineHeight\":\n\t\t\t\tif (typeof subvalue === \"number\") transformedValue = transformNumber({ $value: subvalue }, options);\n\t\t\t\telse transformedValue = transformDimension({ $value: subvalue }, options);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\ttransformedValue = transformString({ $value: subvalue }, options);\n\t\t\t\tbreak;\n\t\t}\n\t\toutput[kebabCase(property)] = transformedValue;\n\t}\n\treturn output;\n}\n/** Main CSS Transform */\nfunction transformCSSValue(token, { mode,...options }) {\n\tconst selectedMode = token.mode[mode];\n\tif (!selectedMode) return;\n\tconst tokenWithModeValue = {\n\t\tid: token.id,\n\t\t$type: token.$type,\n\t\t...selectedMode\n\t};\n\tswitch (tokenWithModeValue.$type) {\n\t\tcase \"boolean\": return transformBoolean(tokenWithModeValue, options);\n\t\tcase \"border\": return transformBorder(tokenWithModeValue, options);\n\t\tcase \"color\": return transformColor(tokenWithModeValue, options);\n\t\tcase \"cubicBezier\": return transformCubicBezier(tokenWithModeValue, options);\n\t\tcase \"dimension\": return transformDimension(tokenWithModeValue, options);\n\t\tcase \"duration\": return transformDuration(tokenWithModeValue, options);\n\t\tcase \"fontFamily\": return transformFontFamily(tokenWithModeValue, options);\n\t\tcase \"fontWeight\": return transformFontWeight(tokenWithModeValue, options);\n\t\tcase \"gradient\": return transformGradient(tokenWithModeValue, options);\n\t\tcase \"link\": return transformLink(tokenWithModeValue, options);\n\t\tcase \"number\": return transformNumber(tokenWithModeValue, options);\n\t\tcase \"shadow\": return transformShadow(tokenWithModeValue, options);\n\t\tcase \"string\": return transformString(tokenWithModeValue, options);\n\t\tcase \"strokeStyle\": return transformStrokeStyle(tokenWithModeValue, options);\n\t\tcase \"transition\": return transformTransition(tokenWithModeValue, options);\n\t\tcase \"typography\": return transformTypography(tokenWithModeValue, options);\n\t}\n}\n\n//#endregion\n//#region src/lib.ts\nconst FORMAT_ID = \"css\";\nconst FILE_PREFIX = `/* -------------------------------------------\n * Autogenerated by ⛋ Terrazzo. DO NOT EDIT!\n * ------------------------------------------- */`;\n/** Convert CSSRules into a formatted, indented CSS string */\nfunction printRules(rules) {\n\tconst output = [];\n\tfor (const rule of rules) {\n\t\tif (!rule.selectors.length || !Object.keys(rule.declarations).length) continue;\n\t\tconst mqSelectors = [];\n\t\tconst joinableSelectors = [];\n\t\tfor (const s of rule.selectors) (s.startsWith(\"@\") ? mqSelectors : joinableSelectors).push(s);\n\t\tfor (const s of mqSelectors) output.push(_printRule({\n\t\t\t...rule,\n\t\t\tselectors: [s]\n\t\t}));\n\t\tif (joinableSelectors.length) output.push(_printRule({\n\t\t\t...rule,\n\t\t\tselectors: joinableSelectors\n\t\t}));\n\t}\n\treturn output.join(\"\\n\\n\");\n}\nfunction _printRule(rule) {\n\tconst output = [];\n\tconst isMediaQuery = rule.selectors.some((s) => s.startsWith(\"@\"));\n\tlet indent = \"\";\n\tif (rule.nestedQuery && isMediaQuery) {\n\t\toutput.push(`${indent}${rule.selectors.join(`,\\n${indent}`)} {`);\n\t\tindent += \" \";\n\t\toutput.push(`${indent}${rule.nestedQuery} {`);\n\t} else if (rule.nestedQuery && !isMediaQuery) {\n\t\toutput.push(`${indent}${rule.nestedQuery} {`);\n\t\tindent += \" \";\n\t\toutput.push(`${indent}${rule.selectors.join(`,\\n${indent}`)} {`);\n\t} else output.push(`${indent}${rule.selectors.join(`,\\n${indent}`)} {`);\n\tindent += \" \";\n\tif (isMediaQuery) {\n\t\toutput.push(`${indent}:root {`);\n\t\tindent += \" \";\n\t}\n\tconst declarations = Object.entries(rule.declarations);\n\tdeclarations.sort((a, b) => a[0].localeCompare(b[0], \"en-us\", { numeric: true }));\n\tfor (const [k$3, d] of declarations) output.push(`${indent}${k$3}: ${d.value};${d.description ? ` /* ${d.description} */` : \"\"}`);\n\twhile (indent !== \"\") {\n\t\tindent = indent.substring(0, indent.length - 2);\n\t\toutput.push(`${indent}}`);\n\t}\n\treturn output.join(\"\\n\");\n}\n\n//#endregion\n//#region src/build/utility-css.ts\nconst GROUP_REGEX = {\n\tbg: /(^bg-|-bg-)/,\n\tborder: /(^border-|-border-)/,\n\tfont: /(^font-|-font-)/,\n\tgap: /(^gap-|-gap-)/,\n\tm: /(^margin-|-margin-|)/,\n\tp: /(^padding-|-padding-|)/,\n\tshadow: /(^shadow-|-shadow-)/,\n\ttext: /(^text-|-text-)/\n};\n/** Make CSS class name from transformed token */\nfunction makeSelector(token, prefix, subgroup) {\n\treturn `.${prefix}${subgroup || \"\"}-${kebabCase(token.token.id).replace(GROUP_REGEX[prefix], \"\")}`;\n}\nfunction makeVarValue(token) {\n\treturn { value: makeCSSVar(token.localID ?? token.token.id, { wrapVar: true }) };\n}\nfunction generateUtilityCSS(groups, tokens) {\n\tconst output = [];\n\tconst groupEntries = Object.entries(groups);\n\tgroupEntries.sort((a, b) => a[0].localeCompare(b[0]));\n\tfor (const [group, selectors] of groupEntries) {\n\t\tconst selectorMatcher = wildcardMatch(selectors);\n\t\tconst matchingTokens = tokens.filter((token) => selectorMatcher(token.token.id));\n\t\tif (!matchingTokens.length) {\n\t\t\tconsole.warn(`[@terrazzo/plugin-css] utility group \"${group}\" matched 0 tokens: ${JSON.stringify(selectors)}`);\n\t\t\tbreak;\n\t\t}\n\t\tswitch (group) {\n\t\t\tcase \"bg\":\n\t\t\t\tfor (const token of matchingTokens) {\n\t\t\t\t\tconst selector = makeSelector(token, \"bg\");\n\t\t\t\t\tswitch (token.token.$type) {\n\t\t\t\t\t\tcase \"color\":\n\t\t\t\t\t\t\toutput.push({\n\t\t\t\t\t\t\t\tselectors: [selector],\n\t\t\t\t\t\t\t\tdeclarations: { \"background-color\": makeVarValue(token) }\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"gradient\": output.push({\n\t\t\t\t\t\t\tselectors: [selector],\n\t\t\t\t\t\t\tdeclarations: { \"background-image\": { value: `linear-gradient(${makeCSSVar(token.localID ?? token.token.id, { wrapVar: true })})` } }\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"border\":\n\t\t\t\tfor (const token of matchingTokens) {\n\t\t\t\t\tconst property = {\n\t\t\t\t\t\tborder: \"border\",\n\t\t\t\t\t\tcolor: \"border-color\",\n\t\t\t\t\t\tdimension: \"border-width\",\n\t\t\t\t\t\tstrokeStyle: \"border-style\"\n\t\t\t\t\t}[token.token.$type];\n\t\t\t\t\tif (property) output.push({\n\t\t\t\t\t\tselectors: [makeSelector(token, \"border\")],\n\t\t\t\t\t\tdeclarations: { [property]: makeVarValue(token) }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tfor (const token of matchingTokens) for (const side of [\n\t\t\t\t\t\"top\",\n\t\t\t\t\t\"right\",\n\t\t\t\t\t\"bottom\",\n\t\t\t\t\t\"left\"\n\t\t\t\t]) {\n\t\t\t\t\tconst property = {\n\t\t\t\t\t\tborder: `border-${side}`,\n\t\t\t\t\t\tcolor: `border-${side}-color`,\n\t\t\t\t\t\tdimension: `border-${side}-width`,\n\t\t\t\t\t\tstrokeStyle: `border-${side}-style`\n\t\t\t\t\t}[token.token.$type];\n\t\t\t\t\tif (property) output.push({\n\t\t\t\t\t\tselectors: [makeSelector(token, \"border\", `-${side}`)],\n\t\t\t\t\t\tdeclarations: { [property]: makeVarValue(token) }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"font\":\n\t\t\t\tfor (const token of matchingTokens) {\n\t\t\t\t\tconst selector = makeSelector(token, \"font\");\n\t\t\t\t\tif (token.token.$type === \"typography\" && token.type === \"MULTI_VALUE\") {\n\t\t\t\t\t\tconst declarations = {};\n\t\t\t\t\t\tfor (const k$3 of Object.keys(token.value)) declarations[k$3] = { value: makeCSSVar(`${token.localID ?? token.token.id}-${k$3}`, { wrapVar: true }) };\n\t\t\t\t\t\toutput.push({\n\t\t\t\t\t\t\tselectors: [selector],\n\t\t\t\t\t\t\tdeclarations\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst property = {\n\t\t\t\t\t\t\tdimension: \"font-size\",\n\t\t\t\t\t\t\tfontFamily: \"font-family\",\n\t\t\t\t\t\t\tfontWeight: \"font-weight\"\n\t\t\t\t\t\t}[token.token.$type];\n\t\t\t\t\t\tif (property) output.push({\n\t\t\t\t\t\t\tselectors: [selector],\n\t\t\t\t\t\t\tdeclarations: { [property]: makeVarValue(token) }\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"layout\": {\n\t\t\t\tconst filteredTokens = matchingTokens.filter((t) => t.token.$type === \"dimension\");\n\t\t\t\tfor (const token of filteredTokens) output.push({\n\t\t\t\t\tselectors: [makeSelector(token, \"gap\")],\n\t\t\t\t\tdeclarations: { gap: makeVarValue(token) }\n\t\t\t\t});\n\t\t\t\tfor (const token of filteredTokens) output.push({\n\t\t\t\t\tselectors: [makeSelector(token, \"gap\", \"-col\")],\n\t\t\t\t\tdeclarations: { \"column-gap\": makeVarValue(token) }\n\t\t\t\t});\n\t\t\t\tfor (const token of filteredTokens) output.push({\n\t\t\t\t\tselectors: [makeSelector(token, \"gap\", \"-row\")],\n\t\t\t\t\tdeclarations: { \"row-gap\": makeVarValue(token) }\n\t\t\t\t});\n\t\t\t\tfor (const prefix of [\"m\", \"p\"]) {\n\t\t\t\t\tconst property = prefix === \"m\" ? \"margin\" : \"padding\";\n\t\t\t\t\tfor (const token of filteredTokens) output.push({\n\t\t\t\t\t\tselectors: [makeSelector(token, prefix, \"a\")],\n\t\t\t\t\t\tdeclarations: { [property]: makeVarValue(token) }\n\t\t\t\t\t});\n\t\t\t\t\tfor (const token of filteredTokens) {\n\t\t\t\t\t\tconst value = makeVarValue(token);\n\t\t\t\t\t\toutput.push({\n\t\t\t\t\t\t\tselectors: [makeSelector(token, prefix, \"x\")],\n\t\t\t\t\t\t\tdeclarations: {\n\t\t\t\t\t\t\t\t[`${property}-left`]: value,\n\t\t\t\t\t\t\t\t[`${property}-right`]: value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\tselectors: [makeSelector(token, prefix, \"y\")],\n\t\t\t\t\t\t\tdeclarations: {\n\t\t\t\t\t\t\t\t[`${property}-bottom`]: value,\n\t\t\t\t\t\t\t\t[`${property}-top`]: value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tfor (const side of [\n\t\t\t\t\t\t\"top\",\n\t\t\t\t\t\t\"right\",\n\t\t\t\t\t\t\"bottom\",\n\t\t\t\t\t\t\"left\"\n\t\t\t\t\t]) for (const token of filteredTokens) output.push({\n\t\t\t\t\t\tselectors: [makeSelector(token, prefix, side[0])],\n\t\t\t\t\t\tdeclarations: { [`${property}-${side}`]: makeVarValue(token) }\n\t\t\t\t\t});\n\t\t\t\t\tfor (const token of filteredTokens) {\n\t\t\t\t\t\tconst value = makeVarValue(token);\n\t\t\t\t\t\toutput.push({\n\t\t\t\t\t\t\tselectors: [makeSelector(token, prefix, \"s\")],\n\t\t\t\t\t\t\tdeclarations: { [`${property}-inline-start`]: value }\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\tselectors: [makeSelector(token, prefix, \"e\")],\n\t\t\t\t\t\t\tdeclarations: { [`${property}-inline-end`]: value }\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"shadow\":\n\t\t\t\tfor (const token of matchingTokens) if (token.token.$type === \"shadow\") output.push({\n\t\t\t\t\tselectors: [makeSelector(token, \"shadow\")],\n\t\t\t\t\tdeclarations: { \"box-shadow\": makeVarValue(token) }\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"text\":\n\t\t\t\tfor (const token of matchingTokens) {\n\t\t\t\t\tconst selector = makeSelector(token, \"text\");\n\t\t\t\t\tconst value = makeVarValue(token);\n\t\t\t\t\tswitch (token.token.$type) {\n\t\t\t\t\t\tcase \"color\":\n\t\t\t\t\t\t\toutput.push({\n\t\t\t\t\t\t\t\tselectors: [selector],\n\t\t\t\t\t\t\t\tdeclarations: { color: value }\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"gradient\":\n\t\t\t\t\t\t\toutput.push({\n\t\t\t\t\t\t\t\tselectors: [selector],\n\t\t\t\t\t\t\t\tdeclarations: {\n\t\t\t\t\t\t\t\t\tbackground: { value: `-webkit-linear-gradient(${value.value})` },\n\t\t\t\t\t\t\t\t\t\"-webkit-background-clip\": { value: \"text\" },\n\t\t\t\t\t\t\t\t\t\"-webkit-text-fill-color\": { value: \"transparent\" }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.warn(`[@terrazzo/plugin-css] unknown utility CSS group \"${group}\", ignoring`);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\treturn output;\n}\n\n//#endregion\n//#region src/build/index.ts\nconst P3_MQ = \"@media (color-gamut: p3)\";\nconst REC2020_MQ = \"@media (color-gamut: rec2020)\";\nfunction buildFormat({ getTransforms, exclude, utility, modeSelectors, baseSelector, baseScheme }) {\n\tconst rules = [];\n\tconst rootTokens = getTransforms({\n\t\tformat: FORMAT_ID,\n\t\tmode: \".\"\n\t});\n\tif (rootTokens.length) {\n\t\tconst rootRule = {\n\t\t\tselectors: [baseSelector],\n\t\t\tdeclarations: {}\n\t\t};\n\t\tconst p3Rule = {\n\t\t\tselectors: [baseSelector],\n\t\t\tnestedQuery: P3_MQ,\n\t\t\tdeclarations: {}\n\t\t};\n\t\tconst rec2020Rule = {\n\t\t\tselectors: [baseSelector],\n\t\t\tnestedQuery: REC2020_MQ,\n\t\t\tdeclarations: {}\n\t\t};\n\t\trules.push(rootRule, p3Rule, rec2020Rule);\n\t\tconst shouldExclude = wildcardMatch(exclude ?? []);\n\t\tif (baseScheme) rootRule.declarations[\"color-scheme\"] = { value: baseScheme };\n\t\tfor (const token of rootTokens) {\n\t\t\tif (shouldExclude(token.token.id)) continue;\n\t\t\tconst localID = token.localID ?? token.token.id;\n\t\t\tconst aliasTokens = token.token.aliasedBy?.length ? getTransforms({\n\t\t\t\tformat: FORMAT_ID,\n\t\t\t\tid: token.token.aliasedBy\n\t\t\t}) : [];\n\t\t\tif (token.type === \"SINGLE_VALUE\") rootRule.declarations[localID] = {\n\t\t\t\tvalue: token.value,\n\t\t\t\tdescription: token.token.$description\n\t\t\t};\n\t\t\telse if (token.value.srgb && token.value.p3 && token.value.rec2020) {\n\t\t\t\trootRule.declarations[localID] = {\n\t\t\t\t\tvalue: token.value.srgb,\n\t\t\t\t\tdescription: token.token.$description\n\t\t\t\t};\n\t\t\t\tif (token.value.p3 !== token.value.srgb) {\n\t\t\t\t\tp3Rule.declarations[localID] = {\n\t\t\t\t\t\tvalue: token.value.p3,\n\t\t\t\t\t\tdescription: token.token.$description\n\t\t\t\t\t};\n\t\t\t\t\trec2020Rule.declarations[localID] = {\n\t\t\t\t\t\tvalue: token.value.rec2020,\n\t\t\t\t\t\tdescription: token.token.$description\n\t\t\t\t\t};\n\t\t\t\t\tfor (const alias of aliasTokens) if (alias.localID && typeof alias.value === \"string\") {\n\t\t\t\t\t\tp3Rule.declarations[alias.localID] ??= {\n\t\t\t\t\t\t\tvalue: alias.value,\n\t\t\t\t\t\t\tdescription: token.token.$description\n\t\t\t\t\t\t};\n\t\t\t\t\t\trec2020Rule.declarations[alias.localID] ??= {\n\t\t\t\t\t\t\tvalue: alias.value,\n\t\t\t\t\t\t\tdescription: token.token.$description\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (token.type === \"MULTI_VALUE\") {\n\t\t\t\tconst shorthand = generateShorthand({\n\t\t\t\t\t$type: token.token.$type,\n\t\t\t\t\tlocalID\n\t\t\t\t});\n\t\t\t\tif (shorthand) rootRule.declarations[token.localID ?? token.token.id] = {\n\t\t\t\t\tvalue: shorthand,\n\t\t\t\t\tdescription: token.token.$description\n\t\t\t\t};\n\t\t\t\tfor (const [name, value] of Object.entries(token.value)) rootRule.declarations[name === \".\" ? localID : [localID, name].join(\"-\")] = {\n\t\t\t\t\tvalue,\n\t\t\t\t\tdescription: token.token.$description\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\tfor (const { selectors, tokens, mode, scheme } of modeSelectors ?? []) {\n\t\tif (!selectors.length) continue;\n\t\tconst selectorTokens = getTransforms({\n\t\t\tformat: FORMAT_ID,\n\t\t\tid: tokens,\n\t\t\tmode\n\t\t});\n\t\tif (!selectorTokens.length) continue;\n\t\tconst selectorRule = {\n\t\t\tselectors,\n\t\t\tdeclarations: {}\n\t\t};\n\t\tconst selectorP3Rule = {\n\t\t\tselectors,\n\t\t\tnestedQuery: P3_MQ,\n\t\t\tdeclarations: {}\n\t\t};\n\t\tconst selectorRec2020Rule = {\n\t\t\tselectors,\n\t\t\tnestedQuery: REC2020_MQ,\n\t\t\tdeclarations: {}\n\t\t};\n\t\tconst selectorAliasDeclarations = {};\n\t\trules.push(selectorRule, selectorP3Rule, selectorRec2020Rule);\n\t\tif (scheme) selectorRule.declarations[\"color-scheme\"] = { value: scheme };\n\t\tfor (const token of selectorTokens) {\n\t\t\tconst localID = token.localID ?? token.token.id;\n\t\t\tconst aliasTokens = token.token.aliasedBy?.length ? getTransforms({\n\t\t\t\tformat: FORMAT_ID,\n\t\t\t\tid: token.token.aliasedBy\n\t\t\t}) : [];\n\t\t\tif (token.type === \"SINGLE_VALUE\") selectorRule.declarations[localID] = {\n\t\t\t\tvalue: token.value,\n\t\t\t\tdescription: token.token.$description\n\t\t\t};\n\t\t\telse if (token.value.srgb && token.value.p3 && token.value.rec2020) {\n\t\t\t\tselectorRule.declarations[localID] = {\n\t\t\t\t\tvalue: token.value.srgb,\n\t\t\t\t\tdescription: token.token.$description\n\t\t\t\t};\n\t\t\t\tif (token.value.p3 !== token.value.srgb) {\n\t\t\t\t\tselectorP3Rule.declarations[localID] = {\n\t\t\t\t\t\tvalue: token.value.p3,\n\t\t\t\t\t\tdescription: token.token.$description\n\t\t\t\t\t};\n\t\t\t\t\tselectorRec2020Rule.declarations[localID] = {\n\t\t\t\t\t\tvalue: token.value.rec2020,\n\t\t\t\t\t\tdescription: token.token.$description\n\t\t\t\t\t};\n\t\t\t\t\tfor (const alias of aliasTokens) if (alias.localID && typeof alias.value === \"string\") {\n\t\t\t\t\t\tselectorP3Rule.declarations[alias.localID] ??= {\n\t\t\t\t\t\t\tvalue: alias.value,\n\t\t\t\t\t\t\tdescription: token.token.$description\n\t\t\t\t\t\t};\n\t\t\t\t\t\tselectorRec2020Rule.declarations[alias.localID] ??= {\n\t\t\t\t\t\t\tvalue: alias.value,\n\t\t\t\t\t\t\tdescription: token.token.$description\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst shorthand = generateShorthand({\n\t\t\t\t\t$type: token.token.$type,\n\t\t\t\t\tlocalID\n\t\t\t\t});\n\t\t\t\tif (shorthand) selectorRule.declarations[localID] = {\n\t\t\t\t\tvalue: shorthand,\n\t\t\t\t\tdescription: token.token.$description\n\t\t\t\t};\n\t\t\t\tfor (const [name, subvalue] of Object.entries(token.value)) selectorRule.declarations[`${localID}-${name}`] = {\n\t\t\t\t\tvalue: subvalue,\n\t\t\t\t\tdescription: token.token.$description\n\t\t\t\t};\n\t\t\t}\n\t\t\tfor (const alias of aliasTokens) if (alias.localID && typeof alias.value === \"string\") selectorAliasDeclarations[alias.localID] = {\n\t\t\t\tvalue: alias.value,\n\t\t\t\tdescription: token.token.$description\n\t\t\t};\n\t\t}\n\t\tfor (const [name, { value, description }] of Object.entries(selectorAliasDeclarations)) selectorRule.declarations[name] ??= {\n\t\t\tvalue,\n\t\t\tdescription\n\t\t};\n\t}\n\tif (utility && Object.keys(utility).length) rules.push(...generateUtilityCSS(utility, getTransforms({\n\t\tformat: FORMAT_ID,\n\t\tmode: \".\"\n\t})));\n\treturn printRules(rules);\n}\n\n//#endregion\n//#region src/index.ts\nfunction cssPlugin(options) {\n\tconst { exclude, variableName, modeSelectors, transform: customTransform, utility, legacyHex, skipBuild, baseScheme } = options ?? {};\n\tconst filename = options?.filename ?? options?.fileName ?? \"index.css\";\n\tconst baseSelector = options?.baseSelector ?? \":root\";\n\tfunction transformName(token) {\n\t\tconst customName = variableName?.(token);\n\t\tif (customName !== void 0) {\n\t\t\tif (typeof customName !== \"string\") throw new Error(`variableName() must return a string; received ${customName}`);\n\t\t\treturn customName;\n\t\t}\n\t\treturn makeCSSVar(token.id);\n\t}\n\tconst transformAlias = (token) => `var(${transformName(token)})`;\n\treturn {\n\t\tname: \"@terrazzo/plugin-css\",\n\t\tasync transform({ tokens, getTransforms, setTransform }) {\n\t\t\tif (getTransforms({\n\t\t\t\tformat: FORMAT_ID,\n\t\t\t\tid: \"*\",\n\t\t\t\tmode: \"*\"\n\t\t\t}).length) return;\n\t\t\tfor (const [id, token] of Object.entries(tokens)) {\n\t\t\t\tconst localID = transformName(token);\n\t\t\t\tfor (const mode of Object.keys(token.mode)) {\n\t\t\t\t\tif (customTransform) {\n\t\t\t\t\t\tconst value = customTransform(token, mode);\n\t\t\t\t\t\tif (value !== void 0 && value !== null) {\n\t\t\t\t\t\t\tvalidateCustomTransform(value, { $type: token.$type });\n\t\t\t\t\t\t\tsetTransform(id, {\n\t\t\t\t\t\t\t\tformat: FORMAT_ID,\n\t\t\t\t\t\t\t\tlocalID,\n\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\tmode,\n\t\t\t\t\t\t\t\tmeta: { \"token-listing\": { name: localID } }\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst transformedValue = transformCSSValue(token, {\n\t\t\t\t\t\tmode,\n\t\t\t\t\t\ttokensSet: tokens,\n\t\t\t\t\t\ttransformAlias,\n\t\t\t\t\t\tcolor: { legacyHex }\n\t\t\t\t\t});\n\t\t\t\t\tif (transformedValue !== void 0) {\n\t\t\t\t\t\tlet listingName = localID;\n\t\t\t\t\t\tif (typeof transformedValue === \"object\" && generateShorthand({\n\t\t\t\t\t\t\t$type: token.$type,\n\t\t\t\t\t\t\tlocalID\n\t\t\t\t\t\t}) === void 0) listingName = void 0;\n\t\t\t\t\t\tsetTransform(id, {\n\t\t\t\t\t\t\tformat: FORMAT_ID,\n\t\t\t\t\t\t\tlocalID,\n\t\t\t\t\t\t\tvalue: transformedValue,\n\t\t\t\t\t\t\tmode,\n\t\t\t\t\t\t\tmeta: { \"token-listing\": { name: listingName } }\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tasync build({ getTransforms, outputFile }) {\n\t\t\tif (skipBuild === true) return;\n\t\t\tconst output = [FILE_PREFIX, \"\"];\n\t\t\toutput.push(buildFormat({\n\t\t\t\texclude,\n\t\t\t\tgetTransforms,\n\t\t\t\tmodeSelectors,\n\t\t\t\tutility,\n\t\t\t\tbaseSelector,\n\t\t\t\tbaseScheme\n\t\t\t}), \"\\n\");\n\t\t\toutputFile(filename, output.join(\"\\n\"));\n\t\t}\n\t};\n}\n\n//#endregion\nexport { FILE_PREFIX, FORMAT_ID, cssPlugin as default, printRules };\n//# sourceMappingURL=index.js.map","const NUMBER_CHAR_RE = /\\d/;\nconst STR_SPLITTERS = [\"-\", \"_\", \"/\", \".\"];\nfunction isUppercase(char = \"\") {\n if (NUMBER_CHAR_RE.test(char)) {\n return void 0;\n }\n return char !== char.toLowerCase();\n}\nfunction splitByCase(str, separators) {\n const splitters = separators ?? STR_SPLITTERS;\n const parts = [];\n if (!str || typeof str !== \"string\") {\n return parts;\n }\n let buff = \"\";\n let previousUpper;\n let previousSplitter;\n for (const char of str) {\n const isSplitter = splitters.includes(char);\n if (isSplitter === true) {\n parts.push(buff);\n buff = \"\";\n previousUpper = void 0;\n continue;\n }\n const isUpper = isUppercase(char);\n if (previousSplitter === false) {\n if (previousUpper === false && isUpper === true) {\n parts.push(buff);\n buff = char;\n previousUpper = isUpper;\n continue;\n }\n if (previousUpper === true && isUpper === false && buff.length > 1) {\n const lastChar = buff.at(-1);\n parts.push(buff.slice(0, Math.max(0, buff.length - 1)));\n buff = lastChar + char;\n previousUpper = isUpper;\n continue;\n }\n }\n buff += char;\n previousUpper = isUpper;\n previousSplitter = isSplitter;\n }\n parts.push(buff);\n return parts;\n}\nfunction upperFirst(str) {\n return str ? str[0].toUpperCase() + str.slice(1) : \"\";\n}\nfunction lowerFirst(str) {\n return str ? str[0].toLowerCase() + str.slice(1) : \"\";\n}\nfunction pascalCase(str, opts) {\n return str ? (Array.isArray(str) ? str : splitByCase(str)).map((p) => upperFirst(opts?.normalize ? p.toLowerCase() : p)).join(\"\") : \"\";\n}\nfunction camelCase(str, opts) {\n return lowerFirst(pascalCase(str || \"\", opts));\n}\nfunction kebabCase(str, joiner) {\n return str ? (Array.isArray(str) ? str : splitByCase(str)).map((p) => p.toLowerCase()).join(joiner ?? \"-\") : \"\";\n}\nfunction snakeCase(str) {\n return kebabCase(str || \"\", \"_\");\n}\nfunction flatCase(str) {\n return kebabCase(str || \"\", \"\");\n}\nfunction trainCase(str, opts) {\n return (Array.isArray(str) ? str : splitByCase(str)).filter(Boolean).map((p) => upperFirst(opts?.normalize ? p.toLowerCase() : p)).join(\"-\");\n}\nconst titleCaseExceptions = /^(a|an|and|as|at|but|by|for|if|in|is|nor|of|on|or|the|to|with)$/i;\nfunction titleCase(str, opts) {\n return (Array.isArray(str) ? str : splitByCase(str)).filter(Boolean).map(\n (p) => titleCaseExceptions.test(p) ? p.toLowerCase() : upperFirst(opts?.normalize ? p.toLowerCase() : p)\n ).join(\" \");\n}\n\nexport { camelCase, flatCase, isUppercase, kebabCase, lowerFirst, pascalCase, snakeCase, splitByCase, titleCase, trainCase, upperFirst };\n","import type { TokenTransformed } from '@terrazzo/parser';\nimport type ve from '@vanilla-extract/css';\nimport { camelCase } from 'scule';\n\nexport const FORMAT_ID = 'vanilla-extract';\nexport const THEME_EXPORT = 'vars'; // Could be a future option, for now match docs\n\nexport interface VanillaExtractPluginOptions {\n /**\n * Filename to generate.\n * @default \"theme.css.ts\"\n */\n filename?: string;\n /**\n * - true: use global `createGlobalThemeContract()` API\n * - false: use scoped `createThemeContract()` API\n * @default true\n */\n globalThemeContract?: boolean;\n /**\n * Mapping of exported JS variables to token modes. The key MUST be a valid JS identifier.\n * @example\n *\n * ```js\n * themes: {\n * default: { mode: \".\" }, // \".\" refers to the default mode, or no mode\n * light: { mode: \"light\" },\n * dark: { mode: \"dark\" },\n * }\n * ```\n */\n themes?: Record<string, { mode: string | string[] }>;\n /**\n * Mapping of exported JS variables to token modes for global themes. The key MUST be a valid JS identifier.\n * @example\n *\n * ```js\n * globalThemes: {\n * default: { selector: \":root\", mode: \".\" }, // \".\" refers to the default mode, or no mode\n * light: { selector: \"[data-color-mode=light]\", mode: \"light\" },\n * dark: { selector: \"[data-color-mode=dark]\" mode: \"dark\" },\n * }\n * ```\n */\n globalThemes?: Record<string, { selector: string; mode: string | string[] }>;\n /**\n * Change the naming strategy for the createTheme() API’s `[class, vars]` tuple.\n * @default (name) => [`${name}Class`, name]\n */\n themeVarNaming?: (name: string) => [string, string];\n}\n\n// imports saved as a constant to prevent typos\nexport const VE = {\n createTheme: 'createTheme',\n createGlobalTheme: 'createGlobalTheme',\n createThemeContract: 'createThemeContract',\n createGlobalThemeContract: 'createGlobalThemeContract',\n} satisfies Partial<Record<keyof typeof ve, string>>;\n\nexport function isJSIdent(ident: unknown): boolean {\n if (typeof ident !== 'string') {\n return false;\n }\n return /^[A-Za-z$_][A-Za-z0-9_$]*$/.test(ident);\n}\n\n/** Generate createThemeContract() or createGlobalThemeContract() */\nexport function generateThemeContract({\n tokens,\n globalThemeContract,\n}: {\n tokens: TokenTransformed[];\n globalThemeContract: boolean;\n}): string {\n const tokensObj: any = {};\n for (const token of tokens) {\n const parts = token.localID!.split('.');\n const name = parts.pop()!;\n\n // rebuild nested object again from flattened tokens array\n let node = tokensObj;\n for (const part of parts) {\n if (!(part in node)) {\n node[part] = {};\n }\n node = node[part];\n }\n if (token.type !== 'MULTI_VALUE') {\n throw new Error('Error in plugin-vanilla-extract: values didn’t generate correctly.');\n }\n const cssName = token.value.__cssName?.replace(/^--/, '');\n if ('.' in token.value) {\n node[name] = globalThemeContract ? cssName : null;\n } else {\n node[name] = {};\n for (const k of Object.keys(token.value)) {\n if (k === '__cssName') {\n continue;\n }\n node[name][camelCase(k)] = globalThemeContract ? `${cssName}-${k}` : null;\n }\n }\n }\n\n return `export const ${THEME_EXPORT} = ${globalThemeContract ? VE.createGlobalThemeContract : VE.createThemeContract}(${JSON.stringify(tokensObj, undefined, 2)});\\n`;\n}\n\n/** Generate createTheme()/createGlobalTheme() */\nexport function generateTheme({\n name,\n namingPattern,\n tokens,\n selector,\n globalTheme = false,\n}: {\n name: string;\n namingPattern: (name: string) => [string, string];\n tokens: TokenTransformed[];\n selector?: string;\n globalTheme?: boolean;\n}) {\n const tokensObj: any = {};\n for (const token of tokens) {\n const parts = token.localID!.split('.');\n const name = parts.pop()!;\n\n // rebuild nested object again from flattened tokens array\n let node = tokensObj;\n for (const part of parts) {\n if (!(part in node)) {\n node[part] = {};\n }\n node = node[part];\n }\n if (token.type === 'MULTI_VALUE') {\n if ('.' in token.value) {\n node[name] = serializeValue(token.value['.'], tokens);\n } else {\n node[name] = {};\n for (const [k, v] of Object.entries(token.value)) {\n if (k === '__cssName') {\n continue;\n }\n node[name][camelCase(k)] = serializeValue(v, tokens);\n }\n }\n } else {\n node[name] = serializeValue(token.value, tokens);\n }\n }\n\n const ident = globalTheme ? `${name}` : `[${namingPattern(name)[0]}, ${namingPattern(name)[1]}]`;\n const prefix = globalTheme\n ? `${VE.createGlobalTheme}(${JSON.stringify(selector)}, ${THEME_EXPORT}, `\n : `${VE.createTheme}(${THEME_EXPORT}, `;\n const rawTokens = JSON.stringify(tokensObj, undefined, 2);\n return `export const ${ident} = ${prefix}${deserializeAllValues(rawTokens)});\\n`;\n}\n\nconst IDENT_ESCAPE = '__ident__';\n\n/** Encode an alias to a Vanilla Extract token inside a JSON array */\nexport function serializeValue(value: string | number | boolean, tokens: TokenTransformed[]): string {\n // raw values: number / boolean\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n\n // aliases\n // ⚠️ Warning! Trying to simply transform CSS vars to IDs is brittle, error-prone, and will break in many conditions.\n // However, reverse lookups from generated CSS vars is stable and safe. Subtle but important difference.\n const [_, varName] = value.match(/^var\\((.*)\\)$/) ?? [];\n if (varName) {\n const originalToken = tokens.find((t) => t.type === 'MULTI_VALUE' && t.value.__cssName === varName);\n if (!originalToken) {\n throw new Error(`Can’t find token associated with ${value}`);\n }\n let jsIdent = '';\n const parts = originalToken.localID!.split('.');\n for (const part of parts) {\n if (!isJSIdent(part)) {\n // Note: there are probably some token IDs with quotation marks in them that this\n // would break on, but also, how dare you, you monster\n jsIdent += /^[1-9][0-9]*$/.test(part) ? `[${part}]` : `['${part.replace(/'/g, \"\\\\'\")}']`;\n } else {\n jsIdent += `.${part}`;\n }\n }\n return `${IDENT_ESCAPE}${THEME_EXPORT}${jsIdent}${IDENT_ESCAPE}`;\n }\n\n // special case: zero\n if (/^0[A-Z]+/i.test(value)) {\n return '0';\n }\n // special case: px converts to numbers\n // if (/^\\d+px/i.test(value)) {\n // return Number.parseFloat(value);\n // }\n return value;\n}\n\n/** Decode all aliases from a JSON string */\nexport function deserializeAllValues(json: string): string {\n return json.replace(/\"__ident__(.*)__ident__\"/g, '$1');\n}\n","import type { Plugin } from '@terrazzo/parser';\nimport { FORMAT_ID as FORMAT_CSS } from '@terrazzo/plugin-css';\nimport { camelCase } from 'scule';\nimport {\n FORMAT_ID as FORMAT_VANILLA,\n generateTheme,\n generateThemeContract,\n isJSIdent,\n type VanillaExtractPluginOptions,\n VE,\n} from './lib.js';\n\nexport * from './lib.js';\n\nexport default function vanillaExtractPlugin(options: VanillaExtractPluginOptions): Plugin {\n const filename = options.filename ?? 'theme.css.ts';\n const globalThemeContract = options.globalThemeContract ?? true;\n\n return {\n name: '@terrazzo/plugin-vanilla-extract',\n enforce: 'post', // ensure this comes after @terrazzo/plugin-css\n config(config) {\n if (!config.plugins.some((p) => p.name === '@terrazzo/plugin-css')) {\n throw new Error(\n '@terrazzo/plugin-css missing! Please install and add to the plugins array to use the Vanilla Extract plugin.',\n );\n }\n const allThemes = { ...options.themes, ...options.globalThemes };\n if (!Object.keys(allThemes).length) {\n throw new Error('Must generate at least one theme in \"themes\" or \"globalThemes\".');\n }\n for (const k of Object.keys(allThemes)) {\n if (!isJSIdent(k)) {\n throw new Error(\n `${JSON.stringify(k)} must be a valid JS identifier. Prefer camelCase so it may be used in JS.`,\n );\n }\n }\n },\n\n async transform({ getTransforms, setTransform }) {\n // vanilla-extract’s transform works a little-differently than other plugins.\n // First, the localID is the same as the source, only we camelCase it for\n // convenience.\n // Second, we’re borrowing the values from plugin-css, but also keeping\n // its localID, too, for later.\n for (const token of getTransforms({ format: FORMAT_CSS })) {\n const localID = token.id\n .split('.')\n .map((part) => camelCase(part))\n .join('.');\n const value = {\n ...(token.type === 'SINGLE_VALUE' ? { '.': token.value } : { ...token.value }),\n __cssName: token.localID!,\n };\n setTransform(token.id, {\n format: FORMAT_VANILLA,\n localID,\n value,\n mode: token.mode,\n meta: { 'token-listing': { name: `vars.${localID}` } },\n });\n }\n },\n\n async build({ getTransforms, outputFile }) {\n const imports = new Set<string>();\n const output: string[] = [];\n\n // generate theme contract\n output.push(\n generateThemeContract({\n tokens: getTransforms({ format: FORMAT_VANILLA, mode: '.' }),\n globalThemeContract,\n }),\n );\n imports.add(globalThemeContract ? VE.createGlobalThemeContract : VE.createThemeContract);\n\n // generate themes/global themes\n const namingPattern = options?.themeVarNaming ?? ((n) => [`${n}Class`, n]);\n for (const [name, { mode }] of Object.entries(options.themes ?? {})) {\n const theme = generateTheme({ name, namingPattern, tokens: getTransforms({ format: FORMAT_VANILLA, mode }) });\n imports.add(VE.createTheme);\n output.push(theme);\n }\n for (const [name, { selector, mode }] of Object.entries(options.globalThemes ?? {})) {\n const theme = generateTheme({\n name,\n namingPattern,\n tokens: getTransforms({ format: FORMAT_VANILLA, mode }),\n selector,\n globalTheme: true,\n });\n imports.add(VE.createGlobalTheme);\n output.push(theme);\n }\n\n outputFile(\n filename,\n [`import { ${[...imports].sort().join(', ')} } from \"@vanilla-extract/css\";`, '', ...output].join('\\n'),\n );\n },\n };\n}\n"],"x_google_ignoreList":[1],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["tokensObj: any","name","FORMAT_CSS","FORMAT_VANILLA","output: string[]"],"sources":["../../../node_modules/.pnpm/scule@1.3.0/node_modules/scule/dist/index.mjs","../src/lib.ts","../src/index.ts"],"sourcesContent":["const NUMBER_CHAR_RE = /\\d/;\nconst STR_SPLITTERS = [\"-\", \"_\", \"/\", \".\"];\nfunction isUppercase(char = \"\") {\n if (NUMBER_CHAR_RE.test(char)) {\n return void 0;\n }\n return char !== char.toLowerCase();\n}\nfunction splitByCase(str, separators) {\n const splitters = separators ?? STR_SPLITTERS;\n const parts = [];\n if (!str || typeof str !== \"string\") {\n return parts;\n }\n let buff = \"\";\n let previousUpper;\n let previousSplitter;\n for (const char of str) {\n const isSplitter = splitters.includes(char);\n if (isSplitter === true) {\n parts.push(buff);\n buff = \"\";\n previousUpper = void 0;\n continue;\n }\n const isUpper = isUppercase(char);\n if (previousSplitter === false) {\n if (previousUpper === false && isUpper === true) {\n parts.push(buff);\n buff = char;\n previousUpper = isUpper;\n continue;\n }\n if (previousUpper === true && isUpper === false && buff.length > 1) {\n const lastChar = buff.at(-1);\n parts.push(buff.slice(0, Math.max(0, buff.length - 1)));\n buff = lastChar + char;\n previousUpper = isUpper;\n continue;\n }\n }\n buff += char;\n previousUpper = isUpper;\n previousSplitter = isSplitter;\n }\n parts.push(buff);\n return parts;\n}\nfunction upperFirst(str) {\n return str ? str[0].toUpperCase() + str.slice(1) : \"\";\n}\nfunction lowerFirst(str) {\n return str ? str[0].toLowerCase() + str.slice(1) : \"\";\n}\nfunction pascalCase(str, opts) {\n return str ? (Array.isArray(str) ? str : splitByCase(str)).map((p) => upperFirst(opts?.normalize ? p.toLowerCase() : p)).join(\"\") : \"\";\n}\nfunction camelCase(str, opts) {\n return lowerFirst(pascalCase(str || \"\", opts));\n}\nfunction kebabCase(str, joiner) {\n return str ? (Array.isArray(str) ? str : splitByCase(str)).map((p) => p.toLowerCase()).join(joiner ?? \"-\") : \"\";\n}\nfunction snakeCase(str) {\n return kebabCase(str || \"\", \"_\");\n}\nfunction flatCase(str) {\n return kebabCase(str || \"\", \"\");\n}\nfunction trainCase(str, opts) {\n return (Array.isArray(str) ? str : splitByCase(str)).filter(Boolean).map((p) => upperFirst(opts?.normalize ? p.toLowerCase() : p)).join(\"-\");\n}\nconst titleCaseExceptions = /^(a|an|and|as|at|but|by|for|if|in|is|nor|of|on|or|the|to|with)$/i;\nfunction titleCase(str, opts) {\n return (Array.isArray(str) ? str : splitByCase(str)).filter(Boolean).map(\n (p) => titleCaseExceptions.test(p) ? p.toLowerCase() : upperFirst(opts?.normalize ? p.toLowerCase() : p)\n ).join(\" \");\n}\n\nexport { camelCase, flatCase, isUppercase, kebabCase, lowerFirst, pascalCase, snakeCase, splitByCase, titleCase, trainCase, upperFirst };\n","import type { TokenTransformed } from '@terrazzo/parser';\nimport type ve from '@vanilla-extract/css';\nimport { camelCase } from 'scule';\n\nexport const FORMAT_ID = 'vanilla-extract';\nexport const THEME_EXPORT = 'vars'; // Could be a future option, for now match docs\n\nexport interface VanillaExtractPluginOptions {\n /**\n * Filename to generate.\n * @default \"theme.css.ts\"\n */\n filename?: string;\n /**\n * - true: use global `createGlobalThemeContract()` API\n * - false: use scoped `createThemeContract()` API\n * @default true\n */\n globalThemeContract?: boolean;\n /**\n * Mapping of exported JS variables to token modes. The key MUST be a valid JS identifier.\n * @example\n *\n * ```js\n * themes: {\n * default: { mode: \".\" }, // \".\" refers to the default mode, or no mode\n * light: { mode: \"light\" },\n * dark: { mode: \"dark\" },\n * }\n * ```\n */\n themes?: Record<string, { mode: string | string[] }>;\n /**\n * Mapping of exported JS variables to token modes for global themes. The key MUST be a valid JS identifier.\n * @example\n *\n * ```js\n * globalThemes: {\n * default: { selector: \":root\", mode: \".\" }, // \".\" refers to the default mode, or no mode\n * light: { selector: \"[data-color-mode=light]\", mode: \"light\" },\n * dark: { selector: \"[data-color-mode=dark]\" mode: \"dark\" },\n * }\n * ```\n */\n globalThemes?: Record<string, { selector: string; mode: string | string[] }>;\n /**\n * Change the naming strategy for the createTheme() API’s `[class, vars]` tuple.\n * @default (name) => [`${name}Class`, name]\n */\n themeVarNaming?: (name: string) => [string, string];\n}\n\n// imports saved as a constant to prevent typos\nexport const VE = {\n createTheme: 'createTheme',\n createGlobalTheme: 'createGlobalTheme',\n createThemeContract: 'createThemeContract',\n createGlobalThemeContract: 'createGlobalThemeContract',\n} satisfies Partial<Record<keyof typeof ve, string>>;\n\nexport function isJSIdent(ident: unknown): boolean {\n if (typeof ident !== 'string') {\n return false;\n }\n return /^[A-Za-z$_][A-Za-z0-9_$]*$/.test(ident);\n}\n\n/** Generate createThemeContract() or createGlobalThemeContract() */\nexport function generateThemeContract({\n tokens,\n globalThemeContract,\n}: {\n tokens: TokenTransformed[];\n globalThemeContract: boolean;\n}): string {\n const tokensObj: any = {};\n for (const token of tokens) {\n const parts = token.localID!.split('.');\n const name = parts.pop()!;\n\n // rebuild nested object again from flattened tokens array\n let node = tokensObj;\n for (const part of parts) {\n if (!(part in node)) {\n node[part] = {};\n }\n node = node[part];\n }\n if (token.type !== 'MULTI_VALUE') {\n throw new Error('Error in plugin-vanilla-extract: values didn’t generate correctly.');\n }\n const cssName = token.value.__cssName?.replace(/^--/, '');\n if ('.' in token.value) {\n node[name] = globalThemeContract ? cssName : null;\n } else {\n node[name] = {};\n for (const k of Object.keys(token.value)) {\n if (k === '__cssName') {\n continue;\n }\n node[name][camelCase(k)] = globalThemeContract ? `${cssName}-${k}` : null;\n }\n }\n }\n\n return `export const ${THEME_EXPORT} = ${globalThemeContract ? VE.createGlobalThemeContract : VE.createThemeContract}(${JSON.stringify(tokensObj, undefined, 2)});\\n`;\n}\n\n/** Generate createTheme()/createGlobalTheme() */\nexport function generateTheme({\n name,\n namingPattern,\n tokens,\n selector,\n globalTheme = false,\n}: {\n name: string;\n namingPattern: (name: string) => [string, string];\n tokens: TokenTransformed[];\n selector?: string;\n globalTheme?: boolean;\n}) {\n const tokensObj: any = {};\n for (const token of tokens) {\n const parts = token.localID!.split('.');\n const name = parts.pop()!;\n\n // rebuild nested object again from flattened tokens array\n let node = tokensObj;\n for (const part of parts) {\n if (!(part in node)) {\n node[part] = {};\n }\n node = node[part];\n }\n if (token.type === 'MULTI_VALUE') {\n if ('.' in token.value) {\n node[name] = serializeValue(token.value['.'], tokens);\n } else {\n node[name] = {};\n for (const [k, v] of Object.entries(token.value)) {\n if (k === '__cssName') {\n continue;\n }\n node[name][camelCase(k)] = serializeValue(v, tokens);\n }\n }\n } else {\n node[name] = serializeValue(token.value, tokens);\n }\n }\n\n const ident = globalTheme ? `${name}` : `[${namingPattern(name)[0]}, ${namingPattern(name)[1]}]`;\n const prefix = globalTheme\n ? `${VE.createGlobalTheme}(${JSON.stringify(selector)}, ${THEME_EXPORT}, `\n : `${VE.createTheme}(${THEME_EXPORT}, `;\n const rawTokens = JSON.stringify(tokensObj, undefined, 2);\n return `export const ${ident} = ${prefix}${deserializeAllValues(rawTokens)});\\n`;\n}\n\nconst IDENT_ESCAPE = '__ident__';\n\n/** Encode an alias to a Vanilla Extract token inside a JSON array */\nexport function serializeValue(value: string | number | boolean, tokens: TokenTransformed[]): string {\n // raw values: number / boolean\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n\n // aliases\n // ⚠️ Warning! Trying to simply transform CSS vars to IDs is brittle, error-prone, and will break in many conditions.\n // However, reverse lookups from generated CSS vars is stable and safe. Subtle but important difference.\n const [_, varName] = value.match(/^var\\((.*)\\)$/) ?? [];\n if (varName) {\n const originalToken = tokens.find((t) => t.type === 'MULTI_VALUE' && t.value.__cssName === varName);\n if (!originalToken) {\n throw new Error(`Can’t find token associated with ${value}`);\n }\n let jsIdent = '';\n const parts = originalToken.localID!.split('.');\n for (const part of parts) {\n if (!isJSIdent(part)) {\n // Note: there are probably some token IDs with quotation marks in them that this\n // would break on, but also, how dare you, you monster\n jsIdent += /^[1-9][0-9]*$/.test(part) ? `[${part}]` : `['${part.replace(/'/g, \"\\\\'\")}']`;\n } else {\n jsIdent += `.${part}`;\n }\n }\n return `${IDENT_ESCAPE}${THEME_EXPORT}${jsIdent}${IDENT_ESCAPE}`;\n }\n\n // special case: zero\n if (/^0[A-Z]+/i.test(value)) {\n return '0';\n }\n // special case: px converts to numbers\n // if (/^\\d+px/i.test(value)) {\n // return Number.parseFloat(value);\n // }\n return value;\n}\n\n/** Decode all aliases from a JSON string */\nexport function deserializeAllValues(json: string): string {\n return json.replace(/\"__ident__(.*)__ident__\"/g, '$1');\n}\n","import type { Plugin } from '@terrazzo/parser';\nimport { FORMAT_ID as FORMAT_CSS } from '@terrazzo/plugin-css';\nimport { camelCase } from 'scule';\nimport {\n FORMAT_ID as FORMAT_VANILLA,\n generateTheme,\n generateThemeContract,\n isJSIdent,\n type VanillaExtractPluginOptions,\n VE,\n} from './lib.js';\n\nexport * from './lib.js';\n\nexport default function vanillaExtractPlugin(options: VanillaExtractPluginOptions): Plugin {\n const filename = options.filename ?? 'theme.css.ts';\n const globalThemeContract = options.globalThemeContract ?? true;\n\n return {\n name: '@terrazzo/plugin-vanilla-extract',\n enforce: 'post', // ensure this comes after @terrazzo/plugin-css\n config(config) {\n if (!config.plugins.some((p) => p.name === '@terrazzo/plugin-css')) {\n throw new Error(\n '@terrazzo/plugin-css missing! Please install and add to the plugins array to use the Vanilla Extract plugin.',\n );\n }\n const allThemes = { ...options.themes, ...options.globalThemes };\n if (!Object.keys(allThemes).length) {\n throw new Error('Must generate at least one theme in \"themes\" or \"globalThemes\".');\n }\n for (const k of Object.keys(allThemes)) {\n if (!isJSIdent(k)) {\n throw new Error(\n `${JSON.stringify(k)} must be a valid JS identifier. Prefer camelCase so it may be used in JS.`,\n );\n }\n }\n },\n\n async transform({ getTransforms, setTransform }) {\n // vanilla-extract’s transform works a little-differently than other plugins.\n // First, the localID is the same as the source, only we camelCase it for\n // convenience.\n // Second, we’re borrowing the values from plugin-css, but also keeping\n // its localID, too, for later.\n for (const token of getTransforms({ format: FORMAT_CSS })) {\n const localID = token.id\n .split('.')\n .map((part) => camelCase(part))\n .join('.');\n const value = {\n ...(token.type === 'SINGLE_VALUE' ? { '.': token.value } : { ...token.value }),\n __cssName: token.localID!,\n };\n setTransform(token.id, {\n format: FORMAT_VANILLA,\n localID,\n value,\n mode: token.mode,\n meta: { 'token-listing': { name: `vars.${localID}` } },\n });\n }\n },\n\n async build({ getTransforms, outputFile }) {\n const imports = new Set<string>();\n const output: string[] = [];\n\n // generate theme contract\n output.push(\n generateThemeContract({\n tokens: getTransforms({ format: FORMAT_VANILLA, mode: '.' }),\n globalThemeContract,\n }),\n );\n imports.add(globalThemeContract ? VE.createGlobalThemeContract : VE.createThemeContract);\n\n // generate themes/global themes\n const namingPattern = options?.themeVarNaming ?? ((n) => [`${n}Class`, n]);\n for (const [name, { mode }] of Object.entries(options.themes ?? {})) {\n const theme = generateTheme({ name, namingPattern, tokens: getTransforms({ format: FORMAT_VANILLA, mode }) });\n imports.add(VE.createTheme);\n output.push(theme);\n }\n for (const [name, { selector, mode }] of Object.entries(options.globalThemes ?? {})) {\n const theme = generateTheme({\n name,\n namingPattern,\n tokens: getTransforms({ format: FORMAT_VANILLA, mode }),\n selector,\n globalTheme: true,\n });\n imports.add(VE.createGlobalTheme);\n output.push(theme);\n }\n\n outputFile(\n filename,\n [`import { ${[...imports].sort().join(', ')} } from \"@vanilla-extract/css\";`, '', ...output].join('\\n'),\n );\n },\n };\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
|