@bicharts/chart-host 0.6.45 → 0.6.48

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