@bicharts/chart-host 0.6.47 → 0.6.49

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.mjs CHANGED
@@ -33,15 +33,18 @@ import {
33
33
  DIM_OPACITY_DEFAULT,
34
34
  DIM_OPACITY_VAR,
35
35
  FIT_CONTENT_SELECTOR,
36
+ FLIP_DIRECTION_DEFAULT,
37
+ FLIP_INTERVAL_MAX_MS,
38
+ FLIP_INTERVAL_MIN_MS,
36
39
  FLIP_MODE_DEFAULT,
37
40
  GEO_POINT_PRECISIONS,
38
41
  GLYPH_SAMPLE_N,
39
42
  HOST_CONTAINER_CLASS,
40
43
  HOST_CONTRACT_VERSION,
41
44
  L,
42
- L3,
43
45
  LABEL_CONTRAST_CAP,
44
46
  LABEL_CONTRAST_DONE_ATTR,
47
+ LABEL_PILL_CLASS,
45
48
  LEGEND_MARK_CLASS,
46
49
  LIFT_SELECTED_CLASS,
47
50
  LIGHT_TEXT,
@@ -52,6 +55,7 @@ import {
52
55
  MIN_CONTRAST,
53
56
  MIN_HIT_BAND_PX,
54
57
  MIN_RAMP_FILLS,
58
+ NO_ROW_MARKS_ATTR,
55
59
  PAGE_MATCH_TOLERANCE,
56
60
  PHANTOM_FRACTION,
57
61
  PILL_MIN_ALPHA,
@@ -65,12 +69,19 @@ import {
65
69
  SEASONAL_MARKERS_DEFAULT,
66
70
  SELECTION_ACTIVE_CLASS,
67
71
  SELECTION_GLYPH_CLASS,
72
+ SNAPSHOT_SVG_ATTR,
73
+ STRADDLE_COLS,
74
+ STRADDLE_MIN_SHARE,
75
+ STRADDLE_PILL_ALPHA,
76
+ STRADDLE_ROWS,
77
+ STRADDLE_TARGET_CONTRAST,
68
78
  VALUE_AXIS_BASELINE_DEFAULT,
69
79
  VALUE_AXIS_MIN_FIT,
70
80
  VIEW_ONLY_UI_STATE_KEYS,
71
81
  WHITE_TEXT_BG_LUM,
72
82
  XFILTER_REFRESH_EVENT,
73
83
  Zn,
84
+ _3,
74
85
  applyLabelContrast,
75
86
  assembleD3,
76
87
  autoRampCanvas,
@@ -114,15 +125,19 @@ import {
114
125
  isInvalidSentinelError,
115
126
  isPhantomBox,
116
127
  isPillBackdropAlpha,
128
+ l,
117
129
  labelBand,
118
130
  le,
119
131
  loadGeo,
120
132
  measureContainerBoxes,
133
+ minContrastOver,
121
134
  needsScroll,
122
135
  nextSelection,
123
136
  noopViewStateProvider,
137
+ o,
124
138
  paintSelectionGlyphs,
125
139
  periodTickSuppressesFeedback,
140
+ pickColorOver,
126
141
  pillBacksGlyph,
127
142
  pinScrolledAxis,
128
143
  planAxisPin,
@@ -137,6 +152,8 @@ import {
137
152
  rowIdxsFromMark,
138
153
  scrollFitFor,
139
154
  sessionViewStateProvider,
155
+ straddleSampleGrid,
156
+ straddles,
140
157
  stripEsmExports,
141
158
  stripJsComments,
142
159
  svgInkReach,
@@ -146,7 +163,7 @@ import {
146
163
  unpinScrolledAxis,
147
164
  valuePlacementFlag,
148
165
  withoutViewOnlyKeys
149
- } from "./chunk-XWVIYCMM.mjs";
166
+ } from "./chunk-53OX7DYN.mjs";
150
167
  import "./chunk-A2GMXZP7.mjs";
151
168
  import "./chunk-GHODWOAL.mjs";
152
169
 
@@ -178,6 +195,17 @@ var OPTIONS_VOCABULARY = Object.freeze({
178
195
  /** "" chooses by the number of periods. */
179
196
  animTimelineStyle: entry({ timing: "live", default: "", values: ["", "line", "boxes"] }),
180
197
  filtersDuringPlay: entry({ timing: "live", default: false }),
198
+ /** Where a card deck's flip controls live: every card's own arrows, one strip for the deck, or both. */
199
+ flipMode: entry({ timing: "live", default: FLIP_MODE_DEFAULT, values: ["both", "all", "single"] }),
200
+ /**
201
+ * BLANK - "the chart's own" - is the default, and it is not 0. A host that was never told a value
202
+ * sends none (resolveOptions keeps it absent) and the chart supplies its own: manual on the card
203
+ * deck, a 5 s dwell on a carousel. 0 is a reader's explicit "manual only". A non-zero value is
204
+ * clamped chart-side to FLIP_INTERVAL_MIN_MS..FLIP_INTERVAL_MAX_MS.
205
+ */
206
+ flipIntervalMs: entry({ timing: "live", default: "", min: 0, max: FLIP_INTERVAL_MAX_MS }),
207
+ /** Which way a face turns, for any chart that turns between faces: side to side, or top to bottom. */
208
+ flipDirection: entry({ timing: "live", default: FLIP_DIRECTION_DEFAULT, values: ["horizontal", "vertical"] }),
181
209
  // ---- the next generated chart ----
182
210
  levelOfDetail: entry({ timing: "next-generate", default: "", values: ["", "High", "Medium", "Low"], wire: "clientHints" }),
183
211
  favorLimitTo: entry({ timing: "next-generate", default: "", values: ["", "latest", "top / greatest", "bottom / smallest", "most common", "outliers"], wire: "clientHints" }),
@@ -500,18 +528,171 @@ function histogramSource(idx, name2) {
500
528
 
501
529
  // src/snapshot.ts
502
530
  var DEFAULT_TIMEOUT_MS = 2e3;
531
+ var SVG_NS = "http://www.w3.org/2000/svg";
532
+ var XHTML_NS = "http://www.w3.org/1999/xhtml";
533
+ function toBase64(str) {
534
+ const bytes = new TextEncoder().encode(str);
535
+ let binary = "";
536
+ for (let i2 = 0; i2 < bytes.length; i2++) binary += String.fromCharCode(bytes[i2]);
537
+ return btoa(binary);
538
+ }
539
+ function viewOf(el) {
540
+ return el.ownerDocument && el.ownerDocument.defaultView || globalThis;
541
+ }
542
+ var MAX_STYLED_ELEMENTS = 4e3;
543
+ var TEXT_FONT_PROPS = ["font-family", "font-size", "font-weight", "font-style"];
544
+ function inlineTextFonts(original, clone) {
545
+ const view = viewOf(original);
546
+ if (!view || typeof view.getComputedStyle !== "function") return;
547
+ const src = original.querySelectorAll("text");
548
+ const dst = clone.querySelectorAll("text");
549
+ if (src.length !== dst.length) return;
550
+ const n2 = Math.min(src.length, MAX_STYLED_ELEMENTS);
551
+ for (let i2 = 0; i2 < n2; i2++) {
552
+ let cs;
553
+ try {
554
+ cs = view.getComputedStyle(src[i2]);
555
+ } catch {
556
+ continue;
557
+ }
558
+ const style = dst[i2].style;
559
+ if (!style) continue;
560
+ for (const prop of TEXT_FONT_PROPS) {
561
+ const v2 = cs.getPropertyValue(prop);
562
+ if (v2 && !style.getPropertyValue(prop)) style.setProperty(prop, v2);
563
+ }
564
+ }
565
+ }
503
566
  function svgToDataUrl(svg) {
504
567
  const cloned = svg.cloneNode(true);
505
568
  const w2 = svg.clientWidth || svg.getBoundingClientRect && svg.getBoundingClientRect().width || 600;
506
569
  const h2 = svg.clientHeight || svg.getBoundingClientRect && svg.getBoundingClientRect().height || 400;
507
570
  cloned.setAttribute("width", String(Math.round(w2)));
508
571
  cloned.setAttribute("height", String(Math.round(h2)));
509
- if (!cloned.getAttribute("xmlns")) cloned.setAttribute("xmlns", "http://www.w3.org/2000/svg");
510
- const svgStr = new XMLSerializer().serializeToString(cloned);
511
- const bytes = new TextEncoder().encode(svgStr);
512
- let binary = "";
513
- for (let i2 = 0; i2 < bytes.length; i2++) binary += String.fromCharCode(bytes[i2]);
514
- return "data:image/svg+xml;base64," + btoa(binary);
572
+ if (!cloned.getAttribute("xmlns")) cloned.setAttribute("xmlns", SVG_NS);
573
+ try {
574
+ inlineTextFonts(svg, cloned);
575
+ } catch {
576
+ }
577
+ return "data:image/svg+xml;base64," + toBase64(new XMLSerializer().serializeToString(cloned));
578
+ }
579
+ function tableHostOf(root) {
580
+ if (!root || typeof root.querySelector !== "function") return null;
581
+ if (root.namespaceURI === SVG_NS) return null;
582
+ const firstSvg = root.querySelector("svg");
583
+ for (const sel of [".lch-table-frame", "table"]) {
584
+ const host = root.querySelector(sel);
585
+ if (host && (!firstSvg || host.contains(firstSvg))) return host;
586
+ }
587
+ return null;
588
+ }
589
+ function chartSvgOf(root) {
590
+ if (!root || typeof root.querySelector !== "function") return null;
591
+ return root.querySelector(`svg[${SNAPSHOT_SVG_ATTR}]`) ?? root.querySelector("svg");
592
+ }
593
+ function inlinePx(v2) {
594
+ const m2 = /^\s*([0-9.]+)px\s*$/.exec(v2 || "");
595
+ return m2 ? parseFloat(m2[1]) : 0;
596
+ }
597
+ function htmlNaturalSize(el) {
598
+ const r2 = el.getBoundingClientRect ? el.getBoundingClientRect() : null;
599
+ const w2 = el.clientWidth || r2 && r2.width || inlinePx(el.style && el.style.width) || 600;
600
+ const h2 = el.clientHeight || r2 && r2.height || inlinePx(el.style && el.style.height) || 400;
601
+ return { width: Math.round(w2), height: Math.round(h2) };
602
+ }
603
+ var HTML_STYLE_PROPS = [
604
+ "display",
605
+ "box-sizing",
606
+ "width",
607
+ "height",
608
+ "margin-top",
609
+ "margin-right",
610
+ "margin-bottom",
611
+ "margin-left",
612
+ "padding-top",
613
+ "padding-right",
614
+ "padding-bottom",
615
+ "padding-left",
616
+ "border-top-width",
617
+ "border-right-width",
618
+ "border-bottom-width",
619
+ "border-left-width",
620
+ "border-top-style",
621
+ "border-right-style",
622
+ "border-bottom-style",
623
+ "border-left-style",
624
+ "border-top-color",
625
+ "border-right-color",
626
+ "border-bottom-color",
627
+ "border-left-color",
628
+ "border-collapse",
629
+ "border-spacing",
630
+ "background-color",
631
+ "color",
632
+ "opacity",
633
+ "font-family",
634
+ "font-size",
635
+ "font-weight",
636
+ "font-style",
637
+ "line-height",
638
+ "letter-spacing",
639
+ "text-align",
640
+ "vertical-align",
641
+ "white-space",
642
+ "text-overflow",
643
+ "text-decoration-line",
644
+ "flex-direction",
645
+ "flex-wrap",
646
+ "flex-grow",
647
+ "flex-shrink",
648
+ "flex-basis",
649
+ "align-items",
650
+ "justify-content",
651
+ "position",
652
+ "top",
653
+ "right",
654
+ "bottom",
655
+ "left"
656
+ ];
657
+ function inlineHtmlStyles(original, clone) {
658
+ const view = viewOf(original);
659
+ if (!view || typeof view.getComputedStyle !== "function") return;
660
+ const src = [original, ...Array.from(original.querySelectorAll("*"))];
661
+ const dst = [clone, ...Array.from(clone.querySelectorAll("*"))];
662
+ if (src.length !== dst.length) return;
663
+ let styled = 0;
664
+ for (let i2 = 0; i2 < src.length && styled < MAX_STYLED_ELEMENTS; i2++) {
665
+ const o3 = src[i2], c2 = dst[i2];
666
+ if (o3.namespaceURI !== XHTML_NS || !c2.style) continue;
667
+ let cs;
668
+ try {
669
+ cs = view.getComputedStyle(o3);
670
+ } catch {
671
+ continue;
672
+ }
673
+ for (const prop of HTML_STYLE_PROPS) {
674
+ const v2 = cs.getPropertyValue(prop);
675
+ if (v2) c2.style.setProperty(prop, v2);
676
+ }
677
+ c2.style.setProperty("overflow", "hidden");
678
+ styled++;
679
+ }
680
+ try {
681
+ inlineTextFonts(original, clone);
682
+ } catch {
683
+ }
684
+ }
685
+ function htmlToSvgDataUrl(el) {
686
+ const { width, height } = htmlNaturalSize(el);
687
+ const clone = el.cloneNode(true);
688
+ inlineHtmlStyles(el, clone);
689
+ clone.style.setProperty("width", `${width}px`);
690
+ clone.style.setProperty("height", `${height}px`);
691
+ clone.style.setProperty("margin", "0");
692
+ let xhtml = new XMLSerializer().serializeToString(clone);
693
+ if (!/^<[^>]*\sxmlns=/.test(xhtml)) xhtml = xhtml.replace(/^<([a-zA-Z0-9-]+)/, `<$1 xmlns="${XHTML_NS}"`);
694
+ const svg = `<svg xmlns="${SVG_NS}" width="${width}" height="${height}" viewBox="0 0 ${width} ${height}"><foreignObject x="0" y="0" width="${width}" height="${height}">${xhtml}</foreignObject></svg>`;
695
+ return { url: "data:image/svg+xml;base64," + toBase64(svg), width, height };
515
696
  }
516
697
  function svgNaturalSize(svg) {
517
698
  const w2 = svg.clientWidth || svg.getBoundingClientRect && svg.getBoundingClientRect().width || 600;
@@ -567,16 +748,25 @@ function rasterizeSvgToPngDataUrl(svgDataUrl, width, height, opts = {}) {
567
748
  }
568
749
  async function captureSvgSnapshot(root, opts = {}) {
569
750
  if (!root) return null;
570
- const svg = root instanceof SVGSVGElement ? root : root.querySelector("svg");
571
- if (!svg) return null;
751
+ const table = root instanceof SVGSVGElement ? null : tableHostOf(root);
752
+ const svg = table ? null : root instanceof SVGSVGElement ? root : chartSvgOf(root);
753
+ if (!table && !svg) return null;
572
754
  let svgUrl;
755
+ let width, height;
573
756
  try {
574
- svgUrl = svgToDataUrl(svg);
757
+ if (table) {
758
+ const r2 = htmlToSvgDataUrl(table);
759
+ svgUrl = r2.url;
760
+ width = r2.width;
761
+ height = r2.height;
762
+ } else {
763
+ svgUrl = svgToDataUrl(svg);
764
+ ({ width, height } = svgNaturalSize(svg));
765
+ }
575
766
  } catch (e2) {
576
767
  opts.onWarn?.("snapshot-serialize", e2 instanceof Error ? e2.message : String(e2));
577
768
  return null;
578
769
  }
579
- const { width, height } = svgNaturalSize(svg);
580
770
  try {
581
771
  const png = await rasterizeSvgToPngDataUrl(svgUrl, width, height, opts);
582
772
  return png || svgUrl;
@@ -950,6 +1140,10 @@ function qualifyFailureFallsOpen(viaGenerate) {
950
1140
  }
951
1141
 
952
1142
  // src/qualifyFilter.ts
1143
+ var DEFAULT_FILTER_MATCH_STYLE = "loose";
1144
+ function filterMatchStyleOf(raw) {
1145
+ return typeof raw === "string" && raw.trim().toLowerCase() === "exact" ? "exact" : DEFAULT_FILTER_MATCH_STYLE;
1146
+ }
953
1147
  function normalizeFilterTerm(raw) {
954
1148
  if (typeof raw !== "string" || raw === "") return "";
955
1149
  return raw.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/g, " ").trim();
@@ -964,10 +1158,34 @@ function startsAWord(name2, t2) {
964
1158
  }
965
1159
  return false;
966
1160
  }
967
- function filterQualifyRows(rows, term, read) {
1161
+ function looseFormWithWordStarts(name2) {
1162
+ let form = "";
1163
+ const starts = /* @__PURE__ */ new Set();
1164
+ let prevAlnum = false;
1165
+ for (const ch of name2) {
1166
+ const piece = l(ch);
1167
+ const code = ch.charCodeAt(0);
1168
+ const alnum = code >= 97 && code <= 122 || code >= 48 && code <= 57;
1169
+ if (piece) {
1170
+ if (!prevAlnum) starts.add(form.length);
1171
+ form += piece;
1172
+ }
1173
+ prevAlnum = alnum;
1174
+ }
1175
+ return { form, starts };
1176
+ }
1177
+ function startsALooseWord(loose, t2) {
1178
+ for (let i2 = loose.form.indexOf(t2); i2 >= 0; i2 = loose.form.indexOf(t2, i2 + 1)) {
1179
+ if (loose.starts.has(i2)) return true;
1180
+ }
1181
+ return false;
1182
+ }
1183
+ function filterQualifyRows(rows, term, read, style = DEFAULT_FILTER_MATCH_STYLE) {
968
1184
  const all = Array.isArray(rows) ? rows.slice() : [];
969
1185
  const t2 = normalizeFilterTerm(term);
970
1186
  if (t2.length < FILTER_MIN_TERM_CHARS) return { rows: all, tier: "all", term: "" };
1187
+ const lt2 = style === "loose" ? l(t2) : "";
1188
+ const loose = lt2.length >= FILTER_MIN_TERM_CHARS ? lt2 : "";
971
1189
  const atWordStart = [];
972
1190
  const midWord = [];
973
1191
  const byDesc = [];
@@ -979,7 +1197,12 @@ function filterQualifyRows(rows, term, read) {
979
1197
  (startsAWord(name2, t2) ? atWordStart : midWord).push(row);
980
1198
  continue;
981
1199
  }
982
- if (normalizeFilterTerm(f2.description).indexOf(t2) >= 0) byDesc.push(row);
1200
+ if (loose && startsALooseWord(looseFormWithWordStarts(name2), loose)) {
1201
+ atWordStart.push(row);
1202
+ continue;
1203
+ }
1204
+ const desc = normalizeFilterTerm(f2.description);
1205
+ if (desc.indexOf(t2) >= 0 || loose && startsALooseWord(looseFormWithWordStarts(desc), loose)) byDesc.push(row);
983
1206
  }
984
1207
  if (atWordStart.length > 0) return { rows: atWordStart, tier: "name", term: t2 };
985
1208
  if (midWord.length > 0) return { rows: midWord, tier: "namePart", term: t2 };
@@ -1007,7 +1230,7 @@ function qualifyFilterGate(i2) {
1007
1230
  if (!listNeedsFilter(i2.scrollHeight, i2.clientHeight)) return { show: false, why: "no-overflow" };
1008
1231
  return { show: true, why: "shown" };
1009
1232
  }
1010
- function computeQualifyFilterView(groups, term) {
1233
+ function computeQualifyFilterView(groups, term, style = DEFAULT_FILTER_MATCH_STYLE) {
1011
1234
  const g2 = Array.isArray(groups) ? groups : [];
1012
1235
  const read = (r2) => ({ name: r2.name, description: r2.description });
1013
1236
  const collect = (section) => {
@@ -1016,8 +1239,8 @@ function computeQualifyFilterView(groups, term) {
1016
1239
  return out;
1017
1240
  };
1018
1241
  const fitRows = collect("fits");
1019
- const fit = filterQualifyRows(fitRows, term, read);
1020
- const ref = filterQualifyRows(collect("refused"), term, read);
1242
+ const fit = filterQualifyRows(fitRows, term, read, style);
1243
+ const ref = filterQualifyRows(collect("refused"), term, read, style);
1021
1244
  const visible = /* @__PURE__ */ new Set();
1022
1245
  for (const r2 of fit.rows) visible.add(r2.el);
1023
1246
  for (const r2 of ref.rows) visible.add(r2.el);
@@ -1123,9 +1346,9 @@ function utcAnchor(p3) {
1123
1346
  function localeDate(p3, wholeDay, culture) {
1124
1347
  const anchor = utcAnchor(p3);
1125
1348
  try {
1126
- const o2 = { dateStyle: "medium", timeZone: "UTC" };
1127
- if (!wholeDay) o2.timeStyle = p3.seconds || p3.ms ? "medium" : "short";
1128
- return new Intl.DateTimeFormat(culture || void 0, o2).format(anchor);
1349
+ const o3 = { dateStyle: "medium", timeZone: "UTC" };
1350
+ if (!wholeDay) o3.timeStyle = p3.seconds || p3.ms ? "medium" : "short";
1351
+ return new Intl.DateTimeFormat(culture || void 0, o3).format(anchor);
1129
1352
  } catch {
1130
1353
  const iso = anchor.toISOString();
1131
1354
  return wholeDay ? iso.slice(0, 10) : `${iso.slice(0, 10)} ${iso.slice(11, 19)}`;
@@ -1678,13 +1901,13 @@ function composeSummaryText(codeSummary, warningMsg) {
1678
1901
 
1679
1902
  // ../../node_modules/colorsea/dist/index.esm.js
1680
1903
  function t(t2, r2, n2, e2) {
1681
- var o2, i2 = arguments.length, a2 = i2 < 3 ? r2 : null === e2 ? e2 = Object.getOwnPropertyDescriptor(r2, n2) : e2;
1904
+ var o3, i2 = arguments.length, a2 = i2 < 3 ? r2 : null === e2 ? e2 = Object.getOwnPropertyDescriptor(r2, n2) : e2;
1682
1905
  if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a2 = Reflect.decorate(t2, r2, n2, e2);
1683
- else for (var u2 = t2.length - 1; u2 >= 0; u2--) (o2 = t2[u2]) && (a2 = (i2 < 3 ? o2(a2) : i2 > 3 ? o2(r2, n2, a2) : o2(r2, n2)) || a2);
1906
+ else for (var u2 = t2.length - 1; u2 >= 0; u2--) (o3 = t2[u2]) && (a2 = (i2 < 3 ? o3(a2) : i2 > 3 ? o3(r2, n2, a2) : o3(r2, n2)) || a2);
1684
1907
  return i2 > 3 && a2 && Object.defineProperty(r2, n2, a2), a2;
1685
1908
  }
1686
1909
  function r(t2, r2, n2) {
1687
- if (n2 || 2 === arguments.length) for (var e2, o2 = 0, i2 = r2.length; o2 < i2; o2++) !e2 && o2 in r2 || (e2 || (e2 = Array.prototype.slice.call(r2, 0, o2)), e2[o2] = r2[o2]);
1910
+ if (n2 || 2 === arguments.length) for (var e2, o3 = 0, i2 = r2.length; o3 < i2; o3++) !e2 && o3 in r2 || (e2 || (e2 = Array.prototype.slice.call(r2, 0, o3)), e2[o3] = r2[o3]);
1688
1911
  return t2.concat(e2 || Array.prototype.slice.call(r2));
1689
1912
  }
1690
1913
  var n = function(t2, r2, n2) {
@@ -1697,7 +1920,7 @@ var e = function(t2, r2, n2) {
1697
1920
  return 255 * (t3 <= 304e-5 ? 12.92 * t3 : 1.055 * Math.pow(t3, 1 / 2.4) - 0.055);
1698
1921
  }));
1699
1922
  };
1700
- var o = function(t2, r2, n2) {
1923
+ var o2 = function(t2, r2, n2) {
1701
1924
  return Math.min(Math.max(t2, r2), n2);
1702
1925
  };
1703
1926
  var i = function(t2, r2) {
@@ -1707,8 +1930,8 @@ var a = function(t2, r2) {
1707
1930
  return Math.floor(Math.random() * (r2 - t2 + 1) - t2);
1708
1931
  };
1709
1932
  var u = function(t2, r2, n2, e2) {
1710
- for (var i2, a2 = [t2, r2, n2], u2 = "#", h2 = 0; h2 < a2.length; h2++) u2 += (i2 = a2[h2], Math.round(o(i2, 0, 255)).toString(16).padStart(2, "0"));
1711
- return null != e2 && (u2 += Math.round(o(e2, 0, 100) / 100 * 255).toString(16).padStart(2, "0")), u2;
1933
+ for (var i2, a2 = [t2, r2, n2], u2 = "#", h2 = 0; h2 < a2.length; h2++) u2 += (i2 = a2[h2], Math.round(o2(i2, 0, 255)).toString(16).padStart(2, "0"));
1934
+ return null != e2 && (u2 += Math.round(o2(e2, 0, 100) / 100 * 255).toString(16).padStart(2, "0")), u2;
1712
1935
  };
1713
1936
  var h = function(t2) {
1714
1937
  var n2 = t2.length, e2 = (t2 = (function(t3) {
@@ -1717,42 +1940,42 @@ var h = function(t2) {
1717
1940
  if (6 === r2 || 8 === r2) return t3;
1718
1941
  if (3 === r2 || 4 === r2) {
1719
1942
  for (var n3 = "", e3 = 0; e3 < r2; e3++) {
1720
- var o3 = t3[e3];
1721
- n3 += "" + o3 + o3;
1943
+ var o4 = t3[e3];
1944
+ n3 += "" + o4 + o4;
1722
1945
  }
1723
1946
  return n3;
1724
1947
  }
1725
1948
  return "000000";
1726
1949
  })(t2).padEnd(8, "ff")).match(/.{2}/g);
1727
1950
  if (!e2) return [0, 0, 0, 1];
1728
- var o2 = [0, 0, 0], i2 = false;
1951
+ var o3 = [0, 0, 0], i2 = false;
1729
1952
  return e2.forEach((function(t3, r2) {
1730
- r2 < 3 ? o2[r2] = parseInt(t3, 16) : i2 = 100 * parseInt(t3, 16) / 255;
1731
- })), false === i2 || n2 < 8 ? o2 : r(r([], o2, true), [i2], false);
1953
+ r2 < 3 ? o3[r2] = parseInt(t3, 16) : i2 = 100 * parseInt(t3, 16) / 255;
1954
+ })), false === i2 || n2 < 8 ? o3 : r(r([], o3, true), [i2], false);
1732
1955
  };
1733
1956
  var c = function(t2, r2, n2) {
1734
1957
  var e2;
1735
1958
  e2 = [t2, r2, n2].map((function(t3) {
1736
1959
  return t3 / 255;
1737
1960
  })), t2 = e2[0], r2 = e2[1], n2 = e2[2];
1738
- var o2 = 1 - Math.max(t2, r2, n2), i2 = o2 < 1 ? 1 / (1 - o2) : 0;
1739
- return [(1 - t2 - o2) * i2 * 100, (1 - r2 - o2) * i2 * 100, (1 - n2 - o2) * i2 * 100, 100 * o2];
1961
+ var o3 = 1 - Math.max(t2, r2, n2), i2 = o3 < 1 ? 1 / (1 - o3) : 0;
1962
+ return [(1 - t2 - o3) * i2 * 100, (1 - r2 - o3) * i2 * 100, (1 - n2 - o3) * i2 * 100, 100 * o3];
1740
1963
  };
1741
- var l = function(t2, r2, n2, e2) {
1964
+ var l2 = function(t2, r2, n2, e2) {
1742
1965
  return 100 === e2 ? [0, 0, 0] : (e2 /= 100, [t2, r2, n2].map((function(t3) {
1743
1966
  return (t3 /= 100) >= 1 ? 0 : 255 * (1 - t3) * (1 - e2);
1744
1967
  })));
1745
1968
  };
1746
1969
  function p(t2, r2, n2, e2) {
1747
- var o2;
1748
- void 0 === e2 && (e2 = "l"), o2 = [t2, r2, n2].map((function(t3) {
1970
+ var o3;
1971
+ void 0 === e2 && (e2 = "l"), o3 = [t2, r2, n2].map((function(t3) {
1749
1972
  return t3 / 255;
1750
- })), t2 = o2[0], r2 = o2[1], n2 = o2[2];
1973
+ })), t2 = o3[0], r2 = o3[1], n2 = o3[2];
1751
1974
  var i2 = Math.max(t2, r2, n2), a2 = Math.min(t2, r2, n2), u2 = (function(t3, r3, n3, e3) {
1752
- var o3;
1753
- void 0 === e3 && (e3 = false), o3 = [t3, r3, n3].map((function(t4) {
1975
+ var o4;
1976
+ void 0 === e3 && (e3 = false), o4 = [t3, r3, n3].map((function(t4) {
1754
1977
  return t4 / 255;
1755
- })), t3 = o3[0], r3 = o3[1], n3 = o3[2];
1978
+ })), t3 = o4[0], r3 = o4[1], n3 = o4[2];
1756
1979
  var i3 = Math.max(t3, r3, n3), a3 = Math.min(t3, r3, n3), u3 = 0;
1757
1980
  if (i3 !== a3) if (e3) u3 = (t3 - r3 + (t3 - n3)) / 2, u3 /= Math.sqrt((t3 - r3) * (t3 - r3) + (t3 - n3) * (r3 - n3)), u3 = Math.acos(u3), n3 > r3 && (u3 = 2 * Math.PI - u3), u3 /= 2 * Math.PI;
1758
1981
  else {
@@ -1761,8 +1984,8 @@ function p(t2, r2, n2, e2) {
1761
1984
  }
1762
1985
  else u3 = NaN;
1763
1986
  return 360 * u3;
1764
- })(t2, r2, n2, "i" === e2), h2 = 0, c2 = (i2 + a2) / 2, l2 = i2 - a2, p3 = i2, f2 = (t2 + r2 + n2) / 3;
1765
- return "v" === e2 && (h2 = 0 === i2 ? 0 : l2 / i2), i2 !== a2 && "l" === e2 && (h2 = c2 > 0.5 ? l2 / (2 - i2 - a2) : l2 / (i2 + a2)), "i" === e2 && (h2 = f2 > 0 ? 1 - a2 / f2 : 0), h2 *= 100, c2 *= 100, f2 *= 100, "l" === e2 ? [u2, h2, c2] : "v" === e2 ? [u2, h2, p3 *= 100] : [u2, h2, f2];
1987
+ })(t2, r2, n2, "i" === e2), h2 = 0, c2 = (i2 + a2) / 2, l3 = i2 - a2, p3 = i2, f2 = (t2 + r2 + n2) / 3;
1988
+ return "v" === e2 && (h2 = 0 === i2 ? 0 : l3 / i2), i2 !== a2 && "l" === e2 && (h2 = c2 > 0.5 ? l3 / (2 - i2 - a2) : l3 / (i2 + a2)), "i" === e2 && (h2 = f2 > 0 ? 1 - a2 / f2 : 0), h2 *= 100, c2 *= 100, f2 *= 100, "l" === e2 ? [u2, h2, c2] : "v" === e2 ? [u2, h2, p3 *= 100] : [u2, h2, f2];
1766
1989
  }
1767
1990
  var f = function(t2, r2, n2) {
1768
1991
  return p(t2, r2, n2, "l");
@@ -1771,13 +1994,13 @@ var s = function(t2, r2, n2) {
1771
1994
  var e2, i2, a2 = function(t3) {
1772
1995
  return 6 * (t3 = t3 < 0 ? t3 + 1 : t3 > 1 ? t3 - 1 : t3) < 1 ? e2 + (i2 - e2) * t3 * 6 : 2 * t3 < 1 ? i2 : 3 * t3 < 2 ? e2 + (i2 - e2) * (2 / 3 - t3) * 6 : e2;
1773
1996
  };
1774
- return t2 = t2 % 360 / 360, r2 = o(r2 / 100, 0, 1), n2 = o(n2 / 100, 0, 1), e2 = 2 * n2 - (i2 = n2 <= 0.5 ? n2 * (r2 + 1) : n2 + r2 - n2 * r2), [255 * a2(t2 + 1 / 3), 255 * a2(t2), 255 * a2(t2 - 1 / 3)];
1997
+ return t2 = t2 % 360 / 360, r2 = o2(r2 / 100, 0, 1), n2 = o2(n2 / 100, 0, 1), e2 = 2 * n2 - (i2 = n2 <= 0.5 ? n2 * (r2 + 1) : n2 + r2 - n2 * r2), [255 * a2(t2 + 1 / 3), 255 * a2(t2), 255 * a2(t2 - 1 / 3)];
1775
1998
  };
1776
1999
  var v = function(t2, r2, n2) {
1777
2000
  return p(t2, r2, n2, "v");
1778
2001
  };
1779
2002
  var b = function(t2, r2, n2) {
1780
- var e2, o2, i2 = [n2 /= 100, n2 * (1 - (r2 /= 100)), n2 * (1 - (o2 = (t2 = t2 % 360 / 360 * 360) / 60 - (e2 = Math.floor(t2 / 60 % 6))) * r2), n2 * (1 - (1 - o2) * r2)], a2 = [[0, 3, 1], [2, 0, 1], [1, 0, 3], [1, 2, 0], [3, 1, 0], [0, 1, 2]];
2003
+ var e2, o3, i2 = [n2 /= 100, n2 * (1 - (r2 /= 100)), n2 * (1 - (o3 = (t2 = t2 % 360 / 360 * 360) / 60 - (e2 = Math.floor(t2 / 60 % 6))) * r2), n2 * (1 - (1 - o3) * r2)], a2 = [[0, 3, 1], [2, 0, 1], [1, 0, 3], [1, 2, 0], [3, 1, 0], [0, 1, 2]];
1781
2004
  return [255 * i2[a2[e2][0]], 255 * i2[a2[e2][1]], 255 * i2[a2[e2][2]]];
1782
2005
  };
1783
2006
  var y = function(t2, r2, n2) {
@@ -1790,7 +2013,7 @@ var d = function(t2, r2, n2) {
1790
2013
  return (1 + r2 * Math.cos(2 * Math.PI * t3) / Math.cos(Math.PI / 3 - 2 * Math.PI * t3)) / 3;
1791
2014
  };
1792
2015
  return (t2 = (360 + t2) % 360 / 360) < 1 / 3 ? a2 = 1 - ((u2 = (1 - r2) / 3) + (i2 = h2(t2))) : t2 < 2 / 3 ? u2 = 1 - ((i2 = (1 - r2) / 3) + (a2 = h2(t2 -= 1 / 3))) : i2 = 1 - ((a2 = (1 - r2) / 3) + (u2 = h2(t2 -= 2 / 3))), e2 = [i2, a2, u2].map((function(t3) {
1793
- return 255 * o(n2 * t3 * 3, 0, 1);
2016
+ return 255 * o2(n2 * t3 * 3, 0, 1);
1794
2017
  })), [i2 = e2[0], a2 = e2[1], u2 = e2[2]];
1795
2018
  };
1796
2019
  var g = function(t2, r2, n2) {
@@ -1810,22 +2033,22 @@ var I = 0.206896552;
1810
2033
  var k = 8856452e-9;
1811
2034
  var E = 24389 / 27;
1812
2035
  var z = function(t2, r2, e2) {
1813
- var o2 = n(t2, r2, e2);
2036
+ var o3 = n(t2, r2, e2);
1814
2037
  return [100 * m.x.reduce((function(t3, r3, n2) {
1815
- return t3 + r3 * o2[n2];
2038
+ return t3 + r3 * o3[n2];
1816
2039
  }), 0), 100 * m.y.reduce((function(t3, r3, n2) {
1817
- return t3 + r3 * o2[n2];
2040
+ return t3 + r3 * o3[n2];
1818
2041
  }), 0), 100 * m.z.reduce((function(t3, r3, n2) {
1819
- return t3 + r3 * o2[n2];
2042
+ return t3 + r3 * o3[n2];
1820
2043
  }), 0)];
1821
2044
  };
1822
2045
  var N = function(t2, r2, n2) {
1823
- var o2 = [t2, r2, n2], i2 = M.r.reduce((function(t3, r3, n3) {
1824
- return t3 + r3 * o2[n3];
2046
+ var o3 = [t2, r2, n2], i2 = M.r.reduce((function(t3, r3, n3) {
2047
+ return t3 + r3 * o3[n3];
1825
2048
  }), 0) / 100, a2 = M.g.reduce((function(t3, r3, n3) {
1826
- return t3 + r3 * o2[n3];
2049
+ return t3 + r3 * o3[n3];
1827
2050
  }), 0) / 100, u2 = M.b.reduce((function(t3, r3, n3) {
1828
- return t3 + r3 * o2[n3];
2051
+ return t3 + r3 * o3[n3];
1829
2052
  }), 0) / 100;
1830
2053
  return e(i2, a2, u2);
1831
2054
  };
@@ -1836,16 +2059,16 @@ var O = function(t2, r2, n2) {
1836
2059
  })), t2 = e2[0], r2 = e2[1], n2 = e2[2], [Math.max(0, 116 * r2 - 16), 500 * (t2 - r2), 200 * (r2 - n2)];
1837
2060
  };
1838
2061
  var P = function(t2, r2, n2) {
1839
- var e2, o2 = (t2 + 16) / 116, i2 = isNaN(r2) ? o2 : o2 + r2 / 500, a2 = isNaN(n2) ? o2 : o2 - n2 / 200;
1840
- return e2 = [i2, o2, a2].map((function(t3) {
2062
+ var e2, o3 = (t2 + 16) / 116, i2 = isNaN(r2) ? o3 : o3 + r2 / 500, a2 = isNaN(n2) ? o3 : o3 - n2 / 200;
2063
+ return e2 = [i2, o3, a2].map((function(t3) {
1841
2064
  return t3 > I ? Math.pow(t3, 3) : (116 * t3 - 16) / E;
1842
- })), i2 = e2[0], o2 = e2[1], a2 = e2[2], [i2 * x * 100, o2 * _ * 100, a2 * C * 100];
2065
+ })), i2 = e2[0], o3 = e2[1], a2 = e2[2], [i2 * x * 100, o3 * _ * 100, a2 * C * 100];
1843
2066
  };
1844
2067
  var j = function(t2, r2, n2) {
1845
2068
  return N.apply(void 0, P(t2, r2, n2));
1846
2069
  };
1847
2070
  var S = function(t2, r2, n2) {
1848
- r2 = o(r2, -100, 100), n2 = o(n2, -100, 100);
2071
+ r2 = o2(r2, -100, 100), n2 = o2(n2, -100, 100);
1849
2072
  var e2 = Math.sqrt(r2 * r2 + n2 * n2), i2 = (180 * Math.atan2(n2, r2) / Math.PI + 360) % 360;
1850
2073
  return 0 === Math.round(1e4 * e2) && (i2 = Number.NaN), [t2, e2, i2];
1851
2074
  };
@@ -1856,10 +2079,10 @@ var L2 = function(t2, r2, n2) {
1856
2079
  return P.apply(void 0, A(t2, r2, n2));
1857
2080
  };
1858
2081
  var H = function(t2, r2, n2) {
1859
- var e2 = t2 + r2 + n2, o2 = 0, i2 = 0;
1860
- return e2 > 0 && (o2 = t2 / e2, i2 = r2 / e2), [o2, i2, r2];
2082
+ var e2 = t2 + r2 + n2, o3 = 0, i2 = 0;
2083
+ return e2 > 0 && (o3 = t2 / e2, i2 = r2 / e2), [o3, i2, r2];
1861
2084
  };
1862
- var Y = Object.freeze({ __proto__: null, linear2rgb: e, rgb2linear: n, rgb2hex: u, hex2rgb: h, rgb2cmyk: c, cmyk2rgb: l, rgb2hsl: f, hsl2rgb: s, rgb2hsv: v, hsv2rgb: b, rgb2hsi: y, hsi2rgb: d, rgb2hwb: g, hwb2rgb: w, rgb2xyz: z, xyz2rgb: N, xyz2lab: O, lab2xyz: P, rgb2lab: function(t2, r2, n2) {
2085
+ var Y = Object.freeze({ __proto__: null, linear2rgb: e, rgb2linear: n, rgb2hex: u, hex2rgb: h, rgb2cmyk: c, cmyk2rgb: l2, rgb2hsl: f, hsl2rgb: s, rgb2hsv: v, hsv2rgb: b, rgb2hsi: y, hsi2rgb: d, rgb2hwb: g, hwb2rgb: w, rgb2xyz: z, xyz2rgb: N, xyz2lab: O, lab2xyz: P, rgb2lab: function(t2, r2, n2) {
1863
2086
  return O.apply(void 0, z(t2, r2, n2));
1864
2087
  }, lab2rgb: j, lch2lab: A, lab2lch: S, xyz2lch: function(t2, r2, n2) {
1865
2088
  return S.apply(void 0, O(t2, r2, n2));
@@ -1867,10 +2090,10 @@ var Y = Object.freeze({ __proto__: null, linear2rgb: e, rgb2linear: n, rgb2hex:
1867
2090
  return 0 === r2 ? [0, 0, 0] : [t2 * (n2 / r2), n2, n2 / r2 * (1 - t2 - r2)];
1868
2091
  }, xyz2xyY: H });
1869
2092
  function R(t2, n2) {
1870
- return void 0 === n2 && (n2 = false), function(e2, o2, i2) {
2093
+ return void 0 === n2 && (n2 = false), function(e2, o3, i2) {
1871
2094
  var a2 = i2.value;
1872
2095
  i2.value = function() {
1873
- for (var e3 = [], o3 = 0; o3 < arguments.length; o3++) e3[o3] = arguments[o3];
2096
+ for (var e3 = [], o4 = 0; o4 < arguments.length; o4++) e3[o4] = arguments[o4];
1874
2097
  if (e3.length > 0 && n2) {
1875
2098
  var i3 = JSON.stringify(e3);
1876
2099
  t2 += i3;
@@ -1881,24 +2104,24 @@ function R(t2, n2) {
1881
2104
  };
1882
2105
  };
1883
2106
  }
1884
- function q(t2, n2, e2, o2) {
1885
- return void 0 === t2 && (t2 = [0, 2, 2]), void 0 === n2 && (n2 = 0), void 0 === e2 && (e2 = true), void 0 === o2 && (o2 = 0), function(a2, u2, h2) {
2107
+ function q(t2, n2, e2, o3) {
2108
+ return void 0 === t2 && (t2 = [0, 2, 2]), void 0 === n2 && (n2 = 0), void 0 === e2 && (e2 = true), void 0 === o3 && (o3 = 0), function(a2, u2, h2) {
1886
2109
  var c2 = h2.value;
1887
2110
  h2.value = function() {
1888
2111
  for (var a3 = [], u3 = 0; u3 < arguments.length; u3++) a3[u3] = arguments[u3];
1889
- var h3 = void 0 === a3[o2] ? e2 : a3[o2], l2 = c2.call.apply(c2, r([this], a3, false));
1890
- if (false === h3) return l2;
1891
- var p3 = "number" == typeof h3 ? Math.round(h3) : 0, f2 = "number" == typeof t2 ? new Array(l2.length).fill(t2) : t2, s2 = f2.map((function(t3) {
2112
+ var h3 = void 0 === a3[o3] ? e2 : a3[o3], l3 = c2.call.apply(c2, r([this], a3, false));
2113
+ if (false === h3) return l3;
2114
+ var p3 = "number" == typeof h3 ? Math.round(h3) : 0, f2 = "number" == typeof t2 ? new Array(l3.length).fill(t2) : t2, s2 = f2.map((function(t3) {
1892
2115
  return 1 === n2 ? "number" == typeof h3 ? p3 : t3 : t3 + p3;
1893
2116
  }));
1894
- return l2.map((function(t3, r2) {
2117
+ return l3.map((function(t3, r2) {
1895
2118
  return i(t3, s2[r2]);
1896
2119
  }));
1897
2120
  };
1898
2121
  };
1899
2122
  }
1900
2123
  var D = function(t2, r2, n2) {
1901
- var e2 = t2 instanceof ft ? t2 : new ft(t2), i2 = r2 instanceof ft ? r2 : new ft(r2), a2 = o(n2, 0, 100) / 100, u2 = 2 * a2 - 1, h2 = e2.alpha() - i2.alpha(), c2 = ((u2 * h2 == -1 ? u2 : (u2 + h2) / (1 + u2 * h2)) + 1) / 2, l2 = 1 - c2, p3 = [Math.round(o(e2.red() * c2 + i2.red() * l2, 0, 255)), Math.round(o(e2.green() * c2 + i2.green() * l2, 0, 255)), Math.round(o(e2.blue() * c2 + i2.blue() * l2, 0, 255))], f2 = e2.alpha() * a2 + i2.alpha() * (1 - a2);
2124
+ var e2 = t2 instanceof ft ? t2 : new ft(t2), i2 = r2 instanceof ft ? r2 : new ft(r2), a2 = o2(n2, 0, 100) / 100, u2 = 2 * a2 - 1, h2 = e2.alpha() - i2.alpha(), c2 = ((u2 * h2 == -1 ? u2 : (u2 + h2) / (1 + u2 * h2)) + 1) / 2, l3 = 1 - c2, p3 = [Math.round(o2(e2.red() * c2 + i2.red() * l3, 0, 255)), Math.round(o2(e2.green() * c2 + i2.green() * l3, 0, 255)), Math.round(o2(e2.blue() * c2 + i2.blue() * l3, 0, 255))], f2 = e2.alpha() * a2 + i2.alpha() * (1 - a2);
1902
2125
  return new ft(p3, f2);
1903
2126
  };
1904
2127
  var F = Math.sqrt;
@@ -1919,8 +2142,8 @@ var T = function(t2, r2, n2) {
1919
2142
  };
1920
2143
  var V = function(t2, r2) {
1921
2144
  void 0 === r2 && (r2 = true);
1922
- var n2 = t2.lab(false), e2 = n2[0], o2 = n2[1], i2 = n2[2];
1923
- return [e2, F(U(o2, 2) + U(i2, 2)), T(o2, i2, r2), o2, i2];
2145
+ var n2 = t2.lab(false), e2 = n2[0], o3 = n2[1], i2 = n2[2];
2146
+ return [e2, F(U(o3, 2) + U(i2, 2)), T(o3, i2, r2), o3, i2];
1924
2147
  };
1925
2148
  var W = ["CMC", "CIE", "CIE2000", "CIE1994", "CIE1976"];
1926
2149
  var X = "CMC";
@@ -1929,48 +2152,48 @@ var rt = "CIE1994";
1929
2152
  var nt = "CIE1976";
1930
2153
  var et = function(t2, r2, n2, e2) {
1931
2154
  void 0 === n2 && (n2 = "CIE");
1932
- var o2 = (function(t3) {
2155
+ var o3 = (function(t3) {
1933
2156
  var r3 = t3.toUpperCase();
1934
2157
  return W.includes(r3) && "CIE" !== r3 ? r3 : tt;
1935
2158
  })(n2);
1936
- if (e2 = e2 || {}, o2 === X) {
2159
+ if (e2 = e2 || {}, o3 === X) {
1937
2160
  var i2 = Object.assign({}, { l: 1, c: 1 }, e2);
1938
2161
  return (function(t3, r3, n3, e3) {
1939
2162
  void 0 === n3 && (n3 = 1), void 0 === e3 && (e3 = 1);
1940
- var o3 = V(t3, true), i3 = o3[0], a3 = o3[1], u3 = o3[2], h3 = o3[3], c3 = o3[4], l2 = V(r3), p3 = l2[0], f2 = l2[1], s2 = l2[3], v2 = a3 - f2, b2 = i3 - p3, y2 = c3 - l2[4], d2 = F(U(h3 - s2, 2) + U(y2, 2) - U(v2, 2)), g2 = i3 < 16 ? 0.511 : 0.040975 * i3 / (1 + 0.01765 * i3), w2 = 0.0638 * a3 / (1 + 0.0131 * a3) + 0.638, m2 = 164 <= u3 && u3 <= 345 ? 0.56 + J(0.2 * $(Q(u3 + 168))) : 0.36 + J(0.4 * $(Q(u3 + 35))), M2 = F(U(a3, 4) / (U(a3, 4) + 1900)), x2 = w2 * (M2 * m2 + 1 - M2);
2163
+ var o4 = V(t3, true), i3 = o4[0], a3 = o4[1], u3 = o4[2], h3 = o4[3], c3 = o4[4], l3 = V(r3), p3 = l3[0], f2 = l3[1], s2 = l3[3], v2 = a3 - f2, b2 = i3 - p3, y2 = c3 - l3[4], d2 = F(U(h3 - s2, 2) + U(y2, 2) - U(v2, 2)), g2 = i3 < 16 ? 0.511 : 0.040975 * i3 / (1 + 0.01765 * i3), w2 = 0.0638 * a3 / (1 + 0.0131 * a3) + 0.638, m2 = 164 <= u3 && u3 <= 345 ? 0.56 + J(0.2 * $(Q(u3 + 168))) : 0.36 + J(0.4 * $(Q(u3 + 35))), M2 = F(U(a3, 4) / (U(a3, 4) + 1900)), x2 = w2 * (M2 * m2 + 1 - M2);
1941
2164
  return F(U(b2 / (n3 * g2), 2) + U(v2 / (e3 * w2), 2) + U(d2 / x2, 2));
1942
2165
  })(t2, r2, i2.l, i2.c);
1943
2166
  }
1944
- if (o2 === rt) {
2167
+ if (o3 === rt) {
1945
2168
  var a2 = { kL: 1, kC: 1, kH: 1, cate: "graphic" }, u2 = Object.assign({}, a2, e2);
1946
- return (function(t3, r3, n3, e3, o3, i3) {
1947
- void 0 === n3 && (n3 = 1), void 0 === e3 && (e3 = 1), void 0 === o3 && (o3 = 1), void 0 === i3 && (i3 = "graphic");
2169
+ return (function(t3, r3, n3, e3, o4, i3) {
2170
+ void 0 === n3 && (n3 = 1), void 0 === e3 && (e3 = 1), void 0 === o4 && (o4 = 1), void 0 === i3 && (i3 = "graphic");
1948
2171
  var a3 = "textiles" === i3 ? 0.048 : 0.045, u3 = "textiles" === i3 ? 0.014 : 0.015;
1949
2172
  n3 = "textiles" === i3 ? 2 : n3;
1950
- var h3 = V(t3), c3 = h3[0], l2 = h3[1], p3 = h3[3], f2 = h3[4], s2 = V(r3), v2 = s2[0], b2 = s2[1], y2 = s2[3], d2 = c3 - v2, g2 = l2 - b2, w2 = f2 - s2[4], m2 = 1 + a3 * l2, M2 = 1 + u3 * l2, x2 = F(U(p3 - y2, 2) + U(w2, 2) - U(g2, 2));
1951
- return F(U(d2 / (1 * n3), 2) + U(g2 / (e3 * m2), 2) + U(x2 / (o3 * M2), 2));
2173
+ var h3 = V(t3), c3 = h3[0], l3 = h3[1], p3 = h3[3], f2 = h3[4], s2 = V(r3), v2 = s2[0], b2 = s2[1], y2 = s2[3], d2 = c3 - v2, g2 = l3 - b2, w2 = f2 - s2[4], m2 = 1 + a3 * l3, M2 = 1 + u3 * l3, x2 = F(U(p3 - y2, 2) + U(w2, 2) - U(g2, 2));
2174
+ return F(U(d2 / (1 * n3), 2) + U(g2 / (e3 * m2), 2) + U(x2 / (o4 * M2), 2));
1952
2175
  })(t2, r2, u2.kL, u2.kC, u2.kH, u2.cate);
1953
2176
  }
1954
- if (o2 === nt) return (function(t3, r3) {
1955
- var n3 = t3.lab(false), e3 = n3[0], o3 = n3[1], i3 = n3[2], a3 = r3.lab(false), u3 = a3[0], h3 = a3[1], c3 = a3[2];
1956
- return F(U(e3 - u3, 2) + U(o3 - h3, 2) + U(i3 - c3, 2));
2177
+ if (o3 === nt) return (function(t3, r3) {
2178
+ var n3 = t3.lab(false), e3 = n3[0], o4 = n3[1], i3 = n3[2], a3 = r3.lab(false), u3 = a3[0], h3 = a3[1], c3 = a3[2];
2179
+ return F(U(e3 - u3, 2) + U(o4 - h3, 2) + U(i3 - c3, 2));
1957
2180
  })(t2, r2);
1958
2181
  var h2 = { kL: 1, kC: 1, kH: 1 }, c2 = Object.assign({}, h2, e2);
1959
- return (function(t3, r3, n3, e3, o3) {
1960
- void 0 === n3 && (n3 = 1), void 0 === e3 && (e3 = 1), void 0 === o3 && (o3 = 1);
1961
- var i3 = V(t3), a3 = i3[0], u3 = i3[1], h3 = i3[3], c3 = i3[4], l2 = V(r3), p3 = l2[0], f2 = l2[1], s2 = l2[3], v2 = l2[4], b2 = (a3 + p3) / 2, y2 = (u3 + f2) / 2, d2 = (1 - F(U(y2, 7) / (U(y2, 7) + U(25, 7)))) / 2, g2 = h3 * (1 + d2), w2 = s2 * (1 + d2), m2 = F(U(g2, 2) + U(c3, 2)), M2 = F(U(w2, 2) + U(v2, 2)), x2 = T(g2, c3, true), _2 = T(w2, v2, true), C2 = (m2 + M2) / 2, I2 = J(x2 - _2) > 180 ? (x2 + _2 + 360) / 2 : (x2 + _2) / 2, k2 = 1 - 0.17 * $(Q(I2 - 30)) + 0.24 * $(Q(2 * I2)) + 0.32 * $(Q(3 * I2 + 6)) - 0.2 * $(Q(4 * I2 - 63)), E2 = J(_2 - x2) <= 180 ? _2 - x2 : J(_2 - x2) > 180 && _2 <= x2 ? _2 - x2 + 360 : _2 - x2 - 360, z2 = p3 - a3, N2 = f2 - u3, O2 = 2 * F(m2 * M2) * Z(Q(E2) / 2), P2 = 1 + 0.015 * U(b2 - 50, 2) / F(20 + U(b2 - 50, 2)), j2 = 1 + 0.045 * C2, S2 = 1 + 0.015 * C2 * k2, A2 = 30 * B(-U((I2 - 275) / 25, 2)), L4 = -2 * F(U(C2, 7) / (U(C2, 7) + U(25, 7))) * Z(2 * Q(A2));
1962
- return F(U(z2 / (n3 * P2), 2) + U(N2 / (e3 * j2), 2) + U(O2 / (o3 * S2), 2) + L4 * (N2 / (e3 * j2)) * (O2 / (o3 * S2)));
2182
+ return (function(t3, r3, n3, e3, o4) {
2183
+ void 0 === n3 && (n3 = 1), void 0 === e3 && (e3 = 1), void 0 === o4 && (o4 = 1);
2184
+ var i3 = V(t3), a3 = i3[0], u3 = i3[1], h3 = i3[3], c3 = i3[4], l3 = V(r3), p3 = l3[0], f2 = l3[1], s2 = l3[3], v2 = l3[4], b2 = (a3 + p3) / 2, y2 = (u3 + f2) / 2, d2 = (1 - F(U(y2, 7) / (U(y2, 7) + U(25, 7)))) / 2, g2 = h3 * (1 + d2), w2 = s2 * (1 + d2), m2 = F(U(g2, 2) + U(c3, 2)), M2 = F(U(w2, 2) + U(v2, 2)), x2 = T(g2, c3, true), _2 = T(w2, v2, true), C2 = (m2 + M2) / 2, I2 = J(x2 - _2) > 180 ? (x2 + _2 + 360) / 2 : (x2 + _2) / 2, k2 = 1 - 0.17 * $(Q(I2 - 30)) + 0.24 * $(Q(2 * I2)) + 0.32 * $(Q(3 * I2 + 6)) - 0.2 * $(Q(4 * I2 - 63)), E2 = J(_2 - x2) <= 180 ? _2 - x2 : J(_2 - x2) > 180 && _2 <= x2 ? _2 - x2 + 360 : _2 - x2 - 360, z2 = p3 - a3, N2 = f2 - u3, O2 = 2 * F(m2 * M2) * Z(Q(E2) / 2), P2 = 1 + 0.015 * U(b2 - 50, 2) / F(20 + U(b2 - 50, 2)), j2 = 1 + 0.045 * C2, S2 = 1 + 0.015 * C2 * k2, A2 = 30 * B(-U((I2 - 275) / 25, 2)), L3 = -2 * F(U(C2, 7) / (U(C2, 7) + U(25, 7))) * Z(2 * Q(A2));
2185
+ return F(U(z2 / (n3 * P2), 2) + U(N2 / (e3 * j2), 2) + U(O2 / (o4 * S2), 2) + L3 * (N2 / (e3 * j2)) * (O2 / (o4 * S2)));
1963
2186
  })(t2, r2, c2.kL, c2.kC, c2.kH);
1964
2187
  };
1965
2188
  var ot = function(t2, r2, n2) {
1966
- var e2 = Math.abs, o2 = Math.max, i2 = Math.min, a2 = t2 instanceof ft ? t2 : new ft(t2), u2 = r2 instanceof ft ? r2 : new ft(r2), h2 = Object.assign({}, { b: 125, c: 500 }, n2);
1967
- return !(e2(255 * a2.brightness() / 100 - 255 * u2.brightness() / 100) <= h2.b) && !(o2(a2.red(), u2.red()) - i2(a2.red(), u2.red()) + (o2(a2.green(), u2.green()) - i2(a2.green(), u2.green())) + (o2(a2.blue(), u2.blue()) - i2(a2.blue(), u2.blue())) <= h2.c);
2189
+ var e2 = Math.abs, o3 = Math.max, i2 = Math.min, a2 = t2 instanceof ft ? t2 : new ft(t2), u2 = r2 instanceof ft ? r2 : new ft(r2), h2 = Object.assign({}, { b: 125, c: 500 }, n2);
2190
+ return !(e2(255 * a2.brightness() / 100 - 255 * u2.brightness() / 100) <= h2.b) && !(o3(a2.red(), u2.red()) - i2(a2.red(), u2.red()) + (o3(a2.green(), u2.green()) - i2(a2.green(), u2.green())) + (o3(a2.blue(), u2.blue()) - i2(a2.blue(), u2.blue())) <= h2.c);
1968
2191
  };
1969
2192
  var it = function(t2, r2, n2) {
1970
2193
  var e2, i2 = function(t3) {
1971
- return o(t3, 0, 100);
2194
+ return o2(t3, 0, 100);
1972
2195
  }, a2 = function(t3) {
1973
- return o(t3, 0, 255);
2196
+ return o2(t3, 0, 255);
1974
2197
  }, u2 = { h: [0, function(t3) {
1975
2198
  return t3 % 360;
1976
2199
  }], s: [1, i2], l: [2, i2], r: [0, a2], g: [1, a2], b: [2, a2] }, h2 = u2[r2][0];
@@ -1995,10 +2218,10 @@ var lt = function(t2, r2) {
1995
2218
  var n2 = "string" == typeof t2 ? t2 : t2.join(",");
1996
2219
  if (r2.has(n2)) throw new Error("Invalid Color");
1997
2220
  r2.add(n2);
1998
- var e2 = "rgb", o2 = [0, 0, 0], i2 = 100;
2221
+ var e2 = "rgb", o3 = [0, 0, 0], i2 = 100;
1999
2222
  if (Array.isArray(t2)) {
2000
2223
  if (t2.length < 3) throw new Error("Invalid Color");
2001
- for (var a2 = 0; a2 < t2.length; a2++) if (a2 < 3) o2[a2] = t2[a2];
2224
+ for (var a2 = 0; a2 < t2.length; a2++) if (a2 < 3) o3[a2] = t2[a2];
2002
2225
  else {
2003
2226
  if (3 !== a2 || void 0 === t2[3]) break;
2004
2227
  i2 = t2[3];
@@ -2006,11 +2229,11 @@ var lt = function(t2, r2) {
2006
2229
  } else {
2007
2230
  var u2 = false, c2 = t2.trim().match(ht);
2008
2231
  if (c2 || (u2 = true), c2) {
2009
- var l2 = c2[1].toLocaleLowerCase();
2010
- if (e2 = l2, ut.has(l2) || (u2 = true), c2[2] && !u2) {
2232
+ var l3 = c2[1].toLocaleLowerCase();
2233
+ if (e2 = l3, ut.has(l3) || (u2 = true), c2[2] && !u2) {
2011
2234
  var p3 = c2[2], f2 = -1 !== p3.indexOf(",") ? "," : " ", s2 = p3.split(f2);
2012
- for (a2 = 0; a2 < 3; a2++) void 0 !== s2[a2] && (["lch", "lab"].includes(e2) && 0 === a2 || ["hsl", "hsla", "hsv", "hsva", "hwb", "hwba", "hsi", "hsia"].includes(e2) && a2 > 0 ? o2[a2] = ct(s2[a2]) : o2[a2] = Number(s2[a2].trim()));
2013
- ["rgba", "hsla", "hsva", "hwba", "hsia"].includes(e2) ? (e2 = e2.slice(0, -1), void 0 !== s2[3] && (i2 = ct(s2[3]))) : "cmyk" === e2 && o2.push(void 0 !== s2[3] ? ct(s2[3]) : 0);
2235
+ for (a2 = 0; a2 < 3; a2++) void 0 !== s2[a2] && (["lch", "lab"].includes(e2) && 0 === a2 || ["hsl", "hsla", "hsv", "hsva", "hwb", "hwba", "hsi", "hsia"].includes(e2) && a2 > 0 ? o3[a2] = ct(s2[a2]) : o3[a2] = Number(s2[a2].trim()));
2236
+ ["rgba", "hsla", "hsva", "hwba", "hsia"].includes(e2) ? (e2 = e2.slice(0, -1), void 0 !== s2[3] && (i2 = ct(s2[3]))) : "cmyk" === e2 && o3.push(void 0 !== s2[3] ? ct(s2[3]) : 0);
2014
2237
  }
2015
2238
  }
2016
2239
  if (u2) {
@@ -2025,10 +2248,10 @@ var lt = function(t2, r2) {
2025
2248
  } catch (t3) {
2026
2249
  throw new Error("Invalid Color");
2027
2250
  }
2028
- o2 = h(t2);
2251
+ o3 = h(t2);
2029
2252
  }
2030
2253
  }
2031
- return [e2, o2, i2];
2254
+ return [e2, o3, i2];
2032
2255
  };
2033
2256
  var pt = { thowParseError: false };
2034
2257
  var ft = (function() {
@@ -2041,12 +2264,12 @@ var ft = (function() {
2041
2264
  if ("rgb" === i3) return [a3, u3];
2042
2265
  "lch" === i3 && (i3 = (r3 = ["xyz", L2(a3[0], a3[1], a3[2])])[0], a3 = r3[1]);
2043
2266
  var h3 = a3[0], c2 = a3[1], p3 = a3[2], f2 = a3[3];
2044
- if ("cmyk" === i3) return [l(h3, c2, p3, f2).map((function(t4) {
2045
- return o(t4, 0, 255);
2267
+ if ("cmyk" === i3) return [l2(h3, c2, p3, f2).map((function(t4) {
2268
+ return o2(t4, 0, 255);
2046
2269
  })), u3];
2047
2270
  var v2 = "".concat(i3, "2rgb");
2048
2271
  if ("function" == typeof n4[v2]) return [n4[v2](h3, c2, p3).map((function(t4) {
2049
- return o(t4, 0, 255);
2272
+ return o2(t4, 0, 255);
2050
2273
  })), u3];
2051
2274
  throw new Error("Invalid color");
2052
2275
  })(t2), u2 = a2[0], h2 = a2[1];
@@ -2054,7 +2277,7 @@ var ft = (function() {
2054
2277
  } catch (t3) {
2055
2278
  if (i2.thowParseError) throw t3;
2056
2279
  }
2057
- void 0 !== r2 && (this._alpha = o(r2, 0, 100));
2280
+ void 0 !== r2 && (this._alpha = o2(r2, 0, 100));
2058
2281
  }
2059
2282
  return n2.prototype.red = function(t2) {
2060
2283
  return it(this, "r", t2);
@@ -2063,11 +2286,11 @@ var ft = (function() {
2063
2286
  }, n2.prototype.blue = function(t2) {
2064
2287
  return it(this, "b", t2);
2065
2288
  }, n2.prototype.alpha = function(t2) {
2066
- return void 0 === t2 ? this._alpha : (t2 = o(t2, 0, 100), new n2(this.rgb(), t2));
2289
+ return void 0 === t2 ? this._alpha : (t2 = o2(t2, 0, 100), new n2(this.rgb(), t2));
2067
2290
  }, n2.prototype.fadeIn = function(t2, r2) {
2068
- return void 0 === t2 && (t2 = 10), t2 = r2 && "relative" === r2 ? this._alpha * t2 / 100 : t2, new n2(this.rgb(), o(this._alpha + t2, 0, 100));
2291
+ return void 0 === t2 && (t2 = 10), t2 = r2 && "relative" === r2 ? this._alpha * t2 / 100 : t2, new n2(this.rgb(), o2(this._alpha + t2, 0, 100));
2069
2292
  }, n2.prototype.fadeOut = function(t2, r2) {
2070
- return void 0 === t2 && (t2 = 10), t2 = r2 && "relative" === r2 ? this._alpha * t2 / 100 : t2, new n2(this.rgb(), o(this._alpha - t2, 0, 100));
2293
+ return void 0 === t2 && (t2 = 10), t2 = r2 && "relative" === r2 ? this._alpha * t2 / 100 : t2, new n2(this.rgb(), o2(this._alpha - t2, 0, 100));
2071
2294
  }, n2.prototype.opacify = function(t2, r2) {
2072
2295
  return void 0 === t2 && (t2 = 10), this.fadeIn(t2, r2);
2073
2296
  }, n2.prototype.transparentize = function(t2, r2) {
@@ -2106,23 +2329,23 @@ var ft = (function() {
2106
2329
  void 0 === t2 && (t2 = 2);
2107
2330
  var n3 = 0 === t2 ? void 0 : 1 === t2 ? this._alpha : 100 === this._alpha ? void 0 : this._alpha, e2 = "color:hex:param_".concat(t2);
2108
2331
  if (this.cache.has(e2)) return this.cache.get(e2);
2109
- var o2 = u.apply(void 0, r(r([], this._rgb, false), [n3], false));
2110
- return this.cache.set(e2, o2), o2;
2332
+ var o3 = u.apply(void 0, r(r([], this._rgb, false), [n3], false));
2333
+ return this.cache.set(e2, o3), o3;
2111
2334
  }, n2.prototype.lighten = function(t2, r2) {
2112
2335
  void 0 === t2 && (t2 = 5);
2113
2336
  var e2 = this.hsl(false), i2 = e2[0], a2 = e2[1], u2 = e2[2];
2114
- return u2 = o(u2 += void 0 !== r2 && "relative" === r2 ? u2 * (t2 / 100) : t2, 0, 100), new n2(s(i2, a2, u2), this._alpha);
2337
+ return u2 = o2(u2 += void 0 !== r2 && "relative" === r2 ? u2 * (t2 / 100) : t2, 0, 100), new n2(s(i2, a2, u2), this._alpha);
2115
2338
  }, n2.prototype.darken = function(t2, r2) {
2116
2339
  return void 0 === t2 && (t2 = 5), this.lighten(-t2, r2);
2117
2340
  }, n2.prototype.saturate = function(t2, r2) {
2118
2341
  void 0 === t2 && (t2 = 5);
2119
2342
  var e2 = this.hsl(false), i2 = e2[0], a2 = e2[1], u2 = e2[2];
2120
- return a2 = o(a2 += void 0 !== r2 && "relative" === r2 ? a2 * (t2 / 100) : t2, 0, 100), new n2(s(i2, a2, u2), this._alpha);
2343
+ return a2 = o2(a2 += void 0 !== r2 && "relative" === r2 ? a2 * (t2 / 100) : t2, 0, 100), new n2(s(i2, a2, u2), this._alpha);
2121
2344
  }, n2.prototype.desaturate = function(t2, r2) {
2122
2345
  return void 0 === t2 && (t2 = 5), this.saturate(-t2, r2);
2123
2346
  }, n2.prototype.spin = function(t2) {
2124
- var r2 = this.hsl(false), e2 = r2[0], o2 = r2[1], i2 = r2[2];
2125
- return new n2(s(e2 = (e2 + t2 % 360 + 360) % 360, o2, i2), this._alpha);
2347
+ var r2 = this.hsl(false), e2 = r2[0], o3 = r2[1], i2 = r2[2];
2348
+ return new n2(s(e2 = (e2 + t2 % 360 + 360) % 360, o3, i2), this._alpha);
2126
2349
  }, n2.prototype.adjustHue = function(t2) {
2127
2350
  return this.spin(t2);
2128
2351
  }, n2.prototype.complement = function() {
@@ -2133,7 +2356,7 @@ var ft = (function() {
2133
2356
  }));
2134
2357
  return new n2([t2[0], t2[1], t2[2]], this._alpha);
2135
2358
  }, n2.prototype.mix = function(t2, r2) {
2136
- return void 0 === r2 && (r2 = 50), D(this, t2, 100 - o(r2, 0, 100));
2359
+ return void 0 === r2 && (r2 = 50), D(this, t2, 100 - o2(r2, 0, 100));
2137
2360
  }, n2.prototype.luma = function() {
2138
2361
  var t2 = this._rgb.map((function(t3) {
2139
2362
  return (t3 /= 255) <= 0.03928 ? t3 / 12.92 : Math.pow((t3 + 0.055) / 1.055, 2.4);
@@ -2187,7 +2410,7 @@ Mt.config = function(t2) {
2187
2410
  if (void 0 !== r3 && "function" == typeof r3) {
2188
2411
  var n2 = {};
2189
2412
  for (var e2 in t3) {
2190
- var o2 = r3(e2, t3[e2]), i2 = o2[0], a2 = o2[1];
2413
+ var o3 = r3(e2, t3[e2]), i2 = o3[0], a2 = o3[1];
2191
2414
  n2[i2] = a2;
2192
2415
  }
2193
2416
  Object.assign(at, n2);
@@ -2204,8 +2427,8 @@ function pickDistinctColorFromSeed(seedHex, existing, minDistance = MIN_DELTA_E,
2204
2427
  const band = options.lightnessBand === void 0 ? LEGIBLE_LIGHTNESS : options.lightnessBand;
2205
2428
  const legible = (c2) => {
2206
2429
  if (!band) return true;
2207
- const l2 = c2.hsl()[2];
2208
- return l2 > band[0] && l2 < band[1];
2430
+ const l3 = c2.hsl()[2];
2431
+ return l3 > band[0] && l3 < band[1];
2209
2432
  };
2210
2433
  const minDeltaE = (c2) => existingCs.length === 0 ? Number.POSITIVE_INFINITY : Math.min(...existingCs.map((c22) => c2.deltaE(c22, "CIE2000")));
2211
2434
  if (minDeltaE(seed) >= minDistance) {
@@ -2323,10 +2546,10 @@ function normalise(seed) {
2323
2546
  return typeof seed === "string" ? seed.trim() : "";
2324
2547
  }
2325
2548
  function sweepCandidates(seedHex) {
2326
- const [h2, s2, l2] = Mt(seedHex).hsl();
2549
+ const [h2, s2, l3] = Mt(seedHex).hsl();
2327
2550
  const baseHue = Number.isFinite(h2) ? h2 : 210;
2328
2551
  const baseSat = s2 < 25 ? 62 : Math.min(90, s2);
2329
- const baseLight = l2 < 25 || l2 > 78 ? 52 : l2;
2552
+ const baseLight = l3 < 25 || l3 > 78 ? 52 : l3;
2330
2553
  const out = [];
2331
2554
  for (const dl of [0, -16, 16, -30, 30]) {
2332
2555
  const li = Math.min(78, Math.max(26, baseLight + dl));
@@ -2351,18 +2574,18 @@ function pendingRecoveryNextDelayMs(elapsedMs) {
2351
2574
  return PENDING_RECOVERY_SLOW_POLL_MS;
2352
2575
  }
2353
2576
  function encodePendingGenerate(m2) {
2354
- const o2 = { v: m2.v, t: m2.t, c: m2.c, p: m2.p ?? "" };
2355
- if (Number.isFinite(m2.h)) o2.h = Math.max(0, Math.floor(m2.h));
2356
- return JSON.stringify(o2);
2577
+ const o3 = { v: m2.v, t: m2.t, c: m2.c, p: m2.p ?? "" };
2578
+ if (Number.isFinite(m2.h)) o3.h = Math.max(0, Math.floor(m2.h));
2579
+ return JSON.stringify(o3);
2357
2580
  }
2358
2581
  function parsePendingGenerate(raw) {
2359
2582
  if (typeof raw !== "string" || raw.trim() === "") return null;
2360
2583
  try {
2361
- const o2 = JSON.parse(raw);
2362
- const v2 = Number(o2?.v), t2 = Number(o2?.t);
2584
+ const o3 = JSON.parse(raw);
2585
+ const v2 = Number(o3?.v), t2 = Number(o3?.t);
2363
2586
  if (!Number.isFinite(v2) || v2 <= 0 || !Number.isFinite(t2) || t2 <= 0) return null;
2364
- const h2 = Number(o2?.h);
2365
- const m2 = { v: Math.floor(v2), t: Math.floor(t2), c: typeof o2.c === "string" ? o2.c : "", p: typeof o2.p === "string" ? o2.p : "" };
2587
+ const h2 = Number(o3?.h);
2588
+ const m2 = { v: Math.floor(v2), t: Math.floor(t2), c: typeof o3.c === "string" ? o3.c : "", p: typeof o3.p === "string" ? o3.p : "" };
2366
2589
  if (Number.isFinite(h2) && h2 >= 0) m2.h = Math.floor(h2);
2367
2590
  return m2;
2368
2591
  } catch {
@@ -2436,6 +2659,14 @@ function reconcileChartPick(pick, offered, autoLabel) {
2436
2659
  if (names.length === 0) return { pick: want, dropped: false, message: "" };
2437
2660
  const key = want.toLowerCase();
2438
2661
  if (names.some((n2) => n2.toLowerCase() === key)) return { pick: want, dropped: false, message: "" };
2662
+ const loose = l(want);
2663
+ if (o(loose)) {
2664
+ const hits = new Set(names.filter((n2) => l(n2) === loose).map((n2) => n2.toLowerCase()));
2665
+ if (hits.size === 1) {
2666
+ const offeredName = names.find((n2) => l(n2) === loose);
2667
+ return { pick: offeredName, dropped: false, message: "" };
2668
+ }
2669
+ }
2439
2670
  return {
2440
2671
  pick: "",
2441
2672
  dropped: true,
@@ -2545,7 +2776,7 @@ function fingerprintComponentDigest(components) {
2545
2776
 
2546
2777
  // src/index.ts
2547
2778
  function registerCityTable(packed) {
2548
- L3(packed);
2779
+ _3(packed);
2549
2780
  }
2550
2781
  export {
2551
2782
  ACTIVE_TICK_CLASS,
@@ -2580,6 +2811,7 @@ export {
2580
2811
  CONTROL_CLASS,
2581
2812
  D3_PLUGIN_PACKAGES,
2582
2813
  DARK_TEXT,
2814
+ DEFAULT_FILTER_MATCH_STYLE,
2583
2815
  DEFAULT_MODEL_SUFFIX,
2584
2816
  DIM_OPACITY_DEFAULT,
2585
2817
  DIM_OPACITY_VAR,
@@ -2589,6 +2821,9 @@ export {
2589
2821
  FILTER_MIN_WIDTH_PX,
2590
2822
  FILTER_ROW_PX,
2591
2823
  FIT_CONTENT_SELECTOR,
2824
+ FLIP_DIRECTION_DEFAULT,
2825
+ FLIP_INTERVAL_MAX_MS,
2826
+ FLIP_INTERVAL_MIN_MS,
2592
2827
  FLIP_MODE_DEFAULT,
2593
2828
  GENERATION_CANCELLED_MESSAGE,
2594
2829
  GEO_POINT_PRECISIONS,
@@ -2598,6 +2833,7 @@ export {
2598
2833
  INLINE_FILTER_MIN_ROWS,
2599
2834
  LABEL_CONTRAST_CAP,
2600
2835
  LABEL_CONTRAST_DONE_ATTR,
2836
+ LABEL_PILL_CLASS,
2601
2837
  LEGEND_MARK_CLASS,
2602
2838
  LEGIBLE_LIGHTNESS,
2603
2839
  LIFT_SELECTED_CLASS,
@@ -2614,6 +2850,7 @@ export {
2614
2850
  MIN_DELTA_E,
2615
2851
  MIN_HIT_BAND_PX,
2616
2852
  MIN_RAMP_FILLS,
2853
+ NO_ROW_MARKS_ATTR,
2617
2854
  OPTIONS_VOCABULARY,
2618
2855
  PAGE_MATCH_TOLERANCE,
2619
2856
  PENDING_RECOVERY_FAST_PHASE_MS,
@@ -2636,6 +2873,12 @@ export {
2636
2873
  SEASONAL_MARKERS_DEFAULT,
2637
2874
  SELECTION_ACTIVE_CLASS,
2638
2875
  SELECTION_GLYPH_CLASS,
2876
+ SNAPSHOT_SVG_ATTR,
2877
+ STRADDLE_COLS,
2878
+ STRADDLE_MIN_SHARE,
2879
+ STRADDLE_PILL_ALPHA,
2880
+ STRADDLE_ROWS,
2881
+ STRADDLE_TARGET_CONTRAST,
2639
2882
  TRANSPORT_LOST_CHECKING_MESSAGE,
2640
2883
  VALUE_AXIS_BASELINE_DEFAULT,
2641
2884
  VALUE_AXIS_MIN_FIT,
@@ -2667,6 +2910,7 @@ export {
2667
2910
  censusMarks,
2668
2911
  censusValuePlacement,
2669
2912
  chartOwnsTimeline,
2913
+ chartSvgOf,
2670
2914
  chooserFitsViewport,
2671
2915
  clearGeoCache,
2672
2916
  clearSelectionGlyphs,
@@ -2694,6 +2938,7 @@ export {
2694
2938
  ensureCrossfilterHitTargets,
2695
2939
  explainRenderFailure,
2696
2940
  filterFitsChooser,
2941
+ filterMatchStyleOf,
2697
2942
  filterQualifyRows,
2698
2943
  fingerprintComponentDigest,
2699
2944
  fitReadingFor,
@@ -2706,6 +2951,8 @@ export {
2706
2951
  glyphSampleGrid,
2707
2952
  hasRefusalsToShow,
2708
2953
  hitBandFlag,
2954
+ htmlNaturalSize,
2955
+ htmlToSvgDataUrl,
2709
2956
  inlineFilterGate,
2710
2957
  invalidSentinelReason,
2711
2958
  isBlankRender,
@@ -2730,6 +2977,7 @@ export {
2730
2977
  markDefaultModel,
2731
2978
  markerArmedBlind,
2732
2979
  measureContainerBoxes,
2980
+ minContrastOver,
2733
2981
  mountProductFeedbackBox,
2734
2982
  needsScroll,
2735
2983
  newQualifyGroupState,
@@ -2746,6 +2994,7 @@ export {
2746
2994
  pendingRecoveryNextDelayMs,
2747
2995
  pendingRecoveryRemainingMs,
2748
2996
  periodTickSuppressesFeedback,
2997
+ pickColorOver,
2749
2998
  pickDistinctColorFromSeed,
2750
2999
  pillBacksGlyph,
2751
3000
  pinScrolledAxis,
@@ -2790,12 +3039,15 @@ export {
2790
3039
  shouldRestoreVersionAfterLicenseSave,
2791
3040
  shouldReview,
2792
3041
  stableFingerprintOptions,
3042
+ straddleSampleGrid,
3043
+ straddles,
2793
3044
  stripEsmExports,
2794
3045
  stripJsComments,
2795
3046
  svgInkReach,
2796
3047
  svgNaturalSize,
2797
3048
  svgToDataUrl,
2798
3049
  syncMemberSelection,
3050
+ tableHostOf,
2799
3051
  toRGBA,
2800
3052
  toSourceRows,
2801
3053
  transportFailureShouldRecover,