@sakaniui/react 0.11.0 → 0.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as e, A as t, At as n, B as r, C as i, Ct as a, D as o, Dt as s, E as c, Et as l, F as u, G as d, H as f, I as p, J as m, K as h, L as g, M as _, N as v, O as y, Ot as b, P as x, Q as S, R as C, S as w, St as ee, T, Tt as E, U as te, V as D, W as O, X as ne, Y as k, Z as re, _ as A, _t as ie, a as ae, at as j, b as oe, bt as M, c as se, ct as ce, d as le, dt as ue, et as de, f as fe, ft as pe, g as me, gt as N, h as he, ht as ge, i as _e, it as ve, j as ye, jt as P, k as be, kt as xe, l as Se, lt as Ce, m as we, mt as Te, n as Ee, nt as De, o as Oe, ot as ke, p as Ae, pt as je, q as Me, r as Ne, rt as Pe, s as Fe, st as Ie, t as Le, tt as Re, u as ze, ut as Be, v as Ve, w as He, wt as Ue, x as We, xt as Ge, y as Ke, yt as qe, z as Je } from "./TopBar-O_56x94F.js";
1
+ import { $ as e, A as t, At as n, B as r, C as i, Ct as a, D as o, Dt as s, E as c, Et as l, F as u, G as d, H as f, I as p, J as m, K as h, L as g, M as _, N as v, O as y, Ot as b, P as x, Q as S, R as C, S as w, St as ee, T, Tt as E, U as te, V as D, W as O, X as k, Y as ne, Z as re, _ as A, _t as ie, a as j, at as ae, b as oe, bt as M, c as se, ct as ce, d as le, dt as ue, et as de, f as fe, ft as pe, g as me, gt as N, h as he, ht as ge, i as _e, it as ve, j as ye, jt as P, k as be, kt as xe, l as Se, lt as Ce, m as we, mt as Te, n as Ee, nt as De, o as Oe, ot as ke, p as Ae, pt as je, q as Me, r as Ne, rt as Pe, s as Fe, st as Ie, t as Le, tt as Re, u as ze, ut as Be, v as Ve, w as He, wt as Ue, x as We, xt as Ge, y as Ke, yt as qe, z as Je } from "./TopBar-O_56x94F.js";
2
2
  import { A as Ye, D as Xe, E as Ze, F as Qe, I as $e, L as et, T as tt, _ as nt, a as rt, b as it, c as at, j as ot, k as st, p as ct, u as lt, v as ut, x as dt, y as ft } from "./help-circle-B0koiJUs.js";
3
3
  import { a as pt, c as mt, i as ht, n as gt, o as _t, r as vt, s as yt, t as bt } from "./logout-BW8ksDGk.js";
4
4
  import F, { useCallback as xt, useEffect as St, useLayoutEffect as Ct, useMemo as wt, useRef as Tt, useState as I } from "react";
@@ -390,7 +390,7 @@ var Gt = {
390
390
  onClick: l,
391
391
  children: c
392
392
  })]
393
- }), /* @__PURE__ */ L(j, {
393
+ }), /* @__PURE__ */ L(ae, {
394
394
  data: s,
395
395
  className: B.chart
396
396
  })]
@@ -1664,12 +1664,12 @@ var Gt = {
1664
1664
  });
1665
1665
  return e.observe(S.current), () => e.disconnect();
1666
1666
  }, [h]);
1667
- let [E, te] = F.useState(t === "multi" ? [] : ""), D = l === void 0 ? E : l, O = Array.isArray(D) ? D : D ? [D] : [], [ne, k] = F.useState(() => O.map((e) => ({
1667
+ let [E, te] = F.useState(t === "multi" ? [] : ""), D = l === void 0 ? E : l, O = Array.isArray(D) ? D : D ? [D] : [], [k, ne] = F.useState(() => O.map((e) => ({
1668
1668
  value: e,
1669
1669
  leaving: !1
1670
1670
  }))), re = O.join("\0");
1671
1671
  F.useLayoutEffect(() => {
1672
- k((e) => {
1672
+ ne((e) => {
1673
1673
  let t = e.map((e) => ({
1674
1674
  value: e.value,
1675
1675
  leaving: !O.includes(e.value)
@@ -1681,22 +1681,22 @@ var Gt = {
1681
1681
  return t;
1682
1682
  });
1683
1683
  }, [re]);
1684
- let A = (e) => k((t) => t.filter((t) => !(t.value === e && t.leaving))), ie = !!a;
1684
+ let A = (e) => ne((t) => t.filter((t) => !(t.value === e && t.leaving))), ie = !!a;
1685
1685
  F.useEffect(() => {
1686
1686
  let e = (e) => {
1687
1687
  y.current && !y.current.contains(e.target) && m(!1);
1688
1688
  };
1689
1689
  return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
1690
1690
  }, []);
1691
- let ae = (e) => {
1691
+ let j = (e) => {
1692
1692
  l === void 0 && te(e), u?.(e);
1693
- }, j = (e) => {
1693
+ }, ae = (e) => {
1694
1694
  if (!e.disabled) if (t === "multi") {
1695
1695
  let t = new Set(O);
1696
- t.has(e.value) ? t.delete(e.value) : t.add(e.value), ae([...t]);
1697
- } else ae(e.value), m(!1);
1696
+ t.has(e.value) ? t.delete(e.value) : t.add(e.value), j([...t]);
1697
+ } else j(e.value), m(!1);
1698
1698
  }, oe = (t) => e.find((e) => e.value === t)?.label ?? t, M = O.length ? oe(O[0]) : "", se = (e) => {
1699
- s || (e.key === "ArrowDown" ? (e.preventDefault(), m(!0), v((e) => Math.min(e + 1, b.length - 1))) : e.key === "ArrowUp" ? (e.preventDefault(), v((e) => Math.max(e - 1, 0))) : e.key === "Enter" ? (e.preventDefault(), p && b[_] ? j(b[_]) : m(!0)) : e.key === "Escape" && m(!1));
1699
+ s || (e.key === "ArrowDown" ? (e.preventDefault(), m(!0), v((e) => Math.min(e + 1, b.length - 1))) : e.key === "ArrowUp" ? (e.preventDefault(), v((e) => Math.max(e - 1, 0))) : e.key === "Enter" ? (e.preventDefault(), p && b[_] ? ae(b[_]) : m(!0)) : e.key === "Escape" && m(!1));
1700
1700
  }, ce = s ? "disabled" : ie ? "error" : p ? "open" : "default";
1701
1701
  return /* @__PURE__ */ R("div", {
1702
1702
  className: [W.field, d ?? ""].filter(Boolean).join(" "),
@@ -1725,9 +1725,9 @@ var Gt = {
1725
1725
  onClick: () => !s && m((e) => !e),
1726
1726
  onKeyDown: se,
1727
1727
  children: [
1728
- t === "multi" && ne.length > 0 && /* @__PURE__ */ L("div", {
1728
+ t === "multi" && k.length > 0 && /* @__PURE__ */ L("div", {
1729
1729
  className: W.chips,
1730
- children: ne.map(({ value: t, leaving: n }) => /* @__PURE__ */ R("span", {
1730
+ children: k.map(({ value: t, leaving: n }) => /* @__PURE__ */ R("span", {
1731
1731
  className: [W.chip, n ? W["chip--leaving"] : ""].filter(Boolean).join(" "),
1732
1732
  "aria-hidden": n || void 0,
1733
1733
  onAnimationEnd: n ? () => A(t) : void 0,
@@ -1736,14 +1736,14 @@ var Gt = {
1736
1736
  className: W.chip__remove,
1737
1737
  tabIndex: n ? -1 : void 0,
1738
1738
  onClick: (n) => {
1739
- n.stopPropagation(), j(e.find((e) => e.value === t));
1739
+ n.stopPropagation(), ae(e.find((e) => e.value === t));
1740
1740
  },
1741
1741
  "aria-label": `Remove ${oe(t)}`,
1742
1742
  children: "×"
1743
1743
  })]
1744
1744
  }, t))
1745
1745
  }),
1746
- !(t === "multi" && ne.length > 0) && /* @__PURE__ */ L("span", {
1746
+ !(t === "multi" && k.length > 0) && /* @__PURE__ */ L("span", {
1747
1747
  className: [W.control__value, t === "single" && M ? "" : W["control__value--placeholder"]].filter(Boolean).join(" "),
1748
1748
  children: t === "single" && M ? M : o
1749
1749
  }),
@@ -1807,7 +1807,7 @@ var Gt = {
1807
1807
  onMouseEnter: () => {
1808
1808
  e.disabled || v(n);
1809
1809
  },
1810
- onClick: () => j(e),
1810
+ onClick: () => ae(e),
1811
1811
  children: [
1812
1812
  t === "multi" && /* @__PURE__ */ L("span", {
1813
1813
  className: [W.option__box, r ? W["option__box--checked"] : ""].filter(Boolean).join(" "),
@@ -2198,30 +2198,30 @@ var Cr = {
2198
2198
  })
2199
2199
  ]
2200
2200
  }), J = {
2201
- map: "_map_eh5dh_2",
2202
- tiles: "_tiles_eh5dh_26",
2203
- tile: "_tile_eh5dh_26",
2204
- overlay: "_overlay_eh5dh_36",
2205
- controls: "_controls_eh5dh_40",
2206
- group: "_group_eh5dh_49",
2207
- button: "_button_eh5dh_58",
2208
- divider: "_divider_eh5dh_74",
2209
- attribution: "_attribution_eh5dh_77",
2210
- marker: "_marker_eh5dh_93",
2211
- "marker--selected": "_marker--selected_eh5dh_105",
2212
- "marker--pin": "_marker--pin_eh5dh_109",
2213
- pin: "_pin_eh5dh_110",
2214
- pinShadow: "_pinShadow_eh5dh_122",
2215
- "marker--dot": "_marker--dot_eh5dh_140",
2216
- "marker--cluster": "_marker--cluster_eh5dh_152",
2217
- clusterCount: "_clusterCount_eh5dh_165",
2218
- popup: "_popup_eh5dh_168",
2219
- "sakani-map-popup-in": "_sakani-map-popup-in_eh5dh_1",
2220
- popupHeader: "_popupHeader_eh5dh_189",
2221
- popupTitle: "_popupTitle_eh5dh_190",
2222
- popupClose: "_popupClose_eh5dh_191",
2223
- popupDescription: "_popupDescription_eh5dh_206",
2224
- popupPointer: "_popupPointer_eh5dh_208"
2201
+ map: "_map_1ogus_2",
2202
+ tiles: "_tiles_1ogus_25",
2203
+ tile: "_tile_1ogus_25",
2204
+ overlay: "_overlay_1ogus_37",
2205
+ controls: "_controls_1ogus_41",
2206
+ group: "_group_1ogus_50",
2207
+ button: "_button_1ogus_59",
2208
+ divider: "_divider_1ogus_75",
2209
+ attribution: "_attribution_1ogus_78",
2210
+ marker: "_marker_1ogus_94",
2211
+ "marker--selected": "_marker--selected_1ogus_106",
2212
+ "marker--pin": "_marker--pin_1ogus_110",
2213
+ pin: "_pin_1ogus_111",
2214
+ pinShadow: "_pinShadow_1ogus_123",
2215
+ "marker--dot": "_marker--dot_1ogus_141",
2216
+ "marker--cluster": "_marker--cluster_1ogus_153",
2217
+ clusterCount: "_clusterCount_1ogus_166",
2218
+ popup: "_popup_1ogus_169",
2219
+ "sakani-map-popup-in": "_sakani-map-popup-in_1ogus_1",
2220
+ popupHeader: "_popupHeader_1ogus_190",
2221
+ popupTitle: "_popupTitle_1ogus_191",
2222
+ popupClose: "_popupClose_1ogus_192",
2223
+ popupDescription: "_popupDescription_1ogus_207",
2224
+ popupPointer: "_popupPointer_1ogus_209"
2225
2225
  }, Tr = ({ icon: e, hovered: t, className: n, onClick: r, disabled: i, ...a }) => /* @__PURE__ */ L("button", {
2226
2226
  type: "button",
2227
2227
  className: [J.button, n ?? ""].filter(Boolean).join(" "),
@@ -2443,11 +2443,20 @@ var Wr = "https://tile.openstreetmap.org/{z}/{x}/{y}.png", Gr = /* @__PURE__ */
2443
2443
  zoom: X(t, n, r)
2444
2444
  }), S = F.useRef(b);
2445
2445
  S.current = b;
2446
- let C = F.useRef(0), [w, ee] = F.useState(null), T = Ge(), [E, te] = F.useState(s === "dark");
2446
+ let C = F.useRef(0), [w, ee] = F.useState(null), [T, E] = F.useState(s === "dark");
2447
2447
  F.useLayoutEffect(() => {
2448
- te(s === "dark" || !!_.current?.closest(".dark"));
2449
- }, [s, T]);
2450
- let D = E && !!o, O = D ? o : a;
2448
+ let e = _.current;
2449
+ if (!e) return;
2450
+ let t = () => E(s === "dark" || !!e.closest(".dark"));
2451
+ t();
2452
+ let n = new MutationObserver(t);
2453
+ for (let t = e; t; t = t.parentElement) n.observe(t, {
2454
+ attributes: !0,
2455
+ attributeFilter: ["class"]
2456
+ });
2457
+ return () => n.disconnect();
2458
+ }, [s]);
2459
+ let te = T && !!o, D = te ? o : a;
2451
2460
  F.useLayoutEffect(() => {
2452
2461
  let e = _.current;
2453
2462
  if (!e) return;
@@ -2457,7 +2466,7 @@ var Wr = "https://tile.openstreetmap.org/{z}/{x}/{y}.png", Gr = /* @__PURE__ */
2457
2466
  }));
2458
2467
  return t.observe(e), () => t.disconnect();
2459
2468
  }, []);
2460
- let ne = F.useCallback((e) => {
2469
+ let O = F.useCallback((e) => {
2461
2470
  let t = {
2462
2471
  center: e.center,
2463
2472
  zoom: X(e.zoom, n, r)
@@ -2474,32 +2483,32 @@ var Wr = "https://tile.openstreetmap.org/{z}/{x}/{y}.png", Gr = /* @__PURE__ */
2474
2483
  zoom: X(e.zoom, n, r)
2475
2484
  };
2476
2485
  if (qr()) {
2477
- ne(a);
2486
+ O(a);
2478
2487
  return;
2479
2488
  }
2480
2489
  let o = performance.now(), s = (e) => {
2481
2490
  let n = Math.min(1, (e - o) / Kr), r = 1 - (1 - n) ** 3, c = i.zoom + (a.zoom - i.zoom) * r, l;
2482
- if (t) l = ie(A(t, i), t, c);
2491
+ if (t) l = A(re(t, i), t, c);
2483
2492
  else {
2484
2493
  let e = Z(i.center, c), t = Z(a.center, c);
2485
2494
  l = Ar(e.x + (t.x - e.x) * r, e.y + (t.y - e.y) * r, c);
2486
2495
  }
2487
- ne({
2496
+ O({
2488
2497
  center: l,
2489
2498
  zoom: c
2490
2499
  }), n < 1 && (C.current = requestAnimationFrame(s));
2491
2500
  };
2492
2501
  C.current = requestAnimationFrame(s);
2493
2502
  }, [
2494
- ne,
2503
+ O,
2495
2504
  n,
2496
2505
  r,
2497
2506
  v.w,
2498
2507
  v.h
2499
- ]), re = F.useRef(!0);
2508
+ ]), ne = F.useRef(!0);
2500
2509
  F.useEffect(() => {
2501
- if (re.current) {
2502
- re.current = !1;
2510
+ if (ne.current) {
2511
+ ne.current = !1;
2503
2512
  return;
2504
2513
  }
2505
2514
  k({
@@ -2511,20 +2520,20 @@ var Wr = "https://tile.openstreetmap.org/{z}/{x}/{y}.png", Gr = /* @__PURE__ */
2511
2520
  e[1],
2512
2521
  t
2513
2522
  ]), F.useEffect(() => () => cancelAnimationFrame(C.current), []);
2514
- let A = (e, t) => {
2523
+ let re = (e, t) => {
2515
2524
  let n = Z(t.center, t.zoom);
2516
2525
  return Ar(n.x + e.x - v.w / 2, n.y + e.y - v.h / 2, t.zoom);
2517
- }, ie = (e, t, n) => {
2526
+ }, A = (e, t, n) => {
2518
2527
  let r = Z(e, n);
2519
2528
  return Ar(r.x - (t.x - v.w / 2), r.y - (t.y - v.h / 2), n);
2520
- }, ae = F.useRef(null), j = (e, t) => {
2529
+ }, ie = F.useRef(null), j = (e, t) => {
2521
2530
  let n = S.current, r = Z(n.center, n.zoom);
2522
- ne({
2531
+ O({
2523
2532
  center: Ar(r.x - e, r.y - t, n.zoom),
2524
2533
  zoom: n.zoom
2525
2534
  });
2526
- }, oe = (e) => {
2527
- e.button !== 0 || e.target.closest("[data-map-ui]") || (cancelAnimationFrame(C.current), ae.current = {
2535
+ }, ae = (e) => {
2536
+ e.button !== 0 || e.target.closest("[data-map-ui]") || (cancelAnimationFrame(C.current), ie.current = {
2528
2537
  id: e.pointerId,
2529
2538
  x: e.clientX,
2530
2539
  y: e.clientY,
@@ -2535,8 +2544,8 @@ var Wr = "https://tile.openstreetmap.org/{z}/{x}/{y}.png", Gr = /* @__PURE__ */
2535
2544
  t: performance.now()
2536
2545
  }]
2537
2546
  });
2538
- }, M = (e) => {
2539
- let t = ae.current;
2547
+ }, oe = (e) => {
2548
+ let t = ie.current;
2540
2549
  if (!t || t.id !== e.pointerId) return;
2541
2550
  let n = e.clientX - t.x, r = e.clientY - t.y;
2542
2551
  !t.moved && Math.hypot(n, r) < 3 || (t.moved || (t.moved = !0, _.current?.setPointerCapture(e.pointerId)), t.x = e.clientX, t.y = e.clientY, t.samples.push({
@@ -2544,9 +2553,9 @@ var Wr = "https://tile.openstreetmap.org/{z}/{x}/{y}.png", Gr = /* @__PURE__ */
2544
2553
  y: e.clientY,
2545
2554
  t: performance.now()
2546
2555
  }), t.samples.length > 5 && t.samples.shift(), j(n, r));
2547
- }, se = () => {
2548
- let e = ae.current;
2549
- if (ae.current = null, !e || !e.moved || qr()) return;
2556
+ }, M = () => {
2557
+ let e = ie.current;
2558
+ if (ie.current = null, !e || !e.moved || qr()) return;
2550
2559
  let t = e.samples[0], n = e.samples[e.samples.length - 1], r = Math.max(1, n.t - t.t);
2551
2560
  if (performance.now() - n.t > 80) return;
2552
2561
  let i = (n.x - t.x) / r * 16, a = (n.y - t.y) / r * 16, o = () => {
@@ -2563,18 +2572,18 @@ var Wr = "https://tile.openstreetmap.org/{z}/{x}/{y}.png", Gr = /* @__PURE__ */
2563
2572
  x: t.clientX - i.left,
2564
2573
  y: t.clientY - i.top
2565
2574
  }, o = S.current, s = X(-t.deltaY * (t.ctrlKey ? .01 : .002), -.5, .5), c = X(o.zoom + s, n, r), l = Z(o.center, o.zoom), u = Z(Ar(l.x + a.x - i.width / 2, l.y + a.y - i.height / 2, o.zoom), c);
2566
- ne({
2575
+ O({
2567
2576
  center: Ar(u.x - (a.x - i.width / 2), u.y - (a.y - i.height / 2), c),
2568
2577
  zoom: c
2569
2578
  });
2570
2579
  };
2571
2580
  return e.addEventListener("wheel", t, { passive: !1 }), () => e.removeEventListener("wheel", t);
2572
2581
  }, [
2573
- ne,
2582
+ O,
2574
2583
  n,
2575
2584
  r
2576
2585
  ]);
2577
- let ce = (e) => {
2586
+ let se = (e) => {
2578
2587
  if (e.target.closest("[data-map-ui]")) return;
2579
2588
  let t = _.current.getBoundingClientRect();
2580
2589
  k({
@@ -2584,7 +2593,7 @@ var Wr = "https://tile.openstreetmap.org/{z}/{x}/{y}.png", Gr = /* @__PURE__ */
2584
2593
  x: e.clientX - t.left,
2585
2594
  y: e.clientY - t.top
2586
2595
  });
2587
- }, le = (e) => {
2596
+ }, ce = (e) => {
2588
2597
  if (e.target !== e.currentTarget) return;
2589
2598
  let t = e.key;
2590
2599
  if (t === "ArrowLeft") j(80, 0);
@@ -2601,7 +2610,7 @@ var Wr = "https://tile.openstreetmap.org/{z}/{x}/{y}.png", Gr = /* @__PURE__ */
2601
2610
  });
2602
2611
  else return;
2603
2612
  e.preventDefault();
2604
- }, ue = () => {
2613
+ }, le = () => {
2605
2614
  if (!navigator.geolocation) {
2606
2615
  f?.(/* @__PURE__ */ Error("Geolocation is not supported in this browser."));
2607
2616
  return;
@@ -2613,51 +2622,52 @@ var Wr = "https://tile.openstreetmap.org/{z}/{x}/{y}.png", Gr = /* @__PURE__ */
2613
2622
  zoom: Math.max(b.zoom, 14)
2614
2623
  }), d?.(t);
2615
2624
  }, (e) => f?.(e));
2616
- }, de = F.useRef(v);
2617
- de.current = v;
2618
- let fe = F.useRef(k);
2619
- fe.current = k;
2620
- let pe = F.useCallback((e, t) => {
2621
- fe.current({
2625
+ }, ue = F.useRef(v);
2626
+ ue.current = v;
2627
+ let de = F.useRef(k);
2628
+ de.current = k;
2629
+ let fe = F.useCallback((e, t) => {
2630
+ de.current({
2622
2631
  center: e,
2623
2632
  zoom: t ?? S.current.zoom
2624
2633
  });
2625
- }, []), me = F.useCallback((e, t = 48) => {
2634
+ }, []), pe = F.useCallback((e, t = 48) => {
2626
2635
  if (!e.length) return;
2627
- let { w: n, h: r } = de.current, i = e.map((e) => e[0]), a = e.map((t) => e[0][1] + ((t[1] - e[0][1] + 540) % 360 - 180)), [o, s, c, l] = [
2636
+ let { w: n, h: r } = ue.current, i = e.map((e) => e[0]), a = e.map((t) => e[0][1] + ((t[1] - e[0][1] + 540) % 360 - 180)), [o, s, c, l] = [
2628
2637
  Math.min(...i),
2629
2638
  Math.max(...i),
2630
2639
  Math.min(...a),
2631
2640
  Math.max(...a)
2632
2641
  ], u = [(o + s) / 2, kr((c + l) / 2)], d = Z([s, c], 0), f = Z([o, l], 0), p = Math.max(1e-6, Math.abs(f.x - d.x)), m = Math.max(1e-6, Math.abs(f.y - d.y)), h = Math.min(Math.log2(Math.max(1, n - t * 2) / p), Math.log2(Math.max(1, r - t * 2) / m));
2633
- fe.current({
2642
+ de.current({
2634
2643
  center: u,
2635
2644
  zoom: e.length === 1 || !Number.isFinite(h) ? Math.max(S.current.zoom, 14) : Math.floor(h * 4) / 4
2636
2645
  });
2637
- }, []), N = X(Math.round(b.zoom), 0, r), he = 2 ** (b.zoom - N), ge = [];
2646
+ }, []), me = X(Math.round(b.zoom), 0, r), N = 2 ** (b.zoom - me), he = [];
2638
2647
  if (v.w && v.h) {
2639
- let e = Z(b.center, N), t = {
2640
- x: v.w / 2 / he,
2641
- y: v.h / 2 / he
2642
- }, n = 2 ** N, r = Math.floor((e.x - t.x) / 256), i = Math.floor((e.x + t.x) / 256), a = Math.max(0, Math.floor((e.y - t.y) / 256)), o = Math.min(n - 1, Math.floor((e.y + t.y) / 256));
2648
+ let e = Z(b.center, me), t = {
2649
+ x: v.w / 2 / N,
2650
+ y: v.h / 2 / N
2651
+ }, n = 2 ** me, r = Math.floor((e.x - t.x) / 256), i = Math.floor((e.x + t.x) / 256), a = Math.max(0, Math.floor((e.y - t.y) / 256)), o = Math.min(n - 1, Math.floor((e.y + t.y) / 256));
2643
2652
  for (let t = a; t <= o; t++) for (let a = r; a <= i; a++) {
2644
2653
  let r = (a % n + n) % n;
2645
- ge.push({
2646
- key: `${N}/${a}/${t}`,
2647
- src: O.replace("{z}", String(N)).replace("{x}", String(r)).replace("{y}", String(t)),
2648
- left: (a * 256 - e.x) * he + v.w / 2,
2649
- top: (t * 256 - e.y) * he + v.h / 2
2654
+ he.push({
2655
+ key: `${me}/${a}/${t}`,
2656
+ src: D.replace("{z}", String(me)).replace("{x}", String(r)).replace("{y}", String(t)),
2657
+ left: (a * 256 - e.x) * N + v.w / 2,
2658
+ top: (t * 256 - e.y) * N + v.h / 2
2650
2659
  });
2651
2660
  }
2652
2661
  }
2653
- let _e = 256 * he, ve = F.useMemo(() => {
2662
+ let ge = 256 * N, _e = F.useMemo(() => {
2654
2663
  let e = Z(b.center, b.zoom), t = 256 * 2 ** b.zoom;
2655
2664
  return {
2656
2665
  zoom: b.zoom,
2657
- flyTo: pe,
2658
- fitBounds: me,
2666
+ flyTo: fe,
2667
+ fitBounds: pe,
2659
2668
  maxZoom: r,
2660
2669
  project: (n) => {
2670
+ if (!v.w || !v.h) return null;
2661
2671
  let r = Z(n, b.zoom), i = r.x - e.x;
2662
2672
  i -= Math.round(i / t) * t;
2663
2673
  let a = i + v.w / 2, o = r.y - e.y + v.h / 2;
@@ -2671,8 +2681,8 @@ var Wr = "https://tile.openstreetmap.org/{z}/{x}/{y}.png", Gr = /* @__PURE__ */
2671
2681
  b,
2672
2682
  v.w,
2673
2683
  v.h,
2684
+ fe,
2674
2685
  pe,
2675
- me,
2676
2686
  r
2677
2687
  ]);
2678
2688
  return /* @__PURE__ */ R("div", {
@@ -2682,23 +2692,23 @@ var Wr = "https://tile.openstreetmap.org/{z}/{x}/{y}.png", Gr = /* @__PURE__ */
2682
2692
  s === "dark" ? "dark" : "",
2683
2693
  h ?? ""
2684
2694
  ].filter(Boolean).join(" "),
2685
- "data-own-dark-tiles": D ? "" : void 0,
2695
+ "data-own-dark-tiles": te ? "" : void 0,
2686
2696
  style: { height: p },
2687
2697
  role: "region",
2688
2698
  "aria-roledescription": "map",
2689
2699
  "aria-label": m,
2690
2700
  tabIndex: 0,
2691
- onPointerDown: oe,
2692
- onPointerMove: M,
2693
- onPointerUp: se,
2694
- onPointerCancel: se,
2695
- onDoubleClick: ce,
2696
- onKeyDown: le,
2701
+ onPointerDown: ae,
2702
+ onPointerMove: oe,
2703
+ onPointerUp: M,
2704
+ onPointerCancel: M,
2705
+ onDoubleClick: se,
2706
+ onKeyDown: ce,
2697
2707
  children: [
2698
2708
  /* @__PURE__ */ L("div", {
2699
2709
  className: J.tiles,
2700
2710
  "aria-hidden": "true",
2701
- children: ge.map((e) => /* @__PURE__ */ L("img", {
2711
+ children: he.map((e) => /* @__PURE__ */ L("img", {
2702
2712
  src: e.src,
2703
2713
  alt: "",
2704
2714
  draggable: !1,
@@ -2706,14 +2716,14 @@ var Wr = "https://tile.openstreetmap.org/{z}/{x}/{y}.png", Gr = /* @__PURE__ */
2706
2716
  style: {
2707
2717
  left: e.left,
2708
2718
  top: e.top,
2709
- width: _e + .5,
2710
- height: _e + .5
2719
+ width: ge + .5,
2720
+ height: ge + .5
2711
2721
  },
2712
2722
  onLoad: (e) => e.currentTarget.setAttribute("data-loaded", "")
2713
2723
  }, e.key))
2714
2724
  }),
2715
2725
  /* @__PURE__ */ L(Rr.Provider, {
2716
- value: ve,
2726
+ value: _e,
2717
2727
  children: /* @__PURE__ */ R("div", {
2718
2728
  className: J.overlay,
2719
2729
  children: [g, w && /* @__PURE__ */ L(Ur, {
@@ -2726,7 +2736,7 @@ var Wr = "https://tile.openstreetmap.org/{z}/{x}/{y}.png", Gr = /* @__PURE__ */
2726
2736
  (l || u) && /* @__PURE__ */ L(Er, {
2727
2737
  zoom: l,
2728
2738
  locate: u,
2729
- onLocate: ue,
2739
+ onLocate: le,
2730
2740
  zoomInDisabled: b.zoom >= r,
2731
2741
  zoomOutDisabled: b.zoom <= n,
2732
2742
  onZoomIn: () => k({
@@ -4027,7 +4037,7 @@ var $i = () => /* @__PURE__ */ L("svg", {
4027
4037
  children: /* @__PURE__ */ L("path", { d: "M9 3L3 9M3 3l6 6" })
4028
4038
  });
4029
4039
  function ea({ toast: e, index: t, count: n, expanded: r, expandByDefault: i, paused: a, heights: o, setHeights: s, removeToast: c, gap: l, visibleToasts: u, yPosition: d, xPosition: f, closeButton: p, richColors: m, duration: h }) {
4030
- let [g, _] = I(!1), [v, y] = I(!1), [b, x] = I(!1), [S, C] = I(!1), [w, ee] = I(!1), [T, E] = I(null), [te, D] = I(0), [O, ne] = I(0), k = Tt(null), re = Tt(null), A = Tt(null), ie = Tt(0), ae = Tt(0), j = t === 0, oe = t + 1 <= u, M = e.dismissible !== !1, se = e.duration ?? h, ce = e.richColors ?? m, le = (e.closeButton ?? p) && e.type !== "loading", ue = o.findIndex((t) => t.id === e.id), de = wt(() => {
4040
+ let [g, _] = I(!1), [v, y] = I(!1), [b, x] = I(!1), [S, C] = I(!1), [w, ee] = I(!1), [T, E] = I(null), [te, D] = I(0), [O, k] = I(0), ne = Tt(null), re = Tt(null), A = Tt(null), ie = Tt(0), j = Tt(0), ae = t === 0, oe = t + 1 <= u, M = e.dismissible !== !1, se = e.duration ?? h, ce = e.richColors ?? m, le = (e.closeButton ?? p) && e.type !== "loading", ue = o.findIndex((t) => t.id === e.id), de = wt(() => {
4031
4041
  let e = o.reduce((e, t, n) => n >= ue ? e : e + t.height, 0);
4032
4042
  return Math.max(0, ue) * l + e;
4033
4043
  }, [
@@ -4036,12 +4046,12 @@ function ea({ toast: e, index: t, count: n, expanded: r, expandByDefault: i, pau
4036
4046
  l
4037
4047
  ]), fe = Tt(de);
4038
4048
  fe.current = de, Ct(() => {
4039
- let t = k.current;
4049
+ let t = ne.current;
4040
4050
  if (!t) return;
4041
4051
  let n = t.style.height;
4042
4052
  t.style.height = "auto";
4043
4053
  let r = t.offsetHeight;
4044
- t.style.height = n, ne(r), s((t) => t.some((t) => t.id === e.id) ? t.map((t) => t.id === e.id ? {
4054
+ t.style.height = n, k(r), s((t) => t.some((t) => t.id === e.id) ? t.map((t) => t.id === e.id ? {
4045
4055
  ...t,
4046
4056
  height: r
4047
4057
  } : t) : [{
@@ -4069,14 +4079,14 @@ function ea({ toast: e, index: t, count: n, expanded: r, expandByDefault: i, pau
4069
4079
  v,
4070
4080
  pe
4071
4081
  ]), St(() => {
4072
- ae.current = se;
4082
+ j.current = se;
4073
4083
  }, [e.version, se]), St(() => {
4074
4084
  if (v || a || e.type === "loading" || se === Infinity) return;
4075
4085
  let t = Date.now(), n = window.setTimeout(() => {
4076
4086
  e.onAutoClose?.(e), pe();
4077
- }, ae.current);
4087
+ }, j.current);
4078
4088
  return () => {
4079
- window.clearTimeout(n), ae.current -= Date.now() - t;
4089
+ window.clearTimeout(n), j.current -= Date.now() - t;
4080
4090
  };
4081
4091
  }, [
4082
4092
  v,
@@ -4091,7 +4101,7 @@ function ea({ toast: e, index: t, count: n, expanded: r, expandByDefault: i, pau
4091
4101
  let e = [d];
4092
4102
  return f !== "center" && e.push(f), e;
4093
4103
  }, [d, f]), he = (e, t) => {
4094
- k.current?.style.setProperty("--swipe-amount-x", `${e}px`), k.current?.style.setProperty("--swipe-amount-y", `${t}px`);
4104
+ ne.current?.style.setProperty("--swipe-amount-x", `${e}px`), ne.current?.style.setProperty("--swipe-amount-y", `${t}px`);
4095
4105
  }, ge = (e) => {
4096
4106
  if (!(e.button === 2 || !M || v) && !e.target.closest("button")) {
4097
4107
  ie.current = Date.now(), D(fe.current);
@@ -4112,7 +4122,7 @@ function ea({ toast: e, index: t, count: n, expanded: r, expandByDefault: i, pau
4112
4122
  }, ve = () => {
4113
4123
  if (w || !M || !re.current) return;
4114
4124
  re.current = null;
4115
- let t = k.current?.style, n = parseFloat(t?.getPropertyValue("--swipe-amount-x") || "0") || 0, r = parseFloat(t?.getPropertyValue("--swipe-amount-y") || "0") || 0, i = A.current === "x" ? n : r, a = Math.abs(i) / Math.max(1, Date.now() - ie.current);
4125
+ let t = ne.current?.style, n = parseFloat(t?.getPropertyValue("--swipe-amount-x") || "0") || 0, r = parseFloat(t?.getPropertyValue("--swipe-amount-y") || "0") || 0, i = A.current === "x" ? n : r, a = Math.abs(i) / Math.max(1, Date.now() - ie.current);
4116
4126
  if ((A.current === "x" ? i < 0 && N.includes("left") || i > 0 && N.includes("right") : i < 0 && N.includes("top") || i > 0 && N.includes("bottom")) && (Math.abs(i) >= qi || a > .11)) {
4117
4127
  D(fe.current), e.onDismiss?.(e), E(A.current === "x" ? n > 0 ? "right" : "left" : r > 0 ? "down" : "up"), pe(), ee(!0);
4118
4128
  return;
@@ -4120,7 +4130,7 @@ function ea({ toast: e, index: t, count: n, expanded: r, expandByDefault: i, pau
4120
4130
  he(0, 0), C(!1), x(!1), A.current = null;
4121
4131
  }, ye = r || i && g, P = e.icon === null ? null : e.icon ?? /* @__PURE__ */ L(Qi, { type: e.type }), be = P !== null && (e.icon !== void 0 || e.type !== "default");
4122
4132
  return /* @__PURE__ */ R("li", {
4123
- ref: k,
4133
+ ref: ne,
4124
4134
  tabIndex: 0,
4125
4135
  role: "status",
4126
4136
  "aria-live": e.important || e.type === "error" ? "assertive" : "polite",
@@ -4129,7 +4139,7 @@ function ea({ toast: e, index: t, count: n, expanded: r, expandByDefault: i, pau
4129
4139
  "data-mounted": g,
4130
4140
  "data-removed": v,
4131
4141
  "data-visible": oe,
4132
- "data-front": j,
4142
+ "data-front": ae,
4133
4143
  "data-expanded": ye,
4134
4144
  "data-y-position": d,
4135
4145
  "data-x-position": f,
@@ -4677,4 +4687,4 @@ var va = {
4677
4687
  ]
4678
4688
  });
4679
4689
  //#endregion
4680
- export { xe as Accordion, n as AccordionItem, l as ActivityFeed, s as ActivityFeedHighlight, u as Alert, Kt as Announcement, $n as AreaChart, b as Avatar, D as AvatarGroup, ee as AvatarUpload, ve as Badge, M as Balance, j as BarChart, yn as BlogBlockquote, xn as BlogFeatureText, Cn as BlogImage, O as BlogListingCard, te as BlogListingFeaturedCard, x as BoardCard, tr as BoardColumn, ye as Breadcrumb, a as Button, or as Calendar, cr as Card, t as CardMetaItem, De as CartItem, be as ChatComposer, y as Checkbox, de as CheckoutSteps, Zt as CodeSnippet, S as ColorSwatch, lr as Combobox, o as ConversationItem, Re as DEFAULT_CHECKOUT_STEPS, je as Divider, c as DonutChart, T as EmptyState, en as Expenses, Yn as FacebookIcon, f as FeaturedIcon, ur as FileUpload, He as FilterChip, Tn as FirstPageHeading, hr as FunnelChart, Vn as GithubIcon, vr as HeatmapChart, _ as HoverGroup, Ue as IconButton, rn as InlineHint, i as Input, Jn as InstagramIcon, Je as JobListing, br as Kbd, Sr as Label, w as LineChart, E as Link, Xn as LinkedinIcon, Te as LiquidBackdrop, ge as LiquidGlass, Dn as List, wr as ListItem, r as LocationDot, Jr as Map, ti as MapClusterLayer, Tr as MapControlButton, Er as MapControls, ei as MapGlobe, Ur as MapMarker, Yr as MapPopup, An as Marquee, oe as Menu, We as MenuDivider, Ke as MenuItem, Ve as MessageBubble, Mn as Metric, Pn as MobileNavigationMenu, pe as Modal, ue as NotificationItem, A as Pagination, li as PieChart, Ln as PlaceholderLogo, di as Popover, re as PriceDisplay, k as ProductCard, m as ProductGallery, zn as ProfileCard, qe as Progress, an as ProgressItem, Be as ProgressStat, Pe as QuantitySelector, xi as RadarChart, Ai as RadialChart, Mi as Radio, sn as RichSeparator, Un as RichTextHeading, Gn as RichTextParagraph, g as SectionHeading, me as SegmentedControl, he as Select, we as Sidebar, Ae as SidebarDivider, Pi as SidebarFooter, fe as SidebarGroupLabel, le as SidebarHeader, ze as SidebarItem, Se as SidebarPromo, Ii as SidebarSearch, se as SidebarSubItem, Me as SizeSelector, Fe as Skeleton, Oe as Slider, Ce as SpendingBalance, ra as Spinner, h as StarRating, ae as StatCard, oa as Stepper, ia as StepperStep, ln as StockMarket, d as StockStatus, qn as SubFeature, ha as Switch, _e as Table, Ne as Tabs, fn as Tags, p as TeamCard, _a as Textarea, gn as Ticker, ba as Toast, ta as Toaster, Ee as Tooltip, Le as TopBar, Sa as TopBarMobile, vn as Transactions, ne as WishlistButton, Bn as XIcon, e as getContrastColor, P as iconStrokeWidth, N as syncLiquidBackdrop, Gi as toast, v as useHoverHighlight, ie as useLiquidGlass, zr as useMapContext };
4690
+ export { xe as Accordion, n as AccordionItem, l as ActivityFeed, s as ActivityFeedHighlight, u as Alert, Kt as Announcement, $n as AreaChart, b as Avatar, D as AvatarGroup, ee as AvatarUpload, ve as Badge, M as Balance, ae as BarChart, yn as BlogBlockquote, xn as BlogFeatureText, Cn as BlogImage, O as BlogListingCard, te as BlogListingFeaturedCard, x as BoardCard, tr as BoardColumn, ye as Breadcrumb, a as Button, or as Calendar, cr as Card, t as CardMetaItem, De as CartItem, be as ChatComposer, y as Checkbox, de as CheckoutSteps, Zt as CodeSnippet, S as ColorSwatch, lr as Combobox, o as ConversationItem, Re as DEFAULT_CHECKOUT_STEPS, je as Divider, c as DonutChart, T as EmptyState, en as Expenses, Yn as FacebookIcon, f as FeaturedIcon, ur as FileUpload, He as FilterChip, Tn as FirstPageHeading, hr as FunnelChart, Vn as GithubIcon, vr as HeatmapChart, _ as HoverGroup, Ue as IconButton, rn as InlineHint, i as Input, Jn as InstagramIcon, Je as JobListing, br as Kbd, Sr as Label, w as LineChart, E as Link, Xn as LinkedinIcon, Te as LiquidBackdrop, ge as LiquidGlass, Dn as List, wr as ListItem, r as LocationDot, Jr as Map, ti as MapClusterLayer, Tr as MapControlButton, Er as MapControls, ei as MapGlobe, Ur as MapMarker, Yr as MapPopup, An as Marquee, oe as Menu, We as MenuDivider, Ke as MenuItem, Ve as MessageBubble, Mn as Metric, Pn as MobileNavigationMenu, pe as Modal, ue as NotificationItem, A as Pagination, li as PieChart, Ln as PlaceholderLogo, di as Popover, re as PriceDisplay, ne as ProductCard, m as ProductGallery, zn as ProfileCard, qe as Progress, an as ProgressItem, Be as ProgressStat, Pe as QuantitySelector, xi as RadarChart, Ai as RadialChart, Mi as Radio, sn as RichSeparator, Un as RichTextHeading, Gn as RichTextParagraph, g as SectionHeading, me as SegmentedControl, he as Select, we as Sidebar, Ae as SidebarDivider, Pi as SidebarFooter, fe as SidebarGroupLabel, le as SidebarHeader, ze as SidebarItem, Se as SidebarPromo, Ii as SidebarSearch, se as SidebarSubItem, Me as SizeSelector, Fe as Skeleton, Oe as Slider, Ce as SpendingBalance, ra as Spinner, h as StarRating, j as StatCard, oa as Stepper, ia as StepperStep, ln as StockMarket, d as StockStatus, qn as SubFeature, ha as Switch, _e as Table, Ne as Tabs, fn as Tags, p as TeamCard, _a as Textarea, gn as Ticker, ba as Toast, ta as Toaster, Ee as Tooltip, Le as TopBar, Sa as TopBarMobile, vn as Transactions, k as WishlistButton, Bn as XIcon, e as getContrastColor, P as iconStrokeWidth, N as syncLiquidBackdrop, Gi as toast, v as useHoverHighlight, ie as useLiquidGlass, zr as useMapContext };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 6,
3
3
  "name": "@sakaniui/react",
4
- "version": "0.11.0",
4
+ "version": "0.11.2",
5
5
  "description": "Machine-readable contract of the SakaniUI React library, generated from its TypeScript source.",
6
6
  "docs": "https://www.sakaniui.com",
7
7
  "guide": "https://www.sakaniui.com/llms-full.txt",
@@ -24,7 +24,7 @@
24
24
  "@sakaniui/react/emoji": "Fluent Emoji (full colour): EmojiName, one module each (1594 emoji, 311 with skin tones)."
25
25
  },
26
26
  "conventions": {
27
- "version": "This manifest describes @sakaniui/react@0.11.0. Each component has `since`, the first release that contained it; a prop added later has its own `since`, and a value added later is listed in the prop's `valuesSince`. If the project has an older version installed, anything newer than that does not exist there.",
27
+ "version": "This manifest describes @sakaniui/react@0.11.2. Each component has `since`, the first release that contained it; a prop added later has its own `since`, and a value added later is listed in the prop's `valuesSince`. If the project has an older version installed, anything newer than that does not exist there.",
28
28
  "acceptsNativeProps": "Components forward native HTML attributes (className, style, aria-*, event handlers) to their root element unless a prop says otherwise; only the props that are specific to SakaniUI are listed here.",
29
29
  "accessibleName": "When `contract.requiresAccessibleName` is true, a required prop (aria-label, aria-labelledby or an alt text) is the only thing that names the control or image. Do not omit it.",
30
30
  "tokens": "Use only the token names listed under `tokens`. Colour tokens follow the theme (the `.dark` class flips them); do not hard-code colours.",