jaml-ui 8.1.0 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,16 +1,16 @@
1
- import { jsx as a, jsxs as _, Fragment as Ve } from "react/jsx-runtime";
2
- import z, { useState as L, useRef as $, useEffect as G, useId as qe, useCallback as H, useLayoutEffect as Pe, useMemo as te, useSyncExternalStore as Qe, Children as et } from "react";
3
- import { resolveJamlAssetUrl as tt } from "../assets.js";
4
- import { JOKERS as nt, JOKER_FACES as rt, TAROTS_AND_PLANETS as ot, CONSUMABLE_FACES as at, VOUCHERS as it, BOSSES as st, TAGS as lt, BOOSTER_PACKS as ct } from "../sprites.js";
5
- const D = z.forwardRef(
1
+ import { jsx as a, jsxs as S, Fragment as Ze } from "react/jsx-runtime";
2
+ import $, { useState as L, useRef as R, useEffect as U, useId as Ve, useCallback as X, useLayoutEffect as Le, useMemo as te, useSyncExternalStore as qe, Children as Qe } from "react";
3
+ import { resolveJamlAssetUrl as et } from "../assets.js";
4
+ import { JOKERS as tt, JOKER_FACES as nt, TAROTS_AND_PLANETS as rt, CONSUMABLE_FACES as ot, VOUCHERS as at, BOSSES as it, TAGS as st, BOOSTER_PACKS as lt } from "../sprites.js";
5
+ const D = $.forwardRef(
6
6
  function({ as: t = "div", children: n, ...r }, o) {
7
7
  return /* @__PURE__ */ a(t, { ref: o, ...r, children: n });
8
8
  }
9
- ), Mn = z.forwardRef(
9
+ ), On = $.forwardRef(
10
10
  function({ children: t, ...n }, r) {
11
11
  return /* @__PURE__ */ a("canvas", { ref: r, ...n, children: t });
12
12
  }
13
- ), ut = {
13
+ ), ct = {
14
14
  red: "j-section-header__tag--red",
15
15
  orange: "j-section-header__tag--orange",
16
16
  blue: "j-section-header__tag--blue",
@@ -18,7 +18,7 @@ const D = z.forwardRef(
18
18
  purple: "j-section-header__tag--purple",
19
19
  gold: "j-section-header__tag--gold",
20
20
  grey: "j-section-header__tag--grey"
21
- }, dt = {
21
+ }, ut = {
22
22
  red: "j-section-header__rule--red",
23
23
  orange: "j-section-header__rule--orange",
24
24
  blue: "j-section-header__rule--blue",
@@ -27,19 +27,19 @@ const D = z.forwardRef(
27
27
  gold: "j-section-header__rule--gold",
28
28
  grey: "j-section-header__rule--grey"
29
29
  };
30
- function pt({
30
+ function dt({
31
31
  label: e,
32
32
  tone: t = "blue",
33
33
  className: n,
34
34
  ...r
35
35
  }) {
36
36
  const o = ["j-section-header", n].filter(Boolean).join(" ");
37
- return /* @__PURE__ */ _("div", { className: o, ...r, children: [
38
- /* @__PURE__ */ a("span", { className: `j-section-header__tag ${ut[t]}`, children: e }),
39
- /* @__PURE__ */ a("span", { className: `j-section-header__rule ${dt[t]}`, "aria-hidden": !0 })
37
+ return /* @__PURE__ */ S("div", { className: o, ...r, children: [
38
+ /* @__PURE__ */ a("span", { className: `j-section-header__tag ${ct[t]}`, children: e }),
39
+ /* @__PURE__ */ a("span", { className: `j-section-header__rule ${ut[t]}`, "aria-hidden": !0 })
40
40
  ] });
41
41
  }
42
- function On({
42
+ function Dn({
43
43
  title: e,
44
44
  tone: t = "blue",
45
45
  body: n,
@@ -48,8 +48,8 @@ function On({
48
48
  ...i
49
49
  }) {
50
50
  const s = ["j-panel", r].filter(Boolean).join(" "), u = n ?? !!e;
51
- return /* @__PURE__ */ _("div", { className: s, ...i, children: [
52
- e != null && e !== !1 ? /* @__PURE__ */ a(pt, { label: e, tone: t }) : null,
51
+ return /* @__PURE__ */ S("div", { className: s, ...i, children: [
52
+ e != null && e !== !1 ? /* @__PURE__ */ a(dt, { label: e, tone: t }) : null,
53
53
  u ? /* @__PURE__ */ a("div", { className: "j-panel__body", children: o }) : o
54
54
  ] });
55
55
  }
@@ -61,7 +61,7 @@ const ft = {
61
61
  lg: "j-text--lg",
62
62
  xl: "j-text--xl",
63
63
  display: "j-text--display"
64
- }, ht = {
64
+ }, pt = {
65
65
  white: "j-text--white",
66
66
  grey: "j-text--grey",
67
67
  gold: "j-text--gold",
@@ -71,11 +71,11 @@ const ft = {
71
71
  orange: "j-text--orange",
72
72
  purple: "j-text--purple"
73
73
  };
74
- function U({ size: e = "md", tone: t = "white", className: n, children: r, ...o }) {
75
- const i = ["j-text", ft[e], ht[t], n].filter(Boolean).join(" ");
74
+ function W({ size: e = "md", tone: t = "white", className: n, children: r, ...o }) {
75
+ const i = ["j-text", ft[e], pt[t], n].filter(Boolean).join(" ");
76
76
  return /* @__PURE__ */ a("span", { className: i, ...o, children: r });
77
77
  }
78
- const mt = {
78
+ const ht = {
79
79
  "j-stack": {
80
80
  gap: {
81
81
  xs: "j-stack--gap-xs",
@@ -119,8 +119,8 @@ const mt = {
119
119
  }
120
120
  }
121
121
  };
122
- function Re(e, { gap: t = "md", align: n, justify: r }, o, i) {
123
- const s = mt[e];
122
+ function Pe(e, { gap: t = "md", align: n, justify: r }, o, i) {
123
+ const s = ht[e];
124
124
  return [
125
125
  e,
126
126
  s.gap[t],
@@ -130,7 +130,7 @@ function Re(e, { gap: t = "md", align: n, justify: r }, o, i) {
130
130
  o
131
131
  ].filter(Boolean).join(" ");
132
132
  }
133
- function gt({
133
+ function mt({
134
134
  gap: e,
135
135
  align: t,
136
136
  justify: n,
@@ -138,9 +138,9 @@ function gt({
138
138
  children: o,
139
139
  ...i
140
140
  }) {
141
- return /* @__PURE__ */ a("div", { className: Re("j-stack", { gap: e, align: t, justify: n }, r), ...i, children: o });
141
+ return /* @__PURE__ */ a("div", { className: Pe("j-stack", { gap: e, align: t, justify: n }, r), ...i, children: o });
142
142
  }
143
- function Be({
143
+ function Re({
144
144
  gap: e,
145
145
  align: t = "center",
146
146
  justify: n,
@@ -152,7 +152,7 @@ function Be({
152
152
  return /* @__PURE__ */ a(
153
153
  "div",
154
154
  {
155
- className: Re(
155
+ className: Pe(
156
156
  "j-row",
157
157
  { gap: e, align: t, justify: n },
158
158
  o,
@@ -163,23 +163,23 @@ function Be({
163
163
  }
164
164
  );
165
165
  }
166
- var Me = {
166
+ var Be = {
167
167
  color: void 0,
168
168
  size: void 0,
169
169
  className: void 0,
170
170
  style: void 0,
171
171
  attr: void 0
172
- }, _e = z.createContext && /* @__PURE__ */ z.createContext(Me), bt = ["attr", "size", "title"];
173
- function vt(e, t) {
172
+ }, je = $.createContext && /* @__PURE__ */ $.createContext(Be), gt = ["attr", "size", "title"];
173
+ function bt(e, t) {
174
174
  if (e == null) return {};
175
- var n, r, o = jt(e, t);
175
+ var n, r, o = vt(e, t);
176
176
  if (Object.getOwnPropertySymbols) {
177
177
  var i = Object.getOwnPropertySymbols(e);
178
178
  for (r = 0; r < i.length; r++) n = i[r], t.indexOf(n) === -1 && {}.propertyIsEnumerable.call(e, n) && (o[n] = e[n]);
179
179
  }
180
180
  return o;
181
181
  }
182
- function jt(e, t) {
182
+ function vt(e, t) {
183
183
  if (e == null) return {};
184
184
  var n = {};
185
185
  for (var r in e) if ({}.hasOwnProperty.call(e, r)) {
@@ -197,7 +197,7 @@ function le() {
197
197
  return e;
198
198
  }, le.apply(null, arguments);
199
199
  }
200
- function ye(e, t) {
200
+ function _e(e, t) {
201
201
  var n = Object.keys(e);
202
202
  if (Object.getOwnPropertySymbols) {
203
203
  var r = Object.getOwnPropertySymbols(e);
@@ -210,22 +210,22 @@ function ye(e, t) {
210
210
  function ce(e) {
211
211
  for (var t = 1; t < arguments.length; t++) {
212
212
  var n = arguments[t] != null ? arguments[t] : {};
213
- t % 2 ? ye(Object(n), !0).forEach(function(r) {
214
- _t(e, r, n[r]);
215
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ye(Object(n)).forEach(function(r) {
213
+ t % 2 ? _e(Object(n), !0).forEach(function(r) {
214
+ jt(e, r, n[r]);
215
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : _e(Object(n)).forEach(function(r) {
216
216
  Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(n, r));
217
217
  });
218
218
  }
219
219
  return e;
220
220
  }
221
- function _t(e, t, n) {
222
- return (t = yt(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e;
221
+ function jt(e, t, n) {
222
+ return (t = _t(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e;
223
223
  }
224
- function yt(e) {
225
- var t = xt(e, "string");
224
+ function _t(e) {
225
+ var t = yt(e, "string");
226
226
  return typeof t == "symbol" ? t : t + "";
227
227
  }
228
- function xt(e, t) {
228
+ function yt(e, t) {
229
229
  if (typeof e != "object" || !e) return e;
230
230
  var n = e[Symbol.toPrimitive];
231
231
  if (n !== void 0) {
@@ -235,83 +235,80 @@ function xt(e, t) {
235
235
  }
236
236
  return (t === "string" ? String : Number)(e);
237
237
  }
238
- function Oe(e) {
239
- return e && e.map((t, n) => /* @__PURE__ */ z.createElement(t.tag, ce({
238
+ function Me(e) {
239
+ return e && e.map((t, n) => /* @__PURE__ */ $.createElement(t.tag, ce({
240
240
  key: n
241
- }, t.attr), Oe(t.child)));
241
+ }, t.attr), Me(t.child)));
242
242
  }
243
- function I(e) {
244
- return (t) => /* @__PURE__ */ z.createElement(St, le({
243
+ function F(e) {
244
+ return (t) => /* @__PURE__ */ $.createElement(St, le({
245
245
  attr: ce({}, e.attr)
246
- }, t), Oe(e.child));
246
+ }, t), Me(e.child));
247
247
  }
248
248
  function St(e) {
249
249
  var t = (n) => {
250
- var r = e.attr, o = e.size, i = e.title, s = vt(e, bt), u = o || n.size || "1em", f;
251
- return n.className && (f = n.className), e.className && (f = (f ? f + " " : "") + e.className), /* @__PURE__ */ z.createElement("svg", le({
250
+ var r = e.attr, o = e.size, i = e.title, s = bt(e, gt), u = o || n.size || "1em", h;
251
+ return n.className && (h = n.className), e.className && (h = (h ? h + " " : "") + e.className), /* @__PURE__ */ $.createElement("svg", le({
252
252
  stroke: "currentColor",
253
253
  fill: "currentColor",
254
254
  strokeWidth: "0"
255
255
  }, n.attr, r, s, {
256
- className: f,
256
+ className: h,
257
257
  style: ce(ce({
258
258
  color: e.color || n.color
259
259
  }, n.style), e.style),
260
260
  height: u,
261
261
  width: u,
262
262
  xmlns: "http://www.w3.org/2000/svg"
263
- }), i && /* @__PURE__ */ z.createElement("title", null, i), e.children);
263
+ }), i && /* @__PURE__ */ $.createElement("title", null, i), e.children);
264
264
  };
265
- return _e !== void 0 ? /* @__PURE__ */ z.createElement(_e.Consumer, null, (n) => t(n)) : t(Me);
265
+ return je !== void 0 ? /* @__PURE__ */ $.createElement(je.Consumer, null, (n) => t(n)) : t(Be);
266
266
  }
267
- function De(e) {
268
- return I({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "line", attr: { x1: "18", y1: "6", x2: "6", y2: "18" }, child: [] }, { tag: "line", attr: { x1: "6", y1: "6", x2: "18", y2: "18" }, child: [] }] })(e);
269
- }
270
- function Dn(e) {
271
- return I({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polygon", attr: { points: "12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" }, child: [] }] })(e);
267
+ function xt(e) {
268
+ return F({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "line", attr: { x1: "18", y1: "6", x2: "6", y2: "18" }, child: [] }, { tag: "line", attr: { x1: "6", y1: "6", x2: "18", y2: "18" }, child: [] }] })(e);
272
269
  }
273
270
  function In(e) {
274
- return I({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "circle", attr: { cx: "11", cy: "11", r: "8" }, child: [] }, { tag: "line", attr: { x1: "21", y1: "21", x2: "16.65", y2: "16.65" }, child: [] }] })(e);
275
- }
276
- function kt(e) {
277
- return I({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polyline", attr: { points: "1 4 1 10 7 10" }, child: [] }, { tag: "path", attr: { d: "M3.51 15a9 9 0 1 0 2.13-9.36L1 10" }, child: [] }] })(e);
271
+ return F({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polygon", attr: { points: "12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" }, child: [] }] })(e);
278
272
  }
279
273
  function Jn(e) {
280
- return I({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polygon", attr: { points: "5 3 19 12 5 21 5 3" }, child: [] }] })(e);
274
+ return F({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "circle", attr: { cx: "11", cy: "11", r: "8" }, child: [] }, { tag: "line", attr: { x1: "21", y1: "21", x2: "16.65", y2: "16.65" }, child: [] }] })(e);
275
+ }
276
+ function Fn(e) {
277
+ return F({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polygon", attr: { points: "5 3 19 12 5 21 5 3" }, child: [] }] })(e);
281
278
  }
282
279
  function wt(e) {
283
- return I({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polyline", attr: { points: "5 9 2 12 5 15" }, child: [] }, { tag: "polyline", attr: { points: "9 5 12 2 15 5" }, child: [] }, { tag: "polyline", attr: { points: "15 19 12 22 9 19" }, child: [] }, { tag: "polyline", attr: { points: "19 9 22 12 19 15" }, child: [] }, { tag: "line", attr: { x1: "2", y1: "12", x2: "22", y2: "12" }, child: [] }, { tag: "line", attr: { x1: "12", y1: "2", x2: "12", y2: "22" }, child: [] }] })(e);
280
+ return F({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polyline", attr: { points: "5 9 2 12 5 15" }, child: [] }, { tag: "polyline", attr: { points: "9 5 12 2 15 5" }, child: [] }, { tag: "polyline", attr: { points: "15 19 12 22 9 19" }, child: [] }, { tag: "polyline", attr: { points: "19 9 22 12 19 15" }, child: [] }, { tag: "line", attr: { x1: "2", y1: "12", x2: "22", y2: "12" }, child: [] }, { tag: "line", attr: { x1: "12", y1: "2", x2: "12", y2: "22" }, child: [] }] })(e);
284
281
  }
285
- function Et(e) {
286
- return I({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polyline", attr: { points: "4 14 10 14 10 20" }, child: [] }, { tag: "polyline", attr: { points: "20 10 14 10 14 4" }, child: [] }, { tag: "line", attr: { x1: "14", y1: "10", x2: "21", y2: "3" }, child: [] }, { tag: "line", attr: { x1: "3", y1: "21", x2: "10", y2: "14" }, child: [] }] })(e);
282
+ function kt(e) {
283
+ return F({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polyline", attr: { points: "4 14 10 14 10 20" }, child: [] }, { tag: "polyline", attr: { points: "20 10 14 10 14 4" }, child: [] }, { tag: "line", attr: { x1: "14", y1: "10", x2: "21", y2: "3" }, child: [] }, { tag: "line", attr: { x1: "3", y1: "21", x2: "10", y2: "14" }, child: [] }] })(e);
287
284
  }
288
285
  function Nt(e) {
289
- return I({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polyline", attr: { points: "15 3 21 3 21 9" }, child: [] }, { tag: "polyline", attr: { points: "9 21 3 21 3 15" }, child: [] }, { tag: "line", attr: { x1: "21", y1: "3", x2: "14", y2: "10" }, child: [] }, { tag: "line", attr: { x1: "3", y1: "21", x2: "10", y2: "14" }, child: [] }] })(e);
286
+ return F({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polyline", attr: { points: "15 3 21 3 21 9" }, child: [] }, { tag: "polyline", attr: { points: "9 21 3 21 3 15" }, child: [] }, { tag: "line", attr: { x1: "21", y1: "3", x2: "14", y2: "10" }, child: [] }, { tag: "line", attr: { x1: "3", y1: "21", x2: "10", y2: "14" }, child: [] }] })(e);
290
287
  }
291
288
  function $n(e) {
292
- return I({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "path", attr: { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }, child: [] }, { tag: "polyline", attr: { points: "7 10 12 15 17 10" }, child: [] }, { tag: "line", attr: { x1: "12", y1: "15", x2: "12", y2: "3" }, child: [] }] })(e);
289
+ return F({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "path", attr: { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }, child: [] }, { tag: "polyline", attr: { points: "7 10 12 15 17 10" }, child: [] }, { tag: "line", attr: { x1: "12", y1: "15", x2: "12", y2: "3" }, child: [] }] })(e);
293
290
  }
294
- function At(e) {
295
- return I({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "rect", attr: { x: "9", y: "9", width: "13", height: "13", rx: "2", ry: "2" }, child: [] }, { tag: "path", attr: { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" }, child: [] }] })(e);
291
+ function Et(e) {
292
+ return F({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "rect", attr: { x: "9", y: "9", width: "13", height: "13", rx: "2", ry: "2" }, child: [] }, { tag: "path", attr: { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" }, child: [] }] })(e);
296
293
  }
297
- function Fn(e) {
298
- return I({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polyline", attr: { points: "16 18 22 12 16 6" }, child: [] }, { tag: "polyline", attr: { points: "8 6 2 12 8 18" }, child: [] }] })(e);
294
+ function zn(e) {
295
+ return F({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polyline", attr: { points: "16 18 22 12 16 6" }, child: [] }, { tag: "polyline", attr: { points: "8 6 2 12 8 18" }, child: [] }] })(e);
299
296
  }
300
- function Ct(e) {
301
- return I({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polyline", attr: { points: "9 18 15 12 9 6" }, child: [] }] })(e);
297
+ function Oe(e) {
298
+ return F({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polyline", attr: { points: "9 18 15 12 9 6" }, child: [] }] })(e);
302
299
  }
303
- function Tt(e) {
304
- return I({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polyline", attr: { points: "15 18 9 12 15 6" }, child: [] }] })(e);
300
+ function De(e) {
301
+ return F({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polyline", attr: { points: "15 18 9 12 15 6" }, child: [] }] })(e);
305
302
  }
306
- function Ie(e) {
307
- return I({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polyline", attr: { points: "20 6 9 17 4 12" }, child: [] }] })(e);
303
+ function At(e) {
304
+ return F({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "polyline", attr: { points: "20 6 9 17 4 12" }, child: [] }] })(e);
308
305
  }
309
- const Lt = {
306
+ const Ct = {
310
307
  xs: "j-btn--xs",
311
308
  sm: "j-btn--sm",
312
309
  md: "j-btn--md",
313
310
  lg: "j-btn--lg"
314
- }, Pt = {
311
+ }, Tt = {
315
312
  orange: "j-btn--orange",
316
313
  red: "j-btn--red",
317
314
  blue: "j-btn--blue",
@@ -319,7 +316,7 @@ const Lt = {
319
316
  purple: "j-btn--purple",
320
317
  grey: "j-btn--grey"
321
318
  };
322
- function W({
319
+ function z({
323
320
  size: e = "md",
324
321
  tone: t = "orange",
325
322
  fullWidth: n = !1,
@@ -329,17 +326,17 @@ function W({
329
326
  disabled: s,
330
327
  ...u
331
328
  }) {
332
- const f = [
329
+ const h = [
333
330
  "j-btn",
334
- Lt[e],
335
- Pt[t],
331
+ Ct[e],
332
+ Tt[t],
336
333
  n ? "j-btn--full" : "",
337
334
  s ? "j-btn--disabled" : "",
338
335
  o
339
336
  ].filter(Boolean).join(" ");
340
- return /* @__PURE__ */ a("button", { className: f, disabled: s, ...u, children: /* @__PURE__ */ a("span", { className: "j-btn__face", children: r ?? i }) });
337
+ return /* @__PURE__ */ a("button", { className: h, disabled: s, ...u, children: /* @__PURE__ */ a("span", { className: "j-btn__face", children: r ?? i }) });
341
338
  }
342
- function zn({
339
+ function Wn({
343
340
  value: e,
344
341
  placeholder: t = "--------",
345
342
  disabled: n = !1,
@@ -349,35 +346,35 @@ function zn({
349
346
  className: s = "",
350
347
  style: u
351
348
  }) {
352
- const [f, v] = L(!1), c = $(null), l = e.trim(), d = !n && l.length > 0;
353
- G(
349
+ const [h, _] = L(!1), c = R(null), l = e.trim(), f = !n && l.length > 0;
350
+ U(
354
351
  () => () => {
355
352
  c.current && clearTimeout(c.current);
356
353
  },
357
354
  []
358
355
  );
359
- const x = async () => {
360
- var S;
361
- if (d) {
356
+ const y = async () => {
357
+ var N;
358
+ if (f) {
362
359
  try {
363
- typeof navigator < "u" && ((S = navigator.clipboard) != null && S.writeText) && await navigator.clipboard.writeText(l);
360
+ typeof navigator < "u" && ((N = navigator.clipboard) != null && N.writeText) && await navigator.clipboard.writeText(l);
364
361
  } catch {
365
362
  }
366
- v(!0), i == null || i(l), c.current && clearTimeout(c.current), c.current = setTimeout(() => v(!1), o);
363
+ _(!0), i == null || i(l), c.current && clearTimeout(c.current), c.current = setTimeout(() => _(!1), o);
367
364
  }
368
- }, y = ["j-seed-copy", f ? "j-seed-copy--copied" : "", s].filter(Boolean).join(" ");
369
- return /* @__PURE__ */ _(
370
- W,
365
+ }, x = ["j-seed-copy", h ? "j-seed-copy--copied" : "", s].filter(Boolean).join(" ");
366
+ return /* @__PURE__ */ S(
367
+ z,
371
368
  {
372
- className: y,
369
+ className: x,
373
370
  style: u,
374
- onClick: x,
375
- disabled: !d,
371
+ onClick: y,
372
+ disabled: !f,
376
373
  fullWidth: !0,
377
- "aria-label": d ? `Copy seed ${l}` : "Seed unavailable",
374
+ "aria-label": f ? `Copy seed ${l}` : "Seed unavailable",
378
375
  children: [
379
- /* @__PURE__ */ a("span", { className: "j-seed-copy__icon", "aria-hidden": !0, children: f ? /* @__PURE__ */ a(Ie, { size: 18 }) : /* @__PURE__ */ a(At, { size: 18 }) }),
380
- /* @__PURE__ */ a("span", { className: "j-seed-copy__text", children: f ? r : l || t })
376
+ /* @__PURE__ */ a("span", { className: "j-seed-copy__icon", "aria-hidden": !0, children: h ? /* @__PURE__ */ a(At, { size: 18 }) : /* @__PURE__ */ a(Et, { size: 18 }) }),
377
+ /* @__PURE__ */ a("span", { className: "j-seed-copy__text", children: h ? r : l || t })
381
378
  ]
382
379
  }
383
380
  );
@@ -386,15 +383,15 @@ function Un({ className: e, children: t, ...n }) {
386
383
  const r = ["j-inner-panel", e].filter(Boolean).join(" ");
387
384
  return /* @__PURE__ */ a("div", { className: r, ...n, children: t });
388
385
  }
389
- function Wn({ open: e, onClose: t, title: n, className: r, children: o }) {
390
- const i = qe();
391
- return G(() => {
386
+ function Gn({ open: e, onClose: t, title: n, className: r, children: o }) {
387
+ const i = Ve();
388
+ return U(() => {
392
389
  if (!e || !t) return;
393
390
  const s = (u) => {
394
391
  u.key === "Escape" && t();
395
392
  };
396
393
  return document.addEventListener("keydown", s), () => document.removeEventListener("keydown", s);
397
- }, [e, t]), e ? /* @__PURE__ */ a("div", { className: "j-modal-overlay", onClick: t, children: /* @__PURE__ */ _(
394
+ }, [e, t]), e ? /* @__PURE__ */ a("div", { className: "j-modal-overlay", onClick: t, children: /* @__PURE__ */ S(
398
395
  "div",
399
396
  {
400
397
  className: ["j-modal", "j-panel", r].filter(Boolean).join(" "),
@@ -418,11 +415,11 @@ function Kn({
418
415
  canNext: i = !0,
419
416
  className: s = ""
420
417
  }) {
421
- return /* @__PURE__ */ _("div", { className: `j-spinner-wrap ${s}`, children: [
422
- t && /* @__PURE__ */ a("div", { className: "j-spinner__label", children: /* @__PURE__ */ a(U, { size: "sm", tone: "white", children: t }) }),
423
- /* @__PURE__ */ _("div", { className: "j-spinner", children: [
418
+ return /* @__PURE__ */ S("div", { className: `j-spinner-wrap ${s}`, children: [
419
+ t && /* @__PURE__ */ a("div", { className: "j-spinner__label", children: /* @__PURE__ */ a(W, { size: "sm", tone: "white", children: t }) }),
420
+ /* @__PURE__ */ S("div", { className: "j-spinner", children: [
424
421
  /* @__PURE__ */ a(
425
- W,
422
+ z,
426
423
  {
427
424
  tone: "red",
428
425
  size: "sm",
@@ -432,9 +429,9 @@ function Kn({
432
429
  children: "<"
433
430
  }
434
431
  ),
435
- /* @__PURE__ */ a("div", { className: "j-spinner__value", children: /* @__PURE__ */ a(U, { size: "sm", tone: "white", children: e }) }),
432
+ /* @__PURE__ */ a("div", { className: "j-spinner__value", children: /* @__PURE__ */ a(W, { size: "sm", tone: "white", children: e }) }),
436
433
  /* @__PURE__ */ a(
437
- W,
434
+ z,
438
435
  {
439
436
  tone: "red",
440
437
  size: "sm",
@@ -447,7 +444,7 @@ function Kn({
447
444
  ] })
448
445
  ] });
449
446
  }
450
- const Rt = {
447
+ const Lt = {
451
448
  RED: "#fe5148",
452
449
  BLUE: "#0093ff",
453
450
  GREEN: "#429f79",
@@ -476,24 +473,24 @@ const Rt = {
476
473
  /** Same decision as GOLD — kept so CodeMirror / old callers don't grow a second gold. */
477
474
  GOLD_TEXT: "#e4b643"
478
475
  };
479
- function Gn(e, t) {
476
+ function Yn(e, t) {
480
477
  const n = e.replace("#", ""), r = parseInt(n.slice(0, 2), 16), o = parseInt(n.slice(2, 4), 16), i = parseInt(n.slice(4, 6), 16);
481
478
  return `rgba(${r}, ${o}, ${i}, ${t})`;
482
479
  }
483
- const Yn = {
480
+ const Xn = {
484
481
  JUICE_UP_SCALE: 1.05,
485
482
  JUICE_EASING: "cubic-bezier(0.16, 1, 0.3, 1)",
486
483
  SWAY_AMOUNT: 1.5,
487
484
  SWAY_DURATION: 4e3
488
- }, V = Rt, Bt = {
485
+ }, V = Lt, Pt = {
489
486
  xs: 22,
490
487
  sm: 26,
491
488
  md: 30
492
- }, Mt = {
489
+ }, Rt = {
493
490
  default: { rest: V.DARKEST, hover: V.DARK_GREY, border: V.PANEL_EDGE },
494
491
  destructive: { rest: V.RED, hover: V.ORANGE, border: V.BLACK }
495
492
  };
496
- function ne({
493
+ function ae({
497
494
  onClick: e,
498
495
  onMouseDown: t,
499
496
  onTouchStart: n,
@@ -502,15 +499,15 @@ function ne({
502
499
  disabled: i = !1,
503
500
  size: s = "md",
504
501
  tone: u = "default",
505
- children: f
502
+ children: h
506
503
  }) {
507
- const [v, c] = L(!1), l = Bt[s], d = Mt[u], x = u === "destructive" ? 2 : 1, y = u === "destructive" ? `inset 0 1px 0 rgba(255,255,255,.2), 0 2px 0 ${V.BLACK}` : void 0;
504
+ const [_, c] = L(!1), l = Pt[s], f = Rt[u], y = u === "destructive" ? 2 : 1, x = u === "destructive" ? `inset 0 1px 0 rgba(255,255,255,.2), 0 2px 0 ${V.BLACK}` : void 0;
508
505
  return /* @__PURE__ */ a(
509
506
  "button",
510
507
  {
511
508
  "aria-label": o ?? r,
512
509
  disabled: i,
513
- onClick: (S) => !i && (e == null ? void 0 : e(S)),
510
+ onClick: (N) => !i && (e == null ? void 0 : e(N)),
514
511
  onMouseDown: t,
515
512
  onTouchStart: n,
516
513
  onMouseEnter: () => c(!0),
@@ -520,11 +517,11 @@ function ne({
520
517
  height: l,
521
518
  display: "inline-grid",
522
519
  placeItems: "center",
523
- background: v && !i ? d.hover : d.rest,
520
+ background: _ && !i ? f.hover : f.rest,
524
521
  color: V.WHITE,
525
- border: `${x}px solid ${d.border}`,
522
+ border: `${y}px solid ${f.border}`,
526
523
  borderRadius: 4,
527
- boxShadow: y,
524
+ boxShadow: x,
528
525
  cursor: i ? "not-allowed" : "pointer",
529
526
  opacity: i ? 0.55 : 1,
530
527
  padding: 0,
@@ -534,29 +531,29 @@ function ne({
534
531
  },
535
532
  title: r,
536
533
  type: "button",
537
- children: f
534
+ children: h
538
535
  }
539
536
  );
540
537
  }
541
- const Ot = 280, Dt = 260;
538
+ const Bt = 280, Mt = 260;
542
539
  function Hn({ children: e, className: t, onNearEnd: n, snap: r = !1 }) {
543
- const o = $(null), i = $(null), [s, u] = L(!1), f = H(() => {
540
+ const o = R(null), i = R(null), [s, u] = L(!1), h = X(() => {
544
541
  const l = o.current;
545
- !l || !n || l.scrollWidth - (l.scrollLeft + l.clientWidth) <= Ot && n();
542
+ !l || !n || l.scrollWidth - (l.scrollLeft + l.clientWidth) <= Bt && n();
546
543
  }, [n]);
547
- G(() => {
544
+ U(() => {
548
545
  const l = o.current;
549
546
  if (!l) return;
550
- const d = (x) => {
547
+ const f = (y) => {
551
548
  if (l.scrollWidth <= l.clientWidth) return;
552
- const y = Math.abs(x.deltaY) > Math.abs(x.deltaX) ? x.deltaY : x.deltaX;
553
- y !== 0 && (l.scrollLeft += y, x.preventDefault(), f());
549
+ const x = Math.abs(y.deltaY) > Math.abs(y.deltaX) ? y.deltaY : y.deltaX;
550
+ x !== 0 && (l.scrollLeft += x, y.preventDefault(), h());
554
551
  };
555
- return l.addEventListener("wheel", d, { passive: !1 }), () => l.removeEventListener("wheel", d);
556
- }, [f]);
557
- const v = (l) => {
558
- var d;
559
- (d = o.current) == null || d.scrollBy({ left: l * Dt, behavior: "smooth" }), l > 0 && f();
552
+ return l.addEventListener("wheel", f, { passive: !1 }), () => l.removeEventListener("wheel", f);
553
+ }, [h]);
554
+ const _ = (l) => {
555
+ var f;
556
+ (f = o.current) == null || f.scrollBy({ left: l * Mt, behavior: "smooth" }), l > 0 && h();
560
557
  }, c = [
561
558
  "j-shop-belt",
562
559
  "j-shop-belt--grab",
@@ -564,24 +561,24 @@ function Hn({ children: e, className: t, onNearEnd: n, snap: r = !1 }) {
564
561
  s ? "j-shop-belt--grabbing" : "",
565
562
  t
566
563
  ].filter(Boolean).join(" ");
567
- return /* @__PURE__ */ _(D, { className: "j-shop-belt-wrap", children: [
568
- /* @__PURE__ */ a(ne, { size: "sm", "aria-label": "Scroll left", onClick: () => v(-1), children: /* @__PURE__ */ a(Tt, {}) }),
564
+ return /* @__PURE__ */ S(D, { className: "j-shop-belt-wrap", children: [
565
+ /* @__PURE__ */ a(ae, { size: "sm", "aria-label": "Scroll left", onClick: () => _(-1), children: /* @__PURE__ */ a(De, {}) }),
569
566
  /* @__PURE__ */ a(
570
567
  D,
571
568
  {
572
569
  ref: o,
573
570
  className: c,
574
- onScroll: f,
571
+ onScroll: h,
575
572
  onPointerDown: (l) => {
576
573
  l.button === 0 && (i.current = { id: l.pointerId, x: l.clientX, left: l.currentTarget.scrollLeft }, l.currentTarget.setPointerCapture(l.pointerId), u(!0));
577
574
  },
578
575
  onPointerMove: (l) => {
579
- const d = i.current;
580
- !d || d.id !== l.pointerId || (l.currentTarget.scrollLeft = d.left - (l.clientX - d.x));
576
+ const f = i.current;
577
+ !f || f.id !== l.pointerId || (l.currentTarget.scrollLeft = f.left - (l.clientX - f.x));
581
578
  },
582
579
  onPointerUp: (l) => {
583
- var d;
584
- ((d = i.current) == null ? void 0 : d.id) === l.pointerId && (l.currentTarget.hasPointerCapture(l.pointerId) && l.currentTarget.releasePointerCapture(l.pointerId), i.current = null, u(!1), f());
580
+ var f;
581
+ ((f = i.current) == null ? void 0 : f.id) === l.pointerId && (l.currentTarget.hasPointerCapture(l.pointerId) && l.currentTarget.releasePointerCapture(l.pointerId), i.current = null, u(!1), h());
585
582
  },
586
583
  onPointerCancel: () => {
587
584
  i.current = null, u(!1);
@@ -589,13 +586,13 @@ function Hn({ children: e, className: t, onNearEnd: n, snap: r = !1 }) {
589
586
  children: e
590
587
  }
591
588
  ),
592
- /* @__PURE__ */ a(ne, { size: "sm", "aria-label": "Scroll right", onClick: () => v(1), children: /* @__PURE__ */ a(Ct, {}) })
589
+ /* @__PURE__ */ a(ae, { size: "sm", "aria-label": "Scroll right", onClick: () => _(1), children: /* @__PURE__ */ a(Oe, {}) })
593
590
  ] });
594
591
  }
595
- const It = {
592
+ const Ot = {
596
593
  sm: "j-badge--sm",
597
594
  md: "j-badge--md"
598
- }, Jt = {
595
+ }, Dt = {
599
596
  dark: "j-badge--dark",
600
597
  blue: "j-badge--blue",
601
598
  red: "j-badge--red",
@@ -604,21 +601,21 @@ const It = {
604
601
  orange: "j-badge--orange",
605
602
  purple: "j-badge--purple"
606
603
  };
607
- function fe({ size: e = "sm", tone: t = "dark", className: n, children: r, ...o }) {
608
- const i = ["j-badge", It[e], Jt[t], n].filter(Boolean).join(" ");
604
+ function pe({ size: e = "sm", tone: t = "dark", className: n, children: r, ...o }) {
605
+ const i = ["j-badge", Ot[e], Dt[t], n].filter(Boolean).join(" ");
609
606
  return /* @__PURE__ */ a("span", { className: i, ...o, children: r });
610
607
  }
611
- function Xn({ children: e, ...t }) {
608
+ function Zn({ children: e, ...t }) {
612
609
  return /* @__PURE__ */ a("span", { ...t, children: e });
613
610
  }
614
- function Zn({ children: e, ...t }) {
611
+ function Vn({ children: e, ...t }) {
615
612
  return /* @__PURE__ */ a("a", { ...t, children: e });
616
613
  }
617
- function Vn({ className: e, ref: t, ...n }) {
614
+ function qn({ className: e, ref: t, ...n }) {
618
615
  const r = ["j-text-input", e].filter(Boolean).join(" ");
619
616
  return /* @__PURE__ */ a("input", { ref: t, className: r, ...n });
620
617
  }
621
- function qn({
618
+ function Qn({
622
619
  onPrev: e,
623
620
  onNext: t,
624
621
  canPrev: n = !0,
@@ -627,21 +624,21 @@ function qn({
627
624
  nextLabel: i = "Next",
628
625
  children: s,
629
626
  className: u = "",
630
- style: f
627
+ style: h
631
628
  }) {
632
- return /* @__PURE__ */ _("div", { className: `j-flank ${u}`, style: f, children: [
633
- /* @__PURE__ */ a(xe, { direction: "left", onClick: e, disabled: !n, "aria-label": o }),
629
+ return /* @__PURE__ */ S("div", { className: `j-flank ${u}`, style: h, children: [
630
+ /* @__PURE__ */ a(ye, { direction: "left", onClick: e, disabled: !n, "aria-label": o }),
634
631
  /* @__PURE__ */ a("div", { className: "j-flank__content", children: s }),
635
- /* @__PURE__ */ a(xe, { direction: "right", onClick: t, disabled: !r, "aria-label": i })
632
+ /* @__PURE__ */ a(ye, { direction: "right", onClick: t, disabled: !r, "aria-label": i })
636
633
  ] });
637
634
  }
638
- function xe({
635
+ function ye({
639
636
  direction: e,
640
637
  onClick: t,
641
638
  disabled: n,
642
639
  "aria-label": r
643
640
  }) {
644
- const [o, i] = z.useState(!1);
641
+ const [o, i] = $.useState(!1);
645
642
  return /* @__PURE__ */ a(
646
643
  "button",
647
644
  {
@@ -657,14 +654,14 @@ function xe({
657
654
  onMouseLeave: () => i(!1),
658
655
  onTouchStart: () => !n && i(!0),
659
656
  onTouchEnd: () => i(!1),
660
- children: /* @__PURE__ */ a($t, { direction: e })
657
+ children: /* @__PURE__ */ a(It, { direction: e })
661
658
  }
662
659
  );
663
660
  }
664
- function $t({ direction: e }) {
661
+ function It({ direction: e }) {
665
662
  return /* @__PURE__ */ a("svg", { width: 28, height: 28, viewBox: "0 0 28 28", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": !0, children: /* @__PURE__ */ a("polyline", { points: e === "left" ? "18,4 8,14 18,24" : "10,4 20,14 10,24" }) });
666
663
  }
667
- function Qn({
664
+ function er({
668
665
  label: e,
669
666
  title: t,
670
667
  description: n,
@@ -673,13 +670,13 @@ function Qn({
673
670
  onNext: i,
674
671
  canPrev: s = !0,
675
672
  canNext: u = !0,
676
- className: f = ""
673
+ className: h = ""
677
674
  }) {
678
- return /* @__PURE__ */ _("div", { className: ["j-panel-spinner", f].filter(Boolean).join(" "), children: [
679
- e ? /* @__PURE__ */ a("div", { className: "j-panel-spinner__label", children: /* @__PURE__ */ a(U, { size: "sm", tone: "white", children: e }) }) : null,
680
- /* @__PURE__ */ _("div", { className: "j-panel-spinner__row", children: [
675
+ return /* @__PURE__ */ S("div", { className: ["j-panel-spinner", h].filter(Boolean).join(" "), children: [
676
+ e ? /* @__PURE__ */ a("div", { className: "j-panel-spinner__label", children: /* @__PURE__ */ a(W, { size: "sm", tone: "white", children: e }) }) : null,
677
+ /* @__PURE__ */ S("div", { className: "j-panel-spinner__row", children: [
681
678
  /* @__PURE__ */ a(
682
- W,
679
+ z,
683
680
  {
684
681
  tone: "red",
685
682
  size: "sm",
@@ -690,13 +687,13 @@ function Qn({
690
687
  children: "<"
691
688
  }
692
689
  ),
693
- /* @__PURE__ */ _("div", { className: "j-panel-spinner__panel", children: [
690
+ /* @__PURE__ */ S("div", { className: "j-panel-spinner__panel", children: [
694
691
  r ? /* @__PURE__ */ a("div", { className: "j-panel-spinner__media", children: r }) : null,
695
- /* @__PURE__ */ a("div", { className: "j-panel-spinner__title", children: /* @__PURE__ */ a(U, { size: "md", tone: "white", children: t }) }),
696
- n ? /* @__PURE__ */ a("div", { className: "j-panel-spinner__description", children: /* @__PURE__ */ a(U, { size: "xs", tone: "grey", children: n }) }) : null
692
+ /* @__PURE__ */ a("div", { className: "j-panel-spinner__title", children: /* @__PURE__ */ a(W, { size: "md", tone: "white", children: t }) }),
693
+ n ? /* @__PURE__ */ a("div", { className: "j-panel-spinner__description", children: /* @__PURE__ */ a(W, { size: "xs", tone: "grey", children: n }) }) : null
697
694
  ] }),
698
695
  /* @__PURE__ */ a(
699
- W,
696
+ z,
700
697
  {
701
698
  tone: "red",
702
699
  size: "sm",
@@ -710,7 +707,7 @@ function Qn({
710
707
  ] })
711
708
  ] });
712
709
  }
713
- const Ft = {
710
+ const Jt = {
714
711
  Jokers: { cols: 10, rows: 16, assetKey: "jokers" },
715
712
  Tarots: { cols: 10, rows: 6, assetKey: "tarots" },
716
713
  Vouchers: { cols: 9, rows: 4, assetKey: "vouchers" },
@@ -721,23 +718,23 @@ const Ft = {
721
718
  Editions: { cols: 5, rows: 1, assetKey: "editions" },
722
719
  Stakes: { cols: 5, rows: 2, assetKey: "stakes" },
723
720
  Decks: { cols: 13, rows: 4, assetKey: "deck" }
724
- }, me = (e) => e.toLowerCase().replace(/\s+/g, ""), zt = (e) => e.replace(/^(Joker|Tarot|Planet|Voucher|Pack|Edition|Tag) [|:] /i, "").trim(), ue = /* @__PURE__ */ new Map();
721
+ }, he = (e) => e.toLowerCase().replace(/\s+/g, ""), Ft = (e) => e.replace(/^(Joker|Tarot|Planet|Voucher|Pack|Edition|Tag) [|:] /i, "").trim(), ue = /* @__PURE__ */ new Map();
725
722
  function q(e, t) {
726
723
  for (const n of e) {
727
724
  if (!n.name || !n.pos) continue;
728
- const r = me(n.name);
725
+ const r = he(n.name);
729
726
  ue.has(r) || ue.set(r, { pos: n.pos, type: t });
730
727
  }
731
728
  }
729
+ q(tt, "Jokers");
732
730
  q(nt, "Jokers");
733
- q(rt, "Jokers");
734
- q(ot, "Tarots");
735
- q(at ?? [], "Tarots");
736
- q(it, "Vouchers");
737
- q(st, "BlindChips");
738
- q(lt, "tags");
739
- q(ct ?? [], "Boosters");
740
- const Ut = {
731
+ q(rt, "Tarots");
732
+ q(ot ?? [], "Tarots");
733
+ q(at, "Vouchers");
734
+ q(it, "BlindChips");
735
+ q(st, "tags");
736
+ q(lt ?? [], "Boosters");
737
+ const $t = {
741
738
  Jokers: { x: 9, y: 9 },
742
739
  // grey card back (legendary face row)
743
740
  Tarots: { x: 4, y: 2 },
@@ -751,18 +748,18 @@ const Ut = {
751
748
  BlindChips: { x: 0, y: 30 }
752
749
  // grey ? blind
753
750
  };
754
- function Wt(e) {
755
- return { pos: Ut[e] ?? { x: 0, y: 0 }, type: e };
751
+ function zt(e) {
752
+ return { pos: $t[e] ?? { x: 0, y: 0 }, type: e };
756
753
  }
757
- function Kt(e) {
758
- return ue.get(me(zt(e))) ?? ue.get(me(e)) ?? null;
754
+ function Wt(e) {
755
+ return ue.get(he(Ft(e))) ?? ue.get(he(e)) ?? null;
759
756
  }
760
- function Gt(e, t = "Jokers") {
761
- return Kt(e) ?? Wt(t);
757
+ function Ut(e, t = "Jokers") {
758
+ return Wt(e) ?? zt(t);
762
759
  }
763
- const Yt = /* @__PURE__ */ new Set(["Jokers", "Tarots", "Vouchers", "Boosters"]);
764
- function er({ name: e, sheet: t, width: n, className: r, style: o }) {
765
- const { pos: i, type: s } = Gt(e, t), u = Ft[s], f = Yt.has(s) ? Math.round(n * (95 / 71)) : n;
760
+ const Gt = /* @__PURE__ */ new Set(["Jokers", "Tarots", "Vouchers", "Boosters"]);
761
+ function tr({ name: e, sheet: t, width: n, className: r, style: o }) {
762
+ const { pos: i, type: s } = Ut(e, t), u = Jt[s], h = Gt.has(s) ? Math.round(n * (95 / 71)) : n;
766
763
  return /* @__PURE__ */ a(
767
764
  "div",
768
765
  {
@@ -771,7 +768,7 @@ function er({ name: e, sheet: t, width: n, className: r, style: o }) {
771
768
  position: "relative",
772
769
  display: "inline-block",
773
770
  width: n,
774
- height: f,
771
+ height: h,
775
772
  overflow: "hidden",
776
773
  imageRendering: "pixelated",
777
774
  ...o
@@ -783,7 +780,7 @@ function er({ name: e, sheet: t, width: n, className: r, style: o }) {
783
780
  style: {
784
781
  position: "absolute",
785
782
  inset: 0,
786
- backgroundImage: `url(${tt(u.assetKey)})`,
783
+ backgroundImage: `url(${et(u.assetKey)})`,
787
784
  backgroundSize: `${u.cols * 100}% ${u.rows * 100}%`,
788
785
  backgroundPosition: `${i.x / (u.cols - 1) * 100}% ${i.y / (u.rows - 1) * 100}%`,
789
786
  backgroundRepeat: "no-repeat"
@@ -793,39 +790,39 @@ function er({ name: e, sheet: t, width: n, className: r, style: o }) {
793
790
  }
794
791
  );
795
792
  }
796
- function tr({ className: e, children: t, ...n }) {
793
+ function nr({ className: e, children: t, ...n }) {
797
794
  return /* @__PURE__ */ a("div", { className: ["j-picker", e].filter(Boolean).join(" "), ...n, children: t });
798
795
  }
799
- function nr({ className: e, children: t, ...n }) {
796
+ function rr({ className: e, children: t, ...n }) {
800
797
  return /* @__PURE__ */ a("div", { className: ["j-picker__section", e].filter(Boolean).join(" "), ...n, children: t });
801
798
  }
802
- function rr({ className: e, children: t, ...n }) {
799
+ function or({ className: e, children: t, ...n }) {
803
800
  return /* @__PURE__ */ a("div", { className: ["j-picker__search", e].filter(Boolean).join(" "), ...n, children: t });
804
801
  }
805
- function or({ className: e, children: t, ...n }) {
802
+ function ar({ className: e, children: t, ...n }) {
806
803
  return /* @__PURE__ */ a("div", { className: ["j-picker__hint", e].filter(Boolean).join(" "), ...n, children: t });
807
804
  }
808
- function ar({ legendary: e, className: t, children: n, ...r }) {
805
+ function ir({ legendary: e, className: t, children: n, ...r }) {
809
806
  const o = ["j-picker__grid", e ? "j-picker__grid--legendary" : "", t].filter(Boolean).join(" ");
810
807
  return /* @__PURE__ */ a("div", { className: o, ...r, children: n });
811
808
  }
812
- function ir({ muted: e, className: t, children: n, ...r }) {
809
+ function sr({ muted: e, className: t, children: n, ...r }) {
813
810
  const o = ["j-picker__item", t].filter(Boolean).join(" ");
814
811
  return /* @__PURE__ */ a("button", { type: "button", className: o, "data-muted": e, ...r, children: n });
815
812
  }
816
- function sr({ className: e, children: t, ...n }) {
813
+ function lr({ className: e, children: t, ...n }) {
817
814
  return /* @__PURE__ */ a("div", { className: ["j-picker__pair", e].filter(Boolean).join(" "), ...n, children: t });
818
815
  }
819
- function lr({ className: e, children: t, ...n }) {
816
+ function cr({ className: e, children: t, ...n }) {
820
817
  return /* @__PURE__ */ a("div", { className: ["j-picker__empty", e].filter(Boolean).join(" "), ...n, children: t });
821
818
  }
822
- function cr({ tabs: e, activeTab: t, onTabChange: n }) {
819
+ function ur({ tabs: e, activeTab: t, onTabChange: n }) {
823
820
  return /* @__PURE__ */ a("div", { className: "j-tabs", children: e.map((r) => {
824
821
  const o = r.id === t;
825
- return /* @__PURE__ */ _("div", { className: "j-tab", children: [
822
+ return /* @__PURE__ */ S("div", { className: "j-tab", children: [
826
823
  /* @__PURE__ */ a("div", { className: "j-tab__indicator", "data-active": o, children: /* @__PURE__ */ a("svg", { width: "10", height: "8", viewBox: "0 0 10 8", children: /* @__PURE__ */ a("path", { d: "M5 8 L0 0 L10 0 Z" }) }) }),
827
824
  /* @__PURE__ */ a(
828
- W,
825
+ z,
829
826
  {
830
827
  size: "sm",
831
828
  tone: "red",
@@ -836,45 +833,45 @@ function cr({ tabs: e, activeTab: t, onTabChange: n }) {
836
833
  ] }, r.id);
837
834
  }) });
838
835
  }
839
- function ur({ active: e, className: t, children: n, ...r }) {
836
+ function dr({ active: e, className: t, children: n, ...r }) {
840
837
  const o = ["j-list-item", t].filter(Boolean).join(" ");
841
838
  return /* @__PURE__ */ a("button", { type: "button", className: o, "data-active": e, ...r, children: n });
842
839
  }
843
- const Se = "data-j-motion", ge = "jimbo-motion", ke = "(prefers-reduced-motion: reduce)";
844
- function Ht(e) {
840
+ const Se = "data-j-motion", me = "jimbo-motion", xe = "(prefers-reduced-motion: reduce)";
841
+ function Kt(e) {
845
842
  const t = document.documentElement;
846
843
  e === "auto" ? t.removeAttribute(Se) : t.setAttribute(Se, e);
847
844
  }
848
- function Xt() {
845
+ function Yt() {
849
846
  try {
850
- const e = window.localStorage.getItem(ge);
847
+ const e = window.localStorage.getItem(me);
851
848
  if (e === "full" || e === "reduced") return e;
852
849
  } catch {
853
850
  }
854
851
  return "auto";
855
852
  }
856
- function dr() {
853
+ function fr() {
857
854
  const [e, t] = L(
858
- () => typeof document > "u" ? "auto" : Xt()
855
+ () => typeof document > "u" ? "auto" : Yt()
859
856
  ), [n, r] = L(
860
- () => typeof window > "u" ? !1 : window.matchMedia(ke).matches
857
+ () => typeof window > "u" ? !1 : window.matchMedia(xe).matches
861
858
  );
862
- G(() => {
863
- Ht(e);
864
- }, [e]), G(() => {
865
- const s = window.matchMedia(ke), u = () => r(s.matches);
859
+ U(() => {
860
+ Kt(e);
861
+ }, [e]), U(() => {
862
+ const s = window.matchMedia(xe), u = () => r(s.matches);
866
863
  return s.addEventListener("change", u), () => s.removeEventListener("change", u);
867
864
  }, []);
868
- const o = H((s) => {
865
+ const o = X((s) => {
869
866
  t(s);
870
867
  try {
871
- s === "auto" ? window.localStorage.removeItem(ge) : window.localStorage.setItem(ge, s);
868
+ s === "auto" ? window.localStorage.removeItem(me) : window.localStorage.setItem(me, s);
872
869
  } catch {
873
870
  }
874
871
  }, []);
875
872
  return { setting: e, setSetting: o, osPrefersReduced: n, effectiveReducedMotion: e === "reduced" ? !0 : e === "full" ? !1 : n };
876
873
  }
877
- const J = {
874
+ const I = {
878
875
  primary: [1, 0.2, 0.2],
879
876
  // red
880
877
  secondary: [0, 0.5, 1],
@@ -897,11 +894,11 @@ function ee(e, t) {
897
894
  const r = parseInt(n, 16);
898
895
  return Number.isNaN(r) ? t : [(r >> 16 & 255) / 255, (r >> 8 & 255) / 255, (r & 255) / 255];
899
896
  }
900
- function Zt(e = {}) {
901
- const t = $(null), n = $(e);
902
- return Pe(() => {
897
+ function Xt(e = {}) {
898
+ const t = R(null), n = R(e);
899
+ return Le(() => {
903
900
  n.current = e;
904
- }), G(() => {
901
+ }), U(() => {
905
902
  const r = t.current;
906
903
  if (!r) return;
907
904
  const o = r.getContext("webgl");
@@ -958,14 +955,14 @@ function Zt(e = {}) {
958
955
  vec3 base = (0.3/u_contrast)*u_color1 + (1.0 - 0.3/u_contrast)*(u_color1*c1p + u_color2*c2p + c3p*u_color3) + vec3(light);
959
956
  gl_FragColor = vec4(base, 1.0);
960
957
  }
961
- `, u = (B, re) => {
962
- const O = o.createShader(B);
963
- return O ? (o.shaderSource(O, re), o.compileShader(O), o.getShaderParameter(O, o.COMPILE_STATUS) ? O : (console.error("[JimboBackground] shader compile error:", o.getShaderInfoLog(O)), o.deleteShader(O), null)) : null;
964
- }, f = u(o.VERTEX_SHADER, i), v = u(o.FRAGMENT_SHADER, s);
965
- if (!f || !v) return;
958
+ `, u = (T, ne) => {
959
+ const P = o.createShader(T);
960
+ return P ? (o.shaderSource(P, ne), o.compileShader(P), o.getShaderParameter(P, o.COMPILE_STATUS) ? P : (console.error("[JimboBackground] shader compile error:", o.getShaderInfoLog(P)), o.deleteShader(P), null)) : null;
961
+ }, h = u(o.VERTEX_SHADER, i), _ = u(o.FRAGMENT_SHADER, s);
962
+ if (!h || !_) return;
966
963
  const c = o.createProgram();
967
964
  if (!c) return;
968
- if (o.attachShader(c, f), o.attachShader(c, v), o.linkProgram(c), !o.getProgramParameter(c, o.LINK_STATUS)) {
965
+ if (o.attachShader(c, h), o.attachShader(c, _), o.linkProgram(c), !o.getProgramParameter(c, o.LINK_STATUS)) {
969
966
  console.error("[JimboBackground] program link error:", o.getProgramInfoLog(c));
970
967
  return;
971
968
  }
@@ -989,134 +986,134 @@ function Zt(e = {}) {
989
986
  ]),
990
987
  o.STATIC_DRAW
991
988
  );
992
- const d = o.getAttribLocation(c, "position");
993
- o.enableVertexAttribArray(d), o.vertexAttribPointer(d, 2, o.FLOAT, !1, 0, 0);
994
- const x = o.getUniformLocation(c, "u_time"), y = o.getUniformLocation(c, "u_resolution"), S = o.getUniformLocation(c, "u_color1"), j = o.getUniformLocation(c, "u_color2"), p = o.getUniformLocation(c, "u_color3"), g = o.getUniformLocation(c, "u_spinRotation"), b = o.getUniformLocation(c, "u_spinSpeed"), h = o.getUniformLocation(c, "u_spinAmount"), m = o.getUniformLocation(c, "u_pixelFilter"), k = o.getUniformLocation(c, "u_contrast"), N = o.getUniformLocation(c, "u_lighting"), M = (B) => ({
995
- spinRotation: B.spinRotation ?? J.spinRotation,
996
- spinSpeed: 4.5 * (B.speed ?? J.speed),
997
- spinAmount: B.spinAmount ?? J.spinAmount,
998
- pixelFilter: B.pixelFilter ?? J.pixelFilter,
999
- contrast: B.contrast ?? J.contrast,
1000
- lighting: B.lighting ?? J.lighting
1001
- }), R = n.current, w = [
1002
- ee(R.primary, J.primary),
1003
- ee(R.secondary, J.secondary),
1004
- ee(R.dark, J.dark)
1005
- ], P = M(R), E = performance.now();
1006
- let C = E, A = 0;
989
+ const f = o.getAttribLocation(c, "position");
990
+ o.enableVertexAttribArray(f), o.vertexAttribPointer(f, 2, o.FLOAT, !1, 0, 0);
991
+ const y = o.getUniformLocation(c, "u_time"), x = o.getUniformLocation(c, "u_resolution"), N = o.getUniformLocation(c, "u_color1"), g = o.getUniformLocation(c, "u_color2"), w = o.getUniformLocation(c, "u_color3"), d = o.getUniformLocation(c, "u_spinRotation"), b = o.getUniformLocation(c, "u_spinSpeed"), v = o.getUniformLocation(c, "u_spinAmount"), p = o.getUniformLocation(c, "u_pixelFilter"), E = o.getUniformLocation(c, "u_contrast"), k = o.getUniformLocation(c, "u_lighting"), B = (T) => ({
992
+ spinRotation: T.spinRotation ?? I.spinRotation,
993
+ spinSpeed: 4.5 * (T.speed ?? I.speed),
994
+ spinAmount: T.spinAmount ?? I.spinAmount,
995
+ pixelFilter: T.pixelFilter ?? I.pixelFilter,
996
+ contrast: T.contrast ?? I.contrast,
997
+ lighting: T.lighting ?? I.lighting
998
+ }), j = n.current, m = [
999
+ ee(j.primary, I.primary),
1000
+ ee(j.secondary, I.secondary),
1001
+ ee(j.dark, I.dark)
1002
+ ], A = B(j), M = performance.now();
1003
+ let O = M, G = 0;
1007
1004
  const K = () => {
1008
- const B = performance.now(), re = Math.max(0, B - C);
1009
- C = B;
1010
- const O = n.current, ie = [
1011
- ee(O.primary, J.primary),
1012
- ee(O.secondary, J.secondary),
1013
- ee(O.dark, J.dark)
1014
- ], T = M(O), X = Math.max(1, O.transitionMs ?? J.transitionMs), Q = 1 - Math.exp(-re / X);
1005
+ const T = performance.now(), ne = Math.max(0, T - O);
1006
+ O = T;
1007
+ const P = n.current, ie = [
1008
+ ee(P.primary, I.primary),
1009
+ ee(P.secondary, I.secondary),
1010
+ ee(P.dark, I.dark)
1011
+ ], C = B(P), H = Math.max(1, P.transitionMs ?? I.transitionMs), Q = 1 - Math.exp(-ne / H);
1015
1012
  for (let Y = 0; Y < 3; Y++)
1016
- for (let oe = 0; oe < 3; oe++)
1017
- w[Y][oe] += (ie[Y][oe] - w[Y][oe]) * Q;
1013
+ for (let re = 0; re < 3; re++)
1014
+ m[Y][re] += (ie[Y][re] - m[Y][re]) * Q;
1018
1015
  const Z = (Y) => {
1019
- P[Y] += (T[Y] - P[Y]) * Q;
1016
+ A[Y] += (C[Y] - A[Y]) * Q;
1020
1017
  };
1021
1018
  Z("spinRotation"), Z("spinSpeed"), Z("spinAmount"), Z("pixelFilter"), Z("contrast"), Z("lighting");
1022
- const ve = r.clientWidth, je = r.clientHeight;
1023
- (r.width !== ve || r.height !== je) && (r.width = ve, r.height = je, o.viewport(0, 0, o.drawingBufferWidth, o.drawingBufferHeight)), o.uniform1f(x, (B - E) / 1e3), o.uniform2f(y, r.width, r.height), o.uniform3f(S, w[0][0], w[0][1], w[0][2]), o.uniform3f(j, w[1][0], w[1][1], w[1][2]), o.uniform3f(p, w[2][0], w[2][1], w[2][2]), o.uniform1f(g, P.spinRotation), o.uniform1f(b, P.spinSpeed), o.uniform1f(h, P.spinAmount), o.uniform1f(m, P.pixelFilter), o.uniform1f(k, P.contrast), o.uniform1f(N, P.lighting), o.drawArrays(o.TRIANGLES, 0, 6), A = requestAnimationFrame(K);
1019
+ const be = r.clientWidth, ve = r.clientHeight;
1020
+ (r.width !== be || r.height !== ve) && (r.width = be, r.height = ve, o.viewport(0, 0, o.drawingBufferWidth, o.drawingBufferHeight)), o.uniform1f(y, (T - M) / 1e3), o.uniform2f(x, r.width, r.height), o.uniform3f(N, m[0][0], m[0][1], m[0][2]), o.uniform3f(g, m[1][0], m[1][1], m[1][2]), o.uniform3f(w, m[2][0], m[2][1], m[2][2]), o.uniform1f(d, A.spinRotation), o.uniform1f(b, A.spinSpeed), o.uniform1f(v, A.spinAmount), o.uniform1f(p, A.pixelFilter), o.uniform1f(E, A.contrast), o.uniform1f(k, A.lighting), o.drawArrays(o.TRIANGLES, 0, 6), G = requestAnimationFrame(K);
1024
1021
  };
1025
- return A = requestAnimationFrame(K), () => {
1026
- cancelAnimationFrame(A), o.deleteProgram(c), o.deleteShader(f), o.deleteShader(v), o.deleteBuffer(l);
1022
+ return G = requestAnimationFrame(K), () => {
1023
+ cancelAnimationFrame(G), o.deleteProgram(c), o.deleteShader(h), o.deleteShader(_), o.deleteBuffer(l);
1027
1024
  };
1028
1025
  }, []), t;
1029
1026
  }
1030
1027
  function pr(e, t, n) {
1031
- const [r, o] = L(null), [i, s] = L(null), [u, f] = L(null), v = H(
1032
- (j, p, g) => {
1033
- const b = "touches" in j ? j.touches[0] : j, h = j.currentTarget.getBoundingClientRect();
1028
+ const [r, o] = L(null), [i, s] = L(null), [u, h] = L(null), _ = X(
1029
+ (g, w, d) => {
1030
+ const b = "touches" in g ? g.touches[0] : g, v = g.currentTarget.getBoundingClientRect();
1034
1031
  s({
1035
- clause: p,
1036
- fromZone: g,
1032
+ clause: w,
1033
+ fromZone: d,
1037
1034
  x: b.clientX,
1038
1035
  y: b.clientY,
1039
- offX: b.clientX - h.left,
1040
- offY: b.clientY - h.top
1041
- }), f(null);
1036
+ offX: b.clientX - v.left,
1037
+ offY: b.clientY - v.top
1038
+ }), h(null);
1042
1039
  },
1043
1040
  []
1044
- ), c = $(r), l = $(i), d = $(u), x = $(e), y = $(t);
1045
- Pe(() => {
1046
- c.current = r, l.current = i, d.current = u, x.current = e, y.current = t;
1041
+ ), c = R(r), l = R(i), f = R(u), y = R(e), x = R(t);
1042
+ Le(() => {
1043
+ c.current = r, l.current = i, f.current = u, y.current = e, x.current = t;
1047
1044
  });
1048
- const S = r !== null || i !== null;
1049
- return G(() => {
1050
- if (!S) return;
1051
- const j = (g) => {
1052
- var M;
1053
- const b = "touches" in g ? g : null, h = b ? b.touches[0] : g;
1054
- if (!h) return;
1055
- let m = c.current;
1056
- if (!m && l.current) {
1057
- const R = h.clientX - l.current.x, w = h.clientY - l.current.y;
1058
- if (Math.hypot(R, w) < 8) return;
1059
- m = {
1045
+ const N = r !== null || i !== null;
1046
+ return U(() => {
1047
+ if (!N) return;
1048
+ const g = (d) => {
1049
+ var B;
1050
+ const b = "touches" in d ? d : null, v = b ? b.touches[0] : d;
1051
+ if (!v) return;
1052
+ let p = c.current;
1053
+ if (!p && l.current) {
1054
+ const j = v.clientX - l.current.x, m = v.clientY - l.current.y;
1055
+ if (Math.hypot(j, m) < 8) return;
1056
+ p = {
1060
1057
  ...l.current,
1061
- x: h.clientX,
1062
- y: h.clientY
1063
- }, s(null), o(m);
1064
- } else m && (m = { ...m, x: h.clientX, y: h.clientY }, o(m));
1065
- if (!m) return;
1058
+ x: v.clientX,
1059
+ y: v.clientY
1060
+ }, s(null), o(p);
1061
+ } else p && (p = { ...p, x: v.clientX, y: v.clientY }, o(p));
1062
+ if (!p) return;
1066
1063
  b != null && b.cancelable && b.preventDefault();
1067
- const k = ((M = n.current) == null ? void 0 : M.querySelectorAll("[data-zone]")) ?? [];
1068
- let N = null;
1069
- for (const R of k) {
1070
- const w = R.getBoundingClientRect();
1071
- if (h.clientX >= w.left && h.clientX <= w.right && h.clientY >= w.top && h.clientY <= w.bottom) {
1072
- N = R.getAttribute("data-zone");
1064
+ const E = ((B = n.current) == null ? void 0 : B.querySelectorAll("[data-zone]")) ?? [];
1065
+ let k = null;
1066
+ for (const j of E) {
1067
+ const m = j.getBoundingClientRect();
1068
+ if (v.clientX >= m.left && v.clientX <= m.right && v.clientY >= m.top && v.clientY <= m.bottom) {
1069
+ k = j.getAttribute("data-zone");
1073
1070
  break;
1074
1071
  }
1075
1072
  }
1076
- f(N);
1077
- }, p = () => {
1078
- const g = c.current, b = d.current;
1079
- if (g && b && b !== g.fromZone) {
1080
- const h = b, m = x.current;
1081
- y.current({
1082
- ...m,
1083
- [g.fromZone]: m[g.fromZone].filter((k) => k.id !== g.clause.id),
1084
- [h]: [...m[h], { ...g.clause }]
1073
+ h(k);
1074
+ }, w = () => {
1075
+ const d = c.current, b = f.current;
1076
+ if (d && b && b !== d.fromZone) {
1077
+ const v = b, p = y.current;
1078
+ x.current({
1079
+ ...p,
1080
+ [d.fromZone]: p[d.fromZone].filter((E) => E.id !== d.clause.id),
1081
+ [v]: [...p[v], { ...d.clause }]
1085
1082
  });
1086
1083
  }
1087
- s(null), o(null), f(null);
1084
+ s(null), o(null), h(null);
1088
1085
  };
1089
- return window.addEventListener("mousemove", j), window.addEventListener("mouseup", p), window.addEventListener("touchmove", j, { passive: !1 }), window.addEventListener("touchend", p), () => {
1090
- window.removeEventListener("mousemove", j), window.removeEventListener("mouseup", p), window.removeEventListener("touchmove", j), window.removeEventListener("touchend", p);
1086
+ return window.addEventListener("mousemove", g), window.addEventListener("mouseup", w), window.addEventListener("touchmove", g, { passive: !1 }), window.addEventListener("touchend", w), () => {
1087
+ window.removeEventListener("mousemove", g), window.removeEventListener("mouseup", w), window.removeEventListener("touchmove", g), window.removeEventListener("touchend", w);
1091
1088
  };
1092
- }, [S, n]), {
1089
+ }, [N, n]), {
1093
1090
  drag: r,
1094
1091
  hoverZone: u,
1095
- onDragStart: v
1092
+ onDragStart: _
1096
1093
  };
1097
1094
  }
1098
- const Vt = {
1095
+ const Ht = {
1099
1096
  xs: "j-inline-edit--xs",
1100
1097
  sm: "j-inline-edit--sm",
1101
1098
  md: "j-inline-edit--md",
1102
1099
  lg: "j-inline-edit--lg"
1103
- }, qt = {
1100
+ }, Zt = {
1104
1101
  white: "j-inline-edit--white",
1105
1102
  gold: "j-inline-edit--gold",
1106
1103
  grey: "j-inline-edit--grey"
1107
- }, fr = z.forwardRef(
1104
+ }, hr = $.forwardRef(
1108
1105
  function({ size: t = "md", tone: n = "white", dim: r = !1, className: o = "", ...i }, s) {
1109
1106
  const u = [
1110
1107
  "j-inline-edit",
1111
- Vt[t],
1112
- qt[n],
1108
+ Ht[t],
1109
+ Zt[n],
1113
1110
  r ? "j-inline-edit--dim" : null,
1114
1111
  o || null
1115
1112
  ].filter(Boolean).join(" ");
1116
1113
  return /* @__PURE__ */ a("input", { ref: s, type: "text", className: u, ...i });
1117
1114
  }
1118
1115
  );
1119
- function hr({
1116
+ function mr({
1120
1117
  className: e,
1121
1118
  minHeight: t = 320,
1122
1119
  style: n,
@@ -1129,7 +1126,7 @@ function hr({
1129
1126
  };
1130
1127
  return /* @__PURE__ */ a("div", { ref: r, className: i, style: s, ...o });
1131
1128
  }
1132
- const Qt = {
1129
+ const Vt = {
1133
1130
  blue: "j-outer-tab--blue",
1134
1131
  red: "j-outer-tab--red",
1135
1132
  orange: "j-outer-tab--orange",
@@ -1137,7 +1134,7 @@ const Qt = {
1137
1134
  purple: "j-outer-tab--purple",
1138
1135
  gold: "j-outer-tab--gold"
1139
1136
  };
1140
- function en({
1137
+ function qt({
1141
1138
  label: e,
1142
1139
  tone: t,
1143
1140
  active: n = !1,
@@ -1147,13 +1144,13 @@ function en({
1147
1144
  children: s,
1148
1145
  ...u
1149
1146
  }) {
1150
- const f = [
1147
+ const h = [
1151
1148
  "j-outer-tab",
1152
- t ? Qt[t] : "",
1149
+ t ? Vt[t] : "",
1153
1150
  n ? "j-outer-tab--active" : "",
1154
1151
  i
1155
1152
  ].filter(Boolean).join(" ");
1156
- return /* @__PURE__ */ _("div", { className: f, ...u, children: [
1153
+ return /* @__PURE__ */ S("div", { className: h, ...u, children: [
1157
1154
  /* @__PURE__ */ a("span", { className: "j-outer-tab__grip", "aria-hidden": !0, children: /* @__PURE__ */ a(wt, {}) }),
1158
1155
  /* @__PURE__ */ a("span", { className: "j-outer-tab__label", children: e }),
1159
1156
  /* @__PURE__ */ a("span", { className: "j-outer-tab__space", children: s }),
@@ -1163,19 +1160,19 @@ function en({
1163
1160
  type: "button",
1164
1161
  className: "j-outer-tab__fs",
1165
1162
  "aria-label": r ? "Restore pane" : "Fullscreen pane",
1166
- onClick: (v) => {
1167
- v.stopPropagation(), o();
1163
+ onClick: (_) => {
1164
+ _.stopPropagation(), o();
1168
1165
  },
1169
- children: r ? /* @__PURE__ */ a(Et, {}) : /* @__PURE__ */ a(Nt, {})
1166
+ children: r ? /* @__PURE__ */ a(kt, {}) : /* @__PURE__ */ a(Nt, {})
1170
1167
  }
1171
1168
  ) : null
1172
1169
  ] });
1173
1170
  }
1174
- let tn = 0;
1171
+ let Qt = 0;
1175
1172
  function we(e) {
1176
- return `${e}${++tn}-${Date.now().toString(36)}`;
1173
+ return `${e}${++Qt}-${Date.now().toString(36)}`;
1177
1174
  }
1178
- function nn(e) {
1175
+ function en(e) {
1179
1176
  return {
1180
1177
  type: "split",
1181
1178
  id: "s-root",
@@ -1201,202 +1198,229 @@ function nn(e) {
1201
1198
  ]
1202
1199
  };
1203
1200
  }
1204
- function Je(e, t) {
1201
+ function gr(e) {
1202
+ return {
1203
+ type: "split",
1204
+ id: "s-root",
1205
+ dir: "column",
1206
+ ratio: 0.5,
1207
+ children: [
1208
+ { type: "group", id: "g-filter", panes: [e.filter], active: e.filter },
1209
+ {
1210
+ type: "split",
1211
+ id: "s-rest",
1212
+ dir: "column",
1213
+ ratio: 0.32,
1214
+ children: [
1215
+ { type: "group", id: "g-search", panes: [e.search], active: e.search },
1216
+ {
1217
+ type: "group",
1218
+ id: "g-results",
1219
+ panes: [e.results, e.jamlyze],
1220
+ active: e.results
1221
+ }
1222
+ ]
1223
+ }
1224
+ ]
1225
+ };
1226
+ }
1227
+ function Ie(e, t) {
1205
1228
  if (e.type === "group") {
1206
1229
  if (!e.panes.includes(t)) return e;
1207
1230
  const r = e.panes.filter((i) => i !== t), o = e.active === t ? r[0] ?? null : e.active;
1208
1231
  return { ...e, panes: r, active: o };
1209
1232
  }
1210
- const n = e.children.map((r) => Je(r, t)).filter((r) => !(r.type === "group" && r.panes.length === 0));
1233
+ const n = e.children.map((r) => Ie(r, t)).filter((r) => !(r.type === "group" && r.panes.length === 0));
1211
1234
  return n.length === 1 ? n[0] : { ...e, children: n };
1212
1235
  }
1213
- function be(e, t, n) {
1214
- return e.type === "group" ? e.id === t ? n(e) : e : { ...e, children: e.children.map((r) => be(r, t, n)) };
1236
+ function ge(e, t, n) {
1237
+ return e.type === "group" ? e.id === t ? n(e) : e : { ...e, children: e.children.map((r) => ge(r, t, n)) };
1215
1238
  }
1216
- function $e(e, t, n, r) {
1239
+ function Je(e, t, n, r) {
1217
1240
  if (r === "center") return e;
1218
1241
  if (e.type === "group") {
1219
1242
  if (e.id !== t) return e;
1220
1243
  const o = { type: "group", id: we("g"), panes: [n], active: n }, i = r === "left" || r === "right" ? "row" : "column", s = r === "left" || r === "top" ? [o, e] : [e, o];
1221
1244
  return { type: "split", id: we("s"), dir: i, ratio: 0.5, children: s };
1222
1245
  }
1223
- return { ...e, children: e.children.map((o) => $e(o, t, n, r)) };
1246
+ return { ...e, children: e.children.map((o) => Je(o, t, n, r)) };
1224
1247
  }
1225
1248
  function Fe(e, t = []) {
1226
1249
  return e.type === "group" ? (t.push(e), t) : (e.children.forEach((n) => Fe(n, t)), t);
1227
1250
  }
1228
- function rn(e, t) {
1229
- return e.type === "group" ? e.panes.includes(t) ? { ...e, active: t } : e : { ...e, children: e.children.map((n) => rn(n, t)) };
1251
+ function tn(e, t) {
1252
+ return e.type === "group" ? e.panes.includes(t) ? { ...e, active: t } : e : { ...e, children: e.children.map((n) => tn(n, t)) };
1230
1253
  }
1231
- function on(e, t) {
1254
+ function nn(e, t) {
1232
1255
  const n = Fe(e);
1233
1256
  if (!n.length) return !1;
1234
1257
  const r = n.flatMap((o) => o.panes);
1235
1258
  return r.length > 0 && r.every((o) => t.includes(o)) && n.every((o) => o.panes.length > 0);
1236
1259
  }
1237
- function an(e, t, n) {
1260
+ function rn(e, t, n) {
1238
1261
  try {
1239
1262
  const r = localStorage.getItem(e);
1240
1263
  if (!r) return t;
1241
1264
  const o = JSON.parse(r);
1242
- return on(o, n) ? o : t;
1265
+ return nn(o, n) ? o : t;
1243
1266
  } catch {
1244
1267
  return t;
1245
1268
  }
1246
1269
  }
1247
- function sn(e, t) {
1270
+ function on(e, t) {
1248
1271
  try {
1249
1272
  localStorage.setItem(e, JSON.stringify(t));
1250
1273
  } catch {
1251
1274
  }
1252
1275
  }
1253
- function mr({
1276
+ function br({
1254
1277
  panes: e,
1255
1278
  pyramid: t,
1256
- storageKey: n,
1257
- className: r
1279
+ defaultLayout: n,
1280
+ storageKey: r,
1281
+ className: o
1258
1282
  }) {
1259
- const o = Object.keys(e), i = t && o.includes(t.filter) ? nn(t) : {
1283
+ const i = Object.keys(e), s = n ?? (t && i.includes(t.filter) ? en(t) : {
1260
1284
  type: "group",
1261
1285
  id: "g-all",
1262
- panes: o,
1263
- active: o[0] ?? null
1264
- }, [s, u] = L(
1265
- () => n && typeof localStorage < "u" ? an(n, i, o) : i
1266
- ), [f, v] = L(null), [c, l] = L(null);
1267
- G(() => {
1268
- n && sn(n, s);
1269
- }, [n, s]);
1270
- const d = (p) => {
1271
- if (p.target.closest(".j-dock-tabs")) return "center";
1272
- const b = p.currentTarget.getBoundingClientRect(), h = (p.clientX - b.left) / b.width, m = (p.clientY - b.top) / b.height;
1273
- return h < 0.25 ? "left" : h > 0.75 ? "right" : m < 0.25 ? "top" : m > 0.75 ? "bottom" : "center";
1274
- }, x = (p, g, b) => {
1275
- e[p] && (g.panes.length === 1 && g.panes[0] === p || u((h) => {
1276
- const m = Je(h, p);
1277
- return b === "center" ? be(m, g.id, (k) => ({
1286
+ panes: i,
1287
+ active: i[0] ?? null
1288
+ }), [u, h] = L(
1289
+ () => r && typeof localStorage < "u" ? rn(r, s, i) : s
1290
+ ), [_, c] = L(null), [l, f] = L(null);
1291
+ U(() => {
1292
+ r && on(r, u);
1293
+ }, [r, u]);
1294
+ const y = (d) => {
1295
+ if (d.target.closest(".j-dock-tabs")) return "center";
1296
+ const v = d.currentTarget.getBoundingClientRect(), p = (d.clientX - v.left) / v.width, E = (d.clientY - v.top) / v.height;
1297
+ return p < 0.25 ? "left" : p > 0.75 ? "right" : E < 0.25 ? "top" : E > 0.75 ? "bottom" : "center";
1298
+ }, x = (d, b, v) => {
1299
+ e[d] && (b.panes.length === 1 && b.panes[0] === d || h((p) => {
1300
+ const E = Ie(p, d);
1301
+ return v === "center" ? ge(E, b.id, (k) => ({
1278
1302
  ...k,
1279
- panes: [...k.panes, p],
1280
- active: p
1281
- })) : $e(m, g.id, p, b);
1303
+ panes: [...k.panes, d],
1304
+ active: d
1305
+ })) : Je(E, b.id, d, v);
1282
1306
  }));
1283
- }, y = (p, g) => {
1284
- const b = e[p];
1285
- return b ? /* @__PURE__ */ a(
1286
- en,
1307
+ }, N = (d, b) => {
1308
+ const v = e[d];
1309
+ return v ? /* @__PURE__ */ a(
1310
+ qt,
1287
1311
  {
1288
- label: b.label,
1289
- tone: b.tone,
1290
- active: g,
1291
- fullscreen: c === p,
1292
- onToggleFullscreen: () => l((h) => h === p ? null : p),
1312
+ label: v.label,
1313
+ tone: v.tone,
1314
+ active: b,
1315
+ fullscreen: l === d,
1316
+ onToggleFullscreen: () => f((p) => p === d ? null : d),
1293
1317
  draggable: !0,
1294
- onDragStart: (h) => h.dataTransfer.setData("text/plain", p)
1318
+ onDragStart: (p) => p.dataTransfer.setData("text/plain", d)
1295
1319
  },
1296
- p
1320
+ d
1297
1321
  ) : null;
1298
- }, S = (p) => {
1299
- const g = f && f.groupId === p.id ? f.zone : null, b = g && g !== "center" ? ` j-dock-pane--drop-${g}` : "";
1300
- return /* @__PURE__ */ _(
1322
+ }, g = (d) => {
1323
+ const b = _ && _.groupId === d.id ? _.zone : null, v = b && b !== "center" ? ` j-dock-pane--drop-${b}` : "";
1324
+ return /* @__PURE__ */ S(
1301
1325
  D,
1302
1326
  {
1303
- className: `j-dock-pane${b}`,
1304
- onDragOver: (h) => {
1305
- h.preventDefault();
1306
- const m = d(h);
1307
- v(
1308
- (k) => k && k.groupId === p.id && k.zone === m ? k : { groupId: p.id, zone: m }
1327
+ className: `j-dock-pane${v}`,
1328
+ onDragOver: (p) => {
1329
+ p.preventDefault();
1330
+ const E = y(p);
1331
+ c(
1332
+ (k) => k && k.groupId === d.id && k.zone === E ? k : { groupId: d.id, zone: E }
1309
1333
  );
1310
1334
  },
1311
- onDragLeave: () => v((h) => h && h.groupId === p.id ? null : h),
1312
- onDrop: (h) => {
1313
- h.preventDefault();
1314
- const m = h.dataTransfer.getData("text/plain"), k = d(h);
1315
- v(null), x(m, p, k);
1335
+ onDragLeave: () => c((p) => p && p.groupId === d.id ? null : p),
1336
+ onDrop: (p) => {
1337
+ p.preventDefault();
1338
+ const E = p.dataTransfer.getData("text/plain"), k = y(p);
1339
+ c(null), x(E, d, k);
1316
1340
  },
1317
1341
  children: [
1318
1342
  /* @__PURE__ */ a(
1319
1343
  D,
1320
1344
  {
1321
- className: `j-dock-tabs${g === "center" ? " j-dock-tabs--drop" : ""}`,
1322
- children: p.panes.map((h) => /* @__PURE__ */ a(
1345
+ className: `j-dock-tabs${b === "center" ? " j-dock-tabs--drop" : ""}`,
1346
+ children: d.panes.map((p) => /* @__PURE__ */ a(
1323
1347
  D,
1324
1348
  {
1325
- onClick: () => u((m) => be(m, p.id, (k) => ({ ...k, active: h }))),
1326
- children: y(h, p.active === h)
1349
+ onClick: () => h((E) => ge(E, d.id, (k) => ({ ...k, active: p }))),
1350
+ children: N(p, d.active === p)
1327
1351
  },
1328
- h
1352
+ p
1329
1353
  ))
1330
1354
  }
1331
1355
  ),
1332
- /* @__PURE__ */ a(D, { className: "j-dock-body", children: p.active && e[p.active] ? e[p.active].content : null })
1356
+ /* @__PURE__ */ a(D, { className: "j-dock-body", children: d.active && e[d.active] ? e[d.active].content : null })
1333
1357
  ]
1334
1358
  },
1335
- p.id
1359
+ d.id
1336
1360
  );
1337
- }, j = (p) => {
1338
- if (p.type === "group") return S(p);
1339
- const [g, b] = p.children;
1340
- return /* @__PURE__ */ _(
1361
+ }, w = (d) => {
1362
+ if (d.type === "group") return g(d);
1363
+ const [b, v] = d.children;
1364
+ return /* @__PURE__ */ S(
1341
1365
  D,
1342
1366
  {
1343
- className: `j-dock-split j-dock-split--${p.dir}`,
1367
+ className: `j-dock-split j-dock-split--${d.dir}`,
1344
1368
  style: {
1345
- "--j-dock-a": `${p.ratio}fr`,
1346
- "--j-dock-b": `${1 - p.ratio}fr`
1369
+ "--j-dock-a": `${d.ratio}fr`,
1370
+ "--j-dock-b": `${1 - d.ratio}fr`
1347
1371
  },
1348
1372
  children: [
1349
- j(g),
1350
- /* @__PURE__ */ a(D, { className: `j-dock-gutter j-dock-gutter--${p.dir}` }),
1351
- j(b)
1373
+ w(b),
1374
+ /* @__PURE__ */ a(D, { className: `j-dock-gutter j-dock-gutter--${d.dir}` }),
1375
+ w(v)
1352
1376
  ]
1353
1377
  },
1354
- p.id
1378
+ d.id
1355
1379
  );
1356
1380
  };
1357
- return c && e[c] ? /* @__PURE__ */ _(D, { className: `j-dock j-dock--fs ${r ?? ""}`.trim(), children: [
1358
- /* @__PURE__ */ a(D, { className: "j-dock-tabs", children: y(c, !0) }),
1359
- /* @__PURE__ */ a(D, { className: "j-dock-body", children: e[c].content })
1360
- ] }) : /* @__PURE__ */ a(D, { className: `j-dock ${r ?? ""}`.trim(), children: j(s) });
1381
+ return l && e[l] ? /* @__PURE__ */ S(D, { className: `j-dock j-dock--fs ${o ?? ""}`.trim(), children: [
1382
+ /* @__PURE__ */ a(D, { className: "j-dock-tabs", children: N(l, !0) }),
1383
+ /* @__PURE__ */ a(D, { className: "j-dock-body", children: e[l].content })
1384
+ ] }) : /* @__PURE__ */ a(D, { className: `j-dock ${o ?? ""}`.trim(), children: w(u) });
1361
1385
  }
1362
- const ln = {
1386
+ const an = {
1363
1387
  idle: "j-status-pill--idle",
1364
1388
  running: "j-status-pill--running",
1365
1389
  ok: "j-status-pill--ok",
1366
1390
  error: "j-status-pill--error",
1367
1391
  paused: "j-status-pill--paused"
1368
1392
  };
1369
- function cn({ status: e = "idle", label: t, className: n, children: r, ...o }) {
1370
- const i = ["j-status-pill", ln[e], n].filter(Boolean).join(" ");
1371
- return /* @__PURE__ */ _("span", { className: i, ...o, children: [
1393
+ function sn({ status: e = "idle", label: t, className: n, children: r, ...o }) {
1394
+ const i = ["j-status-pill", an[e], n].filter(Boolean).join(" ");
1395
+ return /* @__PURE__ */ S("span", { className: i, ...o, children: [
1372
1396
  /* @__PURE__ */ a("span", { className: "j-status-pill__dot", "aria-hidden": !0 }),
1373
1397
  t ?? r ?? e
1374
1398
  ] });
1375
1399
  }
1376
- const gr = z.forwardRef(
1377
- function({ onValueChange: t, className: n, value: r, min: o = 0, max: i = 100, style: s, ...u }, f) {
1378
- const v = Number(r ?? 0), c = Number(o), l = Number(i), d = l > c ? Math.min(100, Math.max(0, (v - c) / (l - c) * 100)) : 0, x = ["j-slider", n].filter(Boolean).join(" ");
1400
+ const vr = $.forwardRef(
1401
+ function({ onValueChange: t, className: n, value: r, min: o = 0, max: i = 100, style: s, ...u }, h) {
1402
+ const _ = Number(r ?? 0), c = Number(o), l = Number(i), f = l > c ? Math.min(100, Math.max(0, (_ - c) / (l - c) * 100)) : 0, y = ["j-slider", n].filter(Boolean).join(" ");
1379
1403
  return /* @__PURE__ */ a(
1380
1404
  "input",
1381
1405
  {
1382
- ref: f,
1406
+ ref: h,
1383
1407
  type: "range",
1384
- className: x,
1408
+ className: y,
1385
1409
  value: r,
1386
1410
  min: o,
1387
1411
  max: i,
1388
- style: { ...s ?? {}, "--j-slider-fill": `${d}%` },
1389
- onChange: (y) => t == null ? void 0 : t(Number(y.currentTarget.value)),
1412
+ style: { ...s ?? {}, "--j-slider-fill": `${f}%` },
1413
+ onChange: (x) => t == null ? void 0 : t(Number(x.currentTarget.value)),
1390
1414
  ...u
1391
1415
  }
1392
1416
  );
1393
1417
  }
1394
1418
  );
1395
- function un({ className: e, style: t, ...n }) {
1419
+ function ln({ className: e, style: t, ...n }) {
1396
1420
  const r = ["j-textarea", e].filter(Boolean).join(" ");
1397
1421
  return /* @__PURE__ */ a("textarea", { className: r, style: t, ...n });
1398
1422
  }
1399
- const ze = /^[1-9A-Z]{1,8}$/, dn = /* @__PURE__ */ new Set([
1423
+ const $e = /^[1-9A-Z]{1,8}$/, cn = /* @__PURE__ */ new Set([
1400
1424
  "SEED",
1401
1425
  "SEEDS",
1402
1426
  "SCORE",
@@ -1426,12 +1450,12 @@ const ze = /^[1-9A-Z]{1,8}$/, dn = /* @__PURE__ */ new Set([
1426
1450
  "TALLY",
1427
1451
  "TALLIES"
1428
1452
  ]);
1429
- function pn(e) {
1453
+ function un(e) {
1430
1454
  if (!e || typeof e != "string") return [];
1431
- const n = e.toUpperCase().replace(/[A-Z]+:\/\/\S*/g, " ").replace(/0/g, "O").split(/[^0-9A-Z]+/).filter((i) => ze.test(i)), r = n.filter((i) => i.length === 8), o = r.length ? r : n.filter((i) => i.length >= 4 && !dn.has(i));
1455
+ const n = e.toUpperCase().replace(/[A-Z]+:\/\/\S*/g, " ").replace(/0/g, "O").split(/[^0-9A-Z]+/).filter((i) => $e.test(i)), r = n.filter((i) => i.length === 8), o = r.length ? r : n.filter((i) => i.length >= 4 && !cn.has(i));
1432
1456
  return [...new Set(o)];
1433
1457
  }
1434
- function fn(e) {
1458
+ function dn(e) {
1435
1459
  if (!e) return [];
1436
1460
  const t = e.split(/\r?\n/), n = [];
1437
1461
  for (let r = 0; r < t.length; r++) {
@@ -1440,12 +1464,12 @@ function fn(e) {
1440
1464
  const i = o.split(/[^0-9A-Za-z]+/).filter(Boolean);
1441
1465
  for (const s of i) {
1442
1466
  const u = s.toUpperCase().replace(/0/g, "O");
1443
- (!ze.test(u) || u.length < 4) && n.push({ line: r + 1, text: s });
1467
+ (!$e.test(u) || u.length < 4) && n.push({ line: r + 1, text: s });
1444
1468
  }
1445
1469
  }
1446
1470
  return n.slice(0, 8);
1447
1471
  }
1448
- function br({
1472
+ function jr({
1449
1473
  onAnalyze: e,
1450
1474
  onInjectIntoJaml: t,
1451
1475
  ready: n = !1,
@@ -1454,18 +1478,18 @@ function br({
1454
1478
  className: i,
1455
1479
  style: s
1456
1480
  }) {
1457
- const [u, f] = L(o), [v, c] = L(!1), l = te(() => pn(u), [u]), d = te(() => l.filter((m) => m.length === 8), [l]), x = te(() => l.filter((m) => m.length >= 4 && m.length < 8), [l]), y = te(() => fn(u), [u]), S = H(() => {
1458
- !d.length || r || e(d);
1459
- }, [d, r, e]), j = H(() => {
1460
- d.length && (t == null || t(d));
1461
- }, [d, t]), p = d.length === 0 ? "No valid 8-character seeds yet." : d.length === 1 ? "1 valid seed." : `${d.length} valid seeds.`, g = x.length > 0 ? `${x.length} partial (${x.join(", ")}) — might be typos.` : null, b = n && !r && d.length > 0, h = r ? "Cannot start: a search is already running." : n ? d.length === 0 ? "Cannot start: paste at least one 8-character seed." : null : "Cannot start: the engine is still booting.";
1462
- return /* @__PURE__ */ _(gt, { gap: "md", align: "stretch", className: i, style: s, children: [
1463
- /* @__PURE__ */ a(D, { children: /* @__PURE__ */ a(U, { size: "sm", tone: "white", children: "Paste a list of seeds here — one per line, comma-separated, from a spreadsheet, a chat message, or a share link. The field finds every 8-character code automatically." }) }),
1481
+ const [u, h] = L(o), [_, c] = L(!1), l = te(() => un(u), [u]), f = te(() => l.filter((p) => p.length === 8), [l]), y = te(() => l.filter((p) => p.length >= 4 && p.length < 8), [l]), x = te(() => dn(u), [u]), N = X(() => {
1482
+ !f.length || r || e(f);
1483
+ }, [f, r, e]), g = X(() => {
1484
+ f.length && (t == null || t(f));
1485
+ }, [f, t]), w = f.length === 0 ? "No valid 8-character seeds yet." : f.length === 1 ? "1 valid seed." : `${f.length} valid seeds.`, d = y.length > 0 ? `${y.length} partial (${y.join(", ")}) — might be typos.` : null, b = n && !r && f.length > 0, v = r ? "Cannot start: a search is already running." : n ? f.length === 0 ? "Cannot start: paste at least one 8-character seed." : null : "Cannot start: the engine is still booting.";
1486
+ return /* @__PURE__ */ S(mt, { gap: "md", align: "stretch", className: i, style: s, children: [
1487
+ /* @__PURE__ */ a(D, { children: /* @__PURE__ */ a(W, { size: "sm", tone: "white", children: "Paste a list of seeds here — one per line, comma-separated, from a spreadsheet, a chat message, or a share link. The field finds every 8-character code automatically." }) }),
1464
1488
  /* @__PURE__ */ a(
1465
- un,
1489
+ ln,
1466
1490
  {
1467
1491
  value: u,
1468
- onChange: (m) => f(m.target.value),
1492
+ onChange: (p) => h(p.target.value),
1469
1493
  placeholder: `WEEJOKER
1470
1494
  18Z47K9Q
1471
1495
  Q1J3A11E
@@ -1475,62 +1499,62 @@ Q1J3A11E
1475
1499
  style: { minHeight: 120, fontFamily: "m6x11, monospace", fontSize: 14 }
1476
1500
  }
1477
1501
  ),
1478
- /* @__PURE__ */ _(Be, { gap: "sm", wrap: !0, align: "center", children: [
1479
- /* @__PURE__ */ a(fe, { tone: d.length > 0 ? "green" : "grey", size: "sm", children: p }),
1480
- g ? /* @__PURE__ */ _(fe, { tone: "orange", size: "sm", title: g, children: [
1481
- x.length,
1502
+ /* @__PURE__ */ S(Re, { gap: "sm", wrap: !0, align: "center", children: [
1503
+ /* @__PURE__ */ a(pe, { tone: f.length > 0 ? "green" : "grey", size: "sm", children: w }),
1504
+ d ? /* @__PURE__ */ S(pe, { tone: "orange", size: "sm", title: d, children: [
1505
+ y.length,
1482
1506
  " partial"
1483
1507
  ] }) : null,
1484
- y.length > 0 ? /* @__PURE__ */ _(
1485
- fe,
1508
+ x.length > 0 ? /* @__PURE__ */ S(
1509
+ pe,
1486
1510
  {
1487
1511
  tone: "red",
1488
1512
  size: "sm",
1489
- title: y.map((m) => `line ${m.line}: "${m.text}"`).join("; "),
1513
+ title: x.map((p) => `line ${p.line}: "${p.text}"`).join("; "),
1490
1514
  children: [
1491
- y.length,
1515
+ x.length,
1492
1516
  " unrecognised"
1493
1517
  ]
1494
1518
  }
1495
1519
  ) : null
1496
1520
  ] }),
1497
- y.length > 0 && v ? /* @__PURE__ */ a(D, { children: y.map((m) => /* @__PURE__ */ _(U, { size: "xs", tone: "red", children: [
1521
+ x.length > 0 && _ ? /* @__PURE__ */ a(D, { children: x.map((p) => /* @__PURE__ */ S(W, { size: "xs", tone: "red", children: [
1498
1522
  "Line ",
1499
- m.line,
1523
+ p.line,
1500
1524
  ': "',
1501
- m.text,
1525
+ p.text,
1502
1526
  '" — not a valid seed character.'
1503
- ] }, `${m.line}-${m.text}`)) }) : null,
1504
- y.length > 0 ? /* @__PURE__ */ a(W, { size: "xs", tone: "grey", onClick: () => c((m) => !m), children: v ? "Hide unrecognised tokens" : "Show unrecognised tokens" }) : null,
1527
+ ] }, `${p.line}-${p.text}`)) }) : null,
1528
+ x.length > 0 ? /* @__PURE__ */ a(z, { size: "xs", tone: "grey", onClick: () => c((p) => !p), children: _ ? "Hide unrecognised tokens" : "Show unrecognised tokens" }) : null,
1505
1529
  /* @__PURE__ */ a(
1506
- W,
1530
+ z,
1507
1531
  {
1508
1532
  fullWidth: !0,
1509
1533
  tone: "blue",
1510
1534
  disabled: !b,
1511
- onClick: S,
1512
- title: h || "Score every seed against the current filter",
1513
- children: r ? "Searching…" : `Analyze ${d.length || ""} seed${d.length === 1 ? "" : "s"}`
1535
+ onClick: N,
1536
+ title: v || "Score every seed against the current filter",
1537
+ children: r ? "Searching…" : `Analyze ${f.length || ""} seed${f.length === 1 ? "" : "s"}`
1514
1538
  }
1515
1539
  ),
1516
- t && d.length > 0 ? /* @__PURE__ */ a(
1517
- W,
1540
+ t && f.length > 0 ? /* @__PURE__ */ a(
1541
+ z,
1518
1542
  {
1519
1543
  fullWidth: !0,
1520
1544
  tone: "grey",
1521
- onClick: j,
1545
+ onClick: g,
1522
1546
  title: "Add these seeds to the JAML document so they are saved with the filter",
1523
1547
  children: "Save seeds to filter document"
1524
1548
  }
1525
1549
  ) : null,
1526
- h && !r ? /* @__PURE__ */ a(U, { size: "xs", tone: "grey", children: h }) : null
1550
+ v && !r ? /* @__PURE__ */ a(W, { size: "xs", tone: "grey", children: v }) : null
1527
1551
  ] });
1528
1552
  }
1529
- function vr({ className: e, style: t, ...n } = {}) {
1530
- const r = Zt(n), o = ["j-background-canvas", e].filter(Boolean).join(" ");
1553
+ function _r({ className: e, style: t, ...n } = {}) {
1554
+ const r = Xt(n), o = ["j-background-canvas", e].filter(Boolean).join(" ");
1531
1555
  return /* @__PURE__ */ a("canvas", { ref: r, className: o, style: t, "aria-hidden": !0 });
1532
1556
  }
1533
- function jr({
1557
+ function yr({
1534
1558
  variant: e = "embed",
1535
1559
  scroll: t = !0,
1536
1560
  footer: n,
@@ -1539,44 +1563,44 @@ function jr({
1539
1563
  ...i
1540
1564
  }) {
1541
1565
  if (e === "page") {
1542
- const f = ["j-page", "j-page--full", r].filter(Boolean).join(" ");
1543
- return /* @__PURE__ */ _("div", { className: f, ...i, children: [
1566
+ const h = ["j-page", "j-page--full", r].filter(Boolean).join(" ");
1567
+ return /* @__PURE__ */ S("div", { className: h, ...i, children: [
1544
1568
  /* @__PURE__ */ a("div", { className: "j-page__main", children: o }),
1545
1569
  n ? /* @__PURE__ */ a("div", { className: "j-page__footer", children: n }) : null
1546
1570
  ] });
1547
1571
  }
1548
1572
  if (e === "phone") {
1549
- const f = ["j-phone", r].filter(Boolean).join(" ");
1550
- return /* @__PURE__ */ _("div", { className: f, ...i, children: [
1573
+ const h = ["j-phone", r].filter(Boolean).join(" ");
1574
+ return /* @__PURE__ */ S("div", { className: h, ...i, children: [
1551
1575
  /* @__PURE__ */ a("div", { className: t ? "j-phone__scroll" : "j-phone__content", children: o }),
1552
1576
  n ? /* @__PURE__ */ a("div", { className: "j-phone__footer", children: n }) : null
1553
1577
  ] });
1554
1578
  }
1555
1579
  const s = ["j-app", r].filter(Boolean).join(" ");
1556
- return /* @__PURE__ */ _("div", { className: s, ...i, children: [
1580
+ return /* @__PURE__ */ S("div", { className: s, ...i, children: [
1557
1581
  /* @__PURE__ */ a("div", { className: t ? "j-app__scroll" : "j-app__content", children: o }),
1558
1582
  n ? /* @__PURE__ */ a("div", { className: "j-app__footer", children: n }) : null
1559
1583
  ] });
1560
1584
  }
1561
- function _r({ className: e, children: t, ...n }) {
1585
+ function Sr({ className: e, children: t, ...n }) {
1562
1586
  const r = ["j-inset", e].filter(Boolean).join(" ");
1563
1587
  return /* @__PURE__ */ a("div", { className: r, ...n, children: t });
1564
1588
  }
1565
- function yr({ title: e, sub: t, className: n, ...r }) {
1589
+ function xr({ title: e, sub: t, className: n, ...r }) {
1566
1590
  const o = ["j-wordmark", n].filter(Boolean).join(" ");
1567
- return /* @__PURE__ */ _("div", { className: o, ...r, children: [
1591
+ return /* @__PURE__ */ S("div", { className: o, ...r, children: [
1568
1592
  /* @__PURE__ */ a("div", { className: "j-wordmark__title", children: e }),
1569
1593
  t != null && t !== !1 ? /* @__PURE__ */ a("div", { className: "j-wordmark__sub", children: t }) : null
1570
1594
  ] });
1571
1595
  }
1572
- const hn = {
1596
+ const fn = {
1573
1597
  xs: "var(--j-space-xs)",
1574
1598
  sm: "var(--j-space-sm)",
1575
1599
  md: "var(--j-space-md)",
1576
1600
  lg: "var(--j-space-lg)",
1577
1601
  xl: "var(--j-space-xl)"
1578
1602
  };
1579
- function xr({ columns: e = 3, minColWidth: t, gap: n = "md", style: r, ...o }) {
1603
+ function wr({ columns: e = 3, minColWidth: t, gap: n = "md", style: r, ...o }) {
1580
1604
  const i = t ? `repeat(auto-fit, minmax(${t}px, 1fr))` : `repeat(${e}, minmax(0, 1fr))`;
1581
1605
  return /* @__PURE__ */ a(
1582
1606
  "div",
@@ -1585,31 +1609,31 @@ function xr({ columns: e = 3, minColWidth: t, gap: n = "md", style: r, ...o }) {
1585
1609
  ...r,
1586
1610
  display: "grid",
1587
1611
  gridTemplateColumns: i,
1588
- gap: hn[n],
1612
+ gap: fn[n],
1589
1613
  width: "100%"
1590
1614
  },
1591
1615
  ...o
1592
1616
  }
1593
1617
  );
1594
1618
  }
1595
- function Sr({ size: e = 16, style: t, ...n }) {
1619
+ function kr({ size: e = 16, style: t, ...n }) {
1596
1620
  return /* @__PURE__ */ a("div", { "aria-hidden": !0, style: { ...t, height: e, width: "100%" }, ...n });
1597
1621
  }
1598
- function kr({ vert: e = !1, className: t, ...n }) {
1622
+ function Nr({ vert: e = !1, className: t, ...n }) {
1599
1623
  const r = ["j-divider", e ? "j-divider--vert" : "", t].filter(Boolean).join(" ");
1600
1624
  return /* @__PURE__ */ a("hr", { className: r, ...n });
1601
1625
  }
1602
- function wr({ title: e, onDismiss: t, className: n, children: r, ...o }) {
1626
+ function Er({ title: e, onDismiss: t, className: n, children: r, ...o }) {
1603
1627
  const [i, s] = L(!1);
1604
1628
  if (i) return null;
1605
1629
  const u = ["j-error-block", n].filter(Boolean).join(" ");
1606
- return /* @__PURE__ */ a("div", { className: u, role: "alert", ...o, children: /* @__PURE__ */ _(Be, { justify: "between", align: "center", children: [
1607
- /* @__PURE__ */ _("div", { children: [
1630
+ return /* @__PURE__ */ a("div", { className: u, role: "alert", ...o, children: /* @__PURE__ */ S(Re, { justify: "between", align: "center", children: [
1631
+ /* @__PURE__ */ S("div", { children: [
1608
1632
  e != null && /* @__PURE__ */ a("div", { className: "j-error-block__title", children: e }),
1609
1633
  r
1610
1634
  ] }),
1611
1635
  t && /* @__PURE__ */ a(
1612
- ne,
1636
+ ae,
1613
1637
  {
1614
1638
  size: "sm",
1615
1639
  tone: "destructive",
@@ -1617,64 +1641,64 @@ function wr({ title: e, onDismiss: t, className: n, children: r, ...o }) {
1617
1641
  onClick: () => {
1618
1642
  s(!0), t();
1619
1643
  },
1620
- children: /* @__PURE__ */ a(De, {})
1644
+ children: /* @__PURE__ */ a(xt, {})
1621
1645
  }
1622
1646
  )
1623
1647
  ] }) });
1624
1648
  }
1625
- const Ue = 2 * Math.PI, Ee = Math.PI / 2, F = 16, We = 10, Ke = 148, de = 4, pe = 6, Ge = 22, Ye = 8;
1626
- function He(e, t) {
1649
+ const ze = 2 * Math.PI, ke = Math.PI / 2, J = 16, We = 10, Ue = 148, de = 4, fe = 6, Ge = 22, Ke = 8;
1650
+ function Ye(e, t) {
1627
1651
  return Math.min(200, Math.max(56, 32 + (t ? 15 : 0) + e.length * 6.6));
1628
1652
  }
1629
- function mn(e, t) {
1630
- return e + We + Math.hypot(t, F);
1653
+ function pn(e, t) {
1654
+ return e + We + Math.hypot(t, J);
1631
1655
  }
1632
- function gn(e, t, n, r, o, i, s) {
1656
+ function hn(e, t, n, r, o, i, s) {
1633
1657
  if (e.length === 0) return [];
1634
1658
  const u = Math.max(0, i) / 2;
1635
- return e.map((f, v) => {
1636
- const c = r + v * o, l = Math.cos(c) * t, d = Math.sin(c) * n, x = Math.hypot(l, d), { label: y, hasToggleDot: S } = s(f), j = mn(u, He(y, S) / 2);
1637
- if (x < 1e-4) return { item: f, x: j, y: 0 };
1638
- const p = Math.max(1, j / x);
1639
- return { item: f, x: l * p, y: d * p };
1659
+ return e.map((h, _) => {
1660
+ const c = r + _ * o, l = Math.cos(c) * t, f = Math.sin(c) * n, y = Math.hypot(l, f), { label: x, hasToggleDot: N } = s(h), g = pn(u, Ye(x, N) / 2);
1661
+ if (y < 1e-4) return { item: h, x: g, y: 0 };
1662
+ const w = Math.max(1, g / y);
1663
+ return { item: h, x: l * w, y: f * w };
1640
1664
  });
1641
1665
  }
1642
- function bn(e, t, n, r, o) {
1666
+ function mn(e, t, n, r, o) {
1643
1667
  if (e.length === 0) return [];
1644
- const i = t / 2, s = n / 2, u = -s + F, f = Math.min(s - F, r - F - pe), v = Math.ceil(e.length / 2), c = e.length - v, l = 2 * F + pe, d = (S, j) => {
1645
- if (j <= 1) return u;
1646
- const p = f - u, b = l * (j - 1) <= p ? l : p / (j - 1);
1647
- return f - S * b;
1668
+ const i = t / 2, s = n / 2, u = -s + J, h = Math.min(s - J, r - J - fe), _ = Math.ceil(e.length / 2), c = e.length - _, l = 2 * J + fe, f = (N, g) => {
1669
+ if (g <= 1) return u;
1670
+ const w = h - u, b = l * (g - 1) <= w ? l : w / (g - 1);
1671
+ return h - N * b;
1648
1672
  };
1649
- let x = 0, y = 0;
1650
- return e.map((S, j) => {
1651
- const p = j < v ? -1 : 1, g = p < 0 ? d(x++, v) : d(y++, c), { label: b, hasToggleDot: h } = o(S), m = He(b, h) / 2;
1652
- return { item: S, x: p * Math.max(0, i - m - de), y: g };
1673
+ let y = 0, x = 0;
1674
+ return e.map((N, g) => {
1675
+ const w = g < _ ? -1 : 1, d = w < 0 ? f(y++, _) : f(x++, c), { label: b, hasToggleDot: v } = o(N), p = Ye(b, v) / 2;
1676
+ return { item: N, x: w * Math.max(0, i - p - de), y: d };
1653
1677
  });
1654
1678
  }
1655
- function vn(e) {
1679
+ function gn(e) {
1656
1680
  if (!Number.isFinite(e) || e <= 0) return 2;
1657
- const t = e / 2, n = -t + F, o = t - F - de - Ge - F - F - pe, i = 2 * F + pe;
1681
+ const t = e / 2, n = -t + J, o = t - J - de - Ge - J - J - fe, i = 2 * J + fe;
1658
1682
  return 2 * Math.max(1, Math.floor((o - n) / i) + 1);
1659
1683
  }
1660
- function jn(e, t, n) {
1661
- const r = e <= 1 ? Math.round(2 * t * 1.05) : Math.round(2 * t * Math.sin(Ue / e / 2) * 1.28);
1662
- return Math.max(Ke, Math.min(r, n - 16));
1684
+ function bn(e, t, n) {
1685
+ const r = e <= 1 ? Math.round(2 * t * 1.05) : Math.round(2 * t * Math.sin(ze / e / 2) * 1.28);
1686
+ return Math.max(Ue, Math.min(r, n - 16));
1663
1687
  }
1664
- function _n(e, t, n) {
1688
+ function vn(e, t, n) {
1665
1689
  return Math.max(84, n + t * 3, e / 2 + 42);
1666
1690
  }
1667
- function Er(e, t) {
1668
- return Math.max(0, Math.min(e, t) / 2 - F - Ye);
1691
+ function Ar(e, t) {
1692
+ return Math.max(0, Math.min(e, t) / 2 - J - Ke);
1669
1693
  }
1670
- function yn(e, t, n) {
1694
+ function jn(e, t, n) {
1671
1695
  return n == null || !Number.isFinite(n) || n <= 0 ? e : Math.max(t / 2 + We, Math.min(e, n));
1672
1696
  }
1673
1697
  const Xe = (e) => typeof e.active == "boolean", Ne = (e) => ({
1674
1698
  label: e.label,
1675
1699
  hasToggleDot: Xe(e)
1676
1700
  });
1677
- function xn({
1701
+ function _n({
1678
1702
  items: e,
1679
1703
  onAction: t,
1680
1704
  onNavigate: n,
@@ -1683,83 +1707,83 @@ function xn({
1683
1707
  closing: i = !1,
1684
1708
  mascotSize: s = 96,
1685
1709
  radius: u = 90,
1686
- radiusY: f,
1687
- boxHeight: v,
1710
+ radiusY: h,
1711
+ boxHeight: _,
1688
1712
  translateY: c = 0,
1689
1713
  breadcrumb: l,
1690
- showPageControls: d = !1,
1691
- onPagePrev: x,
1692
- onPageNext: y,
1693
- center: S,
1694
- className: j,
1695
- "aria-label": p = "Orbital menu"
1714
+ showPageControls: f = !1,
1715
+ onPagePrev: y,
1716
+ onPageNext: x,
1717
+ center: N,
1718
+ className: g,
1719
+ "aria-label": w = "Orbital menu"
1696
1720
  }) {
1697
- const g = $(null), [b, h] = L(375);
1698
- if (G(() => {
1699
- const T = g.current;
1700
- if (!T) return;
1701
- const X = () => h(Math.max(1, T.clientWidth));
1702
- X();
1703
- const Q = new ResizeObserver(X);
1704
- return Q.observe(T), () => Q.disconnect();
1721
+ const d = R(null), [b, v] = L(375);
1722
+ if (U(() => {
1723
+ const C = d.current;
1724
+ if (!C) return;
1725
+ const H = () => v(Math.max(1, C.clientWidth));
1726
+ H();
1727
+ const Q = new ResizeObserver(H);
1728
+ return Q.observe(C), () => Q.disconnect();
1705
1729
  }, []), e.length === 0)
1706
- return S ? /* @__PURE__ */ a(
1730
+ return N ? /* @__PURE__ */ a(
1707
1731
  "div",
1708
1732
  {
1709
- ref: g,
1710
- className: ["j-orbital-menu", j].filter(Boolean).join(" "),
1733
+ ref: d,
1734
+ className: ["j-orbital-menu", g].filter(Boolean).join(" "),
1711
1735
  style: { transform: `translateY(${c}px)` },
1712
- children: /* @__PURE__ */ a("div", { className: "j-orbital-menu__center", children: S })
1736
+ children: /* @__PURE__ */ a("div", { className: "j-orbital-menu__center", children: N })
1713
1737
  }
1714
1738
  ) : null;
1715
- const m = u, k = f ?? u, N = e.find((T) => T.south) ?? null, M = e.filter((T) => !T.south), R = M.length + (N ? 1 : 0), w = Ue / R, P = N ? Ee + w : Ee, E = v != null && Number.isFinite(v) && v > 0, C = E ? Math.max(Ke, b - de * 2) : jn(R, m, b), A = E ? v / 2 - F - de : k + Ye, K = Math.min(96, Math.max(56, Math.floor(C * 0.5))), B = A - Ge, re = (d && N ? B : A) - F, O = E && v != null ? bn(M, b, v, re, Ne) : gn(M, m, k, P, w, s, Ne), ie = (T) => (X) => {
1716
- X.stopPropagation(), T.south ? r == null || r() : T.submenu ? n == null || n(T.submenu) : T.action && (t == null || t(T.action, T));
1739
+ const p = u, E = h ?? u, k = e.find((C) => C.south) ?? null, B = e.filter((C) => !C.south), j = B.length + (k ? 1 : 0), m = ze / j, A = k ? ke + m : ke, M = _ != null && Number.isFinite(_) && _ > 0, O = M ? Math.max(Ue, b - de * 2) : bn(j, p, b), G = M ? _ / 2 - J - de : E + Ke, K = Math.min(96, Math.max(56, Math.floor(O * 0.5))), T = G - Ge, ne = (f && k ? T : G) - J, P = M && _ != null ? mn(B, b, _, ne, Ne) : hn(B, p, E, A, m, s, Ne), ie = (C) => (H) => {
1740
+ H.stopPropagation(), C.south ? r == null || r() : C.submenu ? n == null || n(C.submenu) : C.action && (t == null || t(C.action, C));
1717
1741
  };
1718
- return /* @__PURE__ */ _(
1742
+ return /* @__PURE__ */ S(
1719
1743
  "div",
1720
1744
  {
1721
- ref: g,
1722
- className: ["j-orbital-menu", j].filter(Boolean).join(" "),
1745
+ ref: d,
1746
+ className: ["j-orbital-menu", g].filter(Boolean).join(" "),
1723
1747
  style: { transform: `translateY(${c}px)` },
1724
1748
  children: [
1725
- S ? /* @__PURE__ */ a("div", { className: "j-orbital-menu__center", children: S }) : null,
1726
- /* @__PURE__ */ _("div", { className: "j-orbital-menu__anchor", role: "menu", "aria-label": p, children: [
1727
- l ? /* @__PURE__ */ a(ae, { x: 0, y: A - 46, hiding: i, interactive: !1, children: l }) : null,
1728
- O.map(({ item: T, x: X, y: Q }, Z) => /* @__PURE__ */ a(
1729
- ae,
1749
+ N ? /* @__PURE__ */ a("div", { className: "j-orbital-menu__center", children: N }) : null,
1750
+ /* @__PURE__ */ S("div", { className: "j-orbital-menu__anchor", role: "menu", "aria-label": w, children: [
1751
+ l ? /* @__PURE__ */ a(oe, { x: 0, y: G - 46, hiding: i, interactive: !1, children: l }) : null,
1752
+ P.map(({ item: C, x: H, y: Q }, Z) => /* @__PURE__ */ a(
1753
+ oe,
1730
1754
  {
1731
- x: X,
1755
+ x: H,
1732
1756
  y: Q,
1733
1757
  hiding: i,
1734
- dim: T.dim,
1735
- children: /* @__PURE__ */ a(Sn, { item: T, onClick: ie(T) })
1758
+ dim: C.dim,
1759
+ children: /* @__PURE__ */ a(yn, { item: C, onClick: ie(C) })
1736
1760
  },
1737
- `${o}-${T.label}-${Z}`
1761
+ `${o}-${C.label}-${Z}`
1738
1762
  )),
1739
- N ? /* @__PURE__ */ a(ae, { x: 0, y: A, hiding: i, children: /* @__PURE__ */ a(
1740
- W,
1763
+ k ? /* @__PURE__ */ a(oe, { x: 0, y: G, hiding: i, children: /* @__PURE__ */ a(
1764
+ z,
1741
1765
  {
1742
- tone: N.tone ?? "orange",
1766
+ tone: k.tone ?? "orange",
1743
1767
  size: "sm",
1744
1768
  fullWidth: !0,
1745
1769
  className: "j-orbital-btn j-orbital-btn--south",
1746
- style: { width: C },
1747
- title: N.tooltip ?? N.label,
1748
- onClick: ie(N),
1770
+ style: { width: O },
1771
+ title: k.tooltip ?? k.label,
1772
+ onClick: ie(k),
1749
1773
  role: "menuitem",
1750
- children: N.label
1774
+ children: k.label
1751
1775
  }
1752
1776
  ) }) : null,
1753
- N && d ? /* @__PURE__ */ _(Ve, { children: [
1754
- /* @__PURE__ */ a(ae, { x: -(C / 2) + K / 2, y: B, hiding: i, children: /* @__PURE__ */ a(Ae, { label: "<", title: "Previous page", width: K, onClick: x }) }),
1755
- /* @__PURE__ */ a(ae, { x: C / 2 - K / 2, y: B, hiding: i, children: /* @__PURE__ */ a(Ae, { label: ">", title: "Next page", width: K, onClick: y }) })
1777
+ k && f ? /* @__PURE__ */ S(Ze, { children: [
1778
+ /* @__PURE__ */ a(oe, { x: -(O / 2) + K / 2, y: T, hiding: i, children: /* @__PURE__ */ a(Ee, { label: "<", title: "Previous page", width: K, onClick: y }) }),
1779
+ /* @__PURE__ */ a(oe, { x: O / 2 - K / 2, y: T, hiding: i, children: /* @__PURE__ */ a(Ee, { label: ">", title: "Next page", width: K, onClick: x }) })
1756
1780
  ] }) : null
1757
1781
  ] })
1758
1782
  ]
1759
1783
  }
1760
1784
  );
1761
1785
  }
1762
- function ae({
1786
+ function oe({
1763
1787
  x: e,
1764
1788
  y: t,
1765
1789
  hiding: n,
@@ -1782,15 +1806,15 @@ function ae({
1782
1806
  }
1783
1807
  );
1784
1808
  }
1785
- function Sn({
1809
+ function yn({
1786
1810
  item: e,
1787
1811
  onClick: t
1788
1812
  }) {
1789
1813
  if (e.badge)
1790
- return /* @__PURE__ */ a(cn, { status: e.badge.status, label: e.badge.label, title: e.tooltip });
1814
+ return /* @__PURE__ */ a(sn, { status: e.badge.status, label: e.badge.label, title: e.tooltip });
1791
1815
  const n = Xe(e);
1792
- return /* @__PURE__ */ _(
1793
- W,
1816
+ return /* @__PURE__ */ S(
1817
+ z,
1794
1818
  {
1795
1819
  tone: e.tone ?? (n ? "orange" : "red"),
1796
1820
  size: "sm",
@@ -1809,14 +1833,14 @@ function Sn({
1809
1833
  }
1810
1834
  );
1811
1835
  }
1812
- function Ae({
1836
+ function Ee({
1813
1837
  label: e,
1814
1838
  title: t,
1815
1839
  width: n,
1816
1840
  onClick: r
1817
1841
  }) {
1818
1842
  return /* @__PURE__ */ a(
1819
- W,
1843
+ z,
1820
1844
  {
1821
1845
  tone: "blue",
1822
1846
  size: "sm",
@@ -1831,19 +1855,19 @@ function Ae({
1831
1855
  }
1832
1856
  );
1833
1857
  }
1834
- const Ce = 200, kn = 320, se = { stack: [], page: 0, breadcrumb: [], closing: !1 };
1835
- function Ze() {
1858
+ const Ae = 200, Sn = 320, se = { stack: [], page: 0, breadcrumb: [], closing: !1 };
1859
+ function He() {
1836
1860
  let e = se, t = -1, n = 0, r = null;
1837
1861
  const o = /* @__PURE__ */ new Set(), i = () => o.forEach((c) => c()), s = (c) => {
1838
1862
  e = { ...e, ...c }, i();
1839
1863
  }, u = () => {
1840
1864
  r !== null && (clearTimeout(r), r = null);
1841
- }, f = (c, l) => {
1865
+ }, h = (c, l) => {
1842
1866
  u(), r = setTimeout(() => {
1843
1867
  r = null, c();
1844
1868
  }, l);
1845
- }, v = () => {
1846
- u(), s({ closing: !0 }), f(() => s({ ...se }), kn);
1869
+ }, _ = () => {
1870
+ u(), s({ closing: !0 }), h(() => s({ ...se }), Sn);
1847
1871
  };
1848
1872
  return {
1849
1873
  subscribe: (c) => (o.add(c), () => o.delete(c)),
@@ -1851,21 +1875,21 @@ function Ze() {
1851
1875
  open: (c = "main") => {
1852
1876
  e.stack.length === 1 && e.stack[0] === c && e.page === 0 || (u(), s({ stack: [c], page: 0, breadcrumb: [], closing: !1 }));
1853
1877
  },
1854
- close: v,
1878
+ close: _,
1855
1879
  back: () => {
1856
1880
  if (e.stack.length <= 1) {
1857
- s({ breadcrumb: [] }), v();
1881
+ s({ breadcrumb: [] }), _();
1858
1882
  return;
1859
1883
  }
1860
- u(), s({ breadcrumb: e.breadcrumb.slice(0, -1), closing: !0 }), f(
1884
+ u(), s({ breadcrumb: e.breadcrumb.slice(0, -1), closing: !0 }), h(
1861
1885
  () => s({ stack: e.stack.slice(0, -1), page: 0, closing: !1 }),
1862
- Ce
1886
+ Ae
1863
1887
  );
1864
1888
  },
1865
1889
  navigateTo: (c) => {
1866
- u(), s({ breadcrumb: [...e.breadcrumb, c], closing: !0 }), f(
1890
+ u(), s({ breadcrumb: [...e.breadcrumb, c], closing: !0 }), h(
1867
1891
  () => s({ stack: [...e.stack, c], page: 0, closing: !1 }),
1868
- Ce
1892
+ Ae
1869
1893
  );
1870
1894
  },
1871
1895
  nextPage: (c) => {
@@ -1880,17 +1904,17 @@ function Ze() {
1880
1904
  u(), t = -1, n = 0, s({ ...se });
1881
1905
  },
1882
1906
  signalIncomingResults: ({ count: c, topScore: l }) => {
1883
- let d = !1;
1884
- c > 0 && l !== void 0 && l > t && (d = e.stack.length > 1), c > 0 && c > n && (d = d || e.stack.length > 0), t = c > 0 && l !== void 0 ? l : -1, n = c, d && v();
1907
+ let f = !1;
1908
+ c > 0 && l !== void 0 && l > t && (f = e.stack.length > 1), c > 0 && c > n && (f = f || e.stack.length > 0), t = c > 0 && l !== void 0 ? l : -1, n = c, f && _();
1885
1909
  }
1886
1910
  };
1887
1911
  }
1888
- const wn = Ze();
1889
- function En({
1912
+ const xn = He();
1913
+ function wn({
1890
1914
  root: e = "main",
1891
- store: t = wn
1915
+ store: t = xn
1892
1916
  } = {}) {
1893
- const n = Qe(t.subscribe, t.getState, () => se), r = H(() => t.open(e), [t, e]), o = H(() => {
1917
+ const n = qe(t.subscribe, t.getState, () => se), r = X(() => t.open(e), [t, e]), o = X(() => {
1894
1918
  const { stack: i, closing: s } = t.getState();
1895
1919
  i.length === 0 && !s ? t.open(e) : t.close();
1896
1920
  }, [t, e]);
@@ -1912,17 +1936,17 @@ function En({
1912
1936
  [n, e, r, o, t]
1913
1937
  );
1914
1938
  }
1915
- const Nn = new URL("../assets/jammy-seed-mascot-BdoW3O33.png", import.meta.url).href, An = Nn;
1916
- function Cn(e) {
1939
+ const kn = new URL("../assets/jammy-seed-mascot-BdoW3O33.png", import.meta.url).href, Nn = kn;
1940
+ function En(e) {
1917
1941
  return (t) => {
1918
1942
  (t.key === "Enter" || t.key === " ") && (t.preventDefault(), e());
1919
1943
  };
1920
1944
  }
1921
- const Te = 14;
1922
- function Tn(e) {
1923
- return e == null || !Number.isFinite(e) || e <= 0 ? Te : Math.max(2, Math.min(Te, vn(e)));
1945
+ const Ce = 14;
1946
+ function An(e) {
1947
+ return e == null || !Number.isFinite(e) || e <= 0 ? Ce : Math.max(2, Math.min(Ce, gn(e)));
1924
1948
  }
1925
- function Nr({
1949
+ function Cr({
1926
1950
  mood: e = "idle",
1927
1951
  size: t = 96,
1928
1952
  menuItems: n,
@@ -1931,48 +1955,48 @@ function Nr({
1931
1955
  maxOrbitRadius: i,
1932
1956
  orbitBoxHeight: s,
1933
1957
  orbitBoxWidth: u,
1934
- baseOrbitRadius: f = 90,
1935
- menuHidden: v = !1,
1958
+ baseOrbitRadius: h = 90,
1959
+ menuHidden: _ = !1,
1936
1960
  closeLabel: c = "Close",
1937
1961
  orbitalStore: l,
1938
- renderImage: d,
1939
- className: x = "",
1940
- ...y
1962
+ renderImage: f,
1963
+ className: y = "",
1964
+ ...x
1941
1965
  }) {
1942
- const [S] = L(Ze), j = En({ store: l ?? S }), p = te(
1966
+ const [N] = L(He), g = wn({ store: l ?? N }), w = te(
1943
1967
  () => r ?? (n ? () => n : null),
1944
1968
  [r, n]
1945
- ), g = p != null && !v, b = () => {
1946
- g && j.toggle();
1947
- }, h = e === "happy" ? "jammy-happy" : e === "surprised" ? "jammy-shake" : "jammy-idle", m = g && (j.isOpen || j.isClosing), k = m && p ? p(j.stack) : [], N = Tn(s), M = Math.max(1, Math.ceil(k.length / N)), R = Math.min(Math.max(0, j.page), M - 1), w = k.slice(R * N, (R + 1) * N), P = {
1948
- label: j.canGoBack ? "Back" : c,
1969
+ ), d = w != null && !_, b = () => {
1970
+ d && g.toggle();
1971
+ }, v = e === "happy" ? "jammy-happy" : e === "surprised" ? "jammy-shake" : "jammy-idle", p = d && (g.isOpen || g.isClosing), E = p && w ? w(g.stack) : [], k = An(s), B = Math.max(1, Math.ceil(E.length / k)), j = Math.min(Math.max(0, g.page), B - 1), m = E.slice(j * k, (j + 1) * k), A = {
1972
+ label: g.canGoBack ? "Back" : c,
1949
1973
  south: !0
1950
- }, E = m ? [...w, P] : [], C = yn(
1951
- _n(t, w.length, f),
1974
+ }, M = p ? [...m, A] : [], O = jn(
1975
+ vn(t, m.length, h),
1952
1976
  t,
1953
1977
  i
1954
- ), A = /* @__PURE__ */ a(
1978
+ ), G = /* @__PURE__ */ a(
1955
1979
  "div",
1956
1980
  {
1957
- role: g ? "button" : void 0,
1958
- tabIndex: g ? 0 : void 0,
1981
+ role: d ? "button" : void 0,
1982
+ tabIndex: d ? 0 : void 0,
1959
1983
  onClick: b,
1960
- onKeyDown: g ? Cn(b) : void 0,
1984
+ onKeyDown: d ? En(b) : void 0,
1961
1985
  "aria-label": "Jammy mascot",
1962
- "aria-expanded": g ? j.isOpen : void 0,
1963
- className: g ? "j-mascot__hit j-mascot__hit--interactive" : "j-mascot__hit",
1964
- children: d ? d({ size: t }) : /* @__PURE__ */ a("img", { src: An, alt: "Jammy", draggable: !1, className: "j-mascot__img" })
1986
+ "aria-expanded": d ? g.isOpen : void 0,
1987
+ className: d ? "j-mascot__hit j-mascot__hit--interactive" : "j-mascot__hit",
1988
+ children: f ? f({ size: t }) : /* @__PURE__ */ a("img", { src: Nn, alt: "Jammy", draggable: !1, className: "j-mascot__img" })
1965
1989
  }
1966
1990
  );
1967
- return /* @__PURE__ */ _(
1991
+ return /* @__PURE__ */ S(
1968
1992
  "div",
1969
1993
  {
1970
- className: ["j-mascot", h, x].filter(Boolean).join(" "),
1994
+ className: ["j-mascot", v, y].filter(Boolean).join(" "),
1971
1995
  style: { "--j-mascot-size": `${t}px` },
1972
- ...y,
1996
+ ...x,
1973
1997
  children: [
1974
- A,
1975
- m ? /* @__PURE__ */ a(
1998
+ G,
1999
+ p ? /* @__PURE__ */ a(
1976
2000
  "div",
1977
2001
  {
1978
2002
  className: "j-mascot__orbit",
@@ -1981,22 +2005,22 @@ function Nr({
1981
2005
  "--j-orbit-h": s != null ? `${s}px` : void 0
1982
2006
  },
1983
2007
  children: /* @__PURE__ */ a(
1984
- xn,
2008
+ _n,
1985
2009
  {
1986
- items: E,
1987
- currentMenu: j.currentMenu,
1988
- closing: j.isClosing,
2010
+ items: M,
2011
+ currentMenu: g.currentMenu,
2012
+ closing: g.isClosing,
1989
2013
  mascotSize: t,
1990
- radius: C,
2014
+ radius: O,
1991
2015
  boxHeight: s,
1992
- showPageControls: k.length > N,
1993
- onPagePrev: () => j.prevPage(M),
1994
- onPageNext: () => j.nextPage(M),
1995
- breadcrumb: j.breadcrumb.length > 0 ? /* @__PURE__ */ a(U, { size: "xs", tone: "grey", children: j.breadcrumb.join(" / ") }) : null,
1996
- onNavigate: j.navigateTo,
1997
- onBack: j.back,
1998
- onAction: (K, B) => {
1999
- o == null || o(K, B), j.close();
2016
+ showPageControls: E.length > k,
2017
+ onPagePrev: () => g.prevPage(B),
2018
+ onPageNext: () => g.nextPage(B),
2019
+ breadcrumb: g.breadcrumb.length > 0 ? /* @__PURE__ */ a(W, { size: "xs", tone: "grey", children: g.breadcrumb.join(" / ") }) : null,
2020
+ onNavigate: g.navigateTo,
2021
+ onBack: g.back,
2022
+ onAction: (K, T) => {
2023
+ o == null || o(K, T), g.close();
2000
2024
  }
2001
2025
  }
2002
2026
  )
@@ -2006,248 +2030,245 @@ function Nr({
2006
2030
  }
2007
2031
  );
2008
2032
  }
2009
- const Le = 3, he = 220;
2010
- function Ar({
2033
+ const Cn = 6, Tn = 0.2, Te = "input, textarea, select, [contenteditable='true'], [data-no-swipe]";
2034
+ function Ln() {
2035
+ return typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
2036
+ }
2037
+ function Tr({
2011
2038
  children: e,
2012
- onDecide: t,
2013
- width: n = 300,
2014
- height: r = 420,
2015
- threshold: o = 90
2039
+ index: t,
2040
+ defaultIndex: n = 0,
2041
+ onPageChange: r,
2042
+ height: o = "100%",
2043
+ "aria-label": i = "Pages"
2016
2044
  }) {
2017
- const i = et.toArray(e), [s, u] = L(0), [f, v] = L(0), [c, l] = L(!1), [d, x] = L(null), [y, S] = L([]), j = $(0), p = $(null);
2018
- G(
2045
+ const s = Qe.toArray(e), u = s.length, [h, _] = L(n), c = Math.max(0, Math.min(t ?? h, Math.max(0, u - 1))), l = R(null), f = R(null), y = R(null), x = R(!1), [N, g] = L(!1), w = X((j) => {
2046
+ const m = l.current;
2047
+ m && m.scrollTo({ left: j * m.clientWidth, behavior: Ln() ? "auto" : "smooth" });
2048
+ }, []), d = X(
2049
+ (j) => w(Math.max(0, Math.min(j, u - 1))),
2050
+ [u, w]
2051
+ ), b = () => {
2052
+ var j;
2053
+ (j = y.current) != null && j.active || (f.current !== null && cancelAnimationFrame(f.current), f.current = requestAnimationFrame(() => {
2054
+ f.current = null;
2055
+ const m = l.current;
2056
+ if (!m || m.clientWidth === 0) return;
2057
+ const A = Math.round(m.scrollLeft / m.clientWidth);
2058
+ A !== c && (_(A), r == null || r(A));
2059
+ }));
2060
+ };
2061
+ U(
2019
2062
  () => () => {
2020
- p.current && clearTimeout(p.current);
2063
+ f.current !== null && cancelAnimationFrame(f.current);
2021
2064
  },
2022
2065
  []
2023
- );
2024
- const g = i.length - s, b = H(
2025
- (E) => {
2026
- if (d || s >= i.length) return;
2027
- const C = s;
2028
- x(E), l(!1), t == null || t(C, E), p.current = setTimeout(() => {
2029
- S((A) => [...A, { index: C, direction: E }]), u(C + 1), x(null), v(0);
2030
- }, he);
2031
- },
2032
- [i.length, s, d, t]
2033
- ), h = H(() => {
2034
- if (d || y.length === 0) return;
2035
- const E = y[y.length - 1];
2036
- S((C) => C.slice(0, -1)), u(E.index), v(0);
2037
- }, [d, y]), m = (E) => {
2038
- d || (E.currentTarget.setPointerCapture(E.pointerId), j.current = E.clientX, l(!0));
2039
- }, k = (E) => {
2040
- !c || d || v(E.clientX - j.current);
2041
- }, N = () => {
2042
- !c || d || (l(!1), Math.abs(f) >= o ? b(f > 0 ? "keep" : "pass") : v(0));
2043
- }, M = (E) => {
2044
- E.key === "ArrowRight" && b("keep"), E.key === "ArrowLeft" && b("pass"), E.key === "Backspace" && h();
2045
- }, R = d ? d === "keep" ? n * 2 : -n * 2 : f, w = Math.max(-14, Math.min(14, R * 0.05)), P = Math.abs(f) >= o ? f > 0 ? "keep" : "pass" : null;
2046
- return /* @__PURE__ */ _(
2066
+ ), U(() => {
2067
+ if (t === void 0) return;
2068
+ const j = l.current;
2069
+ !j || j.clientWidth === 0 || Math.round(j.scrollLeft / j.clientWidth) !== c && w(c);
2070
+ }, [t, c, w]);
2071
+ const v = (j) => {
2072
+ if (j.pointerType !== "mouse" || j.button !== 0 || j.target.closest(Te)) return;
2073
+ const m = l.current;
2074
+ m && (y.current = { startX: j.clientX, startScroll: m.scrollLeft, startPage: c, active: !1 });
2075
+ }, p = (j) => {
2076
+ var O;
2077
+ const m = y.current, A = l.current;
2078
+ if (!m || !A) return;
2079
+ const M = j.clientX - m.startX;
2080
+ if (!m.active) {
2081
+ if (Math.abs(M) < Cn) return;
2082
+ m.active = !0, g(!0), j.currentTarget.setPointerCapture(j.pointerId);
2083
+ }
2084
+ (O = window.getSelection()) == null || O.removeAllRanges(), A.scrollLeft = m.startScroll - M;
2085
+ }, E = (j) => {
2086
+ const m = y.current, A = l.current;
2087
+ if (y.current = null, !(m != null && m.active) || !A) return;
2088
+ x.current = !0, g(!1);
2089
+ const M = j.clientX - m.startX, O = Math.abs(M) >= A.clientWidth * Tn;
2090
+ d(O ? m.startPage + (M < 0 ? 1 : -1) : m.startPage);
2091
+ };
2092
+ return /* @__PURE__ */ S(
2047
2093
  "div",
2048
2094
  {
2049
- style: {
2050
- display: "grid",
2051
- gridTemplateRows: `${r}px auto auto`,
2052
- gap: 14,
2053
- justifyItems: "center"
2054
- },
2095
+ role: "region",
2096
+ "aria-roledescription": "carousel",
2097
+ "aria-label": i,
2098
+ style: { display: "grid", gridTemplateRows: "minmax(0, 1fr) auto", gap: 10, height: o, minHeight: 0 },
2055
2099
  children: [
2056
- /* @__PURE__ */ _(
2100
+ /* @__PURE__ */ S(
2057
2101
  "div",
2058
2102
  {
2059
- role: "group",
2060
- "aria-label": "Seed triage deck",
2103
+ ref: l,
2061
2104
  tabIndex: 0,
2062
- onKeyDown: M,
2105
+ onScroll: b,
2106
+ onKeyDown: (j) => {
2107
+ j.target.closest(Te) || (j.key === "ArrowRight" && d(c + 1), j.key === "ArrowLeft" && d(c - 1));
2108
+ },
2109
+ onPointerDown: v,
2110
+ onPointerMove: p,
2111
+ onPointerUp: E,
2112
+ onPointerCancel: E,
2113
+ onClickCapture: (j) => {
2114
+ x.current && (x.current = !1, j.preventDefault(), j.stopPropagation());
2115
+ },
2063
2116
  style: {
2064
- position: "relative",
2065
- width: n,
2066
- height: r,
2067
- touchAction: "none",
2117
+ display: "grid",
2118
+ gridAutoFlow: "column",
2119
+ gridAutoColumns: "100%",
2120
+ minHeight: 0,
2121
+ overflowX: "auto",
2122
+ overflowY: "hidden",
2123
+ overscrollBehaviorX: "contain",
2124
+ // Snap is off while a mouse drives the scroll position, or it fights every pixel.
2125
+ scrollSnapType: N ? "none" : "x mandatory",
2126
+ scrollbarWidth: "none",
2127
+ cursor: N ? "grabbing" : void 0,
2128
+ userSelect: N ? "none" : void 0,
2068
2129
  outline: "none"
2069
2130
  },
2070
2131
  children: [
2071
- g === 0 ? /* @__PURE__ */ a("div", { style: { position: "absolute", inset: 0, display: "grid", placeItems: "center" }, children: /* @__PURE__ */ a(U, { size: "sm", tone: "grey", children: "No seeds left" }) }) : null,
2072
- i.slice(s, s + Le).map((E, C) => {
2073
- const A = C === 0, K = A ? `translate3d(${R}px, 0, 0) rotate(${w}deg)` : `translate3d(0, ${C * 9}px, 0) scale(${1 - C * 0.045})`;
2074
- return /* @__PURE__ */ _(
2075
- "div",
2076
- {
2077
- onPointerDown: A ? m : void 0,
2078
- onPointerMove: A ? k : void 0,
2079
- onPointerUp: A ? N : void 0,
2080
- onPointerCancel: A ? N : void 0,
2081
- style: {
2082
- position: "absolute",
2083
- inset: 0,
2084
- zIndex: Le - C,
2085
- transform: K,
2086
- transition: c && A ? "none" : `transform ${he}ms ease-out, opacity ${he}ms ease-out`,
2087
- opacity: A && d ? 0 : 1,
2088
- cursor: A ? c ? "grabbing" : "grab" : "default",
2089
- overflow: "hidden"
2090
- },
2091
- children: [
2092
- E,
2093
- A && P ? /* @__PURE__ */ a(
2094
- "div",
2095
- {
2096
- style: {
2097
- position: "absolute",
2098
- top: 14,
2099
- left: P === "keep" ? 14 : void 0,
2100
- right: P === "pass" ? 14 : void 0,
2101
- padding: "4px 10px",
2102
- borderRadius: 4,
2103
- border: `2px solid ${P === "keep" ? "#3fa34d" : "#c0392b"}`,
2104
- transform: `rotate(${P === "keep" ? -8 : 8}deg)`,
2105
- pointerEvents: "none"
2106
- },
2107
- children: /* @__PURE__ */ a(U, { size: "xs", tone: P === "keep" ? "green" : "red", children: P === "keep" ? "Keep" : "Pass" })
2108
- }
2109
- ) : null
2110
- ]
2132
+ u === 0 ? /* @__PURE__ */ a("div", { style: { display: "grid", placeItems: "center" }, children: /* @__PURE__ */ a(W, { size: "sm", tone: "grey", children: "Nothing here" }) }) : null,
2133
+ s.map((j, m) => /* @__PURE__ */ a(
2134
+ "div",
2135
+ {
2136
+ role: "group",
2137
+ "aria-roledescription": "slide",
2138
+ "aria-label": `${m + 1} of ${u}`,
2139
+ style: {
2140
+ minWidth: 0,
2141
+ minHeight: 0,
2142
+ overflowY: "auto",
2143
+ scrollSnapAlign: "start",
2144
+ scrollSnapStop: "always"
2111
2145
  },
2112
- s + C
2113
- );
2114
- })
2146
+ children: j
2147
+ },
2148
+ m
2149
+ ))
2115
2150
  ]
2116
2151
  }
2117
2152
  ),
2118
- /* @__PURE__ */ _("div", { style: { display: "grid", gridAutoFlow: "column", gap: 16, alignItems: "center" }, children: [
2153
+ /* @__PURE__ */ S("div", { style: { display: "grid", gridAutoFlow: "column", gap: 12, alignItems: "center", justifyContent: "center" }, children: [
2119
2154
  /* @__PURE__ */ a(
2120
- ne,
2155
+ ae,
2121
2156
  {
2122
- "aria-label": "Pass",
2123
- title: "Pass (left arrow)",
2124
- tone: "destructive",
2125
- onClick: () => b("pass"),
2126
- disabled: g === 0,
2157
+ "aria-label": "Previous",
2158
+ title: "Previous (left arrow)",
2159
+ size: "sm",
2160
+ onClick: () => d(c - 1),
2161
+ disabled: c <= 0,
2127
2162
  children: /* @__PURE__ */ a(De, {})
2128
2163
  }
2129
2164
  ),
2165
+ /* @__PURE__ */ a(W, { size: "micro", tone: "grey", children: u === 0 ? "0 / 0" : `${c + 1} / ${u}` }),
2130
2166
  /* @__PURE__ */ a(
2131
- ne,
2167
+ ae,
2132
2168
  {
2133
- "aria-label": "Undo",
2134
- title: "Undo (backspace)",
2169
+ "aria-label": "Next",
2170
+ title: "Next (right arrow)",
2135
2171
  size: "sm",
2136
- onClick: h,
2137
- disabled: y.length === 0,
2138
- children: /* @__PURE__ */ a(kt, {})
2139
- }
2140
- ),
2141
- /* @__PURE__ */ a(
2142
- ne,
2143
- {
2144
- "aria-label": "Keep",
2145
- title: "Keep (right arrow)",
2146
- onClick: () => b("keep"),
2147
- disabled: g === 0,
2148
- children: /* @__PURE__ */ a(Ie, {})
2172
+ onClick: () => d(c + 1),
2173
+ disabled: c >= u - 1,
2174
+ children: /* @__PURE__ */ a(Oe, {})
2149
2175
  }
2150
2176
  )
2151
- ] }),
2152
- /* @__PURE__ */ _(U, { size: "micro", tone: "grey", children: [
2153
- g,
2154
- " of ",
2155
- i.length,
2156
- " left"
2157
2177
  ] })
2158
2178
  ]
2159
2179
  }
2160
2180
  );
2161
2181
  }
2162
2182
  export {
2163
- yr as $,
2164
- pe as A,
2165
- tr as B,
2166
- lr as C,
2167
- ar as D,
2168
- or as E,
2169
- Ue as F,
2170
- ir as G,
2183
+ xr as $,
2184
+ fe as A,
2185
+ er as B,
2186
+ nr as C,
2187
+ cr as D,
2188
+ ir as E,
2189
+ ze as F,
2190
+ ar as G,
2171
2191
  sr as H,
2172
- rr as I,
2173
- Yn as J,
2174
- nr as K,
2175
- Be as L,
2176
- pt as M,
2177
- br as N,
2178
- zn as O,
2179
- Hn as P,
2180
- gr as Q,
2181
- Sr as R,
2182
- Kn as S,
2183
- er as T,
2184
- gt as U,
2185
- cn as V,
2186
- Ar as W,
2187
- cr as X,
2188
- U as Y,
2189
- un as Z,
2190
- Vn as _,
2191
- jr as a,
2192
+ lr as I,
2193
+ Xn as J,
2194
+ or as K,
2195
+ rr as L,
2196
+ Re as M,
2197
+ dt as N,
2198
+ jr as O,
2199
+ Wn as P,
2200
+ Hn as Q,
2201
+ vr as R,
2202
+ kr as S,
2203
+ Kn as T,
2204
+ tr as U,
2205
+ mt as V,
2206
+ sn as W,
2207
+ ur as X,
2208
+ W as Y,
2209
+ ln as Z,
2210
+ qn as _,
2211
+ yr as a,
2192
2212
  We as a0,
2193
- Ke as a1,
2194
- kn as a2,
2195
- Ce as a3,
2213
+ Ue as a1,
2214
+ Sn as a2,
2215
+ Ae as a3,
2196
2216
  Ge as a4,
2197
- F as a5,
2198
- Ee as a6,
2217
+ J as a5,
2218
+ ke as a6,
2199
2219
  de as a7,
2200
- Ye as a8,
2201
- vn as a9,
2202
- yn as aa,
2203
- Ze as ab,
2204
- nn as ac,
2205
- rn as ad,
2206
- He as ae,
2207
- wn as af,
2208
- bn as ag,
2209
- gn as ah,
2210
- Er as ai,
2211
- mn as aj,
2212
- _n as ak,
2213
- jn as al,
2214
- En as am,
2215
- dr as an,
2216
- Gn as ao,
2217
- I as ap,
2218
- Dn as aq,
2219
- Ie as ar,
2220
+ Ke as a8,
2221
+ gn as a9,
2222
+ jn as aa,
2223
+ He as ab,
2224
+ en as ac,
2225
+ tn as ad,
2226
+ Ye as ae,
2227
+ xn as af,
2228
+ mn as ag,
2229
+ hn as ah,
2230
+ Ar as ai,
2231
+ pn as aj,
2232
+ vn as ak,
2233
+ bn as al,
2234
+ wn as am,
2235
+ fr as an,
2236
+ Yn as ao,
2237
+ F as ap,
2238
+ In as aq,
2239
+ At as ar,
2220
2240
  $n as as,
2221
- In as at,
2222
- De as au,
2223
- Jn as av,
2224
- Fn as aw,
2225
- At as ax,
2241
+ Jn as at,
2242
+ xt as au,
2243
+ Fn as av,
2244
+ zn as aw,
2245
+ Et as ax,
2226
2246
  pr as ay,
2227
- vr as b,
2228
- fe as c,
2247
+ gr as az,
2248
+ _r as b,
2249
+ pe as c,
2229
2250
  D as d,
2230
- W as e,
2231
- Mn as f,
2232
- hr as g,
2233
- Rt as h,
2234
- kr as i,
2235
- mr as j,
2236
- wr as k,
2237
- qn as l,
2238
- xr as m,
2239
- ne as n,
2240
- Xn as o,
2241
- fr as p,
2251
+ z as e,
2252
+ On as f,
2253
+ mr as g,
2254
+ Lt as h,
2255
+ Nr as i,
2256
+ br as j,
2257
+ Er as k,
2258
+ Qn as l,
2259
+ wr as m,
2260
+ ae as n,
2261
+ Zn as o,
2262
+ hr as p,
2242
2263
  Un as q,
2243
- _r as r,
2244
- Zn as s,
2245
- ur as t,
2246
- Nr as u,
2247
- Wn as v,
2248
- xn as w,
2249
- en as x,
2250
- On as y,
2251
- Qn as z
2264
+ Sr as r,
2265
+ Vn as s,
2266
+ dr as t,
2267
+ Cr as u,
2268
+ Gn as v,
2269
+ _n as w,
2270
+ qt as x,
2271
+ Tr as y,
2272
+ Dn as z
2252
2273
  };
2253
- //# sourceMappingURL=JimboSwipeDeck-BYXDxmy7.js.map
2274
+ //# sourceMappingURL=JimboPager-BBzrmMrB.js.map