gensplore 0.0.8 → 0.0.9

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/gensplore.js CHANGED
@@ -65,22 +65,22 @@ function B(e) {
65
65
  for (var t = 1; t < arguments.length; t++) {
66
66
  var n = arguments[t] == null ? {} : arguments[t];
67
67
  t % 2 ? ee(Object(n), !0).forEach(function(t) {
68
- V(e, t, n[t]);
68
+ te(e, t, n[t]);
69
69
  }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ee(Object(n)).forEach(function(t) {
70
70
  Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));
71
71
  });
72
72
  }
73
73
  return e;
74
74
  }
75
- function V(e, t, n) {
76
- return (t = te(t)) in e ? Object.defineProperty(e, t, {
75
+ function te(e, t, n) {
76
+ return (t = V(t)) in e ? Object.defineProperty(e, t, {
77
77
  value: n,
78
78
  enumerable: !0,
79
79
  configurable: !0,
80
80
  writable: !0
81
81
  }) : e[t] = n, e;
82
82
  }
83
- function te(e) {
83
+ function V(e) {
84
84
  var t = ne(e, "string");
85
85
  return typeof t == "symbol" ? t : t + "";
86
86
  }
@@ -227,7 +227,7 @@ var me = Object.defineProperty, he = (e, t, n) => t in e ? me(e, t, {
227
227
  configurable: !0,
228
228
  writable: !0,
229
229
  value: n
230
- }) : e[t] = n, ge = (e, t, n) => (he(e, typeof t == "symbol" ? t : t + "", n), n), H = new class {
230
+ }) : e[t] = n, ge = (e, t, n) => (he(e, typeof t == "symbol" ? t : t + "", n), n), _e = new class {
231
231
  constructor() {
232
232
  ge(this, "current", this.detect()), ge(this, "handoffState", "pending"), ge(this, "currentId", 0);
233
233
  }
@@ -258,11 +258,11 @@ var me = Object.defineProperty, he = (e, t, n) => t in e ? me(e, t, {
258
258
  }();
259
259
  //#endregion
260
260
  //#region node_modules/@headlessui/react/dist/utils/owner.js
261
- function _e(e) {
262
- return H.isServer ? null : e == null ? document : e?.ownerDocument ?? document;
261
+ function H(e) {
262
+ return _e.isServer ? null : e == null ? document : e?.ownerDocument ?? document;
263
263
  }
264
264
  function ve(e) {
265
- return H.isServer ? null : e == null ? document : (e?.getRootNode)?.call(e) ?? document;
265
+ return _e.isServer ? null : e == null ? document : (e?.getRootNode)?.call(e) ?? document;
266
266
  }
267
267
  function ye(e) {
268
268
  return ve(e)?.activeElement ?? null;
@@ -333,52 +333,52 @@ function Ce() {
333
333
  }
334
334
  //#endregion
335
335
  //#region node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js
336
- var we = (e, t) => {
337
- H.isServer ? d(e, t) : m(e, t);
336
+ var U = (e, t) => {
337
+ _e.isServer ? d(e, t) : m(e, t);
338
338
  };
339
339
  //#endregion
340
340
  //#region node_modules/@headlessui/react/dist/hooks/use-latest-value.js
341
- function Te(e) {
341
+ function we(e) {
342
342
  let t = _(e);
343
- return we(() => {
343
+ return U(() => {
344
344
  t.current = e;
345
345
  }, [e]), t;
346
346
  }
347
347
  //#endregion
348
348
  //#region node_modules/@headlessui/react/dist/hooks/use-event.js
349
- var U = function(e) {
350
- let n = Te(e);
349
+ var W = function(e) {
350
+ let n = we(e);
351
351
  return t.useCallback((...e) => n.current(...e), [n]);
352
352
  };
353
353
  //#endregion
354
354
  //#region node_modules/@headlessui/react/dist/hooks/use-slot.js
355
- function Ee(e) {
355
+ function Te(e) {
356
356
  return h(() => e, Object.values(e));
357
357
  }
358
358
  //#endregion
359
359
  //#region node_modules/@headlessui/react/dist/internal/disabled.js
360
- var De = i(void 0);
361
- function Oe() {
362
- return u(De);
360
+ var Ee = i(void 0);
361
+ function De() {
362
+ return u(Ee);
363
363
  }
364
364
  //#endregion
365
365
  //#region node_modules/@headlessui/react/dist/utils/class-names.js
366
- function ke(...e) {
366
+ function Oe(...e) {
367
367
  return Array.from(new Set(e.flatMap((e) => typeof e == "string" ? e.split(" ") : []))).filter(Boolean).join(" ");
368
368
  }
369
369
  //#endregion
370
370
  //#region node_modules/@headlessui/react/dist/utils/match.js
371
- function Ae(e, t, ...n) {
371
+ function ke(e, t, ...n) {
372
372
  if (e in t) {
373
373
  let r = t[e];
374
374
  return typeof r == "function" ? r(...n) : r;
375
375
  }
376
376
  let r = /* @__PURE__ */ Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map((e) => `"${e}"`).join(", ")}.`);
377
- throw Error.captureStackTrace && Error.captureStackTrace(r, Ae), r;
377
+ throw Error.captureStackTrace && Error.captureStackTrace(r, ke), r;
378
378
  }
379
379
  //#endregion
380
380
  //#region node_modules/@headlessui/react/dist/utils/render.js
381
- var je = ((e) => (e[e.None = 0] = "None", e[e.RenderStrategy = 1] = "RenderStrategy", e[e.Static = 2] = "Static", e))(je || {}), W = ((e) => (e[e.Unmount = 0] = "Unmount", e[e.Hidden = 1] = "Hidden", e))(W || {});
381
+ var Ae = ((e) => (e[e.None = 0] = "None", e[e.RenderStrategy = 1] = "RenderStrategy", e[e.Static = 2] = "Static", e))(Ae || {}), je = ((e) => (e[e.Unmount = 0] = "Unmount", e[e.Hidden = 1] = "Hidden", e))(je || {});
382
382
  function Me() {
383
383
  let e = Fe();
384
384
  return l((t) => Ne({
@@ -397,7 +397,7 @@ function Ne({ ourProps: e, theirProps: t, slot: n, defaultTag: r, features: i, v
397
397
  }
398
398
  if (l & 1) {
399
399
  let { unmount: e = !0, ...t } = c;
400
- return Ae(+!e, {
400
+ return ke(+!e, {
401
401
  0() {
402
402
  return null;
403
403
  },
@@ -437,7 +437,7 @@ function Pe(e, t = {}, n, i, o) {
437
437
  ["Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"Fragment\".", "Render a single element as the child so that we can forward the props onto that element."].map((e) => ` - ${e}`).join("\n")
438
438
  ].join("\n"));
439
439
  } else {
440
- let e = p.props?.className, t = typeof e == "function" ? (...t) => ke(e(...t), d.className) : ke(e, d.className), n = t ? { className: t } : {}, i = Le(p.props, ze(Be(d, ["ref"])));
440
+ let e = p.props?.className, t = typeof e == "function" ? (...t) => Oe(e(...t), d.className) : Oe(e, d.className), n = t ? { className: t } : {}, i = Le(p.props, ze(Be(d, ["ref"])));
441
441
  for (let e in m) e in i && delete m[e];
442
442
  return r(p, Object.assign({}, i, m, f, { ref: o(Ve(p), f.ref) }, n));
443
443
  }
@@ -567,7 +567,7 @@ function it(...e) {
567
567
  d(() => {
568
568
  t.current = e;
569
569
  }, [e]);
570
- let n = U((e) => {
570
+ let n = W((e) => {
571
571
  for (let n of t.current) n != null && (typeof n == "function" ? n(e) : n.current = e);
572
572
  });
573
573
  return e.every((e) => e == null || e?.[nt]) ? void 0 : n;
@@ -587,7 +587,7 @@ function ot() {
587
587
  function st() {
588
588
  let [e, n] = v([]);
589
589
  return [e.length > 0 ? e.join(" ") : void 0, h(() => function(e) {
590
- let r = U((e) => (n((t) => [...t, e]), () => n((t) => {
590
+ let r = W((e) => (n((t) => [...t, e]), () => n((t) => {
591
591
  let n = t.slice(), r = n.indexOf(e);
592
592
  return r !== -1 && n.splice(r, 1), n;
593
593
  }))), i = h(() => ({
@@ -608,9 +608,9 @@ function st() {
608
608
  }
609
609
  var ct = "p";
610
610
  function lt(e, t) {
611
- let n = p(), r = Oe(), { id: i = `headlessui-description-${n}`, ...a } = e, o = ot(), s = it(t);
612
- we(() => o.register(i), [i, o.register]);
613
- let c = Ee({
611
+ let n = p(), r = De(), { id: i = `headlessui-description-${n}`, ...a } = e, o = ot(), s = it(t);
612
+ U(() => o.register(i), [i, o.register]);
613
+ let c = Te({
614
614
  ...o.slot,
615
615
  disabled: r || !1
616
616
  }), l = {
@@ -1412,7 +1412,7 @@ var Rt = class extends Map {
1412
1412
  t instanceof WeakSet ? t.add(e) : t.set(e, n);
1413
1413
  }, Gt = (e, t, n, r) => (Ht(e, t, "write to private field"), r ? r.call(e, n) : t.set(e, n), n), Kt, qt, Jt, Yt = class {
1414
1414
  constructor(e) {
1415
- Wt(this, Kt, {}), Wt(this, qt, new Rt(() => /* @__PURE__ */ new Set())), Wt(this, Jt, /* @__PURE__ */ new Set()), Vt(this, "disposables", Se()), Gt(this, Kt, e), H.isServer && this.disposables.microTask(() => {
1415
+ Wt(this, Kt, {}), Wt(this, qt, new Rt(() => /* @__PURE__ */ new Set())), Wt(this, Jt, /* @__PURE__ */ new Set()), Vt(this, "disposables", Se()), Gt(this, Kt, e), _e.isServer && this.disposables.microTask(() => {
1416
1416
  this.dispose();
1417
1417
  });
1418
1418
  }
@@ -1423,7 +1423,7 @@ var Rt = class extends Map {
1423
1423
  return Ut(this, Kt);
1424
1424
  }
1425
1425
  subscribe(e, t) {
1426
- if (H.isServer) return () => {};
1426
+ if (_e.isServer) return () => {};
1427
1427
  let n = {
1428
1428
  selector: e,
1429
1429
  callback: t,
@@ -1434,7 +1434,7 @@ var Rt = class extends Map {
1434
1434
  });
1435
1435
  }
1436
1436
  on(e, t) {
1437
- return H.isServer ? () => {} : (Ut(this, qt).get(e).add(t), this.disposables.add(() => {
1437
+ return _e.isServer ? () => {} : (Ut(this, qt).get(e).add(t), this.disposables.add(() => {
1438
1438
  Ut(this, qt).get(e).delete(t);
1439
1439
  }));
1440
1440
  }
@@ -1517,7 +1517,7 @@ var $t = Object.defineProperty, en = (e, t, n) => t in e ? $t(e, t, {
1517
1517
  return new e({ stack: [] });
1518
1518
  }
1519
1519
  reduce(e, t) {
1520
- return Ae(t.type, rn, e, t);
1520
+ return ke(t.type, rn, e, t);
1521
1521
  }
1522
1522
  }, on = new Rt(() => an.new()), sn = /* @__PURE__ */ j(((t, n) => {
1523
1523
  n.exports = { ...e };
@@ -1617,7 +1617,7 @@ var $t = Object.defineProperty, en = (e, t, n) => t in e ? $t(e, t, {
1617
1617
  t.exports = process.env.NODE_ENV === "production" ? cn() : ln();
1618
1618
  })))();
1619
1619
  function dn(e, t, n = Xt) {
1620
- return (0, un.useSyncExternalStoreWithSelector)(U((t) => e.subscribe(fn, t)), U(() => e.state), U(() => e.state), U(t), n);
1620
+ return (0, un.useSyncExternalStoreWithSelector)(W((t) => e.subscribe(fn, t)), W(() => e.state), W(() => e.state), W(t), n);
1621
1621
  }
1622
1622
  function fn(e) {
1623
1623
  return e;
@@ -1626,7 +1626,7 @@ function fn(e) {
1626
1626
  //#region node_modules/@headlessui/react/dist/hooks/use-is-top-layer.js
1627
1627
  function pn(e, t) {
1628
1628
  let n = f(), r = on.get(t), [i, a] = dn(r, l((e) => [r.selectors.isTop(e, n), r.selectors.inStack(e, n)], [r, n]));
1629
- return we(() => {
1629
+ return U(() => {
1630
1630
  if (e) return r.actions.push(n), () => r.actions.pop(n);
1631
1631
  }, [
1632
1632
  r,
@@ -1652,14 +1652,14 @@ function _n(e) {
1652
1652
  }
1653
1653
  function vn(e, { allowed: t, disallowed: n } = {}) {
1654
1654
  let r = pn(e, "inert-others");
1655
- we(() => {
1655
+ U(() => {
1656
1656
  if (!r) return;
1657
1657
  let e = Se();
1658
1658
  for (let t of n?.() ?? []) t && e.add(gn(t));
1659
1659
  let i = t?.() ?? [];
1660
1660
  for (let t of i) {
1661
1661
  if (!t) continue;
1662
- let n = _e(t);
1662
+ let n = H(t);
1663
1663
  if (!n) continue;
1664
1664
  let r = t.parentElement;
1665
1665
  for (; r && r !== n.body;) {
@@ -1677,7 +1677,7 @@ function vn(e, { allowed: t, disallowed: n } = {}) {
1677
1677
  //#endregion
1678
1678
  //#region node_modules/@headlessui/react/dist/hooks/use-on-disappear.js
1679
1679
  function yn(e, t, n) {
1680
- let r = Te((e) => {
1680
+ let r = we((e) => {
1681
1681
  let t = e.getBoundingClientRect();
1682
1682
  t.x === 0 && t.y === 0 && t.width === 0 && t.height === 0 && n();
1683
1683
  });
@@ -1723,7 +1723,7 @@ function En(e = document.body) {
1723
1723
  }
1724
1724
  var Dn = ((e) => (e[e.Strict = 0] = "Strict", e[e.Loose = 1] = "Loose", e))(Dn || {});
1725
1725
  function On(e, t = 0) {
1726
- return e !== _e(e)?.body && Ae(t, {
1726
+ return e !== H(e)?.body && ke(t, {
1727
1727
  0() {
1728
1728
  return e.matches(bn);
1729
1729
  },
@@ -1798,7 +1798,7 @@ function Ln() {
1798
1798
  //#endregion
1799
1799
  //#region node_modules/@headlessui/react/dist/hooks/use-document-event.js
1800
1800
  function Rn(e, t, n, r) {
1801
- let i = Te(n);
1801
+ let i = we(n);
1802
1802
  d(() => {
1803
1803
  if (!e) return;
1804
1804
  function n(e) {
@@ -1814,7 +1814,7 @@ function Rn(e, t, n, r) {
1814
1814
  //#endregion
1815
1815
  //#region node_modules/@headlessui/react/dist/hooks/use-window-event.js
1816
1816
  function zn(e, t, n, r) {
1817
- let i = Te(n);
1817
+ let i = we(n);
1818
1818
  d(() => {
1819
1819
  if (!e) return;
1820
1820
  function n(e) {
@@ -1831,7 +1831,7 @@ function zn(e, t, n, r) {
1831
1831
  //#region node_modules/@headlessui/react/dist/hooks/use-outside-click.js
1832
1832
  var Bn = 30;
1833
1833
  function Vn(e, t, n) {
1834
- let r = Te(n), i = l(function(e, n) {
1834
+ let r = we(n), i = l(function(e, n) {
1835
1835
  if (e.defaultPrevented) return;
1836
1836
  let i = n(e);
1837
1837
  if (i === null || !i.getRootNode().contains(i) || !i.isConnected) return;
@@ -1865,12 +1865,12 @@ function Vn(e, t, n) {
1865
1865
  //#endregion
1866
1866
  //#region node_modules/@headlessui/react/dist/hooks/use-owner.js
1867
1867
  function Hn(...e) {
1868
- return h(() => _e(...e), [...e]);
1868
+ return h(() => H(...e), [...e]);
1869
1869
  }
1870
1870
  //#endregion
1871
1871
  //#region node_modules/@headlessui/react/dist/hooks/use-event-listener.js
1872
1872
  function Un(e, t, n, r) {
1873
- let i = Te(n);
1873
+ let i = we(n);
1874
1874
  d(() => {
1875
1875
  e ??= window;
1876
1876
  function n(e) {
@@ -2029,7 +2029,7 @@ Xn.subscribe(() => {
2029
2029
  //#region node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js
2030
2030
  function Zn(e, t, n = () => ({ containers: [] })) {
2031
2031
  let r = Wn(Xn), i = t ? r.get(t) : void 0, a = i ? i.count > 0 : !1;
2032
- return we(() => {
2032
+ return U(() => {
2033
2033
  if (t && e) return Xn.dispatch("PUSH", t, n), () => Xn.dispatch("POP", t, n);
2034
2034
  }, [e, t]), a;
2035
2035
  }
@@ -2071,7 +2071,7 @@ function tr(e) {
2071
2071
  }
2072
2072
  function nr(e, t, n, r) {
2073
2073
  let [i, a] = v(n), { hasFlag: o, addFlag: s, removeFlag: c } = $n(e && i ? 3 : 0), l = _(!1), u = _(!1);
2074
- return we(() => {
2074
+ return U(() => {
2075
2075
  var i;
2076
2076
  if (e) {
2077
2077
  if (n && a(!0), !t) {
@@ -2146,7 +2146,7 @@ function or(e) {
2146
2146
  //#endregion
2147
2147
  //#region node_modules/@headlessui/react/dist/hooks/use-watch.js
2148
2148
  function sr(e, t) {
2149
- let n = _([]), r = U(e);
2149
+ let n = _([]), r = W(e);
2150
2150
  d(() => {
2151
2151
  let e = [...n.current];
2152
2152
  for (let [i, a] of t.entries()) if (n.current[i] !== a) {
@@ -2191,7 +2191,7 @@ pr(() => {
2191
2191
  //#endregion
2192
2192
  //#region node_modules/@headlessui/react/dist/hooks/use-on-unmount.js
2193
2193
  function hr(e) {
2194
- let t = U(e), n = _(!1);
2194
+ let t = W(e), n = _(!1);
2195
2195
  d(() => (n.current = !1, () => {
2196
2196
  n.current = !0, xe(() => {
2197
2197
  n.current && t();
@@ -2205,10 +2205,10 @@ function gr() {
2205
2205
  return "useSyncExternalStore" in e && ((e) => e.useSyncExternalStore)(e)(() => () => {}, () => !1, () => !t);
2206
2206
  }
2207
2207
  function _r() {
2208
- let t = gr(), [n, r] = e.useState(H.isHandoffComplete);
2209
- return n && H.isHandoffComplete === !1 && r(!1), e.useEffect(() => {
2208
+ let t = gr(), [n, r] = e.useState(_e.isHandoffComplete);
2209
+ return n && _e.isHandoffComplete === !1 && r(!1), e.useEffect(() => {
2210
2210
  n !== !0 && r(!0);
2211
- }, [n]), e.useEffect(() => H.handoff(), []), !t && n;
2211
+ }, [n]), e.useEffect(() => _e.handoff(), []), !t && n;
2212
2212
  }
2213
2213
  //#endregion
2214
2214
  //#region node_modules/@headlessui/react/dist/internal/portal-force-root.js
@@ -2224,7 +2224,7 @@ function br(e) {
2224
2224
  function xr(e) {
2225
2225
  let t = yr(), n = u(Er), [r, i] = v(() => {
2226
2226
  if (!t && n !== null) return n.current ?? null;
2227
- if (H.isServer) return null;
2227
+ if (_e.isServer) return null;
2228
2228
  let r = e?.getElementById("headlessui-portal-root");
2229
2229
  if (r) return r;
2230
2230
  if (e === null) return null;
@@ -2287,7 +2287,7 @@ function Dr(e, n) {
2287
2287
  }
2288
2288
  var Or = i(null);
2289
2289
  function kr() {
2290
- let e = u(Or), n = _([]), r = U((t) => (n.current.push(t), e && e.register(t), () => i(t))), i = U((t) => {
2290
+ let e = u(Or), n = _([]), r = W((t) => (n.current.push(t), e && e.register(t), () => i(t))), i = W((t) => {
2291
2291
  let r = n.current.indexOf(t);
2292
2292
  r !== -1 && n.current.splice(r, 1), e && e.unregister(t);
2293
2293
  }), a = h(() => ({
@@ -2316,7 +2316,7 @@ function Nr(e, t = typeof document < "u" ? document.defaultView : null, n) {
2316
2316
  //#region node_modules/@headlessui/react/dist/hooks/use-is-touch-device.js
2317
2317
  function Pr() {
2318
2318
  let [e] = v(() => typeof window < "u" && typeof window.matchMedia == "function" ? window.matchMedia("(pointer: coarse)") : null), [t, n] = v(e?.matches ?? !1);
2319
- return we(() => {
2319
+ return U(() => {
2320
2320
  if (!e) return;
2321
2321
  function t(e) {
2322
2322
  n(e.matches);
@@ -2327,8 +2327,8 @@ function Pr() {
2327
2327
  //#endregion
2328
2328
  //#region node_modules/@headlessui/react/dist/hooks/use-root-containers.js
2329
2329
  function Fr({ defaultContainers: e = [], portals: t, mainTreeNode: n } = {}) {
2330
- let r = U(() => {
2331
- let r = _e(n), i = [];
2330
+ let r = W(() => {
2331
+ let r = H(n), i = [];
2332
2332
  for (let t of e) t !== null && (Xe(t) ? i.push(t) : "current" in t && Xe(t.current) && i.push(t.current));
2333
2333
  if (t != null && t.current) for (let e of t.current) i.push(e);
2334
2334
  for (let e of r?.querySelectorAll("html > *, body > *") ?? []) e !== document.body && e !== document.head && Xe(e) && e.id !== "headlessui-portal-root" && (n && (e.contains(n) || e.contains(n?.getRootNode()?.host)) || i.some((t) => e.contains(t)) || i.push(e));
@@ -2336,7 +2336,7 @@ function Fr({ defaultContainers: e = [], portals: t, mainTreeNode: n } = {}) {
2336
2336
  });
2337
2337
  return {
2338
2338
  resolveContainers: r,
2339
- contains: U((e) => r().some((t) => t.contains(e)))
2339
+ contains: W((e) => r().some((t) => t.contains(e)))
2340
2340
  };
2341
2341
  }
2342
2342
  var Ir = i(null);
@@ -2346,7 +2346,7 @@ function Lr({ children: e, node: n }) {
2346
2346
  features: Ke.Hidden,
2347
2347
  ref: (e) => {
2348
2348
  if (e) {
2349
- for (let t of _e(e)?.querySelectorAll("html > *, body > *") ?? []) if (t !== document.body && t !== document.head && Xe(t) && t != null && t.contains(e)) {
2349
+ for (let t of H(e)?.querySelectorAll("html > *, body > *") ?? []) if (t !== document.body && t !== document.head && Xe(t) && t != null && t.contains(e)) {
2350
2350
  i(t);
2351
2351
  break;
2352
2352
  }
@@ -2361,7 +2361,7 @@ function Rr(e = null) {
2361
2361
  //#region node_modules/@headlessui/react/dist/hooks/use-is-mounted.js
2362
2362
  function zr() {
2363
2363
  let e = _(!1);
2364
- return we(() => (e.current = !0, () => {
2364
+ return U(() => (e.current = !0, () => {
2365
2365
  e.current = !1;
2366
2366
  }), []), e;
2367
2367
  }
@@ -2401,11 +2401,11 @@ function Gr(e, n) {
2401
2401
  containers: s,
2402
2402
  previousActiveElement: d
2403
2403
  });
2404
- let f = Vr(), p = U((e) => {
2404
+ let f = Vr(), p = W((e) => {
2405
2405
  if (!Ze(r.current)) return;
2406
2406
  let t = r.current;
2407
2407
  ((e) => e())(() => {
2408
- Ae(f.current, {
2408
+ ke(f.current, {
2409
2409
  [Br.Forwards]: () => {
2410
2410
  Pn(t, Sn.First, { skipElements: [e.relatedTarget, o] });
2411
2411
  },
@@ -2426,7 +2426,7 @@ function Gr(e, n) {
2426
2426
  let t = Hr(s);
2427
2427
  Ze(r.current) && t.add(r.current);
2428
2428
  let n = e.relatedTarget;
2429
- Qe(n) && n.dataset.headlessuiFocusGuard !== "true" && (Qr(t, n) || (g.current ? Pn(r.current, Ae(f.current, {
2429
+ Qe(n) && n.dataset.headlessuiFocusGuard !== "true" && (Qr(t, n) || (g.current ? Pn(r.current, ke(f.current, {
2430
2430
  [Br.Forwards]: () => Sn.Next,
2431
2431
  [Br.Backwards]: () => Sn.Previous
2432
2432
  }) | Sn.WrapAround, { relativeTo: e.target }) : Qe(e.target) && An(e.target)));
@@ -2462,7 +2462,7 @@ function Jr(e = !0) {
2462
2462
  e,
2463
2463
  mr,
2464
2464
  t
2465
- ]), U(() => t.current.find((e) => e != null && e.isConnected) ?? null);
2465
+ ]), W(() => t.current.find((e) => e != null && e.isConnected) ?? null);
2466
2466
  }
2467
2467
  function Yr(e, { ownerDocument: t }) {
2468
2468
  let n = !!(e & 8), r = Jr(n);
@@ -2549,35 +2549,35 @@ function ai(e) {
2549
2549
  return "children" in e ? ai(e.children) : e.current.filter(({ el: e }) => e.current !== null).filter(({ state: e }) => e === "visible").length > 0;
2550
2550
  }
2551
2551
  function oi(e, t) {
2552
- let n = Te(e), r = _([]), i = zr(), a = Ce(), o = U((e, t = W.Hidden) => {
2552
+ let n = we(e), r = _([]), i = zr(), a = Ce(), o = W((e, t = je.Hidden) => {
2553
2553
  let o = r.current.findIndex(({ el: t }) => t === e);
2554
- o !== -1 && (Ae(t, {
2555
- [W.Unmount]() {
2554
+ o !== -1 && (ke(t, {
2555
+ [je.Unmount]() {
2556
2556
  r.current.splice(o, 1);
2557
2557
  },
2558
- [W.Hidden]() {
2558
+ [je.Hidden]() {
2559
2559
  r.current[o].state = "hidden";
2560
2560
  }
2561
2561
  }), a.microTask(() => {
2562
2562
  var e;
2563
2563
  !ai(r) && i.current && ((e = n.current) == null || e.call(n));
2564
2564
  }));
2565
- }), s = U((e) => {
2565
+ }), s = W((e) => {
2566
2566
  let t = r.current.find(({ el: t }) => t === e);
2567
2567
  return t ? t.state !== "visible" && (t.state = "visible") : r.current.push({
2568
2568
  el: e,
2569
2569
  state: "visible"
2570
- }), () => o(e, W.Unmount);
2570
+ }), () => o(e, je.Unmount);
2571
2571
  }), c = _([]), l = _(Promise.resolve()), u = _({
2572
2572
  enter: [],
2573
2573
  leave: []
2574
- }), d = U((e, n, r) => {
2574
+ }), d = W((e, n, r) => {
2575
2575
  c.current.splice(0), t && (t.chains.current[n] = t.chains.current[n].filter(([t]) => t !== e)), t?.chains.current[n].push([e, new Promise((e) => {
2576
2576
  c.current.push(e);
2577
2577
  })]), t?.chains.current[n].push([e, new Promise((e) => {
2578
2578
  Promise.all(u.current[n].map(([e, t]) => t)).then(() => e());
2579
2579
  })]), n === "enter" ? l.current = l.current.then(() => t?.wait.current).then(() => r(n)) : r(n);
2580
- }), f = U((e, t, n) => {
2580
+ }), f = W((e, t, n) => {
2581
2581
  Promise.all(u.current[t].splice(0).map(([e, t]) => t)).then(() => {
2582
2582
  var e;
2583
2583
  (e = c.current.shift()) == null || e();
@@ -2601,21 +2601,21 @@ function oi(e, t) {
2601
2601
  l
2602
2602
  ]);
2603
2603
  }
2604
- var si = n, ci = je.RenderStrategy;
2604
+ var si = n, ci = Ae.RenderStrategy;
2605
2605
  function li(e, n) {
2606
2606
  var r;
2607
2607
  let { transition: i = !0, beforeEnter: a, afterEnter: o, beforeLeave: s, afterLeave: c, enter: l, enterFrom: u, enterTo: f, entered: p, leave: m, leaveFrom: h, leaveTo: g, ...y } = e, [b, x] = v(null), S = _(null), C = $r(e), w = it(...C ? [
2608
2608
  S,
2609
2609
  n,
2610
2610
  x
2611
- ] : n === null ? [] : [n]), T = (r = y.unmount) == null || r ? W.Unmount : W.Hidden, { show: E, appear: D, initial: O } = ni(), [k, A] = v(E ? "visible" : "hidden"), j = ri(), { register: M, unregister: N } = j;
2612
- we(() => M(S), [M, S]), we(() => {
2613
- if (T === W.Hidden && S.current) {
2611
+ ] : n === null ? [] : [n]), T = (r = y.unmount) == null || r ? je.Unmount : je.Hidden, { show: E, appear: D, initial: O } = ni(), [k, A] = v(E ? "visible" : "hidden"), j = ri(), { register: M, unregister: N } = j;
2612
+ U(() => M(S), [M, S]), U(() => {
2613
+ if (T === je.Hidden && S.current) {
2614
2614
  if (E && k !== "visible") {
2615
2615
  A("visible");
2616
2616
  return;
2617
2617
  }
2618
- return Ae(k, {
2618
+ return ke(k, {
2619
2619
  hidden: () => N(S),
2620
2620
  visible: () => M(S)
2621
2621
  });
@@ -2629,7 +2629,7 @@ function li(e, n) {
2629
2629
  T
2630
2630
  ]);
2631
2631
  let P = _r();
2632
- we(() => {
2632
+ U(() => {
2633
2633
  if (C && P && k === "visible" && S.current === null) throw Error("Did you forget to passthrough the `ref` to the actual DOM node?");
2634
2634
  }, [
2635
2635
  S,
@@ -2639,13 +2639,13 @@ function li(e, n) {
2639
2639
  ]);
2640
2640
  let F = O && !D, I = D && E && O, L = _(!1), R = oi(() => {
2641
2641
  L.current || (A("hidden"), N(S));
2642
- }, j), z = U((e) => {
2642
+ }, j), z = W((e) => {
2643
2643
  L.current = !0;
2644
2644
  let t = e ? "enter" : "leave";
2645
2645
  R.onStart(S, t, (e) => {
2646
2646
  e === "enter" ? a?.() : e === "leave" && s?.();
2647
2647
  });
2648
- }), ee = U((e) => {
2648
+ }), ee = W((e) => {
2649
2649
  let t = e ? "enter" : "leave";
2650
2650
  L.current = !1, R.onStop(S, t, (e) => {
2651
2651
  e === "enter" ? o?.() : e === "leave" && c?.();
@@ -2661,15 +2661,15 @@ function li(e, n) {
2661
2661
  let [, B] = nr(!(!i || !C || !P || F), b, E, {
2662
2662
  start: z,
2663
2663
  end: ee
2664
- }), V = ze({
2664
+ }), te = ze({
2665
2665
  ref: w,
2666
- className: ke(y.className, I && l, I && u, B.enter && l, B.enter && B.closed && u, B.enter && !B.closed && f, B.leave && m, B.leave && !B.closed && h, B.leave && B.closed && g, !B.transition && E && p)?.trim() || void 0,
2666
+ className: Oe(y.className, I && l, I && u, B.enter && l, B.enter && B.closed && u, B.enter && !B.closed && f, B.leave && m, B.leave && !B.closed && h, B.leave && B.closed && g, !B.transition && E && p)?.trim() || void 0,
2667
2667
  ...tr(B)
2668
- }), te = 0;
2669
- k === "visible" && (te |= lr.Open), k === "hidden" && (te |= lr.Closed), E && k === "hidden" && (te |= lr.Opening), !E && k === "visible" && (te |= lr.Closing);
2668
+ }), V = 0;
2669
+ k === "visible" && (V |= lr.Open), k === "hidden" && (V |= lr.Closed), E && k === "hidden" && (V |= lr.Opening), !E && k === "visible" && (V |= lr.Closing);
2670
2670
  let ne = Me();
2671
- return t.createElement(ii.Provider, { value: R }, t.createElement(dr, { value: te }, ne({
2672
- ourProps: V,
2671
+ return t.createElement(ii.Provider, { value: R }, t.createElement(dr, { value: V }, ne({
2672
+ ourProps: te,
2673
2673
  theirProps: y,
2674
2674
  defaultTag: si,
2675
2675
  features: ci,
@@ -2685,7 +2685,7 @@ function ui(e, r) {
2685
2685
  let [d, f] = v(i ? "visible" : "hidden"), p = oi(() => {
2686
2686
  i || f("hidden");
2687
2687
  }), [m, g] = v(!0), y = _([i]);
2688
- we(() => {
2688
+ U(() => {
2689
2689
  m !== !1 && y.current[y.current.length - 1] !== i && (y.current.push(i), g(!1));
2690
2690
  }, [y, i]);
2691
2691
  let b = h(() => ({
@@ -2697,13 +2697,13 @@ function ui(e, r) {
2697
2697
  a,
2698
2698
  m
2699
2699
  ]);
2700
- we(() => {
2700
+ U(() => {
2701
2701
  i ? f("visible") : !ai(p) && c.current !== null && f("hidden");
2702
2702
  }, [i, p]);
2703
- let x = { unmount: o }, S = U(() => {
2703
+ let x = { unmount: o }, S = W(() => {
2704
2704
  var t;
2705
2705
  m && g(!1), (t = e.beforeEnter) == null || t.call(e);
2706
- }), C = U(() => {
2706
+ }), C = W(() => {
2707
2707
  var t;
2708
2708
  m && g(!1), (t = e.beforeLeave) == null || t.call(e);
2709
2709
  }), w = Me();
@@ -2755,7 +2755,7 @@ function bi(e) {
2755
2755
  return t;
2756
2756
  }
2757
2757
  function xi(e, t) {
2758
- return Ae(t.type, vi, e, t);
2758
+ return ke(t.type, vi, e, t);
2759
2759
  }
2760
2760
  var Si = Re(function(e, n) {
2761
2761
  let r = p(), { id: i = `headlessui-dialog-${r}`, open: a, onClose: s, initialFocus: c, role: u = "dialog", autoFocus: d = !0, __demoMode: f = !1, unmount: m = !1, ...v } = e, y = _(!1);
@@ -2768,7 +2768,7 @@ var Si = Re(function(e, n) {
2768
2768
  titleId: null,
2769
2769
  descriptionId: null,
2770
2770
  panelRef: o()
2771
- }), D = U(() => s(!1)), O = U((e) => E({
2771
+ }), D = W(() => s(!1)), O = W((e) => E({
2772
2772
  type: 0,
2773
2773
  id: e
2774
2774
  })), k = _r() ? w === 0 : !1, [A, j] = kr(), M = { get current() {
@@ -2779,11 +2779,11 @@ var Si = Re(function(e, n) {
2779
2779
  defaultContainers: [M]
2780
2780
  }), F = b !== null && (b & lr.Closing) === lr.Closing;
2781
2781
  vn(f || F ? !1 : k, {
2782
- allowed: U(() => [x.current?.closest("[data-headlessui-portal]") ?? null]),
2783
- disallowed: U(() => [N?.closest("body > *:not(#headlessui-portal-root)") ?? null])
2782
+ allowed: W(() => [x.current?.closest("[data-headlessui-portal]") ?? null]),
2783
+ disallowed: W(() => [N?.closest("body > *:not(#headlessui-portal-root)") ?? null])
2784
2784
  });
2785
2785
  let I = on.get(null);
2786
- we(() => {
2786
+ U(() => {
2787
2787
  if (k) return I.actions.push(i), () => I.actions.pop(i);
2788
2788
  }, [
2789
2789
  I,
@@ -2807,7 +2807,7 @@ var Si = Re(function(e, n) {
2807
2807
  O,
2808
2808
  m,
2809
2809
  T
2810
- ]), B = Ee({ open: w === 0 }), V = {
2810
+ ]), B = Te({ open: w === 0 }), te = {
2811
2811
  ref: S,
2812
2812
  id: i,
2813
2813
  role: u,
@@ -2816,8 +2816,8 @@ var Si = Re(function(e, n) {
2816
2816
  "aria-labelledby": T.titleId,
2817
2817
  "aria-describedby": R,
2818
2818
  unmount: m
2819
- }, te = !Pr(), ne = Wr.None;
2820
- k && !f && (ne |= Wr.RestoreFocus, ne |= Wr.TabLock, d && (ne |= Wr.AutoFocus), te && (ne |= Wr.InitialFocus));
2819
+ }, V = !Pr(), ne = Wr.None;
2820
+ k && !f && (ne |= Wr.RestoreFocus, ne |= Wr.TabLock, d && (ne |= Wr.AutoFocus), V && (ne |= Wr.InitialFocus));
2821
2821
  let re = Me();
2822
2822
  return t.createElement(fr, null, t.createElement(br, { force: !0 }, t.createElement(Mr, null, t.createElement(yi.Provider, { value: ee }, t.createElement(jr, { target: x }, t.createElement(br, { force: !1 }, t.createElement(z, { slot: B }, t.createElement(j, null, t.createElement(qr, {
2823
2823
  initialFocus: c,
@@ -2825,7 +2825,7 @@ var Si = Re(function(e, n) {
2825
2825
  containers: P,
2826
2826
  features: ne
2827
2827
  }, t.createElement(mt, { value: D }, re({
2828
- ourProps: V,
2828
+ ourProps: te,
2829
2829
  theirProps: v,
2830
2830
  slot: B,
2831
2831
  defaultTag: Ci,
@@ -2833,7 +2833,7 @@ var Si = Re(function(e, n) {
2833
2833
  visible: w === 0,
2834
2834
  name: "Dialog"
2835
2835
  })))))))))));
2836
- }), Ci = "div", wi = je.RenderStrategy | je.Static;
2836
+ }), Ci = "div", wi = Ae.RenderStrategy | Ae.Static;
2837
2837
  function Ti(e, n) {
2838
2838
  let { transition: r = !1, open: i, ...a } = e, o = ur(), s = e.hasOwnProperty("open") || o !== null, c = e.hasOwnProperty("onClose");
2839
2839
  if (!s && !c) throw Error("You have to provide an `open` and an `onClose` prop to the `Dialog` component.");
@@ -2856,10 +2856,10 @@ function Ti(e, n) {
2856
2856
  }
2857
2857
  var Ei = "div";
2858
2858
  function Di(e, r) {
2859
- let i = p(), { id: a = `headlessui-dialog-panel-${i}`, transition: o = !1, ...s } = e, [{ dialogState: c, unmount: l }, u] = bi("Dialog.Panel"), d = it(r, u.panelRef), f = Ee({ open: c === 0 }), m = {
2859
+ let i = p(), { id: a = `headlessui-dialog-panel-${i}`, transition: o = !1, ...s } = e, [{ dialogState: c, unmount: l }, u] = bi("Dialog.Panel"), d = it(r, u.panelRef), f = Te({ open: c === 0 }), m = {
2860
2860
  ref: d,
2861
2861
  id: a,
2862
- onClick: U((e) => {
2862
+ onClick: W((e) => {
2863
2863
  e.stopPropagation();
2864
2864
  })
2865
2865
  }, h = o ? mi : n, g = o ? { unmount: l } : {}, _ = Me();
@@ -2873,7 +2873,7 @@ function Di(e, r) {
2873
2873
  }
2874
2874
  var Oi = "div";
2875
2875
  function ki(e, r) {
2876
- let { transition: i = !1, ...a } = e, [{ dialogState: o, unmount: s }] = bi("Dialog.Backdrop"), c = Ee({ open: o === 0 }), l = {
2876
+ let { transition: i = !1, ...a } = e, [{ dialogState: o, unmount: s }] = bi("Dialog.Backdrop"), c = Te({ open: o === 0 }), l = {
2877
2877
  ref: r,
2878
2878
  "aria-hidden": !0
2879
2879
  }, u = i ? mi : n, d = i ? { unmount: s } : {}, f = Me();
@@ -2889,7 +2889,7 @@ var Ai = "h2";
2889
2889
  function ji(e, t) {
2890
2890
  let n = p(), { id: r = `headlessui-dialog-title-${n}`, ...i } = e, [{ dialogState: a, setTitleId: o }] = bi("Dialog.Title"), s = it(t);
2891
2891
  d(() => (o(r), () => o(null)), [r, o]);
2892
- let c = Ee({ open: a === 0 }), l = {
2892
+ let c = Te({ open: a === 0 }), l = {
2893
2893
  ref: s,
2894
2894
  id: r
2895
2895
  };
@@ -2907,7 +2907,7 @@ var Pi = Re(ji), Fi = Object.assign(Mi, {
2907
2907
  Panel: Ni,
2908
2908
  Title: Pi,
2909
2909
  Description: dt
2910
- }), Ii = "const e=e=>{switch(e){case`TTT`:case`TTC`:return`F`;case`TTA`:case`TTG`:case`CTT`:case`CTC`:case`CTA`:case`CTG`:return`L`;case`ATT`:case`ATC`:case`ATA`:return`I`;case`ATG`:return`M`;case`GTT`:case`GTC`:case`GTA`:case`GTG`:return`V`;case`TCT`:case`TCC`:case`TCA`:case`TCG`:case`AGT`:case`AGC`:return`S`;case`CCT`:case`CCC`:case`CCA`:case`CCG`:return`P`;case`ACT`:case`ACC`:case`ACA`:case`ACG`:return`T`;case`GCT`:case`GCC`:case`GCA`:case`GCG`:return`A`;case`TAT`:case`TAC`:return`Y`;case`TAA`:case`TAG`:case`TGA`:return`*`;case`CAT`:case`CAC`:return`H`;case`CAA`:case`CAG`:return`Q`;case`AAT`:case`AAC`:return`N`;case`AAA`:case`AAG`:return`K`;case`GAT`:case`GAC`:return`D`;case`GAA`:case`GAG`:return`E`;case`TGT`:case`TGC`:return`C`;case`TGG`:return`W`;case`CGT`:case`CGC`:case`CGA`:case`CGG`:case`AGA`:case`AGG`:return`R`;case`GGT`:case`GGC`:case`GGA`:case`GGG`:return`G`;default:return`X`}};function t(e){let t=e.trim().split(/\\r?\\n/);if(!t[0]?.startsWith(`>`))throw Error(`Expected a FASTA header starting with >.`);if(t.slice(1).some(e=>e.startsWith(`>`)))throw Error(`Please supply exactly one FASTA record.`);let n=t.slice(1).join(``).replace(/\\s/g,``).toUpperCase();if(!n||/[^ACGTRYSWKMBDHVN]/.test(n))throw Error(`Expected an ungapped DNA sequence (IUPAC bases).`);return{name:t[0].slice(1).trim()||`Alternative`,sequence:n}}function n(e,t,n=128){let r=e.length,i=t.length;if(!r||!i)throw Error(`Both sequences must contain bases.`);if(Math.max(r,i)>1e5)throw Error(`Comparison supports sequences up to 100,000 bases.`);let a=()=>Error(`Sequences exceed the ${n}-edit comparison limit. Use complete sequences in the same orientation and with the same starting point.`);if(Math.abs(r-i)>n)throw a();let o=2*n+1,s=n+1,c=s*s,l=new Uint8Array((r+1)*o),u=(e,t,n)=>e<=t&&e<=n?0:t<=n?1:2,d=new Uint32Array(o*3).fill(c);d[n*3]=0;for(let e=1;e<=Math.min(i,n);e++)d[(e+n)*3+2]=e*s+1,l[e+n]=(e===1?0:2)<<4;for(let a=1;a<=r;a++){let r=new Uint32Array(o*3).fill(c);for(let f=Math.max(0,a-n);f<=Math.min(i,a+n);f++){let i=f-a+n,p=i*3;if(f===0){r[p+1]=a*s+1,l[a*o+i]=(a===1?0:1)<<2;continue}let m=u(d[p],d[p+1],d[p+2]);r[p]=Math.min(c,d[p+m]+(e[a-1]===t[f-1]?0:s));let h=0,g=0;if(i+1<o){let e=p+3,t=d[e]+s+1,n=d[e+1]+s,i=d[e+2]+s+1;h=u(t,n,i),r[p+1]=Math.min(c,t,n,i)}if(i>0){let e=p-3,t=r[e]+s+1,n=r[e+1]+s+1,i=r[e+2]+s;g=u(t,n,i),r[p+2]=Math.min(c,t,n,i)}l[a*o+i]=m|h<<2|g<<4}d=r}let f=(i-r+n)*3,p=u(d[f],d[f+1],d[f+2]),m=Math.floor(d[f+p]/s);if(m>n)throw a();let h=r,g=i,_=[];for(;h||g;){let r=l[h*o+g-h+n]>>p*2&3;p===0?_.push([e[--h],t[--g]]):p===1?_.push([e[--h],`-`]):_.push([`-`,t[--g]]),p=r}_.reverse();let v=[],y=0;for(let[e,t]of _){if(e!==t){let n=e===`-`?`Insertion`:t===`-`?`Deletion`:/[^ACGT]/.test(e+t)?`Ambiguous`:`Substitution`,r=v.at(-1);r&&r.type===n&&n!==`Substitution`&&n!==`Ambiguous`&&r.end===y?(r.reference+=e===`-`?``:e,r.alternative+=t===`-`?``:t,r.end+=e===`-`?0:1):v.push({type:n,start:y,end:y+(e===`-`?0:1),reference:e===`-`?``:e,alternative:t===`-`?``:t})}e!==`-`&&y++}return{distance:m,differences:v}}function r(e,t){return e.locations?.length?e.locations:e.start>e.end?[{start:e.start,end:t-1},{start:0,end:e.end}]:[{start:e.start,end:e.end}]}const i={A:`T`,T:`A`,C:`G`,G:`C`,R:`Y`,Y:`R`,S:`S`,W:`W`,K:`M`,M:`K`,B:`V`,V:`B`,D:`H`,H:`D`,N:`N`},a=e=>[...e].reverse().map(e=>i[e]||`N`).join(``),o=t=>{let n=``;for(let r=0;r+2<t.length;r+=3)n+=e(t.slice(r,r+3));return n},s=(e,t,n)=>{let r=e.notes?.[t];return(Array.isArray(r)?r[0]:r)??n};function c(e,t,i){if(![`CDS`,`mat_peptide`].includes(t.type))return null;let c=r(t,e.length),l=[];for(let t of c){if(!Number.isInteger(t.start)||!Number.isInteger(t.end)||t.start<0||t.end>=e.length||t.end<t.start)return{warning:`Unsupported coding location`,codons:[],changes:[]};for(let e=t.start;e<=t.end;e++)l.push(e)}t.strand<0&&l.reverse();let u=Number(s(t,`codon_start`,1))-1;if(![0,1,2].includes(u))return{warning:`Unsupported codon_start`,codons:[],changes:[]};l.splice(0,u);let d=Number(s(t,`transl_table`,1));if(![1,11].includes(d)||[`transl_except`,`ribosomal_slippage`,`exception`].some(e=>t.notes?.[e]))return{warning:`AA comparison unavailable for this translation table or exception`,codons:[],changes:[]};let f=new Map(l.map((e,t)=>[e,t])),p=e=>t.strand<0?a(e):e,m=l.map(t=>p(e[t])).join(``),h=o(m),g=[...h].map((e,t)=>({positions:l.slice(t*3,t*3+3),aminoAcid:e,codonIndex:t})),_=new Set,v=new Map,y=new Map,b=1/0,x=!1;for(let e of i)if(e.type===`Insertion`){let n=t.strand<0?e.start-1:e.start,r=f.get(n),i=t.strand<0?e.start:e.start-1;r>0&&l[r-1]===i?(y.set(r,p(e.alternative)),e.alternative.length%3&&(b=Math.min(b,r))):(f.has(n)||f.has(i))&&(x=!0)}else if(e.type===`Deletion`){let t=[];for(let n=e.start;n<e.end;n++){let e=f.get(n);e!==void 0&&(_.add(e),t.push(e))}t.length%3&&(b=Math.min(b,...t))}else{let t=f.get(e.start);t!==void 0&&v.set(t,p(e.alternative))}let S=``,C=[];for(let e=0;e<l.length;e++)C[e]=S.length,S+=y.get(e)||``,_.has(e)||(S+=v.get(e)??m[e]);let w=Math.floor(b/3),T=Number.isFinite(b)?h.slice(0,w):h,E=o(Number.isFinite(b)?S.slice(0,C[w*3]):S),D=[],O=e=>{let n=Math.min(e.start,Math.max(0,g.length-1)),r=g[n],i=e.start<g.length?(r?.positions[0]??l[0])+(t.strand<0?.5:-.5):(r?.positions[2]??l[0])+(t.strand<0?-.5:.5);return{...e,anchor:r?.positions[1]??l[0],...e.type===`Insertion`?{pointerPosition:i}:{},aaPosition:e.type===`Insertion`?e.start:e.start+1}};try{T&&E?D=n(T,E).differences.map(e=>O({...e,type:e.type===`Ambiguous`?/X/.test(e.reference+e.alternative)?`Ambiguous`:`Substitution`:e.type})):(T||E)&&(D=[O({type:T?`Deletion`:`Insertion`,start:0,end:T.length,reference:T,alternative:E})])}catch{return{codons:g,changes:[],warning:`AA comparison exceeds the alignment limit`}}return Number.isFinite(b)&&D.push(O({type:`Frameshift`,start:w,end:w+1,reference:``,alternative:``})),{codons:g,changes:D,warning:x?`Insertion at a coding boundary: AA assignment is uncertain`:void 0}}function l(e,t,n){return t.map(t=>c(e,t,n))}self.onmessage=({data:e})=>{try{let r=t(e.fasta),i=n(e.reference,r.sequence);self.postMessage({...i,name:r.name,proteins:l(e.reference,e.features||[],i.differences)})}catch(e){self.postMessage({error:e.message})}};", Li = typeof self < "u" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", Ii], { type: "text/javascript;charset=utf-8" });
2910
+ }), Ii = "function e(e,t){if(!t||typeof t.sequence!=`string`)throw Error(`Expected an aligned DNA sequence.`);let n=t.sequence.toUpperCase();if(!e.length||n.length!==e.length)throw Error(`Aligned sequence length must match the reference.`);if(/[^ACGTRYSWKMBDHVN-]/.test(n))throw Error(`Aligned sequences must contain IUPAC DNA bases or deletion gaps (-).`);let r=[],i=0;for(let t=0;t<n.length;){if(n[t]===e[t]){t++;continue}let a=n[t]===`-`?`Deletion`:/[^ACGT]/.test(n[t]+e[t])?`Ambiguous`:`Substitution`,o=t+1;if(a===`Deletion`||a===`Ambiguous`)for(;o<n.length&&n[o]!==e[o]&&(a===`Deletion`?n[o]===`-`:n[o]!==`-`&&/[^ACGT]/.test(n[o]+e[o]));)o++;r.push({type:a,start:t,end:o,reference:e.slice(t,o),alternative:a===`Deletion`?``:n.slice(t,o)}),i+=o-t,t=o}let a=new Set;for(let n of t.insertions||[]){let t=n.position,o=typeof n.sequence==`string`?n.sequence.toUpperCase():``;if(!Number.isInteger(t)||t<0||t>e.length||a.has(t))throw Error(`Insertions need unique integer positions from 0 to the reference length.`);if(!o||/[^ACGTRYSWKMBDHVN]/.test(o))throw Error(`Insertions must contain ungapped IUPAC DNA bases.`);a.add(t),r.push({type:`Insertion`,start:t,end:t,reference:``,alternative:o}),i+=o.length}return r.sort((e,t)=>e.start-t.start||e.end-t.end),{name:t.name||`Alternative`,distance:i,differences:r}}const t=e=>{switch(e){case`TTT`:case`TTC`:return`F`;case`TTA`:case`TTG`:case`CTT`:case`CTC`:case`CTA`:case`CTG`:return`L`;case`ATT`:case`ATC`:case`ATA`:return`I`;case`ATG`:return`M`;case`GTT`:case`GTC`:case`GTA`:case`GTG`:return`V`;case`TCT`:case`TCC`:case`TCA`:case`TCG`:case`AGT`:case`AGC`:return`S`;case`CCT`:case`CCC`:case`CCA`:case`CCG`:return`P`;case`ACT`:case`ACC`:case`ACA`:case`ACG`:return`T`;case`GCT`:case`GCC`:case`GCA`:case`GCG`:return`A`;case`TAT`:case`TAC`:return`Y`;case`TAA`:case`TAG`:case`TGA`:return`*`;case`CAT`:case`CAC`:return`H`;case`CAA`:case`CAG`:return`Q`;case`AAT`:case`AAC`:return`N`;case`AAA`:case`AAG`:return`K`;case`GAT`:case`GAC`:return`D`;case`GAA`:case`GAG`:return`E`;case`TGT`:case`TGC`:return`C`;case`TGG`:return`W`;case`CGT`:case`CGC`:case`CGA`:case`CGG`:case`AGA`:case`AGG`:return`R`;case`GGT`:case`GGC`:case`GGA`:case`GGG`:return`G`;default:return`X`}};function n(e){let t=e.trim().split(/\\r?\\n/);if(!t[0]?.startsWith(`>`))throw Error(`Expected a FASTA header starting with >.`);if(t.slice(1).some(e=>e.startsWith(`>`)))throw Error(`Please supply exactly one FASTA record.`);let n=t.slice(1).join(``).replace(/\\s/g,``).toUpperCase();if(!n||/[^ACGTRYSWKMBDHVN]/.test(n))throw Error(`Expected an ungapped DNA sequence (IUPAC bases).`);return{name:t[0].slice(1).trim()||`Alternative`,sequence:n}}function r(e,t,n=128){let r=e.length,i=t.length;if(!r||!i)throw Error(`Both sequences must contain bases.`);if(Math.max(r,i)>1e5)throw Error(`Comparison supports sequences up to 100,000 bases.`);let a=()=>Error(`Sequences exceed the ${n}-edit comparison limit. Use complete sequences in the same orientation and with the same starting point.`);if(Math.abs(r-i)>n)throw a();let o=2*n+1,s=n+1,c=s*s,l=new Uint8Array((r+1)*o),u=(e,t,n)=>e<=t&&e<=n?0:t<=n?1:2,d=new Uint32Array(o*3).fill(c);d[n*3]=0;for(let e=1;e<=Math.min(i,n);e++)d[(e+n)*3+2]=e*s+1,l[e+n]=(e===1?0:2)<<4;for(let a=1;a<=r;a++){let r=new Uint32Array(o*3).fill(c);for(let f=Math.max(0,a-n);f<=Math.min(i,a+n);f++){let i=f-a+n,p=i*3;if(f===0){r[p+1]=a*s+1,l[a*o+i]=(a===1?0:1)<<2;continue}let m=u(d[p],d[p+1],d[p+2]);r[p]=Math.min(c,d[p+m]+(e[a-1]===t[f-1]?0:s));let h=0,g=0;if(i+1<o){let e=p+3,t=d[e]+s+1,n=d[e+1]+s,i=d[e+2]+s+1;h=u(t,n,i),r[p+1]=Math.min(c,t,n,i)}if(i>0){let e=p-3,t=r[e]+s+1,n=r[e+1]+s+1,i=r[e+2]+s;g=u(t,n,i),r[p+2]=Math.min(c,t,n,i)}l[a*o+i]=m|h<<2|g<<4}d=r}let f=(i-r+n)*3,p=u(d[f],d[f+1],d[f+2]),m=Math.floor(d[f+p]/s);if(m>n)throw a();let h=r,g=i,_=[];for(;h||g;){let r=l[h*o+g-h+n]>>p*2&3;p===0?_.push([e[--h],t[--g]]):p===1?_.push([e[--h],`-`]):_.push([`-`,t[--g]]),p=r}_.reverse();let v=[],y=0;for(let[e,t]of _){if(e!==t){let n=e===`-`?`Insertion`:t===`-`?`Deletion`:/[^ACGT]/.test(e+t)?`Ambiguous`:`Substitution`,r=v.at(-1);r&&r.type===n&&n!==`Substitution`&&n!==`Ambiguous`&&r.end===y?(r.reference+=e===`-`?``:e,r.alternative+=t===`-`?``:t,r.end+=e===`-`?0:1):v.push({type:n,start:y,end:y+(e===`-`?0:1),reference:e===`-`?``:e,alternative:t===`-`?``:t})}e!==`-`&&y++}return{distance:m,differences:v}}function i(e,t){return e.locations?.length?e.locations:e.start>e.end?[{start:e.start,end:t-1},{start:0,end:e.end}]:[{start:e.start,end:e.end}]}const a={A:`T`,T:`A`,C:`G`,G:`C`,R:`Y`,Y:`R`,S:`S`,W:`W`,K:`M`,M:`K`,B:`V`,V:`B`,D:`H`,H:`D`,N:`N`},o=e=>[...e].reverse().map(e=>a[e]||`N`).join(``),s=e=>{let n=``;for(let r=0;r+2<e.length;r+=3)n+=t(e.slice(r,r+3));return n},c=(e,t,n)=>{let r=e.notes?.[t];return(Array.isArray(r)?r[0]:r)??n};function l(e,t,n){if(![`CDS`,`mat_peptide`].includes(t.type))return null;let a=i(t,e.length),l=[];for(let t of a){if(!Number.isInteger(t.start)||!Number.isInteger(t.end)||t.start<0||t.end>=e.length||t.end<t.start)return{warning:`Unsupported coding location`,codons:[],changes:[]};for(let e=t.start;e<=t.end;e++)l.push(e)}t.strand<0&&l.reverse();let u=Number(c(t,`codon_start`,1))-1;if(![0,1,2].includes(u))return{warning:`Unsupported codon_start`,codons:[],changes:[]};l.splice(0,u);let d=Number(c(t,`transl_table`,1));if(![1,11].includes(d)||[`transl_except`,`ribosomal_slippage`,`exception`].some(e=>t.notes?.[e]))return{warning:`AA comparison unavailable for this translation table or exception`,codons:[],changes:[]};let f=new Map(l.map((e,t)=>[e,t])),p=e=>t.strand<0?o(e):e,m=l.map(t=>p(e[t])).join(``),h=s(m),g=[...h].map((e,t)=>({positions:l.slice(t*3,t*3+3),aminoAcid:e,codonIndex:t})),_=new Set,v=new Map,y=new Map,b=1/0,x=!1;for(let e of n)if(e.type===`Insertion`){let n=t.strand<0?e.start-1:e.start,r=f.get(n),i=t.strand<0?e.start:e.start-1;r>0&&l[r-1]===i?(y.set(r,p(e.alternative)),e.alternative.length%3&&(b=Math.min(b,r))):(f.has(n)||f.has(i))&&(x=!0)}else if(e.type===`Deletion`){let t=[];for(let n=e.start;n<e.end;n++){let e=f.get(n);e!==void 0&&(_.add(e),t.push(e))}t.length%3&&(b=Math.min(b,...t))}else for(let t=e.start;t<e.end;t++){let n=f.get(t);n!==void 0&&v.set(n,p(e.alternative[t-e.start]))}let S=``,C=[];for(let e=0;e<l.length;e++)C[e]=S.length,S+=y.get(e)||``,_.has(e)||(S+=v.get(e)??m[e]);let w=Math.floor(b/3),T=Number.isFinite(b)?h.slice(0,w):h,E=s(Number.isFinite(b)?S.slice(0,C[w*3]):S),D=[],O=e=>{let n=Math.min(e.start,Math.max(0,g.length-1)),r=g[n],i=e.start<g.length?(r?.positions[0]??l[0])+(t.strand<0?.5:-.5):(r?.positions[2]??l[0])+(t.strand<0?-.5:.5);return{...e,anchor:r?.positions[1]??l[0],...e.type===`Insertion`?{pointerPosition:i}:{},aaPosition:e.type===`Insertion`?e.start:e.start+1}};try{T&&E?D=r(T,E).differences.map(e=>O({...e,type:e.type===`Ambiguous`?/X/.test(e.reference+e.alternative)?`Ambiguous`:`Substitution`:e.type})):(T||E)&&(D=[O({type:T?`Deletion`:`Insertion`,start:0,end:T.length,reference:T,alternative:E})])}catch{return{codons:g,changes:[],warning:`AA comparison exceeds the alignment limit`}}return Number.isFinite(b)&&D.push(O({type:`Frameshift`,start:w,end:w+1,reference:``,alternative:``})),{codons:g,changes:D,warning:x?`Insertion at a coding boundary: AA assignment is uncertain`:void 0}}function u(e,t,n){return t.map(t=>l(e,t,n))}self.onmessage=({data:t})=>{try{let i=t.alignedSequence||n(t.fasta),a=t.alignedSequence?e(t.reference,i):r(t.reference,i.sequence);self.postMessage({...a,name:i.name,proteins:u(t.reference,t.features||[],a.differences)})}catch(e){self.postMessage({error:e.message})}};", Li = typeof self < "u" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", Ii], { type: "text/javascript;charset=utf-8" });
2911
2911
  function Ri(e) {
2912
2912
  let t;
2913
2913
  try {
@@ -2928,80 +2928,88 @@ function Ri(e) {
2928
2928
  }
2929
2929
  //#endregion
2930
2930
  //#region src/components/ComparisonPanel.jsx
2931
- function zi({ reference: e, features: t, fastaUrl: n, onResult: r, onGoTo: i, open: a, setOpen: o, onStatus: s }) {
2932
- let [c, l] = v(null), [u, f] = v(n || ""), [p, m] = v(0), [h, g] = v(n || ""), [y, C] = v(""), [w, T] = v(!1), [E, D] = v(null), O = _(0);
2931
+ function zi({ reference: e, features: t, fastaUrl: n, alignedSequence: r, onResult: i, onGoTo: a, open: o, setOpen: s, onStatus: c }) {
2932
+ let [l, u] = v(null), [f, p] = v(n || ""), [m, h] = v(0), [g, y] = v(n || ""), [C, w] = v(""), [T, E] = v(!1), [D, O] = v(null), k = _(0), A = _();
2933
2933
  d(() => {
2934
- s({
2935
- busy: w,
2936
- error: y
2934
+ (r || A.current) && (k.current++, u(null), y("")), A.current = r;
2935
+ }, [r]), d(() => {
2936
+ c({
2937
+ busy: T,
2938
+ error: C
2937
2939
  });
2938
2940
  }, [
2939
- w,
2940
- y,
2941
- s
2941
+ T,
2942
+ C,
2943
+ c
2942
2944
  ]), d(() => {
2943
- y && o(!0);
2944
- }, [y, o]);
2945
- let k = () => {
2946
- D(null), r(null), C("");
2945
+ C && s(!0);
2946
+ }, [C, s]);
2947
+ let j = () => {
2948
+ O(null), i(null), w("");
2947
2949
  };
2948
2950
  d(() => {
2949
- f(n || ""), g(n || ""), n || (O.current++, l(null), D(null), r(null), C(""), T(!1));
2950
- }, [n, r]), d(() => {
2951
- if (!h) return;
2952
- let e = new AbortController(), t = ++O.current;
2953
- return k(), l(null), T(!0), (async () => {
2951
+ p(n || ""), y(n || ""), n || (k.current++, u(null), O(null), i(null), w(""), E(!1));
2952
+ }, [n, i]), d(() => {
2953
+ if (!g || r) return;
2954
+ let e = new AbortController(), t = ++k.current;
2955
+ return j(), u(null), E(!0), (async () => {
2954
2956
  try {
2955
- let n = new URL(h, window.location.href);
2957
+ let n = new URL(g, window.location.href);
2956
2958
  if (!["http:", "https:"].includes(n.protocol)) throw Error("Use an HTTP or HTTPS URL.");
2957
2959
  let r = await fetch(n, { signal: e.signal });
2958
2960
  if (!r.ok) throw Error(`FASTA request failed (${r.status}).`);
2959
2961
  let i = await r.text();
2960
2962
  if (i.length > 1e6) throw Error("FASTA file is too large.");
2961
- t === O.current && l(i);
2963
+ t === k.current && u(i);
2962
2964
  } catch (n) {
2963
- !e.signal.aborted && t === O.current && (C(n.message), T(!1));
2965
+ !e.signal.aborted && t === k.current && (w(n.message), E(!1));
2964
2966
  }
2965
2967
  })(), () => e.abort();
2966
- }, [h, p]), d(() => {
2967
- if (c === null) {
2968
- D(null), r(null);
2968
+ }, [
2969
+ g,
2970
+ m,
2971
+ r
2972
+ ]), d(() => {
2973
+ if (l === null && !r) {
2974
+ O(null), i(null);
2969
2975
  return;
2970
2976
  }
2971
- k(), T(!0);
2972
- let n = new Ri(), i = O.current, a = !1;
2977
+ j(), E(!0);
2978
+ let n = new Ri(), a = k.current, o = !1;
2973
2979
  return n.onmessage = ({ data: e }) => {
2974
- a || i !== O.current || (T(!1), e.error ? C(e.error) : (D(e), r(e)));
2980
+ o || a !== k.current || (E(!1), e.error ? w(e.error) : (O(e), i(e)));
2975
2981
  }, n.onerror = () => {
2976
- a || i !== O.current || (C("Alignment failed. Please try another FASTA."), T(!1));
2982
+ o || a !== k.current || (w("Alignment failed. Please try another FASTA."), E(!1));
2977
2983
  }, n.postMessage({
2978
2984
  reference: e,
2979
2985
  features: t,
2980
- fasta: c
2986
+ fasta: l,
2987
+ alignedSequence: r
2981
2988
  }), () => {
2982
- a = !0, n.terminate();
2989
+ o = !0, n.terminate();
2983
2990
  };
2984
2991
  }, [
2985
2992
  e,
2986
2993
  t,
2987
- c,
2988
- r
2994
+ l,
2995
+ r,
2996
+ i
2989
2997
  ]);
2990
- let A = async (e) => {
2998
+ let M = async (e) => {
2991
2999
  if (!e) return;
2992
- let t = ++O.current;
2993
- g(""), l(null), k(), T(!0);
3000
+ let t = ++k.current;
3001
+ y(""), u(null), j(), E(!0);
2994
3002
  try {
2995
3003
  if (e.size > 1e6) throw Error("FASTA file is too large.");
2996
3004
  let n = await e.text();
2997
- t === O.current && l(n);
3005
+ t === k.current && u(n);
2998
3006
  } catch (e) {
2999
- t === O.current && (C(e.message), T(!1));
3007
+ t === k.current && (w(e.message), E(!1));
3000
3008
  }
3001
3009
  };
3002
3010
  return /* @__PURE__ */ S(Fi, {
3003
- open: a,
3004
- onClose: () => o(!1),
3011
+ open: o,
3012
+ onClose: () => s(!1),
3005
3013
  className: "gensplore comparison-drawer",
3006
3014
  children: [/* @__PURE__ */ x("div", {
3007
3015
  className: "comparison-drawer-overlay",
@@ -3013,7 +3021,7 @@ function zi({ reference: e, features: t, fastaUrl: n, onResult: r, onGoTo: i, op
3013
3021
  className: "comparison-drawer-header",
3014
3022
  children: [/* @__PURE__ */ x(Pi, { children: "Compare FASTA" }), /* @__PURE__ */ x("button", {
3015
3023
  type: "button",
3016
- onClick: () => o(!1),
3024
+ onClick: () => s(!1),
3017
3025
  "aria-label": "Close comparison",
3018
3026
  children: "×"
3019
3027
  })]
@@ -3021,66 +3029,68 @@ function zi({ reference: e, features: t, fastaUrl: n, onResult: r, onGoTo: i, op
3021
3029
  className: "comparison-panel",
3022
3030
  "aria-label": "Compare FASTA",
3023
3031
  children: [
3024
- /* @__PURE__ */ S("label", { children: ["FASTA file ", /* @__PURE__ */ x("input", {
3025
- type: "file",
3026
- accept: ".fa,.fasta,.fna,.txt",
3027
- onChange: (e) => {
3028
- A(e.target.files[0]), e.target.value = "";
3029
- }
3030
- })] }),
3031
- /* @__PURE__ */ S("form", {
3032
- onSubmit: (e) => {
3033
- e.preventDefault(), g(u.trim()), m((e) => e + 1);
3034
- },
3035
- children: [/* @__PURE__ */ S("label", { children: ["FASTA URL ", /* @__PURE__ */ x("input", {
3036
- type: "text",
3037
- inputMode: "url",
3038
- className: "comparison-url",
3039
- value: u,
3040
- onChange: (e) => f(e.target.value),
3041
- placeholder: "https://example.org/alternative.fasta",
3042
- required: !0
3043
- })] }), /* @__PURE__ */ x("button", {
3044
- type: "submit",
3045
- children: "Load URL"
3046
- })]
3047
- }),
3048
- (c !== null || h || E || y || w) && /* @__PURE__ */ x("button", {
3049
- onClick: () => {
3050
- O.current++, g(""), l(null), T(!1), k();
3051
- },
3052
- children: "Clear"
3053
- }),
3054
- w && /* @__PURE__ */ x("p", {
3032
+ !r && /* @__PURE__ */ S(b, { children: [
3033
+ /* @__PURE__ */ S("label", { children: ["FASTA file ", /* @__PURE__ */ x("input", {
3034
+ type: "file",
3035
+ accept: ".fa,.fasta,.fna,.txt",
3036
+ onChange: (e) => {
3037
+ M(e.target.files[0]), e.target.value = "";
3038
+ }
3039
+ })] }),
3040
+ /* @__PURE__ */ S("form", {
3041
+ onSubmit: (e) => {
3042
+ e.preventDefault(), y(f.trim()), h((e) => e + 1);
3043
+ },
3044
+ children: [/* @__PURE__ */ S("label", { children: ["FASTA URL ", /* @__PURE__ */ x("input", {
3045
+ type: "text",
3046
+ inputMode: "url",
3047
+ className: "comparison-url",
3048
+ value: f,
3049
+ onChange: (e) => p(e.target.value),
3050
+ placeholder: "https://example.org/alternative.fasta",
3051
+ required: !0
3052
+ })] }), /* @__PURE__ */ x("button", {
3053
+ type: "submit",
3054
+ children: "Load URL"
3055
+ })]
3056
+ }),
3057
+ (l !== null || g || D || C || T) && /* @__PURE__ */ x("button", {
3058
+ onClick: () => {
3059
+ k.current++, y(""), u(null), E(!1), j();
3060
+ },
3061
+ children: "Clear"
3062
+ })
3063
+ ] }),
3064
+ T && /* @__PURE__ */ x("p", {
3055
3065
  role: "status",
3056
3066
  children: "Loading / aligning FASTA…"
3057
3067
  }),
3058
- y && /* @__PURE__ */ x("p", {
3068
+ C && /* @__PURE__ */ x("p", {
3059
3069
  role: "alert",
3060
- children: y
3070
+ children: C
3061
3071
  }),
3062
- E && /* @__PURE__ */ S(b, { children: [
3072
+ D && /* @__PURE__ */ S(b, { children: [
3063
3073
  /* @__PURE__ */ S("p", {
3064
3074
  role: "status",
3065
3075
  className: "comparison-summary",
3066
3076
  children: [/* @__PURE__ */ S("strong", { children: [
3067
- E.differences.length,
3077
+ D.differences.length,
3068
3078
  " ",
3069
- E.differences.length === 1 ? "change" : "changes"
3079
+ D.differences.length === 1 ? "change" : "changes"
3070
3080
  ] }), /* @__PURE__ */ x("span", {
3071
- title: E.name,
3072
- children: E.name
3081
+ title: D.name,
3082
+ children: D.name
3073
3083
  })]
3074
3084
  }),
3075
- E.proteins?.some((e) => e?.warning) && /* @__PURE__ */ x("ul", {
3085
+ D.proteins?.some((e) => e?.warning) && /* @__PURE__ */ x("ul", {
3076
3086
  "aria-label": "Amino-acid comparison notes",
3077
- children: E.proteins.map((e, n) => e?.warning && /* @__PURE__ */ S("li", { children: [
3087
+ children: D.proteins.map((e, n) => e?.warning && /* @__PURE__ */ S("li", { children: [
3078
3088
  t[n].name,
3079
3089
  ": ",
3080
3090
  e.warning
3081
3091
  ] }, n))
3082
3092
  }),
3083
- E.differences.length > 0 && /* @__PURE__ */ x("div", {
3093
+ D.differences.length > 0 && /* @__PURE__ */ x("div", {
3084
3094
  className: "comparison-table",
3085
3095
  children: /* @__PURE__ */ S("table", { children: [/* @__PURE__ */ x("thead", { children: /* @__PURE__ */ S("tr", { children: [
3086
3096
  /* @__PURE__ */ x("th", {
@@ -3091,14 +3101,14 @@ function zi({ reference: e, features: t, fastaUrl: n, onResult: r, onGoTo: i, op
3091
3101
  /* @__PURE__ */ x("th", { children: "Reference" }),
3092
3102
  /* @__PURE__ */ x("th", { children: "Alternative" }),
3093
3103
  /* @__PURE__ */ x("th", { "aria-label": "Navigate" })
3094
- ] }) }), /* @__PURE__ */ x("tbody", { children: E.differences.map((t, n) => /* @__PURE__ */ S("tr", { children: [
3104
+ ] }) }), /* @__PURE__ */ x("tbody", { children: D.differences.map((t, n) => /* @__PURE__ */ S("tr", { children: [
3095
3105
  /* @__PURE__ */ x("td", { children: t.type === "Insertion" ? `After ${t.start}` : t.end > t.start + 1 ? `${t.start + 1}–${t.end}` : t.start + 1 }),
3096
3106
  /* @__PURE__ */ x("td", { children: t.type }),
3097
3107
  /* @__PURE__ */ x("td", { children: t.reference || "—" }),
3098
3108
  /* @__PURE__ */ x("td", { children: t.alternative || "—" }),
3099
3109
  /* @__PURE__ */ x("td", { children: /* @__PURE__ */ x("button", {
3100
3110
  onClick: () => {
3101
- o(!1), requestAnimationFrame(() => i(Math.min(t.start, e.length - 1)));
3111
+ s(!1), requestAnimationFrame(() => a(Math.min(t.start, e.length - 1)));
3102
3112
  },
3103
3113
  children: "Go to"
3104
3114
  }) })
@@ -4278,8 +4288,8 @@ var Ao = ({ parsedSequence: e, rowStart: t, rowEnd: n, setHoveredInfo: r, rowId:
4278
4288
  R.forEach((e, t) => {
4279
4289
  z[t] = t * 20 + ee, ee += e.length ? 12 + e.length * 26 : 0;
4280
4290
  }), L += ee;
4281
- let B = Math.ceil(j / (t > 1e4 ? 60 : 40)), V = Math.ceil(T.length / B);
4282
- V = [
4291
+ let B = Math.ceil(j / (t > 1e4 ? 60 : 40)), te = Math.ceil(T.length / B);
4292
+ te = [
4283
4293
  5,
4284
4294
  10,
4285
4295
  20,
@@ -4300,8 +4310,8 @@ var Ao = ({ parsedSequence: e, rowStart: t, rowEnd: n, setHoveredInfo: r, rowId:
4300
4310
  2e6,
4301
4311
  5e6,
4302
4312
  1e7
4303
- ].find((e) => e >= V) || V;
4304
- let te = t % V, ne = Math.floor((n - t) / V) + 1, re = Array.from({ length: ne }, (e, n) => (n + 1) * V + t - te - 1).map((e, r) => {
4313
+ ].find((e) => e >= te) || te;
4314
+ let V = t % te, ne = Math.floor((n - t) / te) + 1, re = Array.from({ length: ne }, (e, n) => (n + 1) * te + t - V - 1).map((e, r) => {
4305
4315
  let i = (e - t) / (n - t) * j;
4306
4316
  return /* @__PURE__ */ S("g", { children: [/* @__PURE__ */ x("line", {
4307
4317
  x1: i,
@@ -5702,17 +5712,17 @@ function Ps(e) {
5702
5712
  //#endregion
5703
5713
  //#region node_modules/rc-slider/es/Slider.js
5704
5714
  var Fs = /*#__PURE__*/ e.forwardRef(function(t, n) {
5705
- var r = t.prefixCls, i = r === void 0 ? "rc-slider" : r, a = t.className, o = t.style, s = t.classNames, c = t.styles, l = t.id, u = t.disabled, d = u !== void 0 && u, f = t.keyboard, p = f === void 0 || f, m = t.autoFocus, h = t.onFocus, g = t.onBlur, _ = t.min, v = _ === void 0 ? 0 : _, y = t.max, b = y === void 0 ? 100 : y, x = t.step, S = x === void 0 ? 1 : x, C = t.value, w = t.defaultValue, T = t.range, E = t.count, D = t.onChange, O = t.onBeforeChange, k = t.onAfterChange, A = t.onChangeComplete, j = t.allowCross, M = j === void 0 || j, N = t.pushable, P = N !== void 0 && N, F = t.reverse, I = t.vertical, L = t.included, R = L === void 0 || L, z = t.startPoint, ee = t.trackStyle, B = t.handleStyle, V = t.railStyle, te = t.dotStyle, ne = t.activeDotStyle, re = t.marks, ie = t.dots, ae = t.handleRender, oe = t.activeHandleRender, se = t.track, ce = t.tabIndex, le = ce === void 0 ? 0 : ce, ue = t.ariaLabelForHandle, de = t.ariaLabelledByForHandle, fe = t.ariaRequired, pe = t.ariaValueTextFormatterForHandle, me = e.useRef(null), he = e.useRef(null), ge = e.useMemo(function() {
5715
+ var r = t.prefixCls, i = r === void 0 ? "rc-slider" : r, a = t.className, o = t.style, s = t.classNames, c = t.styles, l = t.id, u = t.disabled, d = u !== void 0 && u, f = t.keyboard, p = f === void 0 || f, m = t.autoFocus, h = t.onFocus, g = t.onBlur, _ = t.min, v = _ === void 0 ? 0 : _, y = t.max, b = y === void 0 ? 100 : y, x = t.step, S = x === void 0 ? 1 : x, C = t.value, w = t.defaultValue, T = t.range, E = t.count, D = t.onChange, O = t.onBeforeChange, k = t.onAfterChange, A = t.onChangeComplete, j = t.allowCross, M = j === void 0 || j, N = t.pushable, P = N !== void 0 && N, F = t.reverse, I = t.vertical, L = t.included, R = L === void 0 || L, z = t.startPoint, ee = t.trackStyle, B = t.handleStyle, te = t.railStyle, V = t.dotStyle, ne = t.activeDotStyle, re = t.marks, ie = t.dots, ae = t.handleRender, oe = t.activeHandleRender, se = t.track, ce = t.tabIndex, le = ce === void 0 ? 0 : ce, ue = t.ariaLabelForHandle, de = t.ariaLabelledByForHandle, fe = t.ariaRequired, pe = t.ariaValueTextFormatterForHandle, me = e.useRef(null), he = e.useRef(null), ge = e.useMemo(function() {
5706
5716
  return I ? F ? "ttb" : "btt" : F ? "rtl" : "ltr";
5707
- }, [F, I]), H = Ko(Ps(T), 5), _e = H[0], ve = H[1], ye = H[2], be = H[3], xe = H[4], Se = e.useMemo(function() {
5717
+ }, [F, I]), _e = Ko(Ps(T), 5), H = _e[0], ve = _e[1], ye = _e[2], be = _e[3], xe = _e[4], Se = e.useMemo(function() {
5708
5718
  return isFinite(v) ? v : 0;
5709
5719
  }, [v]), Ce = e.useMemo(function() {
5710
5720
  return isFinite(b) ? b : 100;
5711
- }, [b]), we = e.useMemo(function() {
5721
+ }, [b]), U = e.useMemo(function() {
5712
5722
  return S !== null && S <= 0 ? 1 : S;
5713
- }, [S]), Te = e.useMemo(function() {
5714
- return typeof P == "boolean" ? P ? we : !1 : P >= 0 && P;
5715
- }, [P, we]), U = e.useMemo(function() {
5723
+ }, [S]), we = e.useMemo(function() {
5724
+ return typeof P == "boolean" ? P ? U : !1 : P >= 0 && P;
5725
+ }, [P, U]), W = e.useMemo(function() {
5716
5726
  return Object.keys(re || {}).map(function(t) {
5717
5727
  var n = re[t], r = { value: Number(t) };
5718
5728
  return n && jo(n) === "object" && !/*#__PURE__*/ e.isValidElement(n) && ("label" in n || "style" in n) ? (r.style = n.style, r.label = n.label) : r.label = n, r;
@@ -5722,10 +5732,10 @@ var Fs = /*#__PURE__*/ e.forwardRef(function(t, n) {
5722
5732
  }).sort(function(e, t) {
5723
5733
  return e.value - t.value;
5724
5734
  });
5725
- }, [re]), Ee = Ko(Ns(Se, Ce, we, U, M, Te), 2), De = Ee[0], Oe = Ee[1], ke = Ko(ts(w, { value: C }), 2), Ae = ke[0], je = ke[1], W = e.useMemo(function() {
5726
- var e = Ae == null ? [] : Array.isArray(Ae) ? Ae : [Ae], t = Ko(e, 1)[0], n = Ae === null ? [] : [t === void 0 ? Se : t];
5727
- if (_e) {
5728
- if (n = Ho(e), E || Ae === void 0) {
5735
+ }, [re]), Te = Ko(Ns(Se, Ce, U, W, M, we), 2), Ee = Te[0], De = Te[1], Oe = Ko(ts(w, { value: C }), 2), ke = Oe[0], Ae = Oe[1], je = e.useMemo(function() {
5736
+ var e = ke == null ? [] : Array.isArray(ke) ? ke : [ke], t = Ko(e, 1)[0], n = ke === null ? [] : [t === void 0 ? Se : t];
5737
+ if (H) {
5738
+ if (n = Ho(e), E || ke === void 0) {
5729
5739
  var r = E >= 0 ? E + 1 : 2;
5730
5740
  for (n = n.slice(0, r); n.length < r;) n.push(n[n.length - 1] ?? Se);
5731
5741
  }
@@ -5734,41 +5744,41 @@ var Fs = /*#__PURE__*/ e.forwardRef(function(t, n) {
5734
5744
  });
5735
5745
  }
5736
5746
  return n.forEach(function(e, t) {
5737
- n[t] = De(e);
5747
+ n[t] = Ee(e);
5738
5748
  }), n;
5739
5749
  }, [
5740
- Ae,
5741
- _e,
5750
+ ke,
5751
+ H,
5742
5752
  Se,
5743
5753
  E,
5744
- De
5754
+ Ee
5745
5755
  ]), Me = function(e) {
5746
- return _e ? e : e[0];
5756
+ return H ? e : e[0];
5747
5757
  }, Ne = Jo(function(e) {
5748
5758
  var t = Ho(e).sort(function(e, t) {
5749
5759
  return e - t;
5750
5760
  });
5751
- D && !ds(t, W, !0) && D(Me(t)), je(t);
5761
+ D && !ds(t, je, !0) && D(Me(t)), Ae(t);
5752
5762
  }), Pe = Jo(function(e) {
5753
5763
  e && me.current.hideHelp();
5754
- var t = Me(W);
5764
+ var t = Me(je);
5755
5765
  k?.(t), ls(!k, "[rc-slider] `onAfterChange` is deprecated. Please use `onChangeComplete` instead."), A?.(t);
5756
5766
  }), Fe = function(e) {
5757
- if (!(d || !ve || W.length <= be)) {
5758
- var t = Ho(W);
5767
+ if (!(d || !ve || je.length <= be)) {
5768
+ var t = Ho(je);
5759
5769
  t.splice(e, 1), O?.(Me(t)), Ne(t);
5760
5770
  var n = Math.max(0, e - 1);
5761
5771
  me.current.hideHelp(), me.current.focus(n);
5762
5772
  }
5763
- }, Ie = Ko(Ms(he, ge, W, Se, Ce, De, Ne, Pe, Oe, ve, be), 5), Le = Ie[0], Re = Ie[1], ze = Ie[2], Be = Ie[3], Ve = Ie[4], He = function(e, t) {
5773
+ }, Ie = Ko(Ms(he, ge, je, Se, Ce, Ee, Ne, Pe, De, ve, be), 5), Le = Ie[0], Re = Ie[1], ze = Ie[2], Be = Ie[3], Ve = Ie[4], He = function(e, t) {
5764
5774
  if (!d) {
5765
- var n = Ho(W), r = 0, i = 0, a = Ce - Se;
5766
- W.forEach(function(t, n) {
5775
+ var n = Ho(je), r = 0, i = 0, a = Ce - Se;
5776
+ je.forEach(function(t, n) {
5767
5777
  var o = Math.abs(e - t);
5768
5778
  o <= a && (a = o, r = n), t < e && (i = n);
5769
5779
  });
5770
5780
  var o = r;
5771
- ve && a !== 0 && (!xe || W.length < xe) ? (n.splice(i + 1, 0, e), o = i + 1) : n[r] = e, _e && !W.length && E === void 0 && n.push(e);
5781
+ ve && a !== 0 && (!xe || je.length < xe) ? (n.splice(i + 1, 0, e), o = i + 1) : n[r] = e, H && !je.length && E === void 0 && n.push(e);
5772
5782
  var s = Me(n);
5773
5783
  if (O?.(s), Ne(n), t) {
5774
5784
  var c, l;
@@ -5790,28 +5800,28 @@ var Fs = /*#__PURE__*/ e.forwardRef(function(t, n) {
5790
5800
  break;
5791
5801
  default: u = (c - i) / n;
5792
5802
  }
5793
- He(De(Se + u * (Ce - Se)), e);
5803
+ He(Ee(Se + u * (Ce - Se)), e);
5794
5804
  }, We = Ko(e.useState(null), 2), Ge = We[0], Ke = We[1], qe = function(e, t) {
5795
5805
  if (!d) {
5796
- var n = Oe(W, e, t);
5797
- O?.(Me(W)), Ne(n.values), Ke(n.value);
5806
+ var n = De(je, e, t);
5807
+ O?.(Me(je)), Ne(n.values), Ke(n.value);
5798
5808
  }
5799
5809
  };
5800
5810
  e.useEffect(function() {
5801
5811
  if (Ge !== null) {
5802
- var e = W.indexOf(Ge);
5812
+ var e = je.indexOf(Ge);
5803
5813
  e >= 0 && me.current.focus(e);
5804
5814
  }
5805
5815
  Ke(null);
5806
5816
  }, [Ge]);
5807
5817
  var Je = e.useMemo(function() {
5808
- return ye && we === null ? (process.env.NODE_ENV !== "production" && ls(!1, "`draggableTrack` is not supported when `step` is `null`."), !1) : ye;
5809
- }, [ye, we]), Ye = Jo(function(e, t) {
5810
- Ve(e, t), O?.(Me(W));
5818
+ return ye && U === null ? (process.env.NODE_ENV !== "production" && ls(!1, "`draggableTrack` is not supported when `step` is `null`."), !1) : ye;
5819
+ }, [ye, U]), Ye = Jo(function(e, t) {
5820
+ Ve(e, t), O?.(Me(je));
5811
5821
  }), Xe = Le !== -1;
5812
5822
  e.useEffect(function() {
5813
5823
  if (!Xe) {
5814
- var e = W.lastIndexOf(Re);
5824
+ var e = je.lastIndexOf(Re);
5815
5825
  me.current.focus(e);
5816
5826
  }
5817
5827
  }, [Xe]);
@@ -5820,10 +5830,10 @@ var Fs = /*#__PURE__*/ e.forwardRef(function(t, n) {
5820
5830
  return e - t;
5821
5831
  });
5822
5832
  }, [Be]), Qe = Ko(e.useMemo(function() {
5823
- return _e ? [Ze[0], Ze[Ze.length - 1]] : [Se, Ze[0]];
5833
+ return H ? [Ze[0], Ze[Ze.length - 1]] : [Se, Ze[0]];
5824
5834
  }, [
5825
5835
  Ze,
5826
- _e,
5836
+ H,
5827
5837
  Se
5828
5838
  ]), 2), $e = Qe[0], et = Qe[1];
5829
5839
  e.useImperativeHandle(n, function() {
@@ -5846,11 +5856,11 @@ var Fs = /*#__PURE__*/ e.forwardRef(function(t, n) {
5846
5856
  direction: ge,
5847
5857
  disabled: d,
5848
5858
  keyboard: p,
5849
- step: we,
5859
+ step: U,
5850
5860
  included: R,
5851
5861
  includedStart: $e,
5852
5862
  includedEnd: et,
5853
- range: _e,
5863
+ range: H,
5854
5864
  tabIndex: le,
5855
5865
  ariaLabelForHandle: ue,
5856
5866
  ariaLabelledByForHandle: de,
@@ -5865,11 +5875,11 @@ var Fs = /*#__PURE__*/ e.forwardRef(function(t, n) {
5865
5875
  ge,
5866
5876
  d,
5867
5877
  p,
5868
- we,
5878
+ U,
5869
5879
  R,
5870
5880
  $e,
5871
5881
  et,
5872
- _e,
5882
+ H,
5873
5883
  le,
5874
5884
  ue,
5875
5885
  de,
@@ -5880,24 +5890,24 @@ var Fs = /*#__PURE__*/ e.forwardRef(function(t, n) {
5880
5890
  ]);
5881
5891
  return /*#__PURE__*/ e.createElement(vs.Provider, { value: tt }, /*#__PURE__*/ e.createElement("div", {
5882
5892
  ref: he,
5883
- className: (0, qo.default)(i, a, Po(Po(Po(Po({}, `${i}-disabled`, d), `${i}-vertical`, I), `${i}-horizontal`, !I), `${i}-with-marks`, U.length)),
5893
+ className: (0, qo.default)(i, a, Po(Po(Po(Po({}, `${i}-disabled`, d), `${i}-vertical`, I), `${i}-horizontal`, !I), `${i}-with-marks`, W.length)),
5884
5894
  style: o,
5885
5895
  onMouseDown: Ue,
5886
5896
  id: l
5887
5897
  }, /*#__PURE__*/ e.createElement("div", {
5888
5898
  className: (0, qo.default)(`${i}-rail`, s?.rail),
5889
- style: Io(Io({}, V), c?.rail)
5899
+ style: Io(Io({}, te), c?.rail)
5890
5900
  }), se !== !1 && /*#__PURE__*/ e.createElement(ks, {
5891
5901
  prefixCls: i,
5892
5902
  style: ee,
5893
- values: W,
5903
+ values: je,
5894
5904
  startPoint: z,
5895
5905
  onStartMove: Je ? Ye : void 0
5896
5906
  }), /*#__PURE__*/ e.createElement(Ds, {
5897
5907
  prefixCls: i,
5898
- marks: U,
5908
+ marks: W,
5899
5909
  dots: ie,
5900
- style: te,
5910
+ style: V,
5901
5911
  activeStyle: ne
5902
5912
  }), /*#__PURE__*/ e.createElement(Cs, {
5903
5913
  ref: me,
@@ -5916,7 +5926,7 @@ var Fs = /*#__PURE__*/ e.forwardRef(function(t, n) {
5916
5926
  onDelete: ve ? Fe : void 0
5917
5927
  }), /*#__PURE__*/ e.createElement(Ts, {
5918
5928
  prefixCls: i,
5919
- marks: U,
5929
+ marks: W,
5920
5930
  onClick: He
5921
5931
  })));
5922
5932
  });
@@ -18009,13 +18019,13 @@ function Fy() {
18009
18019
  }
18010
18020
  return this;
18011
18021
  }, "fill");
18012
- var V = /[^+/0-9A-Za-z-_]/g;
18013
- function te(e) {
18014
- if (e = e.split("=")[0], e = e.trim().replace(V, ""), e.length < 2) return "";
18022
+ var te = /[^+/0-9A-Za-z-_]/g;
18023
+ function V(e) {
18024
+ if (e = e.split("=")[0], e = e.trim().replace(te, ""), e.length < 2) return "";
18015
18025
  for (; e.length % 4 != 0;) e += "=";
18016
18026
  return e;
18017
18027
  }
18018
- Z(te, "base64clean");
18028
+ Z(V, "base64clean");
18019
18029
  function ne(e, t) {
18020
18030
  t ||= Infinity;
18021
18031
  for (var n, r = e.length, i = null, a = [], o = 0; o < r; ++o) {
@@ -18066,7 +18076,7 @@ function Fy() {
18066
18076
  }
18067
18077
  Z(ie, "utf16leToBytes");
18068
18078
  function ae(e) {
18069
- return t.toByteArray(te(e));
18079
+ return t.toByteArray(V(e));
18070
18080
  }
18071
18081
  Z(ae, "base64ToBytes");
18072
18082
  function oe(e, t, n, r) {
@@ -19650,12 +19660,12 @@ function Hb() {
19650
19660
  Z(A, "howMuchToRead"), w.prototype.read = function(e) {
19651
19661
  c("read", e), e = parseInt(e, 10);
19652
19662
  var t = this._readableState, n = e;
19653
- if (e !== 0 && (t.emittedReadable = !1), e === 0 && t.needReadable && ((t.highWaterMark === 0 ? t.length > 0 : t.length >= t.highWaterMark) || t.ended)) return c("read: emitReadable", t.length, t.ended), t.length === 0 && t.ended ? te(this) : M(this), null;
19654
- if (e = A(e, t), e === 0 && t.ended) return t.length === 0 && te(this), null;
19663
+ if (e !== 0 && (t.emittedReadable = !1), e === 0 && t.needReadable && ((t.highWaterMark === 0 ? t.length > 0 : t.length >= t.highWaterMark) || t.ended)) return c("read: emitReadable", t.length, t.ended), t.length === 0 && t.ended ? V(this) : M(this), null;
19664
+ if (e = A(e, t), e === 0 && t.ended) return t.length === 0 && V(this), null;
19655
19665
  var r = t.needReadable;
19656
19666
  c("need readable", r), (t.length === 0 || t.length - e < t.highWaterMark) && (r = !0, c("length less than watermark", r)), t.ended || t.reading ? (r = !1, c("reading or ended", r)) : r && (c("do read"), t.reading = !0, t.sync = !0, t.length === 0 && (t.needReadable = !0), this._read(t.highWaterMark), t.sync = !1, t.reading || (e = A(n, t)));
19657
- var i = e > 0 ? V(e, t) : null;
19658
- return i === null ? (t.needReadable = t.length <= t.highWaterMark, e = 0) : (t.length -= e, t.awaitDrain = 0), t.length === 0 && (t.ended || (t.needReadable = !0), n !== e && t.ended && te(this)), i !== null && this.emit("data", i), i;
19667
+ var i = e > 0 ? te(e, t) : null;
19668
+ return i === null ? (t.needReadable = t.length <= t.highWaterMark, e = 0) : (t.length -= e, t.awaitDrain = 0), t.length === 0 && (t.ended || (t.needReadable = !0), n !== e && t.ended && V(this)), i !== null && this.emit("data", i), i;
19659
19669
  };
19660
19670
  function j(e, t) {
19661
19671
  if (c("onEofChunk"), !t.ended) {
@@ -19835,23 +19845,23 @@ function Hb() {
19835
19845
  set: /* @__PURE__ */ Z(function(e) {
19836
19846
  this._readableState && (this._readableState.flowing = e);
19837
19847
  }, "set")
19838
- }), w._fromList = V, Object.defineProperty(w.prototype, "readableLength", {
19848
+ }), w._fromList = te, Object.defineProperty(w.prototype, "readableLength", {
19839
19849
  enumerable: !1,
19840
19850
  get: /* @__PURE__ */ Z(function() {
19841
19851
  return this._readableState.length;
19842
19852
  }, "get")
19843
19853
  });
19844
- function V(e, t) {
19854
+ function te(e, t) {
19845
19855
  if (t.length === 0) return null;
19846
19856
  var n;
19847
19857
  return t.objectMode ? n = t.buffer.shift() : !e || e >= t.length ? (n = t.decoder ? t.buffer.join("") : t.buffer.length === 1 ? t.buffer.first() : t.buffer.concat(t.length), t.buffer.clear()) : n = t.buffer.consume(e, t.decoder), n;
19848
19858
  }
19849
- Z(V, "fromList");
19850
- function te(e) {
19859
+ Z(te, "fromList");
19860
+ function V(e) {
19851
19861
  var t = e._readableState;
19852
19862
  c("endReadable", t.endEmitted), t.endEmitted || (t.ended = !0, process.nextTick(ne, t, e));
19853
19863
  }
19854
- Z(te, "endReadable");
19864
+ Z(V, "endReadable");
19855
19865
  function ne(e, t) {
19856
19866
  if (c("endReadableNT", e.endEmitted, e.length), !e.endEmitted && e.length === 0 && (e.endEmitted = !0, t.readable = !1, t.emit("end"), e.autoDestroy)) {
19857
19867
  var n = t._writableState;
@@ -20828,11 +20838,11 @@ var iS = /* @__PURE__ */ tS(nS, 9, 1), aS = /* @__PURE__ */ tS(rS, 5, 1), oS = /
20828
20838
  var D = z - 257, B = Wx[D];
20829
20839
  ee = sS(e, d, (1 << B) - 1) + Yx[D], d += B;
20830
20840
  }
20831
- var V = m[cS(e, d) & L], te = V >> 4;
20832
- V || fS(3), d += V & 15;
20833
- var F = Zx[te];
20834
- if (te > 3) {
20835
- var B = Gx[te];
20841
+ var te = m[cS(e, d) & L], V = te >> 4;
20842
+ te || fS(3), d += te & 15;
20843
+ var F = Zx[V];
20844
+ if (V > 3) {
20845
+ var B = Gx[V];
20836
20846
  F += cS(e, d) & (1 << B) - 1, d += B;
20837
20847
  }
20838
20848
  if (d > _) {
@@ -23880,35 +23890,35 @@ function PC({ searchPanelOpen: e, setSearchPanelOpen: t, searchInput: n, setSear
23880
23890
  }
23881
23891
  //#endregion
23882
23892
  //#region src/components/GensploreView.jsx
23883
- function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallback: r, fastaUrl: i }) {
23884
- let [a, o] = v(""), s = t === void 0 ? a : t, c = l((e) => {
23885
- o(e), n?.(e);
23886
- }, [n]), [u, f] = v(null), [p, g] = v(!1), [y, C] = v({
23893
+ function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallback: r, fastaUrl: i, alignedSequence: a }) {
23894
+ let [o, s] = v(""), c = t === void 0 ? o : t, u = l((e) => {
23895
+ s(e), n?.(e);
23896
+ }, [n]), [f, p] = v(null), [g, y] = v(!1), [C, w] = v({
23887
23897
  busy: !1,
23888
23898
  error: ""
23889
- }), [w, T] = v(!1), [E, D] = v(0), [O, k] = v(null), [A, j] = v(null), [M, N] = v(null), [P, F] = v("nuc"), [I, { width: L }] = AC(), [R, z] = v(null), [ee, B] = v({
23899
+ }), [T, E] = v(!1), [D, O] = v(0), [k, A] = v(null), [j, M] = v(null), [N, P] = v(null), [F, I] = v("nuc"), [L, { width: R }] = AC(), [z, ee] = v(null), [B, te] = v({
23890
23900
  x: null,
23891
23901
  y: null
23892
- }), [V, te] = v(null), [ne, re] = v([]), [ie, ae] = v(0), [oe, se] = v(!1), ce = P === "nuc" ? parseInt(s) : null, fe = P === "annot" ? s : null, pe = P === "sequence" && s ? s.toUpperCase() : null, [me, he] = v(0);
23893
- function ge() {
23902
+ }), [V, ne] = v(null), [re, ie] = v([]), [ae, oe] = v(0), [se, ce] = v(!1), fe = F === "nuc" ? parseInt(c) : null, pe = F === "annot" ? c : null, me = F === "sequence" && c ? c.toUpperCase() : null, [he, ge] = v(0);
23903
+ function _e() {
23894
23904
  var e = document;
23895
23905
  return Math.max(Math.max(e.body.scrollHeight, e.documentElement.scrollHeight), Math.max(e.body.offsetHeight, e.documentElement.offsetHeight), Math.max(e.body.clientHeight, e.documentElement.clientHeight));
23896
23906
  }
23897
23907
  d(() => {
23898
23908
  let e = () => {
23899
- let e = window.pageYOffset, t = window.innerHeight, n = e / (ge() - t);
23900
- Math.abs(n - me) > .05 && he(n);
23909
+ let e = window.pageYOffset, t = window.innerHeight, n = e / (_e() - t);
23910
+ Math.abs(n - he) > .05 && ge(n);
23901
23911
  };
23902
23912
  return window.addEventListener("scroll", e), () => {
23903
23913
  window.removeEventListener("scroll", e);
23904
23914
  };
23905
- }, [me]), d(() => {
23915
+ }, [he]), d(() => {
23906
23916
  let t = !1;
23907
- return te(null), f(null), re([]), ae(0), (async () => {
23917
+ return ne(null), p(null), ie([]), oe(0), (async () => {
23908
23918
  try {
23909
23919
  let n = await Dv(e);
23910
23920
  if (t) return;
23911
- n[0].parsedSequence.sequence = n[0].parsedSequence.sequence.toUpperCase(), te(n[0]);
23921
+ n[0].parsedSequence.sequence = n[0].parsedSequence.sequence.toUpperCase(), ne(n[0]);
23912
23922
  } catch (e) {
23913
23923
  console.error("Error loading GenBank file:", e);
23914
23924
  }
@@ -23917,14 +23927,14 @@ function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallb
23917
23927
  };
23918
23928
  }, [e]), d(() => {
23919
23929
  let e = V?.parsedSequence.name;
23920
- e && r && r(u ? `${u.name} vs ${e} | Gensplore` : `${e} | Gensplore`);
23930
+ e && r && r(f ? `${f.name} vs ${e} | Gensplore` : `${e} | Gensplore`);
23921
23931
  }, [
23922
23932
  V,
23923
- u,
23933
+ f,
23924
23934
  r
23925
23935
  ]), d(() => {
23926
23936
  let e = (e) => {
23927
- (e.ctrlKey || e.metaKey) && e.keyCode === 70 && (e.preventDefault(), T(!0), setTimeout(() => {
23937
+ (e.ctrlKey || e.metaKey) && e.keyCode === 70 && (e.preventDefault(), E(!0), setTimeout(() => {
23928
23938
  document.getElementById("search-input").focus(), document.getElementById("search-input").select();
23929
23939
  }, 100));
23930
23940
  };
@@ -23933,77 +23943,77 @@ function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallb
23933
23943
  };
23934
23944
  }, []), d(() => {
23935
23945
  let e = (e) => {
23936
- (e.ctrlKey || e.metaKey) && e.keyCode === 67 && O !== null && A !== null && (Ve(e.shiftKey), e.preventDefault());
23946
+ (e.ctrlKey || e.metaKey) && e.keyCode === 67 && k !== null && j !== null && (He(e.shiftKey), e.preventDefault());
23937
23947
  };
23938
23948
  return window.addEventListener("keydown", e), () => {
23939
23949
  window.removeEventListener("keydown", e);
23940
23950
  };
23941
23951
  }, [
23942
23952
  V,
23943
- O,
23944
- A
23953
+ k,
23954
+ j
23945
23955
  ]);
23946
- let H = Math.floor(L * .0965 / 2 ** E);
23956
+ let H = Math.floor(R * .0965 / 2 ** D);
23947
23957
  H < 30 && (H = 30);
23948
- let _e, ve;
23949
- V && (_e = V.parsedSequence.sequence, ve = _e.length);
23950
- let ye = h(() => {
23951
- if (!_e) return [];
23958
+ let ve, ye;
23959
+ V && (ve = V.parsedSequence.sequence, ye = ve.length);
23960
+ let be = h(() => {
23961
+ if (!ve) return [];
23952
23962
  let e = [];
23953
- for (let t = 0; t < ve; t += H) e.push({
23963
+ for (let t = 0; t < ye; t += H) e.push({
23954
23964
  rowStart: t,
23955
- rowEnd: t + H > ve ? ve : t + H
23965
+ rowEnd: t + H > ye ? ye : t + H
23956
23966
  });
23957
23967
  return e;
23958
23968
  }, [
23959
- _e,
23969
+ ve,
23960
23970
  H,
23961
- ve
23962
- ]), be = _(null), [xe, Se] = v(0);
23971
+ ye
23972
+ ]), xe = _(null), [Se, Ce] = v(0);
23963
23973
  m(() => {
23964
- let e = be.current;
23974
+ let e = xe.current;
23965
23975
  if (!e) return;
23966
- let t = () => Se(e.getBoundingClientRect().top + window.scrollY);
23976
+ let t = () => Ce(e.getBoundingClientRect().top + window.scrollY);
23967
23977
  t();
23968
23978
  let n = new ResizeObserver(t);
23969
23979
  return n.observe(e.parentElement), () => n.disconnect();
23970
- }, [V, L]);
23971
- let Ce = Lt({
23972
- count: ye.length,
23980
+ }, [V, R]);
23981
+ let U = Lt({
23982
+ count: be.length,
23973
23983
  estimateSize: () => 90,
23974
- scrollMargin: xe
23975
- }), we = Ce.getVirtualItems(), [Te, U] = v(null), Ee = (e) => {
23976
- let t = we[Math.floor(we.length / 2)].index, n = ye[t].rowStart, r = ye[t].rowEnd, i = Math.floor((n + r) / 2);
23977
- U(i), console.log("middleRowMiddle", i), D(e);
23984
+ scrollMargin: Se
23985
+ }), we = U.getVirtualItems(), [W, Te] = v(null), Ee = (e) => {
23986
+ let t = we[Math.floor(we.length / 2)].index, n = be[t].rowStart, r = be[t].rowEnd, i = Math.floor((n + r) / 2);
23987
+ Te(i), console.log("middleRowMiddle", i), O(e);
23978
23988
  };
23979
23989
  d(() => {
23980
- if (!Te) return;
23981
- if (O && A) {
23982
- let e = Math.floor((O + A) / 2);
23983
- Ce.scrollToIndex(3 + Math.floor(e / H), {
23990
+ if (!W) return;
23991
+ if (k && j) {
23992
+ let e = Math.floor((k + j) / 2);
23993
+ U.scrollToIndex(3 + Math.floor(e / H), {
23984
23994
  align: "center",
23985
23995
  smoothScroll: !1
23986
- }), U(null);
23996
+ }), Te(null);
23987
23997
  return;
23988
23998
  }
23989
- let e = Math.floor(Te / H);
23990
- Ce.scrollToIndex(e, {
23999
+ let e = Math.floor(W / H);
24000
+ U.scrollToIndex(e, {
23991
24001
  align: "center",
23992
24002
  smoothScroll: !1
23993
- }), U(null), console.log("scrolling to", Te);
23994
- }, [Te, E]);
23995
- let [De, Oe] = v(null), [ke, Ae] = v(!1), [je, W] = v(!1), [Me, Ne] = v(null);
24003
+ }), Te(null), console.log("scrolling to", W);
24004
+ }, [W, D]);
24005
+ let [De, Oe] = v(null), [ke, Ae] = v(!1), [je, Me] = v(!1), [Ne, Pe] = v(null);
23996
24006
  d(() => {
23997
- if (!ce) return;
23998
- let e = Math.floor(ce / H);
23999
- ce !== De && (e > ye.length || (Ce.scrollToIndex(e + 1, { align: "center" }), Oe(ce)));
24000
- }, [ce, H]), d(() => {
24001
- if (!Me) return;
24002
- let e = Math.floor(Me.start / H);
24003
- Ce.scrollToIndex(e + 1, { align: "center" }), Ne(null);
24004
- }, [Me, H]), d(() => {
24005
24007
  if (!fe) return;
24006
- let e = fe.replace(/\s/g, "");
24008
+ let e = Math.floor(fe / H);
24009
+ fe !== De && (e > be.length || (U.scrollToIndex(e + 1, { align: "center" }), Oe(fe)));
24010
+ }, [fe, H]), d(() => {
24011
+ if (!Ne) return;
24012
+ let e = Math.floor(Ne.start / H);
24013
+ U.scrollToIndex(e + 1, { align: "center" }), Pe(null);
24014
+ }, [Ne, H]), d(() => {
24015
+ if (!pe) return;
24016
+ let e = pe.replace(/\s/g, "");
24007
24017
  if (e === "") return;
24008
24018
  let t = Ui(V.parsedSequence.features, e);
24009
24019
  if (t.length === 0) {
@@ -24011,73 +24021,73 @@ function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallb
24011
24021
  return;
24012
24022
  }
24013
24023
  let n = t[0], r = Math.floor(n.start / H);
24014
- Ce.scrollToIndex(r + 1, { align: "center" }), Oe(fe);
24015
- }, [fe]), d(() => {
24016
- if (!_e || !pe) {
24017
- re([]);
24024
+ U.scrollToIndex(r + 1, { align: "center" }), Oe(pe);
24025
+ }, [pe]), d(() => {
24026
+ if (!ve || !me) {
24027
+ ie([]);
24018
24028
  return;
24019
24029
  }
24020
- let e = pe.replace(/\s/g, "");
24030
+ let e = me.replace(/\s/g, "");
24021
24031
  if (e === "") {
24022
- re([]);
24032
+ ie([]);
24023
24033
  return;
24024
24034
  }
24025
24035
  console.log("strippedSequenceInput", e);
24026
24036
  let t = [], n = 0, r = Hi(e);
24027
24037
  for (console.log("rc", r);;) {
24028
- let i = _e.indexOf(e, n), a = oe ? _e.indexOf(r, n) : -1, o;
24038
+ let i = ve.indexOf(e, n), a = se ? ve.indexOf(r, n) : -1, o;
24029
24039
  if (o = i === -1 ? a : a === -1 ? i : Math.min(i, a), o === -1) break;
24030
24040
  t.push([o, o + e.length]), n = o + 1;
24031
24041
  }
24032
- if (re(t), console.log("length", t.length), t.length == 0) return;
24033
- let i = Math.min(ie, t.length - 1);
24034
- i !== ie && ae(i);
24042
+ if (ie(t), console.log("length", t.length), t.length == 0) return;
24043
+ let i = Math.min(ae, t.length - 1);
24044
+ i !== ae && oe(i);
24035
24045
  let a = Math.floor(t[i][0] / H);
24036
- console.log("row", a), Ce.scrollToIndex(a + 1, { align: "center" }), Oe(pe);
24046
+ console.log("row", a), U.scrollToIndex(a + 1, { align: "center" }), Oe(me);
24037
24047
  }, [
24038
- pe,
24039
- ie,
24040
- oe,
24041
- _e
24048
+ me,
24049
+ ae,
24050
+ se,
24051
+ ve
24042
24052
  ]);
24043
- let [Pe, Fe] = v(!1), [Ie, Le] = v({}), Re = h(() => {
24053
+ let [Fe, Ie] = v(!1), [Le, Re] = v({}), ze = h(() => {
24044
24054
  if (!V) return [];
24045
24055
  let e = [];
24046
24056
  return V.parsedSequence.features.forEach((t, n) => {
24047
- Ie[n] && e.push(t);
24057
+ Le[n] && e.push(t);
24048
24058
  }), e;
24049
- }, [Ie, V]);
24059
+ }, [Le, V]);
24050
24060
  d(() => {
24051
24061
  if (!V) return;
24052
24062
  let e = {};
24053
24063
  V.parsedSequence.features.forEach((t, n) => {
24054
24064
  e[n] = t.type !== "source" && t.type !== "gene" && t.type !== "mRNA";
24055
- }), Le(e);
24065
+ }), Re(e);
24056
24066
  }, [V]);
24057
- let ze = (e) => {
24058
- e.preventDefault(), B({
24067
+ let Be = (e) => {
24068
+ e.preventDefault(), te({
24059
24069
  x: e.clientX,
24060
24070
  y: e.clientY
24061
24071
  });
24062
- }, Be = () => {
24063
- B({
24072
+ }, Ve = () => {
24073
+ te({
24064
24074
  x: null,
24065
24075
  y: null
24066
24076
  });
24067
- }, Ve = (e = !1) => {
24068
- if (O === null || A === null) return;
24069
- let t = Math.min(O, A), n = Math.max(O, A), r = V.parsedSequence.sequence.substring(t, n);
24077
+ }, He = (e = !1) => {
24078
+ if (k === null || j === null) return;
24079
+ let t = Math.min(k, j), n = Math.max(k, j), r = V.parsedSequence.sequence.substring(t, n);
24070
24080
  e && (r = Hi(r)), navigator.clipboard.writeText(r), J.success(`Copied ${e ? "reverse complement " : ""}to clipboard`);
24071
24081
  };
24072
- return d(() => (document.addEventListener("click", Be), () => {
24073
- document.removeEventListener("click", Be);
24074
- }), []), V ? L ? /* @__PURE__ */ x(b, { children: /* @__PURE__ */ S("div", {
24082
+ return d(() => (document.addEventListener("click", Ve), () => {
24083
+ document.removeEventListener("click", Ve);
24084
+ }), []), V ? R ? /* @__PURE__ */ x(b, { children: /* @__PURE__ */ S("div", {
24075
24085
  className: "gensplore",
24076
- onContextMenu: ze,
24086
+ onContextMenu: Be,
24077
24087
  children: [
24078
24088
  /* @__PURE__ */ x(Fi, {
24079
24089
  open: je,
24080
- onClose: () => W(!1),
24090
+ onClose: () => Me(!1),
24081
24091
  className: "gensplore fixed z-50 max-w-2xl px-4 py-6 bg-white rounded-lg shadow-xl sm:px-6 sm:py-8 sm:pb-4 sm:pt-6",
24082
24092
  children: /* @__PURE__ */ x(Ni, {
24083
24093
  className: "fixed inset-0 flex items-center justify-center bg-gray-500/75 transition-opacity",
@@ -24110,7 +24120,7 @@ function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallb
24110
24120
  children: /* @__PURE__ */ x("button", {
24111
24121
  type: "button",
24112
24122
  className: "inline-flex justify-center px-4 py-2 text-sm font-medium text-gray-700 bg-gray-100 border border-transparent rounded-md hover:bg-gray-200 focus:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-blue-500",
24113
- onClick: () => W(!1),
24123
+ onClick: () => Me(!1),
24114
24124
  children: "Close"
24115
24125
  })
24116
24126
  })
@@ -24125,39 +24135,39 @@ function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallb
24125
24135
  /* @__PURE__ */ x("div", {
24126
24136
  className: "fixed top-0 right-0 z-10",
24127
24137
  children: /* @__PURE__ */ x(PC, {
24128
- searchInput: s,
24129
- setSearchInput: c,
24130
- searchPanelOpen: w,
24131
- setSearchPanelOpen: T,
24132
- searchType: P,
24133
- setSearchType: F,
24134
- curSeqHitIndex: ie,
24135
- setCurSeqHitIndex: ae,
24136
- sequenceHits: ne,
24137
- includeRC: oe,
24138
- setIncludeRC: se
24138
+ searchInput: c,
24139
+ setSearchInput: u,
24140
+ searchPanelOpen: T,
24141
+ setSearchPanelOpen: E,
24142
+ searchType: F,
24143
+ setSearchType: I,
24144
+ curSeqHitIndex: ae,
24145
+ setCurSeqHitIndex: oe,
24146
+ sequenceHits: re,
24147
+ includeRC: se,
24148
+ setIncludeRC: ce
24139
24149
  })
24140
24150
  }),
24141
24151
  /* @__PURE__ */ x("div", {
24142
24152
  className: "fixed bottom-0 right-0 z-10 p-2 rounded shadow bg-white comparison-toolbar",
24143
24153
  children: /* @__PURE__ */ x(Vs, {
24144
- zoomLevel: E,
24154
+ zoomLevel: D,
24145
24155
  setZoomLevel: Ee,
24146
24156
  configModalOpen: je,
24147
- setConfigModalOpen: W,
24148
- setFeatureOffcanvasOpen: Fe,
24149
- comparisonPanelOpen: p,
24150
- setComparisonPanelOpen: g,
24151
- comparisonCount: u?.differences.length,
24152
- comparisonStatus: y
24157
+ setConfigModalOpen: Me,
24158
+ setFeatureOffcanvasOpen: Ie,
24159
+ comparisonPanelOpen: g,
24160
+ setComparisonPanelOpen: y,
24161
+ comparisonCount: f?.differences.length,
24162
+ comparisonStatus: C
24153
24163
  })
24154
24164
  }),
24155
24165
  /* @__PURE__ */ S("div", {
24156
24166
  className: "w-full",
24157
- children: [/* @__PURE__ */ x(Bi, { hoveredInfo: R }), V && /* @__PURE__ */ S("div", {
24158
- ref: I,
24167
+ children: [/* @__PURE__ */ x(Bi, { hoveredInfo: z }), V && /* @__PURE__ */ S("div", {
24168
+ ref: L,
24159
24169
  children: [
24160
- O !== null && (A !== null || M !== null) && /* @__PURE__ */ x("div", {
24170
+ k !== null && (j !== null || N !== null) && /* @__PURE__ */ x("div", {
24161
24171
  className: "fixed bottom-1 left-1 z-10 px-3 py-2 text-sm rounded-lg shadow-lg bg-linear-to-r from-gray-50 to-gray-100 border border-gray-200",
24162
24172
  children: /* @__PURE__ */ S("div", {
24163
24173
  className: "flex flex-col ",
@@ -24169,9 +24179,9 @@ function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallb
24169
24179
  }), /* @__PURE__ */ S("span", {
24170
24180
  className: "font-mono text-gray-700",
24171
24181
  children: [
24172
- Math.min(O, A || M) + 1,
24182
+ Math.min(k, j || N) + 1,
24173
24183
  " - ",
24174
- Math.max(O, A || M)
24184
+ Math.max(k, j || N)
24175
24185
  ]
24176
24186
  })]
24177
24187
  }), /* @__PURE__ */ S("div", {
@@ -24182,10 +24192,10 @@ function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallb
24182
24192
  }), /* @__PURE__ */ S("span", {
24183
24193
  className: "font-mono text-gray-700 flex items-center",
24184
24194
  children: [
24185
- Math.abs((A || M) - O),
24195
+ Math.abs((j || N) - k),
24186
24196
  " bp",
24187
24197
  /* @__PURE__ */ x("button", {
24188
- onClick: () => Ve(),
24198
+ onClick: () => He(),
24189
24199
  className: "ml-2 p-1 hover:bg-gray-200 rounded-full",
24190
24200
  title: "Copy selection",
24191
24201
  children: /* @__PURE__ */ x(le, { className: "h-4 w-4 text-gray-500" })
@@ -24200,10 +24210,10 @@ function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallb
24200
24210
  children: [/* @__PURE__ */ x("h2", {
24201
24211
  className: "text-2xl",
24202
24212
  style: { overflowWrap: "anywhere" },
24203
- children: u?.name || V.parsedSequence.name
24213
+ children: f?.name || V.parsedSequence.name
24204
24214
  }), /* @__PURE__ */ x("div", { children: /* @__PURE__ */ x("div", {
24205
24215
  className: "flex flex-row",
24206
- children: /* @__PURE__ */ S("span", { children: [u && /* @__PURE__ */ S(b, { children: [
24216
+ children: /* @__PURE__ */ S("span", { children: [f && /* @__PURE__ */ S(b, { children: [
24207
24217
  "Reference: ",
24208
24218
  /* @__PURE__ */ x("strong", { children: V.parsedSequence.name }),
24209
24219
  " · "
@@ -24211,21 +24221,22 @@ function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallb
24211
24221
  }) })]
24212
24222
  }),
24213
24223
  /* @__PURE__ */ x(zi, {
24214
- open: p,
24215
- setOpen: g,
24216
- onStatus: C,
24217
- reference: _e,
24224
+ open: g,
24225
+ setOpen: y,
24226
+ onStatus: w,
24227
+ reference: ve,
24218
24228
  features: V.parsedSequence.features,
24219
24229
  fastaUrl: i,
24220
- onResult: f,
24221
- onGoTo: (e) => Ce.scrollToIndex(Math.floor(e / H), { align: "center" })
24230
+ alignedSequence: a,
24231
+ onResult: p,
24232
+ onGoTo: (e) => U.scrollToIndex(Math.floor(e / H), { align: "center" })
24222
24233
  }),
24223
24234
  /* @__PURE__ */ x("div", {
24224
- ref: be,
24235
+ ref: xe,
24225
24236
  className: "mt-5 h-80",
24226
24237
  children: /* @__PURE__ */ x("div", {
24227
24238
  style: {
24228
- height: Ce.getTotalSize(),
24239
+ height: U.getTotalSize(),
24229
24240
  width: "100%",
24230
24241
  position: "relative"
24231
24242
  },
@@ -24236,36 +24247,36 @@ function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallb
24236
24247
  top: 0,
24237
24248
  left: 0,
24238
24249
  width: "100%",
24239
- transform: `translateY(${(we[0]?.start ?? 0) - Ce.options.scrollMargin}px)`
24250
+ transform: `translateY(${(we[0]?.start ?? 0) - U.options.scrollMargin}px)`
24240
24251
  },
24241
24252
  className: "whitebg",
24242
24253
  children: we.map((e) => {
24243
- let t = ye[e.index];
24254
+ let t = be[e.index];
24244
24255
  return /* @__PURE__ */ x("div", {
24245
- ref: Ce.measureElement,
24256
+ ref: U.measureElement,
24246
24257
  "data-index": e.index,
24247
24258
  children: /* @__PURE__ */ x(Ao, {
24248
24259
  parsedSequence: V.parsedSequence,
24249
- visibleFeatures: Re,
24250
- differences: u?.differences || [],
24251
- proteins: u?.proteins,
24260
+ visibleFeatures: ze,
24261
+ differences: f?.differences || [],
24262
+ proteins: f?.proteins,
24252
24263
  rowStart: t.rowStart,
24253
24264
  rowEnd: t.rowEnd,
24254
24265
  rowWidth: H,
24255
- setHoveredInfo: z,
24266
+ setHoveredInfo: ee,
24256
24267
  rowId: e.index,
24257
- intSearchInput: ce - 1,
24258
- annotSearchInput: fe,
24268
+ intSearchInput: fe - 1,
24269
+ annotSearchInput: pe,
24259
24270
  renderProperly: !0,
24260
- zoomLevel: E,
24261
- whereMouseWentDown: O,
24262
- setWhereMouseWentDown: k,
24263
- whereMouseWentUp: A,
24264
- setWhereMouseWentUp: j,
24265
- whereMouseCurrentlyIs: M,
24266
- setWhereMouseCurrentlyIs: N,
24267
- sequenceHits: ne,
24268
- curSeqHitIndex: ie,
24271
+ zoomLevel: D,
24272
+ whereMouseWentDown: k,
24273
+ setWhereMouseWentDown: A,
24274
+ whereMouseWentUp: j,
24275
+ setWhereMouseWentUp: M,
24276
+ whereMouseCurrentlyIs: N,
24277
+ setWhereMouseCurrentlyIs: P,
24278
+ sequenceHits: re,
24279
+ curSeqHitIndex: ae,
24269
24280
  enableRC: ke
24270
24281
  }, e.index)
24271
24282
  }, e.key);
@@ -24278,20 +24289,20 @@ function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallb
24278
24289
  })
24279
24290
  ]
24280
24291
  }),
24281
- ee.x !== null && /* @__PURE__ */ x(de, {
24282
- x: ee.x,
24283
- y: ee.y,
24284
- onClose: Be,
24292
+ B.x !== null && /* @__PURE__ */ x(de, {
24293
+ x: B.x,
24294
+ y: B.y,
24295
+ onClose: Ve,
24285
24296
  onCopy: () => {
24286
- Ve(!1), Be();
24297
+ He(!1), Ve();
24287
24298
  },
24288
24299
  onCopyRC: () => {
24289
- Ve(!0), Be();
24300
+ He(!0), Ve();
24290
24301
  }
24291
24302
  }),
24292
- Pe && /* @__PURE__ */ x(ue, {
24293
- isOpen: Pe,
24294
- onClose: () => Fe(!1),
24303
+ Fe && /* @__PURE__ */ x(ue, {
24304
+ isOpen: Fe,
24305
+ onClose: () => Ie(!1),
24295
24306
  children: /* @__PURE__ */ S("table", {
24296
24307
  className: "min-w-full divide-y divide-gray-200",
24297
24308
  children: [/* @__PURE__ */ x("thead", { children: /* @__PURE__ */ S("tr", { children: [
@@ -24316,10 +24327,10 @@ function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallb
24316
24327
  children: [/* @__PURE__ */ x("input", {
24317
24328
  type: "checkbox",
24318
24329
  className: "focus:ring-indigo-500 text-indigo-600 border-gray-300 rounded mr-2",
24319
- checked: !!Ie[t],
24330
+ checked: !!Le[t],
24320
24331
  onChange: () => {
24321
- let e = { ...Ie };
24322
- e[t] = !e[t], Le(e);
24332
+ let e = { ...Le };
24333
+ e[t] = !e[t], Re(e);
24323
24334
  }
24324
24335
  }), e.name]
24325
24336
  }),
@@ -24334,7 +24345,7 @@ function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallb
24334
24345
  /* @__PURE__ */ x("td", { children: /* @__PURE__ */ x("button", {
24335
24346
  className: "bg-gray-100 hover:bg-gray-200 text-gray-600 font-semibold py-1 px-1 border border-gray-400 rounded shadow text-sm ",
24336
24347
  onClick: () => {
24337
- Fe(!1), Ne(e);
24348
+ Ie(!1), Pe(e);
24338
24349
  },
24339
24350
  children: "Go to"
24340
24351
  }) })
@@ -24346,7 +24357,7 @@ function FC({ genbankString: e, searchInput: t, setSearchInput: n, setTitleCallb
24346
24357
  }) }) : /* @__PURE__ */ x("div", {
24347
24358
  className: "gensplore w-full h-full p-5",
24348
24359
  children: /* @__PURE__ */ x("div", {
24349
- ref: I,
24360
+ ref: L,
24350
24361
  className: "w-full h-full"
24351
24362
  })
24352
24363
  }) : /* @__PURE__ */ x("div", { children: "Loading..." });