@terrazzo/plugin-sass 0.9.0 → 0.10.0

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/dist/index.js CHANGED
@@ -231,28 +231,28 @@ const modes$1 = {};
231
231
  const parsers$1 = [];
232
232
  const colorProfiles$1 = {};
233
233
  const identity$1 = (v) => v;
234
- const useMode$1 = (definition$15$1) => {
235
- converters$1$1[definition$15$1.mode] = {
236
- ...converters$1$1[definition$15$1.mode],
237
- ...definition$15$1.toMode
238
- };
239
- Object.keys(definition$15$1.fromMode || {}).forEach((k$2$1) => {
240
- if (!converters$1$1[k$2$1]) converters$1$1[k$2$1] = {};
241
- converters$1$1[k$2$1][definition$15$1.mode] = definition$15$1.fromMode[k$2$1];
234
+ const useMode$1 = (definition$16$1) => {
235
+ converters$1$1[definition$16$1.mode] = {
236
+ ...converters$1$1[definition$16$1.mode],
237
+ ...definition$16$1.toMode
238
+ };
239
+ Object.keys(definition$16$1.fromMode || {}).forEach((k$3$1) => {
240
+ if (!converters$1$1[k$3$1]) converters$1$1[k$3$1] = {};
241
+ converters$1$1[k$3$1][definition$16$1.mode] = definition$16$1.fromMode[k$3$1];
242
242
  });
243
- if (!definition$15$1.ranges) definition$15$1.ranges = {};
244
- if (!definition$15$1.difference) definition$15$1.difference = {};
245
- definition$15$1.channels.forEach((channel) => {
246
- if (definition$15$1.ranges[channel] === void 0) definition$15$1.ranges[channel] = [0, 1];
247
- if (!definition$15$1.interpolate[channel]) throw new Error(`Missing interpolator for: ${channel}`);
248
- if (typeof definition$15$1.interpolate[channel] === "function") definition$15$1.interpolate[channel] = { use: definition$15$1.interpolate[channel] };
249
- if (!definition$15$1.interpolate[channel].fixup) definition$15$1.interpolate[channel].fixup = identity$1;
243
+ if (!definition$16$1.ranges) definition$16$1.ranges = {};
244
+ if (!definition$16$1.difference) definition$16$1.difference = {};
245
+ definition$16$1.channels.forEach((channel) => {
246
+ if (definition$16$1.ranges[channel] === void 0) definition$16$1.ranges[channel] = [0, 1];
247
+ if (!definition$16$1.interpolate[channel]) throw new Error(`Missing interpolator for: ${channel}`);
248
+ if (typeof definition$16$1.interpolate[channel] === "function") definition$16$1.interpolate[channel] = { use: definition$16$1.interpolate[channel] };
249
+ if (!definition$16$1.interpolate[channel].fixup) definition$16$1.interpolate[channel].fixup = identity$1;
250
250
  });
251
- modes$1[definition$15$1.mode] = definition$15$1;
252
- (definition$15$1.parse || []).forEach((parser) => {
253
- useParser$1(parser, definition$15$1.mode);
251
+ modes$1[definition$16$1.mode] = definition$16$1;
252
+ (definition$16$1.parse || []).forEach((parser) => {
253
+ useParser$1(parser, definition$16$1.mode);
254
254
  });
255
- return converter_default$1(definition$15$1.mode);
255
+ return converter_default$1(definition$16$1.mode);
256
256
  };
257
257
  const getMode$1 = (mode) => modes$1[mode];
258
258
  const useParser$1 = (parser, mode) => {
@@ -567,7 +567,7 @@ const fixupAlpha$1 = (arr) => {
567
567
  });
568
568
  return some_defined ? res : arr;
569
569
  };
570
- const definition$14$1 = {
570
+ const definition$15$1 = {
571
571
  mode: "rgb",
572
572
  channels: [
573
573
  "r",
@@ -605,7 +605,7 @@ const definition$14$1 = {
605
605
  b: 0
606
606
  }
607
607
  };
608
- var definition_default$12$1 = definition$14$1;
608
+ var definition_default$12$1 = definition$15$1;
609
609
  const linearize$2$1 = (v = 0) => Math.pow(Math.abs(v), 563 / 256) * Math.sign(v);
610
610
  const convertA98ToXyz65$1 = (a98) => {
611
611
  let r$1 = linearize$2$1(a98.r);
@@ -636,7 +636,7 @@ const convertXyz65ToA98$1 = ({ x, y, z, alpha }) => {
636
636
  return res;
637
637
  };
638
638
  var convertXyz65ToA98_default$1 = convertXyz65ToA98$1;
639
- const fn$2$1 = (c$1$1 = 0) => {
639
+ const fn$3$1 = (c$1$1 = 0) => {
640
640
  const abs = Math.abs(c$1$1);
641
641
  if (abs <= .04045) return c$1$1 / 12.92;
642
642
  return (Math.sign(c$1$1) || 1) * Math.pow((abs + .055) / 1.055, 2.4);
@@ -644,9 +644,9 @@ const fn$2$1 = (c$1$1 = 0) => {
644
644
  const convertRgbToLrgb$1 = ({ r: r$1, g, b, alpha }) => {
645
645
  let res = {
646
646
  mode: "lrgb",
647
- r: fn$2$1(r$1),
648
- g: fn$2$1(g),
649
- b: fn$2$1(b)
647
+ r: fn$3$1(r$1),
648
+ g: fn$3$1(g),
649
+ b: fn$3$1(b)
650
650
  };
651
651
  if (alpha !== void 0) res.alpha = alpha;
652
652
  return res;
@@ -664,7 +664,7 @@ const convertRgbToXyz65$1 = (rgb$2) => {
664
664
  return res;
665
665
  };
666
666
  var convertRgbToXyz65_default$1 = convertRgbToXyz65$1;
667
- const fn$1$1 = (c$1$1 = 0) => {
667
+ const fn$2$1 = (c$1$1 = 0) => {
668
668
  const abs = Math.abs(c$1$1);
669
669
  if (abs > .0031308) return (Math.sign(c$1$1) || 1) * (1.055 * Math.pow(abs, 1 / 2.4) - .055);
670
670
  return c$1$1 * 12.92;
@@ -672,9 +672,9 @@ const fn$1$1 = (c$1$1 = 0) => {
672
672
  const convertLrgbToRgb$1 = ({ r: r$1, g, b, alpha }, mode = "rgb") => {
673
673
  let res = {
674
674
  mode,
675
- r: fn$1$1(r$1),
676
- g: fn$1$1(g),
677
- b: fn$1$1(b)
675
+ r: fn$2$1(r$1),
676
+ g: fn$2$1(g),
677
+ b: fn$2$1(b)
678
678
  };
679
679
  if (alpha !== void 0) res.alpha = alpha;
680
680
  return res;
@@ -693,7 +693,7 @@ const convertXyz65ToRgb$1 = ({ x, y, z, alpha }) => {
693
693
  return res;
694
694
  };
695
695
  var convertXyz65ToRgb_default$1 = convertXyz65ToRgb$1;
696
- const definition$13$1 = {
696
+ const definition$14$1 = {
697
697
  ...definition_default$12$1,
698
698
  mode: "a98",
699
699
  parse: ["a98-rgb"],
@@ -707,7 +707,7 @@ const definition$13$1 = {
707
707
  xyz65: convertA98ToXyz65_default$1
708
708
  }
709
709
  };
710
- var definition_default$15 = definition$13$1;
710
+ var definition_default$16 = definition$14$1;
711
711
  const normalizeHue$1 = (hue$2$1) => (hue$2$1 = hue$2$1 % 360) < 0 ? hue$2$1 + 360 : hue$2$1;
712
712
  var normalizeHue_default$1 = normalizeHue$1;
713
713
  function convertHslToRgb$1({ h, s, l, alpha }) {
@@ -827,12 +827,12 @@ function parseHsl$1(color, parsed) {
827
827
  return res;
828
828
  }
829
829
  var parseHsl_default$1 = parseHsl$1;
830
- const hue$2 = (hues, fn$3$1) => {
830
+ const hue$2 = (hues, fn$4$1) => {
831
831
  return hues.map((hue$2$1, idx, arr) => {
832
832
  if (hue$2$1 === void 0) return hue$2$1;
833
833
  let normalized = normalizeHue_default$1(hue$2$1);
834
834
  if (idx === 0 || hues[idx - 1] === void 0) return normalized;
835
- return fn$3$1(normalized - normalizeHue_default$1(arr[idx - 1]));
835
+ return fn$4$1(normalized - normalizeHue_default$1(arr[idx - 1]));
836
836
  }).reduce((acc, curr) => {
837
837
  if (!acc.length || curr === void 0 || acc[acc.length - 1] === void 0) {
838
838
  acc.push(curr);
@@ -879,7 +879,7 @@ const averageAngle$1 = (val) => {
879
879
  let angle = Math.atan2(sum.sin, sum.cos) * 180 / Math.PI;
880
880
  return angle < 0 ? 360 + angle : angle;
881
881
  };
882
- const definition$12$1 = {
882
+ const definition$13$1 = {
883
883
  mode: "hsl",
884
884
  toMode: { rgb: convertHslToRgb$1 },
885
885
  fromMode: { rgb: convertRgbToHsl$1 },
@@ -908,24 +908,24 @@ const definition$12$1 = {
908
908
  difference: { h: differenceHueSaturation$1 },
909
909
  average: { h: averageAngle$1 }
910
910
  };
911
- var definition_default$1$1 = definition$12$1;
911
+ var definition_default$1$1 = definition$13$1;
912
912
  function convertHsvToRgb$1({ h, s, v, alpha }) {
913
913
  h = normalizeHue_default$1(h !== void 0 ? h : 0);
914
914
  if (s === void 0) s = 0;
915
915
  if (v === void 0) v = 0;
916
- let f$1$1 = Math.abs(h / 60 % 2 - 1);
916
+ let f$2$1 = Math.abs(h / 60 % 2 - 1);
917
917
  let res;
918
918
  switch (Math.floor(h / 60)) {
919
919
  case 0:
920
920
  res = {
921
921
  r: v,
922
- g: v * (1 - s * f$1$1),
922
+ g: v * (1 - s * f$2$1),
923
923
  b: v * (1 - s)
924
924
  };
925
925
  break;
926
926
  case 1:
927
927
  res = {
928
- r: v * (1 - s * f$1$1),
928
+ r: v * (1 - s * f$2$1),
929
929
  g: v,
930
930
  b: v * (1 - s)
931
931
  };
@@ -934,19 +934,19 @@ function convertHsvToRgb$1({ h, s, v, alpha }) {
934
934
  res = {
935
935
  r: v * (1 - s),
936
936
  g: v,
937
- b: v * (1 - s * f$1$1)
937
+ b: v * (1 - s * f$2$1)
938
938
  };
939
939
  break;
940
940
  case 3:
941
941
  res = {
942
942
  r: v * (1 - s),
943
- g: v * (1 - s * f$1$1),
943
+ g: v * (1 - s * f$2$1),
944
944
  b: v
945
945
  };
946
946
  break;
947
947
  case 4:
948
948
  res = {
949
- r: v * (1 - s * f$1$1),
949
+ r: v * (1 - s * f$2$1),
950
950
  g: v * (1 - s),
951
951
  b: v
952
952
  };
@@ -955,7 +955,7 @@ function convertHsvToRgb$1({ h, s, v, alpha }) {
955
955
  res = {
956
956
  r: v,
957
957
  g: v * (1 - s),
958
- b: v * (1 - s * f$1$1)
958
+ b: v * (1 - s * f$2$1)
959
959
  };
960
960
  break;
961
961
  default: res = {
@@ -982,7 +982,7 @@ function convertRgbToHsv$1({ r: r$1, g, b, alpha }) {
982
982
  if (alpha !== void 0) res.alpha = alpha;
983
983
  return res;
984
984
  }
985
- const definition$11$1 = {
985
+ const definition$12$1 = {
986
986
  mode: "hsv",
987
987
  toMode: { rgb: convertHsvToRgb$1 },
988
988
  parse: ["--hsv"],
@@ -1011,7 +1011,7 @@ const definition$11$1 = {
1011
1011
  difference: { h: differenceHueSaturation$1 },
1012
1012
  average: { h: averageAngle$1 }
1013
1013
  };
1014
- var definition_default$2$1 = definition$11$1;
1014
+ var definition_default$15$1 = definition$12$1;
1015
1015
  function convertHwbToRgb$1({ h, w, b, alpha }) {
1016
1016
  if (w === void 0) w = 0;
1017
1017
  if (b === void 0) b = 0;
@@ -1061,7 +1061,7 @@ function ParseHwb$1(color, parsed) {
1061
1061
  return res;
1062
1062
  }
1063
1063
  var parseHwb_default$1 = ParseHwb$1;
1064
- const definition$10$1 = {
1064
+ const definition$11$1 = {
1065
1065
  mode: "hwb",
1066
1066
  toMode: { rgb: convertHwbToRgb$1 },
1067
1067
  fromMode: { rgb: convertRgbToHwb$1 },
@@ -1090,9 +1090,9 @@ const definition$10$1 = {
1090
1090
  difference: { h: differenceHueNaive$1 },
1091
1091
  average: { h: averageAngle$1 }
1092
1092
  };
1093
- var definition_default$3$1 = definition$10$1;
1094
- const k$2 = Math.pow(29, 3) / Math.pow(3, 3);
1095
- const e$2 = Math.pow(6, 3) / Math.pow(29, 3);
1093
+ var definition_default$2$1 = definition$11$1;
1094
+ const k$1$1 = Math.pow(29, 3) / Math.pow(3, 3);
1095
+ const e$1$1 = Math.pow(6, 3) / Math.pow(29, 3);
1096
1096
  const D50$1 = {
1097
1097
  X: .3457 / .3585,
1098
1098
  Y: 1,
@@ -1103,9 +1103,9 @@ const D65$1 = {
1103
1103
  Y: 1,
1104
1104
  Z: .3583 / .329
1105
1105
  };
1106
- const k$1$1 = Math.pow(29, 3) / Math.pow(3, 3);
1107
- const e$1$1 = Math.pow(6, 3) / Math.pow(29, 3);
1108
- let fn$3 = (v) => Math.pow(v, 3) > e$2 ? Math.pow(v, 3) : (116 * v - 16) / k$2;
1106
+ const k$2$1 = Math.pow(29, 3) / Math.pow(3, 3);
1107
+ const e$2$1 = Math.pow(6, 3) / Math.pow(29, 3);
1108
+ let fn$1$1 = (v) => Math.pow(v, 3) > e$1$1 ? Math.pow(v, 3) : (116 * v - 16) / k$1$1;
1109
1109
  const convertLabToXyz50$1 = ({ l, a, b, alpha }) => {
1110
1110
  if (l === void 0) l = 0;
1111
1111
  if (a === void 0) a = 0;
@@ -1115,9 +1115,9 @@ const convertLabToXyz50$1 = ({ l, a, b, alpha }) => {
1115
1115
  let fz = fy - b / 200;
1116
1116
  let res = {
1117
1117
  mode: "xyz50",
1118
- x: fn$3(fx) * D50$1.X,
1119
- y: fn$3(fy) * D50$1.Y,
1120
- z: fn$3(fz) * D50$1.Z
1118
+ x: fn$1$1(fx) * D50$1.X,
1119
+ y: fn$1$1(fy) * D50$1.Y,
1120
+ z: fn$1$1(fz) * D50$1.Z
1121
1121
  };
1122
1122
  if (alpha !== void 0) res.alpha = alpha;
1123
1123
  return res;
@@ -1150,14 +1150,14 @@ const convertRgbToXyz50$1 = (rgb$2) => {
1150
1150
  return res;
1151
1151
  };
1152
1152
  var convertRgbToXyz50_default$1 = convertRgbToXyz50$1;
1153
- const f$1 = (value) => value > e$2 ? Math.cbrt(value) : (k$2 * value + 16) / 116;
1153
+ const f$1$1 = (value) => value > e$1$1 ? Math.cbrt(value) : (k$1$1 * value + 16) / 116;
1154
1154
  const convertXyz50ToLab$1 = ({ x, y, z, alpha }) => {
1155
1155
  if (x === void 0) x = 0;
1156
1156
  if (y === void 0) y = 0;
1157
1157
  if (z === void 0) z = 0;
1158
- let f0 = f$1(x / D50$1.X);
1159
- let f1 = f$1(y / D50$1.Y);
1160
- let f2 = f$1(z / D50$1.Z);
1158
+ let f0 = f$1$1(x / D50$1.X);
1159
+ let f1 = f$1$1(y / D50$1.Y);
1160
+ let f2 = f$1$1(z / D50$1.Z);
1161
1161
  let res = {
1162
1162
  mode: "lab",
1163
1163
  l: 116 * f1 - 16,
@@ -1186,7 +1186,7 @@ function parseLab$1(color, parsed) {
1186
1186
  return res;
1187
1187
  }
1188
1188
  var parseLab_default$1 = parseLab$1;
1189
- const definition$9$1 = {
1189
+ const definition$10$1 = {
1190
1190
  mode: "lab",
1191
1191
  toMode: {
1192
1192
  xyz50: convertLabToXyz50_default$1,
@@ -1219,6 +1219,72 @@ const definition$9$1 = {
1219
1219
  }
1220
1220
  }
1221
1221
  };
1222
+ var definition_default$3$1 = definition$10$1;
1223
+ const k$3 = Math.pow(29, 3) / Math.pow(3, 3);
1224
+ const e$3 = Math.pow(6, 3) / Math.pow(29, 3);
1225
+ let fn$4 = (v) => Math.pow(v, 3) > e$3 ? Math.pow(v, 3) : (116 * v - 16) / k$3;
1226
+ const convertLab65ToXyz65$1 = ({ l, a, b, alpha }) => {
1227
+ if (l === void 0) l = 0;
1228
+ if (a === void 0) a = 0;
1229
+ if (b === void 0) b = 0;
1230
+ let fy = (l + 16) / 116;
1231
+ let fx = a / 500 + fy;
1232
+ let fz = fy - b / 200;
1233
+ let res = {
1234
+ mode: "xyz65",
1235
+ x: fn$4(fx) * D65$1.X,
1236
+ y: fn$4(fy) * D65$1.Y,
1237
+ z: fn$4(fz) * D65$1.Z
1238
+ };
1239
+ if (alpha !== void 0) res.alpha = alpha;
1240
+ return res;
1241
+ };
1242
+ var convertLab65ToXyz65_default$1 = convertLab65ToXyz65$1;
1243
+ const convertLab65ToRgb$1 = (lab) => convertXyz65ToRgb_default$1(convertLab65ToXyz65_default$1(lab));
1244
+ var convertLab65ToRgb_default$1 = convertLab65ToRgb$1;
1245
+ const f$2 = (value) => value > e$3 ? Math.cbrt(value) : (k$3 * value + 16) / 116;
1246
+ const convertXyz65ToLab65$1 = ({ x, y, z, alpha }) => {
1247
+ if (x === void 0) x = 0;
1248
+ if (y === void 0) y = 0;
1249
+ if (z === void 0) z = 0;
1250
+ let f0 = f$2(x / D65$1.X);
1251
+ let f1 = f$2(y / D65$1.Y);
1252
+ let f2 = f$2(z / D65$1.Z);
1253
+ let res = {
1254
+ mode: "lab65",
1255
+ l: 116 * f1 - 16,
1256
+ a: 500 * (f0 - f1),
1257
+ b: 200 * (f1 - f2)
1258
+ };
1259
+ if (alpha !== void 0) res.alpha = alpha;
1260
+ return res;
1261
+ };
1262
+ var convertXyz65ToLab65_default$1 = convertXyz65ToLab65$1;
1263
+ const convertRgbToLab65$1 = (rgb$2) => {
1264
+ let res = convertXyz65ToLab65_default$1(convertRgbToXyz65_default$1(rgb$2));
1265
+ if (rgb$2.r === rgb$2.b && rgb$2.b === rgb$2.g) res.a = res.b = 0;
1266
+ return res;
1267
+ };
1268
+ var convertRgbToLab65_default$1 = convertRgbToLab65$1;
1269
+ const definition$9$1 = {
1270
+ ...definition_default$3$1,
1271
+ mode: "lab65",
1272
+ parse: ["--lab-d65"],
1273
+ serialize: "--lab-d65",
1274
+ toMode: {
1275
+ xyz65: convertLab65ToXyz65_default$1,
1276
+ rgb: convertLab65ToRgb_default$1
1277
+ },
1278
+ fromMode: {
1279
+ xyz65: convertXyz65ToLab65_default$1,
1280
+ rgb: convertRgbToLab65_default$1
1281
+ },
1282
+ ranges: {
1283
+ l: [0, 100],
1284
+ a: [-86.182, 98.234],
1285
+ b: [-107.86, 94.477]
1286
+ }
1287
+ };
1222
1288
  var definition_default$4$1 = definition$9$1;
1223
1289
  const convertLabToLch$1 = ({ l, a, b, alpha }, mode = "lch") => {
1224
1290
  if (a === void 0) a = 0;
@@ -1366,7 +1432,7 @@ function parseOklab$1(color, parsed) {
1366
1432
  }
1367
1433
  var parseOklab_default$1 = parseOklab$1;
1368
1434
  const definition$6$1 = {
1369
- ...definition_default$4$1,
1435
+ ...definition_default$3$1,
1370
1436
  mode: "oklab",
1371
1437
  toMode: {
1372
1438
  lrgb: convertOklabToLrgb_default$1,
@@ -1636,7 +1702,7 @@ const convertXyz50ToXyz65$1 = (xyz50) => {
1636
1702
  return res;
1637
1703
  };
1638
1704
  var convertXyz50ToXyz65_default$1 = convertXyz50ToXyz65$1;
1639
- const definition$15 = {
1705
+ const definition$16 = {
1640
1706
  mode: "xyz65",
1641
1707
  toMode: {
1642
1708
  rgb: convertXyz65ToRgb_default$1,
@@ -1669,7 +1735,172 @@ const definition$15 = {
1669
1735
  }
1670
1736
  }
1671
1737
  };
1672
- var definition_default$14$1 = definition$15;
1738
+ var definition_default$14$1 = definition$16;
1739
+ function toe$1(x) {
1740
+ const k_1 = .206;
1741
+ const k_2 = .03;
1742
+ const k_3 = (1 + k_1) / (1 + k_2);
1743
+ return .5 * (k_3 * x - k_1 + Math.sqrt((k_3 * x - k_1) * (k_3 * x - k_1) + 4 * k_2 * k_3 * x));
1744
+ }
1745
+ function toe_inv$1(x) {
1746
+ const k_1 = .206;
1747
+ const k_2 = .03;
1748
+ const k_3 = (1 + k_1) / (1 + k_2);
1749
+ return (x * x + k_1 * x) / (k_3 * (x + k_2));
1750
+ }
1751
+ function compute_max_saturation$1(a, b) {
1752
+ let k0, k1, k2, k3, k4, wl, wm, ws;
1753
+ if (-1.88170328 * a - .80936493 * b > 1) {
1754
+ k0 = 1.19086277;
1755
+ k1 = 1.76576728;
1756
+ k2 = .59662641;
1757
+ k3 = .75515197;
1758
+ k4 = .56771245;
1759
+ wl = 4.0767416621;
1760
+ wm = -3.3077115913;
1761
+ ws = .2309699292;
1762
+ } else if (1.81444104 * a - 1.19445276 * b > 1) {
1763
+ k0 = .73956515;
1764
+ k1 = -.45954404;
1765
+ k2 = .08285427;
1766
+ k3 = .1254107;
1767
+ k4 = .14503204;
1768
+ wl = -1.2684380046;
1769
+ wm = 2.6097574011;
1770
+ ws = -.3413193965;
1771
+ } else {
1772
+ k0 = 1.35733652;
1773
+ k1 = -.00915799;
1774
+ k2 = -1.1513021;
1775
+ k3 = -.50559606;
1776
+ k4 = .00692167;
1777
+ wl = -.0041960863;
1778
+ wm = -.7034186147;
1779
+ ws = 1.707614701;
1780
+ }
1781
+ let S = k0 + k1 * a + k2 * b + k3 * a * a + k4 * a * b;
1782
+ let k_l = .3963377774 * a + .2158037573 * b;
1783
+ let k_m = -.1055613458 * a - .0638541728 * b;
1784
+ let k_s = -.0894841775 * a - 1.291485548 * b;
1785
+ {
1786
+ let l_ = 1 + S * k_l;
1787
+ let m_ = 1 + S * k_m;
1788
+ let s_ = 1 + S * k_s;
1789
+ let l = l_ * l_ * l_;
1790
+ let m = m_ * m_ * m_;
1791
+ let s = s_ * s_ * s_;
1792
+ let l_dS = 3 * k_l * l_ * l_;
1793
+ let m_dS = 3 * k_m * m_ * m_;
1794
+ let s_dS = 3 * k_s * s_ * s_;
1795
+ let l_dS2 = 6 * k_l * k_l * l_;
1796
+ let m_dS2 = 6 * k_m * k_m * m_;
1797
+ let s_dS2 = 6 * k_s * k_s * s_;
1798
+ let f$2$1 = wl * l + wm * m + ws * s;
1799
+ let f1 = wl * l_dS + wm * m_dS + ws * s_dS;
1800
+ let f2 = wl * l_dS2 + wm * m_dS2 + ws * s_dS2;
1801
+ S = S - f$2$1 * f1 / (f1 * f1 - .5 * f$2$1 * f2);
1802
+ }
1803
+ return S;
1804
+ }
1805
+ function find_cusp$1(a, b) {
1806
+ let S_cusp = compute_max_saturation$1(a, b);
1807
+ let rgb$2 = convertOklabToLrgb_default$1({
1808
+ l: 1,
1809
+ a: S_cusp * a,
1810
+ b: S_cusp * b
1811
+ });
1812
+ let L_cusp = Math.cbrt(1 / Math.max(rgb$2.r, rgb$2.g, rgb$2.b));
1813
+ let C_cusp = L_cusp * S_cusp;
1814
+ return [L_cusp, C_cusp];
1815
+ }
1816
+ function get_ST_max$1(a_, b_, cusp = null) {
1817
+ if (!cusp) cusp = find_cusp$1(a_, b_);
1818
+ let L = cusp[0];
1819
+ let C = cusp[1];
1820
+ return [C / L, C / (1 - L)];
1821
+ }
1822
+ function convertOklabToOkhsv$1(lab) {
1823
+ let l = lab.l !== void 0 ? lab.l : 0;
1824
+ let a = lab.a !== void 0 ? lab.a : 0;
1825
+ let b = lab.b !== void 0 ? lab.b : 0;
1826
+ let c$1$1 = Math.sqrt(a * a + b * b);
1827
+ let a_ = c$1$1 ? a / c$1$1 : 1;
1828
+ let b_ = c$1$1 ? b / c$1$1 : 1;
1829
+ let [S_max, T] = get_ST_max$1(a_, b_);
1830
+ let S_0 = .5;
1831
+ let k$3$1 = 1 - S_0 / S_max;
1832
+ let t = T / (c$1$1 + l * T);
1833
+ let L_v = t * l;
1834
+ let C_v = t * c$1$1;
1835
+ let L_vt = toe_inv$1(L_v);
1836
+ let C_vt = C_v * L_vt / L_v;
1837
+ let rgb_scale = convertOklabToLrgb_default$1({
1838
+ l: L_vt,
1839
+ a: a_ * C_vt,
1840
+ b: b_ * C_vt
1841
+ });
1842
+ let scale_L = Math.cbrt(1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0));
1843
+ l = l / scale_L;
1844
+ c$1$1 = c$1$1 / scale_L * toe$1(l) / l;
1845
+ l = toe$1(l);
1846
+ const ret = {
1847
+ mode: "okhsv",
1848
+ s: c$1$1 ? (S_0 + T) * C_v / (T * S_0 + T * k$3$1 * C_v) : 0,
1849
+ v: l ? l / L_v : 0
1850
+ };
1851
+ if (ret.s) ret.h = normalizeHue_default$1(Math.atan2(b, a) * 180 / Math.PI);
1852
+ if (lab.alpha !== void 0) ret.alpha = lab.alpha;
1853
+ return ret;
1854
+ }
1855
+ function convertOkhsvToOklab$1(hsv) {
1856
+ const ret = { mode: "oklab" };
1857
+ if (hsv.alpha !== void 0) ret.alpha = hsv.alpha;
1858
+ const h = hsv.h !== void 0 ? hsv.h : 0;
1859
+ const s = hsv.s !== void 0 ? hsv.s : 0;
1860
+ const v = hsv.v !== void 0 ? hsv.v : 0;
1861
+ const a_ = Math.cos(h / 180 * Math.PI);
1862
+ const b_ = Math.sin(h / 180 * Math.PI);
1863
+ const [S_max, T] = get_ST_max$1(a_, b_);
1864
+ const S_0 = .5;
1865
+ const k$3$1 = 1 - S_0 / S_max;
1866
+ const L_v = 1 - s * S_0 / (S_0 + T - T * k$3$1 * s);
1867
+ const C_v = s * T * S_0 / (S_0 + T - T * k$3$1 * s);
1868
+ const L_vt = toe_inv$1(L_v);
1869
+ const C_vt = C_v * L_vt / L_v;
1870
+ const rgb_scale = convertOklabToLrgb_default$1({
1871
+ l: L_vt,
1872
+ a: a_ * C_vt,
1873
+ b: b_ * C_vt
1874
+ });
1875
+ const scale_L = Math.cbrt(1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0));
1876
+ const L_new = toe_inv$1(v * L_v);
1877
+ const C = C_v * L_new / L_v;
1878
+ ret.l = L_new * scale_L;
1879
+ ret.a = C * a_ * scale_L;
1880
+ ret.b = C * b_ * scale_L;
1881
+ return ret;
1882
+ }
1883
+ const modeOkhsv$1 = {
1884
+ ...definition_default$15$1,
1885
+ mode: "okhsv",
1886
+ channels: [
1887
+ "h",
1888
+ "s",
1889
+ "v",
1890
+ "alpha"
1891
+ ],
1892
+ parse: ["--okhsv"],
1893
+ serialize: "--okhsv",
1894
+ fromMode: {
1895
+ oklab: convertOklabToOkhsv$1,
1896
+ rgb: (c$1$1) => convertOklabToOkhsv$1(convertRgbToOklab_default$1(c$1$1))
1897
+ },
1898
+ toMode: {
1899
+ oklab: convertOkhsvToOklab$1,
1900
+ rgb: (c$1$1) => convertOklabToRgb_default$1(convertOkhsvToOklab$1(c$1$1))
1901
+ }
1902
+ };
1903
+ var modeOkhsv_default$1 = modeOkhsv$1;
1673
1904
  const r = (value, precision) => Math.round(value * (precision = Math.pow(10, precision))) / precision;
1674
1905
  const round = (precision = 4) => (value) => typeof value === "number" ? r(value, precision) : value;
1675
1906
  var round_default = round;
@@ -1678,15 +1909,16 @@ const rgb$1 = converter_default$1("rgb");
1678
1909
  const hsl = converter_default$1("hsl");
1679
1910
  const rgb = converter_default$1("rgb");
1680
1911
  const converters$2 = {
1681
- a98: useMode$1(definition_default$15),
1912
+ a98: useMode$1(definition_default$16),
1682
1913
  hsl: useMode$1(definition_default$1$1),
1683
- hsv: useMode$1(definition_default$2$1),
1684
- hwb: useMode$1(definition_default$3$1),
1685
- lab: useMode$1(definition_default$4$1),
1914
+ hwb: useMode$1(definition_default$2$1),
1915
+ lab: useMode$1(definition_default$3$1),
1916
+ lab65: useMode$1(definition_default$4$1),
1686
1917
  lch: useMode$1(definition_default$5$1),
1687
1918
  lrgb: useMode$1(definition_default$6$1),
1688
1919
  oklab: useMode$1(definition_default$7$1),
1689
1920
  oklch: useMode$1(definition_default$8$1),
1921
+ okhsv: useMode$1(modeOkhsv_default$1),
1690
1922
  p3: useMode$1(definition_default$9$1),
1691
1923
  prophoto: useMode$1(definition_default$10$1),
1692
1924
  rec2020: useMode$1(definition_default$11$1),
@@ -1954,28 +2186,28 @@ const modes = {};
1954
2186
  const parsers = [];
1955
2187
  const colorProfiles = {};
1956
2188
  const identity = (v) => v;
1957
- const useMode = (definition$16) => {
1958
- converters$1[definition$16.mode] = {
1959
- ...converters$1[definition$16.mode],
1960
- ...definition$16.toMode
1961
- };
1962
- Object.keys(definition$16.fromMode || {}).forEach((k$3) => {
1963
- if (!converters$1[k$3]) converters$1[k$3] = {};
1964
- converters$1[k$3][definition$16.mode] = definition$16.fromMode[k$3];
2189
+ const useMode = (definition$17) => {
2190
+ converters$1[definition$17.mode] = {
2191
+ ...converters$1[definition$17.mode],
2192
+ ...definition$17.toMode
2193
+ };
2194
+ Object.keys(definition$17.fromMode || {}).forEach((k$4) => {
2195
+ if (!converters$1[k$4]) converters$1[k$4] = {};
2196
+ converters$1[k$4][definition$17.mode] = definition$17.fromMode[k$4];
1965
2197
  });
1966
- if (!definition$16.ranges) definition$16.ranges = {};
1967
- if (!definition$16.difference) definition$16.difference = {};
1968
- definition$16.channels.forEach((channel) => {
1969
- if (definition$16.ranges[channel] === void 0) definition$16.ranges[channel] = [0, 1];
1970
- if (!definition$16.interpolate[channel]) throw new Error(`Missing interpolator for: ${channel}`);
1971
- if (typeof definition$16.interpolate[channel] === "function") definition$16.interpolate[channel] = { use: definition$16.interpolate[channel] };
1972
- if (!definition$16.interpolate[channel].fixup) definition$16.interpolate[channel].fixup = identity;
2198
+ if (!definition$17.ranges) definition$17.ranges = {};
2199
+ if (!definition$17.difference) definition$17.difference = {};
2200
+ definition$17.channels.forEach((channel) => {
2201
+ if (definition$17.ranges[channel] === void 0) definition$17.ranges[channel] = [0, 1];
2202
+ if (!definition$17.interpolate[channel]) throw new Error(`Missing interpolator for: ${channel}`);
2203
+ if (typeof definition$17.interpolate[channel] === "function") definition$17.interpolate[channel] = { use: definition$17.interpolate[channel] };
2204
+ if (!definition$17.interpolate[channel].fixup) definition$17.interpolate[channel].fixup = identity;
1973
2205
  });
1974
- modes[definition$16.mode] = definition$16;
1975
- (definition$16.parse || []).forEach((parser) => {
1976
- useParser(parser, definition$16.mode);
2206
+ modes[definition$17.mode] = definition$17;
2207
+ (definition$17.parse || []).forEach((parser) => {
2208
+ useParser(parser, definition$17.mode);
1977
2209
  });
1978
- return converter_default(definition$16.mode);
2210
+ return converter_default(definition$17.mode);
1979
2211
  };
1980
2212
  const getMode = (mode) => modes[mode];
1981
2213
  const useParser = (parser, mode) => {
@@ -2314,7 +2546,7 @@ const fixupAlpha = (arr) => {
2314
2546
 
2315
2547
  //#endregion
2316
2548
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rgb/definition.js
2317
- const definition$14 = {
2549
+ const definition$15 = {
2318
2550
  mode: "rgb",
2319
2551
  channels: [
2320
2552
  "r",
@@ -2352,7 +2584,7 @@ const definition$14 = {
2352
2584
  b: 0
2353
2585
  }
2354
2586
  };
2355
- var definition_default$12 = definition$14;
2587
+ var definition_default$12 = definition$15;
2356
2588
 
2357
2589
  //#endregion
2358
2590
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/a98/convertA98ToXyz65.js
@@ -2392,7 +2624,7 @@ var convertXyz65ToA98_default = convertXyz65ToA98;
2392
2624
 
2393
2625
  //#endregion
2394
2626
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lrgb/convertRgbToLrgb.js
2395
- const fn$2 = (c$2 = 0) => {
2627
+ const fn$3 = (c$2 = 0) => {
2396
2628
  const abs = Math.abs(c$2);
2397
2629
  if (abs <= .04045) return c$2 / 12.92;
2398
2630
  return (Math.sign(c$2) || 1) * Math.pow((abs + .055) / 1.055, 2.4);
@@ -2400,9 +2632,9 @@ const fn$2 = (c$2 = 0) => {
2400
2632
  const convertRgbToLrgb = ({ r: r$1, g, b, alpha }) => {
2401
2633
  let res = {
2402
2634
  mode: "lrgb",
2403
- r: fn$2(r$1),
2404
- g: fn$2(g),
2405
- b: fn$2(b)
2635
+ r: fn$3(r$1),
2636
+ g: fn$3(g),
2637
+ b: fn$3(b)
2406
2638
  };
2407
2639
  if (alpha !== void 0) res.alpha = alpha;
2408
2640
  return res;
@@ -2426,7 +2658,7 @@ var convertRgbToXyz65_default = convertRgbToXyz65;
2426
2658
 
2427
2659
  //#endregion
2428
2660
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lrgb/convertLrgbToRgb.js
2429
- const fn$1 = (c$2 = 0) => {
2661
+ const fn$2 = (c$2 = 0) => {
2430
2662
  const abs = Math.abs(c$2);
2431
2663
  if (abs > .0031308) return (Math.sign(c$2) || 1) * (1.055 * Math.pow(abs, 1 / 2.4) - .055);
2432
2664
  return c$2 * 12.92;
@@ -2434,9 +2666,9 @@ const fn$1 = (c$2 = 0) => {
2434
2666
  const convertLrgbToRgb = ({ r: r$1, g, b, alpha }, mode = "rgb") => {
2435
2667
  let res = {
2436
2668
  mode,
2437
- r: fn$1(r$1),
2438
- g: fn$1(g),
2439
- b: fn$1(b)
2669
+ r: fn$2(r$1),
2670
+ g: fn$2(g),
2671
+ b: fn$2(b)
2440
2672
  };
2441
2673
  if (alpha !== void 0) res.alpha = alpha;
2442
2674
  return res;
@@ -2461,7 +2693,7 @@ var convertXyz65ToRgb_default = convertXyz65ToRgb;
2461
2693
 
2462
2694
  //#endregion
2463
2695
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/a98/definition.js
2464
- const definition$13 = {
2696
+ const definition$14 = {
2465
2697
  ...definition_default$12,
2466
2698
  mode: "a98",
2467
2699
  parse: ["a98-rgb"],
@@ -2475,7 +2707,7 @@ const definition$13 = {
2475
2707
  xyz65: convertA98ToXyz65_default
2476
2708
  }
2477
2709
  };
2478
- var definition_default = definition$13;
2710
+ var definition_default = definition$14;
2479
2711
 
2480
2712
  //#endregion
2481
2713
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/util/normalizeHue.js
@@ -2616,12 +2848,12 @@ var parseHsl_default = parseHsl;
2616
2848
 
2617
2849
  //#endregion
2618
2850
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/fixup/hue.js
2619
- const hue = (hues, fn$4) => {
2851
+ const hue = (hues, fn$5) => {
2620
2852
  return hues.map((hue$3, idx, arr) => {
2621
2853
  if (hue$3 === void 0) return hue$3;
2622
2854
  let normalized = normalizeHue_default(hue$3);
2623
2855
  if (idx === 0 || hues[idx - 1] === void 0) return normalized;
2624
- return fn$4(normalized - normalizeHue_default(arr[idx - 1]));
2856
+ return fn$5(normalized - normalizeHue_default(arr[idx - 1]));
2625
2857
  }).reduce((acc, curr) => {
2626
2858
  if (!acc.length || curr === void 0 || acc[acc.length - 1] === void 0) {
2627
2859
  acc.push(curr);
@@ -2677,7 +2909,7 @@ const averageAngle = (val) => {
2677
2909
 
2678
2910
  //#endregion
2679
2911
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsl/definition.js
2680
- const definition$12 = {
2912
+ const definition$13 = {
2681
2913
  mode: "hsl",
2682
2914
  toMode: { rgb: convertHslToRgb },
2683
2915
  fromMode: { rgb: convertRgbToHsl },
@@ -2706,7 +2938,7 @@ const definition$12 = {
2706
2938
  difference: { h: differenceHueSaturation },
2707
2939
  average: { h: averageAngle }
2708
2940
  };
2709
- var definition_default$1 = definition$12;
2941
+ var definition_default$1 = definition$13;
2710
2942
 
2711
2943
  //#endregion
2712
2944
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsv/convertHsvToRgb.js
@@ -2714,19 +2946,19 @@ function convertHsvToRgb({ h, s, v, alpha }) {
2714
2946
  h = normalizeHue_default(h !== void 0 ? h : 0);
2715
2947
  if (s === void 0) s = 0;
2716
2948
  if (v === void 0) v = 0;
2717
- let f$2 = Math.abs(h / 60 % 2 - 1);
2949
+ let f$3 = Math.abs(h / 60 % 2 - 1);
2718
2950
  let res;
2719
2951
  switch (Math.floor(h / 60)) {
2720
2952
  case 0:
2721
2953
  res = {
2722
2954
  r: v,
2723
- g: v * (1 - s * f$2),
2955
+ g: v * (1 - s * f$3),
2724
2956
  b: v * (1 - s)
2725
2957
  };
2726
2958
  break;
2727
2959
  case 1:
2728
2960
  res = {
2729
- r: v * (1 - s * f$2),
2961
+ r: v * (1 - s * f$3),
2730
2962
  g: v,
2731
2963
  b: v * (1 - s)
2732
2964
  };
@@ -2735,19 +2967,19 @@ function convertHsvToRgb({ h, s, v, alpha }) {
2735
2967
  res = {
2736
2968
  r: v * (1 - s),
2737
2969
  g: v,
2738
- b: v * (1 - s * f$2)
2970
+ b: v * (1 - s * f$3)
2739
2971
  };
2740
2972
  break;
2741
2973
  case 3:
2742
2974
  res = {
2743
2975
  r: v * (1 - s),
2744
- g: v * (1 - s * f$2),
2976
+ g: v * (1 - s * f$3),
2745
2977
  b: v
2746
2978
  };
2747
2979
  break;
2748
2980
  case 4:
2749
2981
  res = {
2750
- r: v * (1 - s * f$2),
2982
+ r: v * (1 - s * f$3),
2751
2983
  g: v * (1 - s),
2752
2984
  b: v
2753
2985
  };
@@ -2756,7 +2988,7 @@ function convertHsvToRgb({ h, s, v, alpha }) {
2756
2988
  res = {
2757
2989
  r: v,
2758
2990
  g: v * (1 - s),
2759
- b: v * (1 - s * f$2)
2991
+ b: v * (1 - s * f$3)
2760
2992
  };
2761
2993
  break;
2762
2994
  default: res = {
@@ -2789,7 +3021,7 @@ function convertRgbToHsv({ r: r$1, g, b, alpha }) {
2789
3021
 
2790
3022
  //#endregion
2791
3023
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsv/definition.js
2792
- const definition$11 = {
3024
+ const definition$12 = {
2793
3025
  mode: "hsv",
2794
3026
  toMode: { rgb: convertHsvToRgb },
2795
3027
  parse: ["--hsv"],
@@ -2818,7 +3050,7 @@ const definition$11 = {
2818
3050
  difference: { h: differenceHueSaturation },
2819
3051
  average: { h: averageAngle }
2820
3052
  };
2821
- var definition_default$2 = definition$11;
3053
+ var definition_default$15 = definition$12;
2822
3054
 
2823
3055
  //#endregion
2824
3056
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hwb/convertHwbToRgb.js
@@ -2880,7 +3112,7 @@ var parseHwb_default = ParseHwb;
2880
3112
 
2881
3113
  //#endregion
2882
3114
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hwb/definition.js
2883
- const definition$10 = {
3115
+ const definition$11 = {
2884
3116
  mode: "hwb",
2885
3117
  toMode: { rgb: convertHwbToRgb },
2886
3118
  fromMode: { rgb: convertRgbToHwb },
@@ -2909,12 +3141,12 @@ const definition$10 = {
2909
3141
  difference: { h: differenceHueNaive },
2910
3142
  average: { h: averageAngle }
2911
3143
  };
2912
- var definition_default$3 = definition$10;
3144
+ var definition_default$2 = definition$11;
2913
3145
 
2914
3146
  //#endregion
2915
3147
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz50/constants.js
2916
- const k = Math.pow(29, 3) / Math.pow(3, 3);
2917
- const e = Math.pow(6, 3) / Math.pow(29, 3);
3148
+ const k$1 = Math.pow(29, 3) / Math.pow(3, 3);
3149
+ const e$1 = Math.pow(6, 3) / Math.pow(29, 3);
2918
3150
 
2919
3151
  //#endregion
2920
3152
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/constants.js
@@ -2928,12 +3160,12 @@ const D65 = {
2928
3160
  Y: 1,
2929
3161
  Z: .3583 / .329
2930
3162
  };
2931
- const k$1 = Math.pow(29, 3) / Math.pow(3, 3);
2932
- const e$1 = Math.pow(6, 3) / Math.pow(29, 3);
3163
+ const k$2 = Math.pow(29, 3) / Math.pow(3, 3);
3164
+ const e$2 = Math.pow(6, 3) / Math.pow(29, 3);
2933
3165
 
2934
3166
  //#endregion
2935
3167
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab/convertLabToXyz50.js
2936
- let fn = (v) => Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k;
3168
+ let fn$1 = (v) => Math.pow(v, 3) > e$1 ? Math.pow(v, 3) : (116 * v - 16) / k$1;
2937
3169
  const convertLabToXyz50 = ({ l, a, b, alpha }) => {
2938
3170
  if (l === void 0) l = 0;
2939
3171
  if (a === void 0) a = 0;
@@ -2943,9 +3175,9 @@ const convertLabToXyz50 = ({ l, a, b, alpha }) => {
2943
3175
  let fz = fy - b / 200;
2944
3176
  let res = {
2945
3177
  mode: "xyz50",
2946
- x: fn(fx) * D50.X,
2947
- y: fn(fy) * D50.Y,
2948
- z: fn(fz) * D50.Z
3178
+ x: fn$1(fx) * D50.X,
3179
+ y: fn$1(fy) * D50.Y,
3180
+ z: fn$1(fz) * D50.Z
2949
3181
  };
2950
3182
  if (alpha !== void 0) res.alpha = alpha;
2951
3183
  return res;
@@ -2990,14 +3222,14 @@ var convertRgbToXyz50_default = convertRgbToXyz50;
2990
3222
 
2991
3223
  //#endregion
2992
3224
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab/convertXyz50ToLab.js
2993
- const f = (value) => value > e ? Math.cbrt(value) : (k * value + 16) / 116;
3225
+ const f$1 = (value) => value > e$1 ? Math.cbrt(value) : (k$1 * value + 16) / 116;
2994
3226
  const convertXyz50ToLab = ({ x, y, z, alpha }) => {
2995
3227
  if (x === void 0) x = 0;
2996
3228
  if (y === void 0) y = 0;
2997
3229
  if (z === void 0) z = 0;
2998
- let f0 = f(x / D50.X);
2999
- let f1 = f(y / D50.Y);
3000
- let f2 = f(z / D50.Z);
3230
+ let f0 = f$1(x / D50.X);
3231
+ let f1 = f$1(y / D50.Y);
3232
+ let f2 = f$1(z / D50.Z);
3001
3233
  let res = {
3002
3234
  mode: "lab",
3003
3235
  l: 116 * f1 - 16,
@@ -3035,7 +3267,7 @@ var parseLab_default = parseLab;
3035
3267
 
3036
3268
  //#endregion
3037
3269
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab/definition.js
3038
- const definition$9 = {
3270
+ const definition$10 = {
3039
3271
  mode: "lab",
3040
3272
  toMode: {
3041
3273
  xyz50: convertLabToXyz50_default,
@@ -3068,6 +3300,90 @@ const definition$9 = {
3068
3300
  }
3069
3301
  }
3070
3302
  };
3303
+ var definition_default$3 = definition$10;
3304
+
3305
+ //#endregion
3306
+ //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz65/constants.js
3307
+ const k = Math.pow(29, 3) / Math.pow(3, 3);
3308
+ const e = Math.pow(6, 3) / Math.pow(29, 3);
3309
+
3310
+ //#endregion
3311
+ //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab65/convertLab65ToXyz65.js
3312
+ let fn = (v) => Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k;
3313
+ const convertLab65ToXyz65 = ({ l, a, b, alpha }) => {
3314
+ if (l === void 0) l = 0;
3315
+ if (a === void 0) a = 0;
3316
+ if (b === void 0) b = 0;
3317
+ let fy = (l + 16) / 116;
3318
+ let fx = a / 500 + fy;
3319
+ let fz = fy - b / 200;
3320
+ let res = {
3321
+ mode: "xyz65",
3322
+ x: fn(fx) * D65.X,
3323
+ y: fn(fy) * D65.Y,
3324
+ z: fn(fz) * D65.Z
3325
+ };
3326
+ if (alpha !== void 0) res.alpha = alpha;
3327
+ return res;
3328
+ };
3329
+ var convertLab65ToXyz65_default = convertLab65ToXyz65;
3330
+
3331
+ //#endregion
3332
+ //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab65/convertLab65ToRgb.js
3333
+ const convertLab65ToRgb = (lab) => convertXyz65ToRgb_default(convertLab65ToXyz65_default(lab));
3334
+ var convertLab65ToRgb_default = convertLab65ToRgb;
3335
+
3336
+ //#endregion
3337
+ //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab65/convertXyz65ToLab65.js
3338
+ const f = (value) => value > e ? Math.cbrt(value) : (k * value + 16) / 116;
3339
+ const convertXyz65ToLab65 = ({ x, y, z, alpha }) => {
3340
+ if (x === void 0) x = 0;
3341
+ if (y === void 0) y = 0;
3342
+ if (z === void 0) z = 0;
3343
+ let f0 = f(x / D65.X);
3344
+ let f1 = f(y / D65.Y);
3345
+ let f2 = f(z / D65.Z);
3346
+ let res = {
3347
+ mode: "lab65",
3348
+ l: 116 * f1 - 16,
3349
+ a: 500 * (f0 - f1),
3350
+ b: 200 * (f1 - f2)
3351
+ };
3352
+ if (alpha !== void 0) res.alpha = alpha;
3353
+ return res;
3354
+ };
3355
+ var convertXyz65ToLab65_default = convertXyz65ToLab65;
3356
+
3357
+ //#endregion
3358
+ //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab65/convertRgbToLab65.js
3359
+ const convertRgbToLab65 = (rgb$2) => {
3360
+ let res = convertXyz65ToLab65_default(convertRgbToXyz65_default(rgb$2));
3361
+ if (rgb$2.r === rgb$2.b && rgb$2.b === rgb$2.g) res.a = res.b = 0;
3362
+ return res;
3363
+ };
3364
+ var convertRgbToLab65_default = convertRgbToLab65;
3365
+
3366
+ //#endregion
3367
+ //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab65/definition.js
3368
+ const definition$9 = {
3369
+ ...definition_default$3,
3370
+ mode: "lab65",
3371
+ parse: ["--lab-d65"],
3372
+ serialize: "--lab-d65",
3373
+ toMode: {
3374
+ xyz65: convertLab65ToXyz65_default,
3375
+ rgb: convertLab65ToRgb_default
3376
+ },
3377
+ fromMode: {
3378
+ xyz65: convertXyz65ToLab65_default,
3379
+ rgb: convertRgbToLab65_default
3380
+ },
3381
+ ranges: {
3382
+ l: [0, 100],
3383
+ a: [-86.182, 98.234],
3384
+ b: [-107.86, 94.477]
3385
+ }
3386
+ };
3071
3387
  var definition_default$4 = definition$9;
3072
3388
 
3073
3389
  //#endregion
@@ -3248,7 +3564,7 @@ var parseOklab_default = parseOklab;
3248
3564
  //#endregion
3249
3565
  //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklab/definition.js
3250
3566
  const definition$6 = {
3251
- ...definition_default$4,
3567
+ ...definition_default$3,
3252
3568
  mode: "oklab",
3253
3569
  toMode: {
3254
3570
  lrgb: convertOklabToLrgb_default,
@@ -3598,6 +3914,183 @@ const definition = {
3598
3914
  };
3599
3915
  var definition_default$14 = definition;
3600
3916
 
3917
+ //#endregion
3918
+ //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsl/helpers.js
3919
+ function toe(x) {
3920
+ const k_1 = .206;
3921
+ const k_2 = .03;
3922
+ const k_3 = (1 + k_1) / (1 + k_2);
3923
+ return .5 * (k_3 * x - k_1 + Math.sqrt((k_3 * x - k_1) * (k_3 * x - k_1) + 4 * k_2 * k_3 * x));
3924
+ }
3925
+ function toe_inv(x) {
3926
+ const k_1 = .206;
3927
+ const k_2 = .03;
3928
+ const k_3 = (1 + k_1) / (1 + k_2);
3929
+ return (x * x + k_1 * x) / (k_3 * (x + k_2));
3930
+ }
3931
+ function compute_max_saturation(a, b) {
3932
+ let k0, k1, k2, k3, k4, wl, wm, ws;
3933
+ if (-1.88170328 * a - .80936493 * b > 1) {
3934
+ k0 = 1.19086277;
3935
+ k1 = 1.76576728;
3936
+ k2 = .59662641;
3937
+ k3 = .75515197;
3938
+ k4 = .56771245;
3939
+ wl = 4.0767416621;
3940
+ wm = -3.3077115913;
3941
+ ws = .2309699292;
3942
+ } else if (1.81444104 * a - 1.19445276 * b > 1) {
3943
+ k0 = .73956515;
3944
+ k1 = -.45954404;
3945
+ k2 = .08285427;
3946
+ k3 = .1254107;
3947
+ k4 = .14503204;
3948
+ wl = -1.2684380046;
3949
+ wm = 2.6097574011;
3950
+ ws = -.3413193965;
3951
+ } else {
3952
+ k0 = 1.35733652;
3953
+ k1 = -.00915799;
3954
+ k2 = -1.1513021;
3955
+ k3 = -.50559606;
3956
+ k4 = .00692167;
3957
+ wl = -.0041960863;
3958
+ wm = -.7034186147;
3959
+ ws = 1.707614701;
3960
+ }
3961
+ let S = k0 + k1 * a + k2 * b + k3 * a * a + k4 * a * b;
3962
+ let k_l = .3963377774 * a + .2158037573 * b;
3963
+ let k_m = -.1055613458 * a - .0638541728 * b;
3964
+ let k_s = -.0894841775 * a - 1.291485548 * b;
3965
+ {
3966
+ let l_ = 1 + S * k_l;
3967
+ let m_ = 1 + S * k_m;
3968
+ let s_ = 1 + S * k_s;
3969
+ let l = l_ * l_ * l_;
3970
+ let m = m_ * m_ * m_;
3971
+ let s = s_ * s_ * s_;
3972
+ let l_dS = 3 * k_l * l_ * l_;
3973
+ let m_dS = 3 * k_m * m_ * m_;
3974
+ let s_dS = 3 * k_s * s_ * s_;
3975
+ let l_dS2 = 6 * k_l * k_l * l_;
3976
+ let m_dS2 = 6 * k_m * k_m * m_;
3977
+ let s_dS2 = 6 * k_s * k_s * s_;
3978
+ let f$3 = wl * l + wm * m + ws * s;
3979
+ let f1 = wl * l_dS + wm * m_dS + ws * s_dS;
3980
+ let f2 = wl * l_dS2 + wm * m_dS2 + ws * s_dS2;
3981
+ S = S - f$3 * f1 / (f1 * f1 - .5 * f$3 * f2);
3982
+ }
3983
+ return S;
3984
+ }
3985
+ function find_cusp(a, b) {
3986
+ let S_cusp = compute_max_saturation(a, b);
3987
+ let rgb$2 = convertOklabToLrgb_default({
3988
+ l: 1,
3989
+ a: S_cusp * a,
3990
+ b: S_cusp * b
3991
+ });
3992
+ let L_cusp = Math.cbrt(1 / Math.max(rgb$2.r, rgb$2.g, rgb$2.b));
3993
+ let C_cusp = L_cusp * S_cusp;
3994
+ return [L_cusp, C_cusp];
3995
+ }
3996
+ function get_ST_max(a_, b_, cusp = null) {
3997
+ if (!cusp) cusp = find_cusp(a_, b_);
3998
+ let L = cusp[0];
3999
+ let C = cusp[1];
4000
+ return [C / L, C / (1 - L)];
4001
+ }
4002
+
4003
+ //#endregion
4004
+ //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsv/convertOklabToOkhsv.js
4005
+ function convertOklabToOkhsv(lab) {
4006
+ let l = lab.l !== void 0 ? lab.l : 0;
4007
+ let a = lab.a !== void 0 ? lab.a : 0;
4008
+ let b = lab.b !== void 0 ? lab.b : 0;
4009
+ let c$2 = Math.sqrt(a * a + b * b);
4010
+ let a_ = c$2 ? a / c$2 : 1;
4011
+ let b_ = c$2 ? b / c$2 : 1;
4012
+ let [S_max, T] = get_ST_max(a_, b_);
4013
+ let S_0 = .5;
4014
+ let k$4 = 1 - S_0 / S_max;
4015
+ let t = T / (c$2 + l * T);
4016
+ let L_v = t * l;
4017
+ let C_v = t * c$2;
4018
+ let L_vt = toe_inv(L_v);
4019
+ let C_vt = C_v * L_vt / L_v;
4020
+ let rgb_scale = convertOklabToLrgb_default({
4021
+ l: L_vt,
4022
+ a: a_ * C_vt,
4023
+ b: b_ * C_vt
4024
+ });
4025
+ let scale_L = Math.cbrt(1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0));
4026
+ l = l / scale_L;
4027
+ c$2 = c$2 / scale_L * toe(l) / l;
4028
+ l = toe(l);
4029
+ const ret = {
4030
+ mode: "okhsv",
4031
+ s: c$2 ? (S_0 + T) * C_v / (T * S_0 + T * k$4 * C_v) : 0,
4032
+ v: l ? l / L_v : 0
4033
+ };
4034
+ if (ret.s) ret.h = normalizeHue_default(Math.atan2(b, a) * 180 / Math.PI);
4035
+ if (lab.alpha !== void 0) ret.alpha = lab.alpha;
4036
+ return ret;
4037
+ }
4038
+
4039
+ //#endregion
4040
+ //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsv/convertOkhsvToOklab.js
4041
+ function convertOkhsvToOklab(hsv) {
4042
+ const ret = { mode: "oklab" };
4043
+ if (hsv.alpha !== void 0) ret.alpha = hsv.alpha;
4044
+ const h = hsv.h !== void 0 ? hsv.h : 0;
4045
+ const s = hsv.s !== void 0 ? hsv.s : 0;
4046
+ const v = hsv.v !== void 0 ? hsv.v : 0;
4047
+ const a_ = Math.cos(h / 180 * Math.PI);
4048
+ const b_ = Math.sin(h / 180 * Math.PI);
4049
+ const [S_max, T] = get_ST_max(a_, b_);
4050
+ const S_0 = .5;
4051
+ const k$4 = 1 - S_0 / S_max;
4052
+ const L_v = 1 - s * S_0 / (S_0 + T - T * k$4 * s);
4053
+ const C_v = s * T * S_0 / (S_0 + T - T * k$4 * s);
4054
+ const L_vt = toe_inv(L_v);
4055
+ const C_vt = C_v * L_vt / L_v;
4056
+ const rgb_scale = convertOklabToLrgb_default({
4057
+ l: L_vt,
4058
+ a: a_ * C_vt,
4059
+ b: b_ * C_vt
4060
+ });
4061
+ const scale_L = Math.cbrt(1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0));
4062
+ const L_new = toe_inv(v * L_v);
4063
+ const C = C_v * L_new / L_v;
4064
+ ret.l = L_new * scale_L;
4065
+ ret.a = C * a_ * scale_L;
4066
+ ret.b = C * b_ * scale_L;
4067
+ return ret;
4068
+ }
4069
+
4070
+ //#endregion
4071
+ //#region ../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsv/modeOkhsv.js
4072
+ const modeOkhsv = {
4073
+ ...definition_default$15,
4074
+ mode: "okhsv",
4075
+ channels: [
4076
+ "h",
4077
+ "s",
4078
+ "v",
4079
+ "alpha"
4080
+ ],
4081
+ parse: ["--okhsv"],
4082
+ serialize: "--okhsv",
4083
+ fromMode: {
4084
+ oklab: convertOklabToOkhsv,
4085
+ rgb: (c$2) => convertOklabToOkhsv(convertRgbToOklab_default(c$2))
4086
+ },
4087
+ toMode: {
4088
+ oklab: convertOkhsvToOklab,
4089
+ rgb: (c$2) => convertOklabToRgb_default(convertOkhsvToOklab(c$2))
4090
+ }
4091
+ };
4092
+ var modeOkhsv_default = modeOkhsv;
4093
+
3601
4094
  //#endregion
3602
4095
  //#region ../token-tools/dist/css.js
3603
4096
  const CSS_VAR_RE = /(?:(\p{Uppercase_Letter}?[\p{Lowercase_Letter}\p{Number}]+|[\p{Uppercase_Letter}\p{Number}]+|[\u{80}-\u{10FFFF}\p{Number}]+)|.)/u;
@@ -3615,13 +4108,14 @@ function makeCSSVar(name, { prefix, wrapVar = false } = {}) {
3615
4108
  const converters = {
3616
4109
  a98: useMode(definition_default),
3617
4110
  hsl: useMode(definition_default$1),
3618
- hsv: useMode(definition_default$2),
3619
- hwb: useMode(definition_default$3),
3620
- lab: useMode(definition_default$4),
4111
+ hwb: useMode(definition_default$2),
4112
+ lab: useMode(definition_default$3),
4113
+ lab65: useMode(definition_default$4),
3621
4114
  lch: useMode(definition_default$5),
3622
4115
  lrgb: useMode(definition_default$6),
3623
4116
  oklab: useMode(definition_default$7),
3624
4117
  oklch: useMode(definition_default$8),
4118
+ okhsv: useMode(modeOkhsv_default),
3625
4119
  p3: useMode(definition_default$9),
3626
4120
  prophoto: useMode(definition_default$10),
3627
4121
  rec2020: useMode(definition_default$11),
@@ -3735,11 +4229,11 @@ function wildcardMatch(pattern, options) {
3735
4229
  if (options.separator === "\\") throw new Error("\\ is not a valid separator because it is used for escaping. Try setting the separator to `true` instead");
3736
4230
  var regexpPattern = transform(pattern, options.separator);
3737
4231
  var regexp = new RegExp("^".concat(regexpPattern, "$"), options.flags);
3738
- var fn$4 = isMatch.bind(null, regexp);
3739
- fn$4.options = options;
3740
- fn$4.pattern = pattern;
3741
- fn$4.regexp = regexp;
3742
- return fn$4;
4232
+ var fn$5 = isMatch.bind(null, regexp);
4233
+ fn$5.options = options;
4234
+ fn$5.pattern = pattern;
4235
+ fn$5.regexp = regexp;
4236
+ return fn$5;
3743
4237
  }
3744
4238
 
3745
4239
  //#endregion