@pieai/swimmer-ui-kit 2.13.0 → 2.14.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.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, s as p, t as m, u as h } from "./liquidGooeySpring-WwyGKGPL.js";
1
+ import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, s as p, t as m, u as h } from "./liquidGooeySpring-r7c1S2ZB.js";
2
2
  import { cloneElement as g, createContext as _, createElement as v, forwardRef as y, isValidElement as b, useCallback as x, useContext as S, useEffect as C, useId as w, useLayoutEffect as T, useMemo as E, useRef as D, useState as O } from "react";
3
3
  import { Fragment as k, jsx as A, jsxs as j } from "react/jsx-runtime";
4
4
  import { createPortal as ee } from "react-dom";
@@ -2518,33 +2518,52 @@ function cn({ registry: e, getGroup: t }) {
2518
2518
  }
2519
2519
  //#endregion
2520
2520
  //#region src/LiquidGroup.tsx
2521
- var ln = _(null);
2522
- function un() {
2523
- let e = S(ln);
2521
+ function ln({ id: e, fill: t }) {
2522
+ let n = t.bottom ?? t.top, r = Math.round(Math.min(1, Math.max(0, t.sheen ?? .3)) * 100);
2523
+ return /* @__PURE__ */ A("defs", { children: /* @__PURE__ */ A("linearGradient", {
2524
+ id: e,
2525
+ x1: "0",
2526
+ y1: "0",
2527
+ x2: "0",
2528
+ y2: "1",
2529
+ children: [
2530
+ [0, `color-mix(in srgb, ${t.top}, white ${r}%)`],
2531
+ [.16, `color-mix(in srgb, ${t.top}, white ${Math.round(r / 2)}%)`],
2532
+ [.5, `color-mix(in srgb, ${t.top}, ${n})`],
2533
+ [1, `color-mix(in srgb, ${n}, black 5%)`]
2534
+ ].map(([e, t]) => /* @__PURE__ */ A("stop", {
2535
+ offset: e,
2536
+ style: { stopColor: t }
2537
+ }, e))
2538
+ }) });
2539
+ }
2540
+ var un = _(null);
2541
+ function dn() {
2542
+ let e = S(un);
2524
2543
  if (!e) throw Error("<LiquidGroup.Item> must be rendered inside <LiquidGroup>.");
2525
2544
  return e;
2526
2545
  }
2527
- function dn(e) {
2546
+ function fn(e) {
2528
2547
  return e.replace(/[^a-zA-Z0-9_-]/g, "");
2529
2548
  }
2530
- function fn(e, t) {
2549
+ function pn(e, t) {
2531
2550
  return Number.isFinite(e) ? e : t;
2532
2551
  }
2533
- function pn(e, t) {
2552
+ function mn(e, t) {
2534
2553
  if (!e) return e;
2535
2554
  let n = /^var\((--[\w-]+)\)$/.exec(e.trim());
2536
2555
  if (!n || !t) return e;
2537
2556
  let r = t.ownerDocument.defaultView;
2538
2557
  return r && r.getComputedStyle(t).getPropertyValue(n[1] ?? "").trim() || e;
2539
2558
  }
2540
- function mn(e, t, n) {
2541
- let r = pn(e, t), i = Number.parseFloat(r ?? "");
2559
+ function hn(e, t, n) {
2560
+ let r = mn(e, t), i = Number.parseFloat(r ?? "");
2542
2561
  return Number.isFinite(i) ? i : n;
2543
2562
  }
2544
- function hn(...e) {
2563
+ function gn(...e) {
2545
2564
  return e.filter(Boolean).join(" ") || void 0;
2546
2565
  }
2547
- function gn(e) {
2566
+ function _n(e) {
2548
2567
  let t = { ...e };
2549
2568
  for (let e of [
2550
2569
  "children",
@@ -2565,26 +2584,26 @@ function gn(e) {
2565
2584
  ]) delete t[e];
2566
2585
  return t;
2567
2586
  }
2568
- var _n = y(function({ blur: t = 6, contrast: n = 18, gloss: r, liquidFinish: a, fill: o = "var(--game-ui-surface, var(--game-ui-panel-strong))", filterPadding: s = 24, shadow: l, stroke: u, waviness: d, wavinessFreq: f, wavinessClamp: p, motion: m = "auto", className: g, style: _, children: v, ...y }, b) {
2587
+ var vn = y(function({ blur: t = 6, contrast: n = 18, gloss: r, liquidFinish: a, fill: o = "var(--game-ui-surface, var(--game-ui-panel-strong))", filterPadding: s = 24, shadow: l, stroke: u, waviness: d, wavinessFreq: f, wavinessClamp: p, motion: m = "auto", className: g, style: _, children: v, ...y }, b) {
2569
2588
  let S = D(null), [k, ee] = O(null), [M, te] = O({
2570
2589
  w: 0,
2571
2590
  h: 0
2572
2591
  }), [ne, re] = O({
2573
2592
  waviness: c.waviness,
2574
2593
  wavinessFreq: c.wavinessFreq
2575
- }), [N, ie] = O(0), ae = D(0), oe = e(), se = m === "reduced" || oe, [ce, le] = O(se ? "reduced" : "static"), ue = Math.max(0, fn(t, 6)), de = Math.max(1, fn(n, 18)), P = Math.max(0, fn(s, 24)), fe = Math.max(0, fn(d ?? ne.waviness, c.waviness)), pe = p !== !1 && Math.max(0, fn(p ?? .3, Ee)), me = De(fe, M.w > 0 && M.h > 0 ? Math.min(M.w, M.h) : 0, pe), he = Math.max(0, fn(f ?? ne.wavinessFreq, c.wavinessFreq)), ge = pn(l, S.current), _e = pn(u, S.current), F = E(() => bt(ge), [ge]), ve = E(() => wt(F), [F]), be = E(() => Ct(F), [F]), xe = E(() => xt(_e), [_e]), I = Math.ceil(ue * 3 + P + Tt(ve) + (xe ? xe.width : 0) + me), Se = D(I);
2594
+ }), [N, ie] = O(0), ae = D(0), oe = e(), se = m === "reduced" || oe, [ce, le] = O(se ? "reduced" : "static"), ue = Math.max(0, pn(t, 6)), de = Math.max(1, pn(n, 18)), P = Math.max(0, pn(s, 24)), fe = Math.max(0, pn(d ?? ne.waviness, c.waviness)), pe = p !== !1 && Math.max(0, pn(p ?? .3, Ee)), me = De(fe, M.w > 0 && M.h > 0 ? Math.min(M.w, M.h) : 0, pe), he = Math.max(0, pn(f ?? ne.wavinessFreq, c.wavinessFreq)), ge = mn(l, S.current), _e = mn(u, S.current), F = E(() => bt(ge), [ge]), ve = E(() => wt(F), [F]), be = E(() => Ct(F), [F]), xe = E(() => xt(_e), [_e]), I = Math.ceil(ue * 3 + P + Tt(ve) + (xe ? xe.width : 0) + me), Se = D(I);
2576
2595
  Se.current = I;
2577
2596
  let L = Math.ceil(I + N), R = D(L);
2578
2597
  R.current = L;
2579
- let z = `liquid-gooey-${dn(w())}`, B = x((e) => {
2598
+ let z = `liquid-gooey-${fn(w())}`, B = x((e) => {
2580
2599
  S.current = e, typeof b == "function" ? b(e) : b && (b.current = e);
2581
2600
  }, [b]), V = x((e) => ee(e), []);
2582
2601
  T(() => {
2583
2602
  let e = S.current;
2584
2603
  if (!e) return;
2585
2604
  let t = {
2586
- waviness: Math.max(0, d === void 0 ? mn(ye.waviness, e, c.waviness) : fn(d, c.waviness)),
2587
- wavinessFreq: Math.max(0, f === void 0 ? mn(ye.wavinessFreq, e, c.wavinessFreq) : fn(f, c.wavinessFreq))
2605
+ waviness: Math.max(0, d === void 0 ? hn(ye.waviness, e, c.waviness) : pn(d, c.waviness)),
2606
+ wavinessFreq: Math.max(0, f === void 0 ? hn(ye.wavinessFreq, e, c.wavinessFreq) : pn(f, c.wavinessFreq))
2588
2607
  };
2589
2608
  re((e) => e.waviness === t.waviness && e.wavinessFreq === t.wavinessFreq ? e : t);
2590
2609
  }, [d, f]);
@@ -2616,7 +2635,7 @@ var _n = y(function({ blur: t = 6, contrast: n = 18, gloss: r, liquidFinish: a,
2616
2635
  }, [H, L]), C(() => {
2617
2636
  H.setReducedMotion(se);
2618
2637
  }, [H, se]), C(() => () => H.dispose(), [H]);
2619
- let we = Math.max(1, M.w), Oe = Math.max(1, M.h), U = hn("game-ui-liquid-group", g);
2638
+ let we = Math.max(1, M.w), Oe = Math.max(1, M.h), U = gn("game-ui-liquid-group", g);
2620
2639
  return /* @__PURE__ */ j("div", {
2621
2640
  ...y,
2622
2641
  ref: B,
@@ -2636,34 +2655,41 @@ var _n = y(function({ blur: t = 6, contrast: n = 18, gloss: r, liquidFinish: a,
2636
2655
  focusable: "false",
2637
2656
  style: be ? { filter: be } : void 0,
2638
2657
  viewBox: `0 0 ${we} ${Oe}`,
2639
- children: [/* @__PURE__ */ A("defs", { children: /* @__PURE__ */ A("filter", {
2640
- colorInterpolationFilters: "sRGB",
2641
- filterUnits: "userSpaceOnUse",
2642
- height: Oe + L * 2,
2643
- id: z,
2644
- width: we + L * 2,
2645
- x: -L,
2646
- y: -L,
2647
- children: /* @__PURE__ */ A(h, {
2648
- blur: ue,
2649
- contrast: de,
2650
- gloss: r ?? Te(a, 0),
2651
- shadows: ve,
2652
- stroke: xe,
2653
- waviness: me,
2654
- wavinessFreq: he
2658
+ children: [
2659
+ /* @__PURE__ */ A("defs", { children: /* @__PURE__ */ A("filter", {
2660
+ colorInterpolationFilters: "sRGB",
2661
+ filterUnits: "userSpaceOnUse",
2662
+ height: Oe + L * 2,
2663
+ id: z,
2664
+ width: we + L * 2,
2665
+ x: -L,
2666
+ y: -L,
2667
+ children: /* @__PURE__ */ A(h, {
2668
+ blur: ue,
2669
+ contrast: de,
2670
+ gloss: r ?? Te(a, 0),
2671
+ shadows: ve,
2672
+ stroke: xe,
2673
+ waviness: me,
2674
+ wavinessFreq: he
2675
+ })
2676
+ }) }),
2677
+ typeof o == "string" ? null : /* @__PURE__ */ A(ln, {
2678
+ id: `${z}-fill`,
2679
+ fill: o
2680
+ }),
2681
+ /* @__PURE__ */ A("g", {
2682
+ ref: V,
2683
+ fill: typeof o == "string" ? o : `url(#${z}-fill)`,
2684
+ filter: `url(#${z})`
2655
2685
  })
2656
- }) }), /* @__PURE__ */ A("g", {
2657
- ref: V,
2658
- fill: o,
2659
- filter: `url(#${z})`
2660
- })]
2686
+ ]
2661
2687
  }),
2662
2688
  /* @__PURE__ */ A(cn, {
2663
2689
  registry: Ce,
2664
2690
  getGroup: () => S.current
2665
2691
  }),
2666
- /* @__PURE__ */ A(ln.Provider, {
2692
+ /* @__PURE__ */ A(un.Provider, {
2667
2693
  value: {
2668
2694
  portal: k,
2669
2695
  engine: H,
@@ -2677,17 +2703,17 @@ var _n = y(function({ blur: t = 6, contrast: n = 18, gloss: r, liquidFinish: a,
2677
2703
  })
2678
2704
  ]
2679
2705
  });
2680
- }), vn = y(function({ effect: e, melt: t, dissolve: n, x: r = 0, y: i = 0, scale: a = 1, scaleY: o, transition: s, delay: c, radius: l, blob: u, morph: d, bend: f, observe: p, className: m, style: h, children: g, ..._ }, v) {
2681
- let { portal: y, engine: b, follow: S, imageMelt: O } = un(), M = `liquid-item-${dn(w())}`, te = D(null), ne = D(null), re = D(null), N = D(null), ie = JSON.stringify(n ?? null), ae = n !== void 0 && n !== !1, oe = E(() => {
2706
+ }), yn = y(function({ effect: e, melt: t, dissolve: n, x: r = 0, y: i = 0, scale: a = 1, scaleY: o, transition: s, delay: c, radius: l, blob: u, morph: d, bend: f, observe: p, className: m, style: h, children: g, ..._ }, v) {
2707
+ let { portal: y, engine: b, follow: S, imageMelt: O } = dn(), M = `liquid-item-${fn(w())}`, te = D(null), ne = D(null), re = D(null), N = D(null), ie = JSON.stringify(n ?? null), ae = n !== void 0 && n !== !1, oe = E(() => {
2682
2708
  let t = e === "morph" || e === "bend" ? e : void 0, n = t === "bend", m = e === "bend" || S && d === void 0 && e !== "morph" || ae && d === void 0 && e !== "morph" ? void 0 : d ?? {}, h = {
2683
2709
  ...t === void 0 ? {} : { effect: t },
2684
2710
  ...m === void 0 ? {} : { morph: m },
2685
2711
  ...f === void 0 ? {} : { bend: f },
2686
2712
  ...p === void 0 && !n ? {} : { observe: n || p },
2687
- x: fn(r, 0),
2688
- y: fn(i, 0),
2689
- scale: fn(a, 1),
2690
- ...o === void 0 ? {} : { scaleY: fn(o, 1) }
2713
+ x: pn(r, 0),
2714
+ y: pn(i, 0),
2715
+ scale: pn(a, 1),
2716
+ ...o === void 0 ? {} : { scaleY: pn(o, 1) }
2691
2717
  };
2692
2718
  return s !== void 0 && (h.transition = s), c !== void 0 && (h.delay = c), l !== void 0 && (h.radius = l), u !== void 0 && (h.blob = u), h;
2693
2719
  }, [
@@ -2760,7 +2786,7 @@ var _n = y(function({ blur: t = 6, contrast: n = 18, gloss: r, liquidFinish: a,
2760
2786
  }, []), /* @__PURE__ */ j(k, { children: [/* @__PURE__ */ A("div", {
2761
2787
  ..._,
2762
2788
  ref: se,
2763
- className: hn("game-ui-liquid-item", m),
2789
+ className: gn("game-ui-liquid-item", m),
2764
2790
  style: h,
2765
2791
  children: g
2766
2792
  }), y ? ee(/* @__PURE__ */ A("path", {
@@ -2768,13 +2794,13 @@ var _n = y(function({ blur: t = 6, contrast: n = 18, gloss: r, liquidFinish: a,
2768
2794
  d: "",
2769
2795
  "data-liquid-gooey-blob": ""
2770
2796
  }), y) : null] });
2771
- }), yn = y(function(e, t) {
2772
- let { imageMelt: n } = un();
2773
- if (e.effect !== "melt") return /* @__PURE__ */ A(vn, {
2797
+ }), bn = y(function(e, t) {
2798
+ let { imageMelt: n } = dn();
2799
+ if (e.effect !== "melt") return /* @__PURE__ */ A(yn, {
2774
2800
  ...e,
2775
2801
  ref: t
2776
2802
  });
2777
- let r = gn(e), i = e.children, a = { ...e.melt ?? {} }, o = a.src;
2803
+ let r = _n(e), i = e.children, a = { ...e.melt ?? {} }, o = a.src;
2778
2804
  return delete a.src, /* @__PURE__ */ A(Ht, {
2779
2805
  ...r,
2780
2806
  registry: n,
@@ -2783,16 +2809,16 @@ var _n = y(function({ blur: t = 6, contrast: n = 18, gloss: r, liquidFinish: a,
2783
2809
  ...o === void 0 ? {} : { src: o },
2784
2810
  ...t === void 0 ? {} : { forwardedRef: t }
2785
2811
  });
2786
- }), bn = Object.assign(_n, { Item: yn });
2812
+ }), xn = Object.assign(vn, { Item: bn });
2787
2813
  //#endregion
2788
2814
  //#region src/liquidGooeyForms.ts
2789
2815
  function q(e, t, n) {
2790
2816
  return `0 ${e}px ${t}px color-mix(in srgb, var(--game-ui-shadow-liquid-ink) ${n}%, transparent)`;
2791
2817
  }
2792
- function xn(...e) {
2818
+ function Sn(...e) {
2793
2819
  return e.join(", ");
2794
2820
  }
2795
- var Sn = {
2821
+ var Cn = {
2796
2822
  set: {
2797
2823
  kind: "body",
2798
2824
  summary: "A liquid body firms up and stops being liquid.",
@@ -2803,8 +2829,8 @@ var Sn = {
2803
2829
  lobes: 3,
2804
2830
  gloss: 5,
2805
2831
  filterPadding: 26,
2806
- shadow: xn(q(2, 4, 22), q(9, 18, 22)),
2807
- shadowEngaged: xn(q(2, 4, 26), q(7, 14, 24))
2832
+ shadow: Sn(q(2, 4, 22), q(9, 18, 22)),
2833
+ shadowEngaged: Sn(q(2, 4, 26), q(7, 14, 24))
2808
2834
  },
2809
2835
  groupEngaged: {
2810
2836
  blob: 0,
@@ -2833,8 +2859,8 @@ var Sn = {
2833
2859
  lobes: 3,
2834
2860
  gloss: 5,
2835
2861
  filterPadding: 28,
2836
- shadow: xn(q(2, 4, 22), q(9, 18, 22)),
2837
- shadowEngaged: xn(q(1, 3, 28), q(4, 9, 26))
2862
+ shadow: Sn(q(2, 4, 22), q(9, 18, 22)),
2863
+ shadowEngaged: Sn(q(1, 3, 28), q(4, 9, 26))
2838
2864
  },
2839
2865
  item: {
2840
2866
  effect: "morph",
@@ -2857,8 +2883,8 @@ var Sn = {
2857
2883
  lobes: 3,
2858
2884
  gloss: 5,
2859
2885
  filterPadding: 30,
2860
- shadow: xn(q(2, 4, 22), q(9, 18, 22)),
2861
- shadowEngaged: xn(q(3, 6, 20), q(13, 24, 20))
2886
+ shadow: Sn(q(2, 4, 22), q(9, 18, 22)),
2887
+ shadowEngaged: Sn(q(3, 6, 20), q(13, 24, 20))
2862
2888
  },
2863
2889
  item: {
2864
2890
  effect: "morph",
@@ -2881,8 +2907,8 @@ var Sn = {
2881
2907
  lobes: 3,
2882
2908
  gloss: 5,
2883
2909
  filterPadding: 26,
2884
- shadow: xn(q(16, 28, 15)),
2885
- shadowEngaged: xn(q(2, 4, 26), q(5, 11, 24))
2910
+ shadow: Sn(q(16, 28, 15)),
2911
+ shadowEngaged: Sn(q(2, 4, 26), q(5, 11, 24))
2886
2912
  },
2887
2913
  item: {
2888
2914
  effect: "morph",
@@ -2927,7 +2953,7 @@ var Sn = {
2927
2953
  lobes: 2,
2928
2954
  gloss: 4,
2929
2955
  filterPadding: 26,
2930
- shadow: xn(q(2, 4, 22), q(9, 18, 22))
2956
+ shadow: Sn(q(2, 4, 22), q(9, 18, 22))
2931
2957
  },
2932
2958
  item: {
2933
2959
  effect: "morph",
@@ -2950,7 +2976,7 @@ var Sn = {
2950
2976
  lobes: 3,
2951
2977
  gloss: 4,
2952
2978
  filterPadding: 24,
2953
- shadow: xn(q(2, 4, 22), q(9, 18, 22))
2979
+ shadow: Sn(q(2, 4, 22), q(9, 18, 22))
2954
2980
  },
2955
2981
  item: {
2956
2982
  effect: "morph",
@@ -2973,8 +2999,8 @@ var Sn = {
2973
2999
  lobes: 4,
2974
3000
  gloss: 5,
2975
3001
  filterPadding: 30,
2976
- shadow: xn(q(2, 4, 22), q(9, 18, 22)),
2977
- shadowEngaged: xn(q(2, 7, 15), q(6, 24, 14))
3002
+ shadow: Sn(q(2, 4, 22), q(9, 18, 22)),
3003
+ shadowEngaged: Sn(q(2, 7, 15), q(6, 24, 14))
2978
3004
  },
2979
3005
  item: {
2980
3006
  dissolve: !0,
@@ -3069,15 +3095,15 @@ var Sn = {
3069
3095
  transition: "wobbly"
3070
3096
  }
3071
3097
  }
3072
- }, Cn = Object.keys(Sn);
3073
- function wn(e, t) {
3098
+ }, wn = Object.keys(Cn);
3099
+ function Tn(e, t) {
3074
3100
  return {
3075
- ...Sn[e].group,
3101
+ ...Cn[e].group,
3076
3102
  ...t
3077
3103
  };
3078
3104
  }
3079
- function Tn(e, t) {
3080
- let n = Sn[e].item;
3105
+ function En(e, t) {
3106
+ let n = Cn[e].item;
3081
3107
  return {
3082
3108
  ...n,
3083
3109
  ...t,
@@ -3089,7 +3115,7 @@ function Tn(e, t) {
3089
3115
  }
3090
3116
  //#endregion
3091
3117
  //#region src/LiquidSurface.tsx
3092
- var En = {
3118
+ var Dn = {
3093
3119
  set: {
3094
3120
  scale: .99,
3095
3121
  scaleY: .99,
@@ -3151,54 +3177,57 @@ var En = {
3151
3177
  scaleY: 1,
3152
3178
  y: 0
3153
3179
  }
3154
- }, Dn = { settle: {
3180
+ }, On = { settle: {
3155
3181
  scale: .94,
3156
3182
  scaleY: 1.08,
3157
3183
  y: -8
3158
- } }, On = /* @__PURE__ */ new Set();
3159
- function kn(e) {
3160
- On.has(e) || (On.add(e), console.warn(`LiquidSurface cannot express the '${e}' form: it describes a relationship between sibling items, not one body. Arrange the items in a <LiquidGroup> with liquidFormGroup() instead; LiquidSurface will render a body that never moves.`));
3161
- }
3162
- function An({ children: t, liquidFinish: n, form: r = "press", active: i = !1, fill: a = "var(--game-ui-liquid-surface-fill, var(--game-ui-surface-raised))", stroke: o, shadow: s, radius: c = 999, className: l, style: u }) {
3163
- let d = e(), f = i && !d, p = E(() => wn(r, f ? Sn[r].groupEngaged : void 0), [r, f]), m = E(() => Tn(r), [r]);
3164
- Sn[r].kind === "group" && kn(r);
3165
- let h = f ? En[r] : Dn[r] ?? {
3184
+ } }, kn = /* @__PURE__ */ new Set();
3185
+ function An(e) {
3186
+ kn.has(e) || (kn.add(e), console.warn(`LiquidSurface cannot express the '${e}' form: it describes a relationship between sibling items, not one body. Arrange the items in a <LiquidGroup> with liquidFormGroup() instead; LiquidSurface will render a body that never moves.`));
3187
+ }
3188
+ function jn({ children: t, liquidFinish: n, form: r = "press", active: i = !1, fill: a = "var(--game-ui-liquid-surface-fill, var(--game-ui-surface-raised))", stroke: o, shadow: s, gloss: c, outline: l, radius: u = 999, className: d, style: f }) {
3189
+ let p = e(), m = i && !p, h = E(() => Tn(r, m ? Cn[r].groupEngaged : void 0), [r, m]), g = E(() => En(r), [r]);
3190
+ Cn[r].kind === "group" && An(r);
3191
+ let _ = m ? Dn[r] : On[r] ?? {
3166
3192
  scale: 1,
3167
3193
  scaleY: 1,
3168
3194
  y: 0
3169
- }, g = f ? p.shadowEngaged ?? p.shadow : p.shadow, _ = s ?? g;
3195
+ }, v = m ? h.shadowEngaged ?? h.shadow : h.shadow, y = s ?? v, b = l ? {
3196
+ amplitude: l.amplitude,
3197
+ lobes: l.lobes ?? h.lobes
3198
+ } : {
3199
+ amplitude: h.blob,
3200
+ lobes: h.lobes
3201
+ };
3170
3202
  return /* @__PURE__ */ j("span", {
3171
- className: ["game-ui-liquid-surface", l].filter(Boolean).join(" "),
3203
+ className: ["game-ui-liquid-surface", d].filter(Boolean).join(" "),
3172
3204
  "data-liquid-form": r,
3173
3205
  "data-liquid-finish": n,
3174
- "data-liquid-active": f ? "true" : "false",
3175
- style: u,
3176
- children: [/* @__PURE__ */ A(bn, {
3206
+ "data-liquid-active": m ? "true" : "false",
3207
+ style: f,
3208
+ children: [/* @__PURE__ */ A(xn, {
3177
3209
  "aria-hidden": "true",
3178
- blur: p.blur,
3210
+ blur: h.blur,
3179
3211
  className: "game-ui-liquid-surface__body",
3180
- contrast: p.contrast,
3181
- gloss: Te(n, p.gloss),
3212
+ contrast: h.contrast,
3213
+ gloss: c ?? Te(n, h.gloss),
3182
3214
  fill: a,
3183
- filterPadding: Math.max(p.filterPadding, Math.ceil(p.blob) + 8),
3184
- motion: d ? "reduced" : "auto",
3185
- ..._ === void 0 ? {} : { shadow: _ },
3215
+ filterPadding: Math.max(h.filterPadding, Math.ceil(b.amplitude) + 8),
3216
+ motion: p ? "reduced" : "auto",
3217
+ ...y === void 0 ? {} : { shadow: y },
3186
3218
  ...o === void 0 ? {} : { stroke: o },
3187
- children: /* @__PURE__ */ A(bn.Item, {
3188
- ...p.blob > 0 ? { blob: {
3189
- amplitude: p.blob,
3190
- lobes: p.lobes
3191
- } } : {},
3219
+ children: /* @__PURE__ */ A(xn.Item, {
3220
+ ...b.amplitude > 0 ? { blob: b } : {},
3192
3221
  className: "game-ui-liquid-surface__shape",
3193
- ...m.effect === void 0 ? {} : { effect: m.effect },
3194
- ...m.morph === void 0 ? {} : { morph: m.morph },
3195
- ...m.dissolve === void 0 ? {} : { dissolve: m.dissolve && f },
3196
- radius: c,
3197
- scale: h.scale,
3198
- scaleY: h.scaleY,
3199
- ...m.transition === void 0 ? {} : { transition: m.transition },
3200
- ...h.x === void 0 ? {} : { x: h.x },
3201
- y: h.y,
3222
+ ...g.effect === void 0 ? {} : { effect: g.effect },
3223
+ ...g.morph === void 0 ? {} : { morph: g.morph },
3224
+ ...g.dissolve === void 0 ? {} : { dissolve: g.dissolve && m },
3225
+ radius: u,
3226
+ scale: _.scale,
3227
+ scaleY: _.scaleY,
3228
+ ...g.transition === void 0 ? {} : { transition: g.transition },
3229
+ ..._.x === void 0 ? {} : { x: _.x },
3230
+ y: _.y,
3202
3231
  children: /* @__PURE__ */ A("span", { className: "game-ui-liquid-surface__fill" })
3203
3232
  })
3204
3233
  }), /* @__PURE__ */ A("span", {
@@ -3207,12 +3236,12 @@ function An({ children: t, liquidFinish: n, form: r = "press", active: i = !1, f
3207
3236
  })]
3208
3237
  });
3209
3238
  }
3210
- function jn(e) {
3211
- return Sn[e].summary;
3239
+ function Mn(e) {
3240
+ return Cn[e].summary;
3212
3241
  }
3213
3242
  //#endregion
3214
3243
  //#region src/GameSelect.tsx
3215
- var Mn = y(function({ className: e, invalid: t, surface: n = "flat", liquidFinish: r, ...i }, a) {
3244
+ var Nn = y(function({ className: e, invalid: t, surface: n = "flat", liquidFinish: r, ...i }, a) {
3216
3245
  let o = n === "liquid" && !i.disabled && !i.multiple && (i.size ?? 1) <= 1, s = /* @__PURE__ */ v("select", {
3217
3246
  ...i,
3218
3247
  key: "control",
@@ -3227,7 +3256,7 @@ var Mn = y(function({ className: e, invalid: t, surface: n = "flat", liquidFinis
3227
3256
  });
3228
3257
  return /* @__PURE__ */ j("span", {
3229
3258
  className: ["game-ui-select-frame", o && "game-ui-select-liquid"].filter(Boolean).join(" "),
3230
- children: [o ? /* @__PURE__ */ A(An, {
3259
+ children: [o ? /* @__PURE__ */ A(jn, {
3231
3260
  className: "game-ui-select-decoration",
3232
3261
  form: "press",
3233
3262
  radius: 16,
@@ -3238,7 +3267,7 @@ var Mn = y(function({ className: e, invalid: t, surface: n = "flat", liquidFinis
3238
3267
  });
3239
3268
  //#endregion
3240
3269
  //#region src/GameHelpTip.tsx
3241
- function Nn({ label: e, children: t }) {
3270
+ function Pn({ label: e, children: t }) {
3242
3271
  let [n, r] = O(!1), [i, a] = O(void 0), { refs: o, floatingStyles: s, context: c } = se({
3243
3272
  open: n,
3244
3273
  onOpenChange(e, t, n) {
@@ -3318,19 +3347,19 @@ function Nn({ label: e, children: t }) {
3318
3347
  }
3319
3348
  //#endregion
3320
3349
  //#region src/interactionSound.ts
3321
- var Pn = null, Fn = !1;
3322
- function In(e) {
3350
+ var Fn = null, In = !1;
3351
+ function Ln(e) {
3323
3352
  return typeof e != "number" || !Number.isFinite(e) ? 1 : Math.min(1, Math.max(0, e));
3324
3353
  }
3325
- function Ln() {
3326
- Fn || typeof document > "u" || (document.addEventListener("visibilitychange", () => {
3327
- document.visibilityState === "hidden" && Pn?.state === "running" && Pn.suspend();
3328
- }), Fn = !0);
3329
- }
3330
3354
  function Rn() {
3331
- return typeof window > "u" || window.AudioContext === void 0 ? null : (Ln(), Pn ??= new window.AudioContext(), Pn);
3355
+ In || typeof document > "u" || (document.addEventListener("visibilitychange", () => {
3356
+ document.visibilityState === "hidden" && Fn?.state === "running" && Fn.suspend();
3357
+ }), In = !0);
3332
3358
  }
3333
- function zn(e) {
3359
+ function zn() {
3360
+ return typeof window > "u" || window.AudioContext === void 0 ? null : (Rn(), Fn ??= new window.AudioContext(), Fn);
3361
+ }
3362
+ function Bn(e) {
3334
3363
  let t = /* @__PURE__ */ new WeakMap();
3335
3364
  return {
3336
3365
  createGain: () => {
@@ -3367,21 +3396,21 @@ function zn(e) {
3367
3396
  suspend: () => e.suspend()
3368
3397
  };
3369
3398
  }
3370
- function Bn(e, t = {}) {
3399
+ function Vn(e, t = {}) {
3371
3400
  if (t.enabled === !1) return !1;
3372
- let n = .06 * In(t.masterVolume) * In(t.sfxVolume);
3401
+ let n = .06 * Ln(t.masterVolume) * Ln(t.sfxVolume);
3373
3402
  if (n <= 0) return !1;
3374
3403
  e.state === "suspended" && e.resume();
3375
3404
  let r = e.currentTime, i = e.createOscillator(), a = e.createGain();
3376
3405
  return i.type = "triangle", i.frequency.setValueAtTime(420, r), i.frequency.exponentialRampToValueAtTime(620, r + .045), a.gain.setValueAtTime(1e-4, r), a.gain.exponentialRampToValueAtTime(n, r + .008), a.gain.exponentialRampToValueAtTime(1e-4, r + .055), i.connect(a), a.connect(e.destination), i.start(r), i.stop(r + .055), !0;
3377
3406
  }
3378
- function Vn(e = {}) {
3379
- let t = Rn();
3380
- return t ? Bn(zn(t), e) : !1;
3407
+ function Hn(e = {}) {
3408
+ let t = zn();
3409
+ return t ? Vn(Bn(t), e) : !1;
3381
3410
  }
3382
- function Hn(e, t, n = {}) {
3411
+ function Un(e, t, n = {}) {
3383
3412
  if (n.enabled === !1) return !1;
3384
- let r = .05 * In(n.masterVolume) * In(n.sfxVolume);
3413
+ let r = .05 * Ln(n.masterVolume) * Ln(n.sfxVolume);
3385
3414
  if (r <= 0) return !1;
3386
3415
  e.state === "suspended" && e.resume();
3387
3416
  let i = e.currentTime, a = (t, n, r, i, a, o) => {
@@ -3390,13 +3419,13 @@ function Hn(e, t, n = {}) {
3390
3419
  };
3391
3420
  return a("triangle", 900, 260, i, .09, r), (t === "legendary" ? [880, 1320] : t === "rare" ? [990] : []).forEach((e, t) => a("sine", e, e, i + .08 + t * .09, .35, r * .8)), !0;
3392
3421
  }
3393
- function Un(e, t = {}) {
3394
- let n = Rn();
3395
- return n ? Hn(zn(n), e, t) : !1;
3422
+ function Wn(e, t = {}) {
3423
+ let n = zn();
3424
+ return n ? Un(Bn(n), e, t) : !1;
3396
3425
  }
3397
3426
  //#endregion
3398
3427
  //#region src/LiquidPressSurface.tsx
3399
- function Wn({ children: e, static: t = !1, ...n }) {
3428
+ function Gn({ children: e, static: t = !1, ...n }) {
3400
3429
  let [r, i] = O(!1), a = D(!1), o = () => {
3401
3430
  a.current = !1, i(!1);
3402
3431
  };
@@ -3405,7 +3434,7 @@ function Wn({ children: e, static: t = !1, ...n }) {
3405
3434
  a.current = !1, i(!1);
3406
3435
  };
3407
3436
  return window.addEventListener("blur", e), () => window.removeEventListener("blur", e);
3408
- }, []), /* @__PURE__ */ A(An, {
3437
+ }, []), /* @__PURE__ */ A(jn, {
3409
3438
  ...n,
3410
3439
  active: r && !t,
3411
3440
  form: "press",
@@ -3443,13 +3472,13 @@ function J({ children: e, className: t, fullWidth: n = !1, liquidFinish: r, onCl
3443
3472
  ].filter(Boolean).join(" "),
3444
3473
  "data-game-ui-surface": s === "plaque" ? "plaque" : void 0,
3445
3474
  onClick: (e) => {
3446
- a && Vn(a), i?.(e);
3475
+ a && Hn(a), i?.(e);
3447
3476
  },
3448
3477
  type: c,
3449
3478
  ...u,
3450
3479
  children: e
3451
3480
  });
3452
- return s !== "liquid" || u.disabled === !0 ? d : /* @__PURE__ */ A(Wn, {
3481
+ return s !== "liquid" || u.disabled === !0 ? d : /* @__PURE__ */ A(Gn, {
3453
3482
  ...r === void 0 ? {} : { liquidFinish: r },
3454
3483
  static: o,
3455
3484
  className: [
@@ -3462,7 +3491,7 @@ function J({ children: e, className: t, fullWidth: n = !1, liquidFinish: r, onCl
3462
3491
  }
3463
3492
  //#endregion
3464
3493
  //#region src/clay/assets.ts
3465
- var Gn = "/assets/game/ui/clay/phase03-clay-kit", Y = (e) => `${Gn}/${e}`, Kn = {
3494
+ var Kn = "/assets/game/ui/clay/phase03-clay-kit", Y = (e) => `${Kn}/${e}`, qn = {
3466
3495
  ai: { line: Y("icons/function/brain-v1.png") },
3467
3496
  alert: {
3468
3497
  game: Y("components/common/alert-v1.png"),
@@ -3552,20 +3581,20 @@ var Gn = "/assets/game/ui/clay/phase03-clay-kit", Y = (e) => `${Gn}/${e}`, Kn =
3552
3581
  game: Y("icons/common/target-v1.png"),
3553
3582
  line: Y("icons/function/target-v1.png")
3554
3583
  }
3555
- }, qn = Object.keys(Kn), Jn = Gn;
3556
- function Yn(e) {
3557
- let t = Jn;
3584
+ }, Jn = Object.keys(qn), Yn = Kn;
3585
+ function Xn(e) {
3586
+ let t = Yn;
3558
3587
  return !e || t === "/assets/game/ui/clay/phase03-clay-kit" ? e : e.startsWith("/assets/game/ui/clay/phase03-clay-kit") ? `${t}${e.slice(37)}` : e;
3559
3588
  }
3560
- function Xn(e, t) {
3561
- let n = Kn[e];
3562
- return Yn(t === "line" ? n.line ?? n.game ?? "" : n.game ?? n.line ?? "");
3589
+ function Zn(e, t) {
3590
+ let n = qn[e];
3591
+ return Xn(t === "line" ? n.line ?? n.game ?? "" : n.game ?? n.line ?? "");
3563
3592
  }
3564
- function Zn(e) {
3565
- let t = Kn[e], n = [];
3593
+ function Qn(e) {
3594
+ let t = qn[e], n = [];
3566
3595
  return t.game && n.push("game"), t.line && n.push("line"), n;
3567
3596
  }
3568
- var Qn = {
3597
+ var $n = {
3569
3598
  anvil: Y("icons/common/anvil-v1.png"),
3570
3599
  arrow: Y("icons/common/arrow-v1.png"),
3571
3600
  bomb: Y("icons/common/bomb-v1.png"),
@@ -3592,7 +3621,7 @@ var Qn = {
3592
3621
  swordB: Y("icons/common/sword-b-v1.png"),
3593
3622
  talaria: Y("icons/common/talaria-v1.png"),
3594
3623
  treasure: Y("icons/common/treasure-v1.png")
3595
- }, $n = Object.keys(Qn), er = {
3624
+ }, er = Object.keys($n), tr = {
3596
3625
  buttons: {
3597
3626
  primary: Y("buttons/button-brown-large-v2.png"),
3598
3627
  blue: Y("buttons/button-blue-large-v2.png"),
@@ -3613,7 +3642,7 @@ var Qn = {
3613
3642
  tabSelected: Y("components/common/tab-s-v1.png"),
3614
3643
  tabNormal: Y("components/common/tab-n-v1.png")
3615
3644
  },
3616
- icons: Object.fromEntries(qn.map((e) => [e, Xn(e)])),
3645
+ icons: Object.fromEntries(Jn.map((e) => [e, Zn(e)])),
3617
3646
  catalog: {
3618
3647
  manifest: "/assets/game/ui/clay/asset-manifest.json",
3619
3648
  sourceCatalog: Y("catalog/phase03-clay-ui-catalog.json"),
@@ -3621,7 +3650,7 @@ var Qn = {
3621
3650
  contactSheetComponents: Y("catalog/component-candidates-contact-sheet-v1.png"),
3622
3651
  contactSheetFunction: Y("catalog/function-icons-contact-sheet-v1.png")
3623
3652
  }
3624
- }, tr = {
3653
+ }, nr = {
3625
3654
  ai: "AI",
3626
3655
  alert: "!",
3627
3656
  card: "▣",
@@ -3657,7 +3686,7 @@ var Qn = {
3657
3686
  timer: "◷",
3658
3687
  trophy: "★",
3659
3688
  vote: "⌾"
3660
- }, nr = {
3689
+ }, rr = {
3661
3690
  ai: F.berry,
3662
3691
  alert: F.red,
3663
3692
  card: F.honey,
@@ -3694,35 +3723,35 @@ var Qn = {
3694
3723
  trophy: F.honey,
3695
3724
  vote: F.red
3696
3725
  };
3697
- function rr(e) {
3698
- let t = tr[e], n = nr[e], r = F.parchment, i = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><defs><filter id="s" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow dx="0" dy="5" stdDeviation="4" flood-color="#4c341c" flood-opacity=".22"/></filter></defs><rect x="10" y="8" width="76" height="76" rx="25" fill="${r}" filter="url(#s)"/><circle cx="48" cy="46" r="28" fill="${n}" opacity=".88"/><path d="M23 28c10-12 36-16 52 0" stroke="#fff" stroke-width="6" stroke-linecap="round" opacity=".38"/><text x="48" y="58" text-anchor="middle" font-family="system-ui,sans-serif" font-size="28" font-weight="900" fill="${r}">${t}</text></svg>`;
3726
+ function ir(e) {
3727
+ let t = nr[e], n = rr[e], r = F.parchment, i = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><defs><filter id="s" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow dx="0" dy="5" stdDeviation="4" flood-color="#4c341c" flood-opacity=".22"/></filter></defs><rect x="10" y="8" width="76" height="76" rx="25" fill="${r}" filter="url(#s)"/><circle cx="48" cy="46" r="28" fill="${n}" opacity=".88"/><path d="M23 28c10-12 36-16 52 0" stroke="#fff" stroke-width="6" stroke-linecap="round" opacity=".38"/><text x="48" y="58" text-anchor="middle" font-family="system-ui,sans-serif" font-size="28" font-weight="900" fill="${r}">${t}</text></svg>`;
3699
3728
  return `data:image/svg+xml,${encodeURIComponent(i)}`;
3700
3729
  }
3701
- var ir = "inline";
3702
- function ar(e) {
3703
- ir = e;
3730
+ var ar = "inline";
3731
+ function or(e) {
3732
+ ar = e;
3704
3733
  }
3705
- function or() {
3706
- return ir;
3734
+ function sr() {
3735
+ return ar;
3707
3736
  }
3708
- function sr(e) {
3709
- Jn = e.replace(/\/+$/, "");
3737
+ function cr(e) {
3738
+ Yn = e.replace(/\/+$/, "");
3710
3739
  }
3711
- function cr() {
3712
- return Jn;
3713
- }
3714
- var lr = !1;
3715
- function ur() {
3716
- lr || (lr = !0, !(typeof console > "u") && console.warn("[SwimmerUIKit] Clay icons are rendering placeholders, not the icon set. The sculpted PNGs ship inside this package but must be served by your app:\n npx swimmer-ui-assets public\n setClayAssetMode('source') // once, at your entry\nCall setClayAssetMode('inline') explicitly to keep placeholders and silence this."));
3740
+ function lr() {
3741
+ return Yn;
3717
3742
  }
3743
+ var ur = !1;
3718
3744
  function dr() {
3719
- lr = !0;
3745
+ ur || (ur = !0, !(typeof console > "u") && console.warn("[SwimmerUIKit] Clay icons are rendering placeholders, not the icon set. The sculpted PNGs ship inside this package but must be served by your app:\n npx swimmer-ui-assets public\n setClayAssetMode('source') // once, at your entry\nCall setClayAssetMode('inline') explicitly to keep placeholders and silence this."));
3746
+ }
3747
+ function fr() {
3748
+ ur = !0;
3720
3749
  }
3721
- function fr(e, t = {}) {
3722
- return t.inline ?? ir === "inline" ? (ur(), rr(e)) : Xn(e, t.style);
3750
+ function pr(e, t = {}) {
3751
+ return t.inline ?? ar === "inline" ? (dr(), ir(e)) : Zn(e, t.style);
3723
3752
  }
3724
- function pr(e, t) {
3725
- return Xn(e, t);
3753
+ function mr(e, t) {
3754
+ return Zn(e, t);
3726
3755
  }
3727
3756
  //#endregion
3728
3757
  //#region src/ClayComponents.tsx
@@ -3734,7 +3763,7 @@ function X({ children: e, className: t, tone: n = "neutral" }) {
3734
3763
  });
3735
3764
  }
3736
3765
  function Z({ className: e, icon: t, label: n, size: r = "md", style: i, useSourceAsset: a = !1 }) {
3737
- let o = ["game-ui-asset-icon", e].filter(Boolean).join(" "), s = n ? { "aria-label": n } : { "aria-hidden": !0 }, c = fr(t, {
3766
+ let o = ["game-ui-asset-icon", e].filter(Boolean).join(" "), s = n ? { "aria-label": n } : { "aria-hidden": !0 }, c = pr(t, {
3738
3767
  ...i ? { style: i } : {},
3739
3768
  ...a ? { inline: !1 } : {}
3740
3769
  });
@@ -3749,7 +3778,7 @@ function Z({ className: e, icon: t, label: n, size: r = "md", style: i, useSourc
3749
3778
  })
3750
3779
  });
3751
3780
  }
3752
- function mr({ actions: e, className: t, items: n, label: r }) {
3781
+ function hr({ actions: e, className: t, items: n, label: r }) {
3753
3782
  return /* @__PURE__ */ j("section", {
3754
3783
  "aria-label": r,
3755
3784
  className: ["game-ui-hud", t].filter(Boolean).join(" "),
@@ -3772,7 +3801,7 @@ function mr({ actions: e, className: t, items: n, label: r }) {
3772
3801
  }) : null]
3773
3802
  });
3774
3803
  }
3775
- function hr({ cards: e, className: t, label: n }) {
3804
+ function gr({ cards: e, className: t, label: n }) {
3776
3805
  let r = ["game-ui-card-fan", t].filter(Boolean).join(" "), i = (e.length - 1) / 2;
3777
3806
  return /* @__PURE__ */ A("div", {
3778
3807
  "aria-label": n,
@@ -3795,7 +3824,7 @@ function hr({ cards: e, className: t, label: n }) {
3795
3824
  }, e.id))
3796
3825
  });
3797
3826
  }
3798
- function gr({ badge: e, className: t, icon: n, kicker: r, selected: i = !1, summary: a, title: o, tone: s = "daily", type: c = "button", ...l }) {
3827
+ function _r({ badge: e, className: t, icon: n, kicker: r, selected: i = !1, summary: a, title: o, tone: s = "daily", type: c = "button", ...l }) {
3799
3828
  return /* @__PURE__ */ j("button", {
3800
3829
  "aria-pressed": i,
3801
3830
  className: ["game-ui-stage-tile", t].filter(Boolean).join(" "),
@@ -3822,15 +3851,15 @@ function gr({ badge: e, className: t, icon: n, kicker: r, selected: i = !1, summ
3822
3851
  ]
3823
3852
  });
3824
3853
  }
3825
- function _r() {
3854
+ function vr() {
3826
3855
  return typeof window > "u" ? !1 : (window.matchMedia?.("(pointer: coarse), (max-width: 899px)").matches ?? window.innerWidth < 900) && window.innerHeight > window.innerWidth;
3827
3856
  }
3828
- function vr({ body: e, cta: t, badgeLabel: n = "Landscape only", manualHint: r = "Rotate manually if this browser blocks automatic landscape lock.", preview: i = !1, title: a }) {
3829
- let [o, s] = O(i || _r), [c, l] = O("");
3857
+ function yr({ body: e, cta: t, badgeLabel: n = "Landscape only", manualHint: r = "Rotate manually if this browser blocks automatic landscape lock.", preview: i = !1, title: a }) {
3858
+ let [o, s] = O(i || vr), [c, l] = O("");
3830
3859
  if (C(() => {
3831
3860
  if (i) return;
3832
3861
  let e = () => {
3833
- let e = _r();
3862
+ let e = vr();
3834
3863
  s(e), e || l("");
3835
3864
  };
3836
3865
  return e(), window.addEventListener("resize", e), window.addEventListener("orientationchange", e), () => {
@@ -3840,7 +3869,7 @@ function vr({ body: e, cta: t, badgeLabel: n = "Landscape only", manualHint: r =
3840
3869
  let u = async () => {
3841
3870
  if (l(""), !i) try {
3842
3871
  let e = document.documentElement;
3843
- !document.fullscreenElement && e.requestFullscreen && await e.requestFullscreen(), await screen.orientation.lock?.("landscape-primary"), s(_r());
3872
+ !document.fullscreenElement && e.requestFullscreen && await e.requestFullscreen(), await screen.orientation.lock?.("landscape-primary"), s(vr());
3844
3873
  } catch {
3845
3874
  l(r);
3846
3875
  }
@@ -3871,7 +3900,7 @@ function vr({ body: e, cta: t, badgeLabel: n = "Landscape only", manualHint: r =
3871
3900
  })
3872
3901
  });
3873
3902
  }
3874
- function yr({ className: e, currentLabel: t, label: n, options: r, value: i, defaultValue: a, onSelect: o }) {
3903
+ function br({ className: e, currentLabel: t, label: n, options: r, value: i, defaultValue: a, onSelect: o }) {
3875
3904
  let [s, c] = O(!1), [l, u] = O(a ?? r[0]?.id ?? ""), d = w(), f = ["game-ui-language-menu", e].filter(Boolean).join(" "), p = i ?? l, m = r.find((e) => e.id === p), h = t ?? m?.label ?? r[0]?.label ?? "", g = (e) => {
3876
3905
  i === void 0 && u(e), o?.(e), c(!1);
3877
3906
  };
@@ -3903,27 +3932,27 @@ function yr({ className: e, currentLabel: t, label: n, options: r, value: i, def
3903
3932
  }) : null]
3904
3933
  });
3905
3934
  }
3906
- function br({ label: e, tone: t = "loading" }) {
3935
+ function xr({ label: e, tone: t = "loading" }) {
3907
3936
  return /* @__PURE__ */ j("div", {
3908
3937
  className: "game-ui-loading-state",
3909
3938
  "data-loading-tone": t,
3910
3939
  role: t === "error" ? "alert" : "status",
3911
3940
  children: [/* @__PURE__ */ A("img", {
3912
3941
  alt: "",
3913
- src: fr(t === "error" ? "alert" : "timer")
3942
+ src: pr(t === "error" ? "alert" : "timer")
3914
3943
  }), /* @__PURE__ */ A("span", { children: e })]
3915
3944
  });
3916
3945
  }
3917
- function xr() {
3918
- return er.catalog;
3946
+ function Sr() {
3947
+ return tr.catalog;
3919
3948
  }
3920
3949
  //#endregion
3921
3950
  //#region src/GameDisplay.tsx
3922
- function Sr(e) {
3951
+ function Cr(e) {
3923
3952
  let t = e.trim().split(/\s+/).filter(Boolean);
3924
3953
  return t.length === 0 ? "?" : t.slice(0, 2).map((e) => e[0] ?? "").join("").toUpperCase();
3925
3954
  }
3926
- function Cr({ className: e, name: t, size: n = "md", src: r, status: i = "none", surface: a = "flat" }) {
3955
+ function wr({ className: e, name: t, size: n = "md", src: r, status: i = "none", surface: a = "flat" }) {
3927
3956
  return /* @__PURE__ */ j("span", {
3928
3957
  className: ["game-ui-avatar", e].filter(Boolean).join(" "),
3929
3958
  "data-avatar-size": n,
@@ -3935,7 +3964,7 @@ function Cr({ className: e, name: t, size: n = "md", src: r, status: i = "none",
3935
3964
  }) : /* @__PURE__ */ j(k, { children: [/* @__PURE__ */ A("span", {
3936
3965
  "aria-hidden": "true",
3937
3966
  className: "game-ui-avatar-initials",
3938
- children: Sr(t)
3967
+ children: Cr(t)
3939
3968
  }), /* @__PURE__ */ A("span", {
3940
3969
  className: "game-ui-sr-only",
3941
3970
  children: t
@@ -3945,7 +3974,7 @@ function Cr({ className: e, name: t, size: n = "md", src: r, status: i = "none",
3945
3974
  })]
3946
3975
  });
3947
3976
  }
3948
- function wr({ className: e, label: t, max: n = 100, showValue: r = !1, tone: i = "accent", value: a, valueLabel: o, surface: s = "liquid", liquidFinish: c }) {
3977
+ function Tr({ className: e, label: t, max: n = 100, showValue: r = !1, tone: i = "accent", value: a, valueLabel: o, surface: s = "liquid", liquidFinish: c }) {
3949
3978
  let l = !Number.isFinite(n) || n <= 0 ? 100 : n, u = Math.max(0, Math.min(l, Number.isFinite(a) ? a : 0)), d = u / l * 100, f = ["game-ui-progress", e].filter(Boolean).join(" "), p = !!o, m = {
3950
3979
  accent: "var(--game-ui-accent)",
3951
3980
  danger: "var(--game-ui-danger)",
@@ -3969,7 +3998,7 @@ function wr({ className: e, label: t, max: n = 100, showValue: r = !1, tone: i =
3969
3998
  width: `${d}%`,
3970
3999
  background: m
3971
4000
  }
3972
- }) : /* @__PURE__ */ A(bn, {
4001
+ }) : /* @__PURE__ */ A(xn, {
3973
4002
  ...c === void 0 ? {} : { liquidFinish: c },
3974
4003
  "aria-hidden": "true",
3975
4004
  className: "game-ui-progress-liquid",
@@ -3981,7 +4010,7 @@ function wr({ className: e, label: t, max: n = 100, showValue: r = !1, tone: i =
3981
4010
  pointerEvents: "none",
3982
4011
  position: "absolute"
3983
4012
  },
3984
- children: /* @__PURE__ */ A(bn.Item, {
4013
+ children: /* @__PURE__ */ A(xn.Item, {
3985
4014
  "aria-hidden": "true",
3986
4015
  className: "game-ui-progress-fill",
3987
4016
  style: {
@@ -4004,7 +4033,7 @@ function wr({ className: e, label: t, max: n = 100, showValue: r = !1, tone: i =
4004
4033
  }) : null]
4005
4034
  });
4006
4035
  }
4007
- function Tr({ action: e, className: t, description: n, icon: r, title: i }) {
4036
+ function Er({ action: e, className: t, description: n, icon: r, title: i }) {
4008
4037
  return /* @__PURE__ */ j("div", {
4009
4038
  className: ["game-ui-empty-state", t].filter(Boolean).join(" "),
4010
4039
  children: [
@@ -4029,7 +4058,7 @@ function Tr({ action: e, className: t, description: n, icon: r, title: i }) {
4029
4058
  }
4030
4059
  //#endregion
4031
4060
  //#region src/GameSplash.tsx
4032
- function Er(e) {
4061
+ function Dr(e) {
4033
4062
  let t = e.highlight ? e.text.indexOf(e.highlight) : -1;
4034
4063
  return !e.highlight || t < 0 ? e.text : /* @__PURE__ */ j(k, { children: [
4035
4064
  e.text.slice(0, t),
@@ -4040,7 +4069,7 @@ function Er(e) {
4040
4069
  e.text.slice(t + e.highlight.length)
4041
4070
  ] });
4042
4071
  }
4043
- function Dr({ title: t, lines: n, progress: r, progressLabel: i, ready: a, mode: o = "opening", startLabel: s, onStart: c, autoStart: l = !1, lineSeconds: u = 2.6, className: d }) {
4072
+ function Or({ title: t, lines: n, progress: r, progressLabel: i, ready: a, mode: o = "opening", startLabel: s, onStart: c, autoStart: l = !1, lineSeconds: u = 2.6, className: d }) {
4044
4073
  let f = o === "transition" ? n.slice(0, 1) : n, p = e(), [m, h] = O(0);
4045
4074
  C(() => {
4046
4075
  if (f.length < 2 || p) return;
@@ -4079,9 +4108,9 @@ function Dr({ title: t, lines: n, progress: r, progressLabel: i, ready: a, mode:
4079
4108
  v ? /* @__PURE__ */ A("p", {
4080
4109
  className: "game-ui-splash-line",
4081
4110
  "aria-live": "polite",
4082
- children: Er(v)
4111
+ children: Dr(v)
4083
4112
  }, m) : null,
4084
- /* @__PURE__ */ A(wr, {
4113
+ /* @__PURE__ */ A(Tr, {
4085
4114
  className: "game-ui-splash-progress",
4086
4115
  label: i,
4087
4116
  value: y,
@@ -4100,7 +4129,7 @@ function Dr({ title: t, lines: n, progress: r, progressLabel: i, ready: a, mode:
4100
4129
  })
4101
4130
  });
4102
4131
  }
4103
- function Or(e, t = 2e3) {
4132
+ function kr(e, t = 2e3) {
4104
4133
  let [n, r] = O(!1);
4105
4134
  return C(() => {
4106
4135
  if (!e) {
@@ -4113,15 +4142,15 @@ function Or(e, t = 2e3) {
4113
4142
  }
4114
4143
  //#endregion
4115
4144
  //#region src/GameCollectibleCard.tsx
4116
- var kr = 10, Ar = 6;
4117
- function jr({ filled: e, total: t }) {
4145
+ var Ar = 10, jr = 6;
4146
+ function Mr({ filled: e, total: t }) {
4118
4147
  return /* @__PURE__ */ A("span", {
4119
4148
  className: "game-ui-collect-card-pips",
4120
4149
  "aria-hidden": "true",
4121
4150
  children: Array.from({ length: Math.max(0, t) }, (t, n) => /* @__PURE__ */ A("i", { "data-on": n < e ? "true" : void 0 }, n))
4122
4151
  });
4123
4152
  }
4124
- function Mr({ rarity: e }) {
4153
+ function Nr({ rarity: e }) {
4125
4154
  return e === "legendary" ? /* @__PURE__ */ j("svg", {
4126
4155
  className: "game-ui-collect-card-inlay",
4127
4156
  viewBox: "0 0 34 22",
@@ -4148,7 +4177,7 @@ function Mr({ rarity: e }) {
4148
4177
  })]
4149
4178
  }) : null;
4150
4179
  }
4151
- function Nr() {
4180
+ function Pr() {
4152
4181
  return /* @__PURE__ */ j("svg", {
4153
4182
  viewBox: "0 0 100 100",
4154
4183
  "aria-hidden": "true",
@@ -4178,7 +4207,7 @@ function Nr() {
4178
4207
  ]
4179
4208
  });
4180
4209
  }
4181
- function Pr({ rarity: t, title: n, caption: r, setLabel: i, rarityLabel: a, art: o, pips: s, sticker: c, back: l, label: u, faceDown: d, defaultFaceDown: f = !1, onFlip: p, spotlight: m = !1, sound: h = !1, tilt: g, className: _ }) {
4210
+ function Fr({ rarity: t, title: n, caption: r, setLabel: i, rarityLabel: a, art: o, pips: s, sticker: c, back: l, label: u, faceDown: d, defaultFaceDown: f = !1, onFlip: p, spotlight: m = !1, sound: h = !1, tilt: g, className: _ }) {
4182
4211
  let v = e(), [y, b] = O(f), x = d ?? y, [S, w] = O({
4183
4212
  x: 50,
4184
4213
  y: 50,
@@ -4193,7 +4222,7 @@ function Pr({ rarity: t, title: n, caption: r, setLabel: i, rarityLabel: a, art:
4193
4222
  }, [v]);
4194
4223
  let E = (e) => {
4195
4224
  let t = T.current;
4196
- if (t && Math.hypot(e.clientX - t.x, e.clientY - t.y) > Ar && (t.moved = !0), v) return;
4225
+ if (t && Math.hypot(e.clientX - t.x, e.clientY - t.y) > jr && (t.moved = !0), v) return;
4197
4226
  let n = e.currentTarget.getBoundingClientRect();
4198
4227
  if (n.width === 0 || n.height === 0) return;
4199
4228
  let r = Math.min(100, Math.max(0, (e.clientX - n.left) / n.width * 100)), i = Math.min(100, Math.max(0, (e.clientY - n.top) / n.height * 100));
@@ -4204,7 +4233,7 @@ function Pr({ rarity: t, title: n, caption: r, setLabel: i, rarityLabel: a, art:
4204
4233
  });
4205
4234
  }, k = () => {
4206
4235
  let e = !x;
4207
- d === void 0 && b(e), p?.(e), h && Un(e ? "common" : t);
4236
+ d === void 0 && b(e), p?.(e), h && Wn(e ? "common" : t);
4208
4237
  }, ee = g && Number.isFinite(g.x) && Number.isFinite(g.y) ? {
4209
4238
  x: 50 + Math.min(1, Math.max(-1, g.x)) * 50,
4210
4239
  y: 50 + Math.min(1, Math.max(-1, g.y)) * 50,
@@ -4216,8 +4245,8 @@ function Pr({ rarity: t, title: n, caption: r, setLabel: i, rarityLabel: a, art:
4216
4245
  } : S.active ? S : ee ?? S, te = {
4217
4246
  "--card-mx": `${M.x}%`,
4218
4247
  "--card-my": `${M.y}%`,
4219
- "--card-rx": `${M.active ? (50 - M.y) / 50 * kr : 0}deg`,
4220
- "--card-ry": `${M.active ? (M.x - 50) / 50 * kr : 0}deg`
4248
+ "--card-rx": `${M.active ? (50 - M.y) / 50 * Ar : 0}deg`,
4249
+ "--card-ry": `${M.active ? (M.x - 50) / 50 * Ar : 0}deg`
4221
4250
  };
4222
4251
  return /* @__PURE__ */ j("button", {
4223
4252
  type: "button",
@@ -4262,7 +4291,7 @@ function Pr({ rarity: t, title: n, caption: r, setLabel: i, rarityLabel: a, art:
4262
4291
  className: "game-ui-collect-card-sticker",
4263
4292
  children: c
4264
4293
  }) : null,
4265
- /* @__PURE__ */ A(Mr, { rarity: t }),
4294
+ /* @__PURE__ */ A(Nr, { rarity: t }),
4266
4295
  t === "legendary" ? /* @__PURE__ */ A("span", { className: "game-ui-collect-card-foil" }) : null,
4267
4296
  /* @__PURE__ */ j("span", {
4268
4297
  className: "game-ui-collect-card-inner",
@@ -4286,7 +4315,7 @@ function Pr({ rarity: t, title: n, caption: r, setLabel: i, rarityLabel: a, art:
4286
4315
  className: "game-ui-collect-card-caption",
4287
4316
  children: r
4288
4317
  }) : null,
4289
- s ? /* @__PURE__ */ A(jr, {
4318
+ s ? /* @__PURE__ */ A(Mr, {
4290
4319
  filled: s.filled,
4291
4320
  total: s.total
4292
4321
  }) : null
@@ -4297,11 +4326,11 @@ function Pr({ rarity: t, title: n, caption: r, setLabel: i, rarityLabel: a, art:
4297
4326
  }), /* @__PURE__ */ A("span", {
4298
4327
  className: "game-ui-collect-card-back",
4299
4328
  "aria-hidden": "true",
4300
- children: l ?? /* @__PURE__ */ A(Nr, {})
4329
+ children: l ?? /* @__PURE__ */ A(Pr, {})
4301
4330
  })]
4302
4331
  });
4303
4332
  }
4304
- function Fr({ label: e, className: t }) {
4333
+ function Ir({ label: e, className: t }) {
4305
4334
  return /* @__PURE__ */ j("div", {
4306
4335
  className: ["game-ui-collect-card-slot", t].filter(Boolean).join(" "),
4307
4336
  role: "img",
@@ -4314,28 +4343,28 @@ function Fr({ label: e, className: t }) {
4314
4343
  }
4315
4344
  //#endregion
4316
4345
  //#region src/liquidMetalBudget.ts
4317
- var Ir = 2, Lr = 2, Rr = 0;
4318
- function zr() {
4346
+ var Lr = 2, Rr = 2, zr = 0;
4347
+ function Br() {
4319
4348
  return {
4320
- limit: Lr,
4321
- used: Rr
4349
+ limit: Rr,
4350
+ used: zr
4322
4351
  };
4323
4352
  }
4324
- function Br(e) {
4325
- Lr = Number.isFinite(e) ? Math.max(0, Math.floor(e)) : 0;
4326
- }
4327
- function Vr() {
4328
- return Rr >= Lr ? !1 : (Rr += 1, !0);
4353
+ function Vr(e) {
4354
+ Rr = Number.isFinite(e) ? Math.max(0, Math.floor(e)) : 0;
4329
4355
  }
4330
4356
  function Hr() {
4331
- Rr > 0 && --Rr;
4357
+ return zr >= Rr ? !1 : (zr += 1, !0);
4332
4358
  }
4333
- function Ur(e) {
4359
+ function Ur() {
4360
+ zr > 0 && --zr;
4361
+ }
4362
+ function Wr(e) {
4334
4363
  return !(e.renderer === "css" || !e.hasWebGL2 || e.prefersReducedMotion || !e.isInViewport);
4335
4364
  }
4336
4365
  //#endregion
4337
4366
  //#region src/liquidMetalWebGL.ts
4338
- var Wr = "#version 300 es\nin vec2 position; void main(){ gl_Position = vec4(position,0.,1.); }", Gr = "#version 300 es\nprecision highp float;\nout vec4 o;\n\nuniform vec2 uC; // pill centre, device px\nuniform vec2 uHalf; // pill half-extent, device px\nuniform float uT; // seconds\nuniform float uHover; // 0..1\nuniform float uPress; // 0..1, eased\nuniform vec4 uRip[3]; // xy centre (button heights, +y down), z start, w live\nuniform vec4 uRipK; // speed, ring width, decay, amplitude\nuniform vec4 uRipK2; // facet depth, facet count, crest sharpness, emission\nuniform vec4 uPtr; // xy trailing cursor, z strength, w normalised speed\nuniform vec4 uPtrK; // radius, base amplitude, speed amplitude, rim lift\nuniform vec3 uAccent; // brand tint from computed --game-ui-liquid-metal-accent\n\n#define PI 3.14159265\n\nfloat sdPill(vec2 p, vec2 b, float r){\n vec2 q = abs(p) - b + r;\n return min(max(q.x,q.y),0.) + length(max(q,0.)) - r;\n}\n\n/* Expanding ring from each press, in button-height units. Three slots so a\n quick double-tap overlaps instead of cutting the first one off.\n\n Two things keep it from reading as a water ripple: the wavefront is\n faceted rather than circular — its radius is modulated by angle, and the\n facets rotate as it travels — and the crest profile is a cusp rather than\n a gaussian, so it lands as a crease in sheet metal instead of a soft swell. */\nfloat ripple(vec2 p, float t){\n float sum = 0.;\n for(int i = 0; i < 3; i++){\n if(uRip[i].w < 0.5) continue;\n float age = t - uRip[i].z;\n if(age < 0. || age > 4.) continue;\n vec2 rp = p - uRip[i].xy;\n float facet = 1. + uRipK2.x * cos(uRipK2.y * atan(rp.y, rp.x) + age * 2.1 + float(i) * 2.4);\n float x = (length(rp) - age * uRipK.x * facet) / uRipK.y;\n sum += exp(-pow(abs(x) + 1e-4, uRipK2.z)) * exp(-age * uRipK.z);\n }\n return sum;\n}\n\n/* A soft well under the cursor. It lags behind the real pointer and swells\n with speed, so moving across the button drags the metal rather than sliding\n a static blob over it. */\nfloat pointerW(vec2 p){\n if(uPtr.z < 0.001) return 0.;\n float d = length(p - uPtr.xy) / uPtrK.x;\n return exp(-d*d) * uPtr.z;\n}\n/* Displacing the sample point, not the field value, is what makes this read as\n liquid: the bands bulge and stretch around the cursor like a lens instead of\n just getting brighter under it. */\nvec2 pointerWarp(vec2 p){\n float w = pointerW(p);\n if(w <= 0.) return vec2(0.);\n return normalize(p - uPtr.xy + vec2(1e-5)) * w * (uPtrK.y + uPtrK.z * uPtr.w);\n}\n", Kr = `${Gr}
4367
+ var Gr = "#version 300 es\nin vec2 position; void main(){ gl_Position = vec4(position,0.,1.); }", Kr = "#version 300 es\nprecision highp float;\nout vec4 o;\n\nuniform vec2 uC; // pill centre, device px\nuniform vec2 uHalf; // pill half-extent, device px\nuniform float uT; // seconds\nuniform float uHover; // 0..1\nuniform float uPress; // 0..1, eased\nuniform vec4 uRip[3]; // xy centre (button heights, +y down), z start, w live\nuniform vec4 uRipK; // speed, ring width, decay, amplitude\nuniform vec4 uRipK2; // facet depth, facet count, crest sharpness, emission\nuniform vec4 uPtr; // xy trailing cursor, z strength, w normalised speed\nuniform vec4 uPtrK; // radius, base amplitude, speed amplitude, rim lift\nuniform vec3 uAccent; // brand tint from computed --game-ui-liquid-metal-accent\n\n#define PI 3.14159265\n\nfloat sdPill(vec2 p, vec2 b, float r){\n vec2 q = abs(p) - b + r;\n return min(max(q.x,q.y),0.) + length(max(q,0.)) - r;\n}\n\n/* Expanding ring from each press, in button-height units. Three slots so a\n quick double-tap overlaps instead of cutting the first one off.\n\n Two things keep it from reading as a water ripple: the wavefront is\n faceted rather than circular — its radius is modulated by angle, and the\n facets rotate as it travels — and the crest profile is a cusp rather than\n a gaussian, so it lands as a crease in sheet metal instead of a soft swell. */\nfloat ripple(vec2 p, float t){\n float sum = 0.;\n for(int i = 0; i < 3; i++){\n if(uRip[i].w < 0.5) continue;\n float age = t - uRip[i].z;\n if(age < 0. || age > 4.) continue;\n vec2 rp = p - uRip[i].xy;\n float facet = 1. + uRipK2.x * cos(uRipK2.y * atan(rp.y, rp.x) + age * 2.1 + float(i) * 2.4);\n float x = (length(rp) - age * uRipK.x * facet) / uRipK.y;\n sum += exp(-pow(abs(x) + 1e-4, uRipK2.z)) * exp(-age * uRipK.z);\n }\n return sum;\n}\n\n/* A soft well under the cursor. It lags behind the real pointer and swells\n with speed, so moving across the button drags the metal rather than sliding\n a static blob over it. */\nfloat pointerW(vec2 p){\n if(uPtr.z < 0.001) return 0.;\n float d = length(p - uPtr.xy) / uPtrK.x;\n return exp(-d*d) * uPtr.z;\n}\n/* Displacing the sample point, not the field value, is what makes this read as\n liquid: the bands bulge and stretch around the cursor like a lens instead of\n just getting brighter under it. */\nvec2 pointerWarp(vec2 p){\n float w = pointerW(p);\n if(w <= 0.) return vec2(0.);\n return normalize(p - uPtr.xy + vec2(1e-5)) * w * (uPtrK.y + uPtrK.z * uPtr.w);\n}\n", qr = `${Kr}
4339
4368
  uniform float uBw; // stroke half-width, device px
4340
4369
  uniform float uE[8]; // base, hot, chroma-across, chroma-along, speed,
4341
4370
  // topBias, press lift, ripple lift
@@ -4405,7 +4434,7 @@ void main(){
4405
4434
  // what make it metal, and replacing them with a flat accent would turn
4406
4435
  // the rim into a neon sticker.
4407
4436
  o.rgb *= mix(vec3(1.0), uAccent, 0.40);
4408
- }`, qr = `${Gr}
4437
+ }`, Jr = `${Kr}
4409
4438
  uniform float uP[21]; // tunables
4410
4439
 
4411
4440
  float h21(vec2 p){
@@ -4527,7 +4556,7 @@ void main(){
4527
4556
  col = col * (1. + rip * 1.15 + well * 0.60);
4528
4557
 
4529
4558
  o = vec4(col * pill * uHover, pill);
4530
- }`, Jr = "#version 300 es\nprecision highp float;\nout vec4 o;\nuniform sampler2D uTex, uTex2;\nuniform vec2 uDstTexel; // 1 / destination size (maps dest fragCoord -> uv)\nuniform vec2 uSrcTexel; // 1 / source size (tap spacing)\nuniform float uAdd; // 1 to include uTex2\nvoid main(){\n vec2 uv = gl_FragCoord.xy * uDstTexel;\n // Taps sit a quarter of a *destination* texel out, so for a 2x reduction\n // they land exactly on the four source texel centres. Spacing them by a\n // whole source texel instead — as this did originally — skips every other\n // pixel, and any fine detail in the field folds down into low-frequency\n // moiré that no amount of subsequent blurring can remove.\n vec2 e = uDstTexel * 0.25;\n vec4 s = texture(uTex, uv + vec2(-e.x,-e.y)) + texture(uTex, uv + vec2( e.x,-e.y))\n + texture(uTex, uv + vec2(-e.x, e.y)) + texture(uTex, uv + vec2( e.x, e.y));\n s *= 0.25;\n if(uAdd > 0.5){\n vec4 r = texture(uTex2, uv + vec2(-e.x,-e.y)) + texture(uTex2, uv + vec2( e.x,-e.y))\n + texture(uTex2, uv + vec2(-e.x, e.y)) + texture(uTex2, uv + vec2( e.x, e.y));\n s.rgb += r.rgb * 0.25;\n }\n o = s;\n}", Yr = "#version 300 es\nprecision highp float;\nout vec4 o;\nuniform sampler2D uTex; uniform vec2 uTexel; uniform vec2 uDir; uniform float uR;\nvoid main(){\n vec2 uv = gl_FragCoord.xy * uTexel;\n vec2 st = uTexel * uDir * uR;\n vec4 s = texture(uTex, uv) * 0.1964;\n s += (texture(uTex, uv + st*1.4118) + texture(uTex, uv - st*1.4118)) * 0.2969;\n s += (texture(uTex, uv + st*3.2941) + texture(uTex, uv - st*3.2941)) * 0.0944;\n s += (texture(uTex, uv + st*5.1765) + texture(uTex, uv - st*5.1765)) * 0.0104;\n o = s;\n}", Xr = `${Gr}
4559
+ }`, Yr = "#version 300 es\nprecision highp float;\nout vec4 o;\nuniform sampler2D uTex, uTex2;\nuniform vec2 uDstTexel; // 1 / destination size (maps dest fragCoord -> uv)\nuniform vec2 uSrcTexel; // 1 / source size (tap spacing)\nuniform float uAdd; // 1 to include uTex2\nvoid main(){\n vec2 uv = gl_FragCoord.xy * uDstTexel;\n // Taps sit a quarter of a *destination* texel out, so for a 2x reduction\n // they land exactly on the four source texel centres. Spacing them by a\n // whole source texel instead — as this did originally — skips every other\n // pixel, and any fine detail in the field folds down into low-frequency\n // moiré that no amount of subsequent blurring can remove.\n vec2 e = uDstTexel * 0.25;\n vec4 s = texture(uTex, uv + vec2(-e.x,-e.y)) + texture(uTex, uv + vec2( e.x,-e.y))\n + texture(uTex, uv + vec2(-e.x, e.y)) + texture(uTex, uv + vec2( e.x, e.y));\n s *= 0.25;\n if(uAdd > 0.5){\n vec4 r = texture(uTex2, uv + vec2(-e.x,-e.y)) + texture(uTex2, uv + vec2( e.x,-e.y))\n + texture(uTex2, uv + vec2(-e.x, e.y)) + texture(uTex2, uv + vec2( e.x, e.y));\n s.rgb += r.rgb * 0.25;\n }\n o = s;\n}", Xr = "#version 300 es\nprecision highp float;\nout vec4 o;\nuniform sampler2D uTex; uniform vec2 uTexel; uniform vec2 uDir; uniform float uR;\nvoid main(){\n vec2 uv = gl_FragCoord.xy * uTexel;\n vec2 st = uTexel * uDir * uR;\n vec4 s = texture(uTex, uv) * 0.1964;\n s += (texture(uTex, uv + st*1.4118) + texture(uTex, uv - st*1.4118)) * 0.2969;\n s += (texture(uTex, uv + st*3.2941) + texture(uTex, uv - st*3.2941)) * 0.0944;\n s += (texture(uTex, uv + st*5.1765) + texture(uTex, uv - st*5.1765)) * 0.0104;\n o = s;\n}", Zr = `${Kr}
4531
4560
  uniform sampler2D uSoft, uRim, uGlow;
4532
4561
  uniform vec2 uRes;
4533
4562
  uniform float uGlowGain, uGlowIn, uOccl, uDim, uPunch;
@@ -4576,7 +4605,7 @@ void main(){
4576
4605
  // CSS underneath, and this layer adds light on top of them
4577
4606
  float a = clamp(max(rgb.r, max(rgb.g, rgb.b)), 0., 1.);
4578
4607
  o = vec4(min(rgb, vec3(1.)), a);
4579
- }`, Zr = {
4608
+ }`, Qr = {
4580
4609
  valFreq: .5,
4581
4610
  valAmp: .55,
4582
4611
  dens: 2.4,
@@ -4598,7 +4627,7 @@ void main(){
4598
4627
  litLo: -.26,
4599
4628
  litHi: .1,
4600
4629
  dim: .44
4601
- }, Qr = Object.keys(Zr), $r = {
4630
+ }, $r = Object.keys(Qr), ei = {
4602
4631
  base: .2,
4603
4632
  hot: .82,
4604
4633
  chromA: .42,
@@ -4607,7 +4636,7 @@ void main(){
4607
4636
  top: .35,
4608
4637
  press: .85,
4609
4638
  ripple: 1.6
4610
- }, ei = Object.keys($r), ti = {
4639
+ }, ti = Object.keys(ei), ni = {
4611
4640
  glow: 1.95,
4612
4641
  glowR: 1.3,
4613
4642
  glowIn: .3,
@@ -4630,7 +4659,7 @@ void main(){
4630
4659
  ptrLag: .0016,
4631
4660
  ptrVref: 4.5
4632
4661
  };
4633
- function ni(e) {
4662
+ function ri(e) {
4634
4663
  let t = e.trim(), n = /^#([0-9a-f]{3,8})$/i.exec(t);
4635
4664
  if (n?.[1]) {
4636
4665
  let e = n[1];
@@ -4655,11 +4684,11 @@ function ni(e) {
4655
4684
  1
4656
4685
  ];
4657
4686
  }
4658
- function ri(e, t, n) {
4687
+ function ii(e, t, n) {
4659
4688
  let r = Number.parseFloat(e.getPropertyValue(t).trim());
4660
4689
  return Number.isFinite(r) ? r : n;
4661
4690
  }
4662
- function ii(e, t) {
4691
+ function ai(e, t) {
4663
4692
  let n = (e) => t[e] ?? null;
4664
4693
  return {
4665
4694
  f1: (t, r) => e.uniform1f(n(t), r),
@@ -4671,7 +4700,7 @@ function ii(e, t) {
4671
4700
  i1: (t, r) => e.uniform1i(n(t), r)
4672
4701
  };
4673
4702
  }
4674
- function ai(e, t, n) {
4703
+ function oi(e, t, n) {
4675
4704
  if (typeof e.getContext != "function") return null;
4676
4705
  let r = null;
4677
4706
  try {
@@ -4687,21 +4716,21 @@ function ai(e, t, n) {
4687
4716
  if (!r) return null;
4688
4717
  let i = r;
4689
4718
  try {
4690
- return ci(i, e, t, n);
4719
+ return li(i, e, t, n);
4691
4720
  } catch {
4692
4721
  return i.getExtension("WEBGL_lose_context")?.loseContext(), null;
4693
4722
  }
4694
4723
  }
4695
- function oi(e, t, n) {
4724
+ function si(e, t, n) {
4696
4725
  let r = e.createShader(t);
4697
4726
  if (!r) throw Error("liquid-metal: createShader returned null");
4698
4727
  if (e.shaderSource(r, n), e.compileShader(r), !e.getShaderParameter(r, e.COMPILE_STATUS)) throw Error(e.getShaderInfoLog(r) ?? "liquid-metal: shader compile failed");
4699
4728
  return r;
4700
4729
  }
4701
- function si(e, t) {
4730
+ function ci(e, t) {
4702
4731
  let n = e.createProgram();
4703
4732
  if (!n) throw Error("liquid-metal: createProgram returned null");
4704
- if (e.attachShader(n, oi(e, e.VERTEX_SHADER, Wr)), e.attachShader(n, oi(e, e.FRAGMENT_SHADER, t)), e.bindAttribLocation(n, 0, "position"), e.linkProgram(n), !e.getProgramParameter(n, e.LINK_STATUS)) throw Error(e.getProgramInfoLog(n) ?? "liquid-metal: program link failed");
4733
+ if (e.attachShader(n, si(e, e.VERTEX_SHADER, Gr)), e.attachShader(n, si(e, e.FRAGMENT_SHADER, t)), e.bindAttribLocation(n, 0, "position"), e.linkProgram(n), !e.getProgramParameter(n, e.LINK_STATUS)) throw Error(e.getProgramInfoLog(n) ?? "liquid-metal: program link failed");
4705
4734
  let r = {}, i = e.getProgramParameter(n, e.ACTIVE_UNIFORMS);
4706
4735
  for (let t = 0; t < i; t += 1) {
4707
4736
  let i = e.getActiveUniform(n, t);
@@ -4712,8 +4741,8 @@ function si(e, t) {
4712
4741
  u: r
4713
4742
  };
4714
4743
  }
4715
- function ci(e, t, n, r) {
4716
- let i = si(e, qr), a = si(e, Kr), o = si(e, Jr), s = si(e, Yr), c = si(e, Xr), l = e.createVertexArray(), u = e.createBuffer();
4744
+ function li(e, t, n, r) {
4745
+ let i = ci(e, Jr), a = ci(e, qr), o = ci(e, Yr), s = ci(e, Xr), c = ci(e, Zr), l = e.createVertexArray(), u = e.createBuffer();
4717
4746
  if (!l || !u) throw Error("liquid-metal: VAO/VBO unavailable");
4718
4747
  e.bindVertexArray(l), e.bindBuffer(e.ARRAY_BUFFER, u), e.bufferData(e.ARRAY_BUFFER, new Float32Array([
4719
4748
  -1,
@@ -4752,7 +4781,7 @@ function ci(e, t, n, r) {
4752
4781
  function A(t) {
4753
4782
  e.bindFramebuffer(e.FRAMEBUFFER, t ? t.fbo : null), e.viewport(0, 0, t ? t.w : b, t ? t.h : x), e.drawArrays(e.TRIANGLES, 0, 3);
4754
4783
  }
4755
- let j = new Float32Array(Qr.length), ee = new Float32Array(ei.length), M = 0, te = 0, ne = 0, re = performance.now(), N = [
4784
+ let j = new Float32Array($r.length), ee = new Float32Array(ti.length), M = 0, te = 0, ne = 0, re = performance.now(), N = [
4756
4785
  0,
4757
4786
  1,
4758
4787
  2
@@ -4786,7 +4815,7 @@ function ci(e, t, n, r) {
4786
4815
  let he = window.matchMedia("(prefers-reduced-motion: reduce)"), ge = null, _e = 0, F = !1, ve = !1;
4787
4816
  function ye() {
4788
4817
  let e = getComputedStyle(n);
4789
- return $r.base = ri(e, "--game-ui-liquid-metal-rest", $r.base), $r.speed = ri(e, "--game-ui-liquid-metal-sweep-speed", $r.speed), Zr.disp = ri(e, "--game-ui-liquid-metal-dispersion", Zr.disp), ti.glow = ri(e, "--game-ui-liquid-metal-bloom", ti.glow), { accent: ni(getComputedStyle(O).color) };
4818
+ return ei.base = ii(e, "--game-ui-liquid-metal-rest", ei.base), ei.speed = ii(e, "--game-ui-liquid-metal-sweep-speed", ei.speed), Qr.disp = ii(e, "--game-ui-liquid-metal-dispersion", Qr.disp), ni.glow = ii(e, "--game-ui-liquid-metal-bloom", ni.glow), { accent: ri(getComputedStyle(O).color) };
4790
4819
  }
4791
4820
  function be(t) {
4792
4821
  if (_e = 0, F || ve) return;
@@ -4817,30 +4846,30 @@ function ci(e, t, n, r) {
4817
4846
  ge = xe;
4818
4847
  let { accent: I } = ye();
4819
4848
  for (let e = 0; e < j.length; e += 1) {
4820
- let t = Qr[e];
4821
- t && (j[e] = Zr[t]);
4849
+ let t = $r[e];
4850
+ t && (j[e] = Qr[t]);
4822
4851
  }
4823
4852
  for (let e = 0; e < ee.length; e += 1) {
4824
- let t = ei[e];
4825
- t && (ee[e] = $r[t]);
4853
+ let t = ti[e];
4854
+ t && (ee[e] = ei[t]);
4826
4855
  }
4827
- let Se = Math.max(C, 110), L = Math.max(2.4, Se / 516 * 3.2), R = ii(e, i.u), z = ii(e, a.u), B = ii(e, o.u), V = ii(e, s.u), H = ii(e, c.u);
4856
+ let Se = Math.max(C, 110), L = Math.max(2.4, Se / 516 * 3.2), R = ai(e, i.u), z = ai(e, a.u), B = ai(e, o.u), V = ai(e, s.u), H = ai(e, c.u);
4828
4857
  e.useProgram(i.p), R.f2("uC", w, T), R.f2("uHalf", S / 2, C / 2), R.f1("uT", ne), R.f1("uHover", M), R.f1("uPress", oe), R.fv4("uRip", ie), R.f4("uRipK", Q.speed, Q.width, Q.decay, Q.amp), R.f4("uRipK2", Q.facet, Q.lobes, Q.sharp, Q.emit), R.f4("uPtr", le.x, le.y, ue, de), R.f4("uPtrK", Q.ptrRad, Q.ptrAmp, Q.ptrFast, Q.ptrRim), R.f3("uAccent", I[0], I[1], I[2]), R.fv1("uP", j), A(m), e.useProgram(a.p), z.f2("uC", w, T), z.f2("uHalf", S / 2, C / 2), z.f1("uT", ne), z.f1("uBw", L), z.f1("uPress", oe), z.fv4("uRip", ie), z.f4("uRipK", Q.speed, Q.width, Q.decay, Q.amp), z.f4("uRipK2", Q.facet, Q.lobes, Q.sharp, Q.emit), z.f4("uPtr", le.x, le.y, ue, de), z.f4("uPtrK", Q.ptrRad, Q.ptrAmp, Q.ptrFast, Q.ptrRim), z.f3("uAccent", I[0], I[1], I[2]), z.fv1("uE", ee), A(h), e.useProgram(o.p), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, m.tex), B.i1("uTex", 0), B.f1("uAdd", 0), B.f2("uDstTexel", 1 / g.w, 1 / g.h), B.f2("uSrcTexel", 1 / b, 1 / x), A(g), e.useProgram(s.p), V.i1("uTex", 0), V.f2("uTexel", 1 / g.w, 1 / g.h);
4829
- let Ce = ti.soften * (Se * .5) * .95;
4858
+ let Ce = ni.soften * (Se * .5) * .95;
4830
4859
  if (Ce > .1) {
4831
4860
  let t = Math.min(4, Math.max(1, Math.ceil(Ce / 3)));
4832
4861
  V.f1("uR", Ce / Math.sqrt(t) / 1.95);
4833
4862
  for (let n = 0; n < t; n += 1) e.bindTexture(e.TEXTURE_2D, g.tex), V.f2("uDir", 1, 0), A(_), e.bindTexture(e.TEXTURE_2D, _.tex), V.f2("uDir", 0, 1), A(g);
4834
4863
  }
4835
4864
  e.useProgram(o.p), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, g.tex), e.activeTexture(e.TEXTURE1), e.bindTexture(e.TEXTURE_2D, h.tex), B.i1("uTex", 0), B.i1("uTex2", 1), B.f1("uAdd", 1), B.f2("uDstTexel", 1 / v.w, 1 / v.h), B.f2("uSrcTexel", 1 / g.w, 1 / g.h), A(v), e.useProgram(s.p), e.activeTexture(e.TEXTURE0), V.i1("uTex", 0), V.f2("uTexel", 1 / v.w, 1 / v.h);
4836
- let we = ti.glowR * (Se / E) / 129;
4865
+ let we = ni.glowR * (Se / E) / 129;
4837
4866
  for (let t of [
4838
4867
  1,
4839
4868
  2.3,
4840
4869
  5.2,
4841
4870
  9
4842
4871
  ].map((e) => e * we)) V.f1("uR", t), e.bindTexture(e.TEXTURE_2D, v.tex), V.f2("uDir", 1, 0), A(y), e.bindTexture(e.TEXTURE_2D, y.tex), V.f2("uDir", 0, 1), A(v);
4843
- e.useProgram(c.p), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, g.tex), H.i1("uSoft", 0), e.activeTexture(e.TEXTURE1), e.bindTexture(e.TEXTURE_2D, h.tex), H.i1("uRim", 1), e.activeTexture(e.TEXTURE2), e.bindTexture(e.TEXTURE_2D, v.tex), H.i1("uGlow", 2), H.f2("uRes", b, x), H.f2("uC", w, T), H.f2("uHalf", S / 2, C / 2), H.f1("uT", ne), H.fv4("uRip", ie), H.f4("uRipK", Q.speed, Q.width, Q.decay, Q.amp), H.f4("uRipK2", Q.facet, Q.lobes, Q.sharp, Q.emit), H.f3("uAccent", I[0], I[1], I[2]), H.f1("uGlowGain", ti.glow), H.f1("uGlowIn", ti.glowIn), H.f1("uOccl", ti.occl), H.f1("uDim", Zr.dim), H.f1("uPunch", ti.punch), A(null), _e = requestAnimationFrame(be);
4872
+ e.useProgram(c.p), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, g.tex), H.i1("uSoft", 0), e.activeTexture(e.TEXTURE1), e.bindTexture(e.TEXTURE_2D, h.tex), H.i1("uRim", 1), e.activeTexture(e.TEXTURE2), e.bindTexture(e.TEXTURE_2D, v.tex), H.i1("uGlow", 2), H.f2("uRes", b, x), H.f2("uC", w, T), H.f2("uHalf", S / 2, C / 2), H.f1("uT", ne), H.fv4("uRip", ie), H.f4("uRipK", Q.speed, Q.width, Q.decay, Q.amp), H.f4("uRipK2", Q.facet, Q.lobes, Q.sharp, Q.emit), H.f3("uAccent", I[0], I[1], I[2]), H.f1("uGlowGain", ni.glow), H.f1("uGlowIn", ni.glowIn), H.f1("uOccl", ni.occl), H.f1("uDim", Qr.dim), H.f1("uPunch", ni.punch), A(null), _e = requestAnimationFrame(be);
4844
4873
  }
4845
4874
  let xe = (e) => {
4846
4875
  if (e.pointerType !== "mouse") return;
@@ -4884,22 +4913,22 @@ function ci(e, t, n, r) {
4884
4913
  }
4885
4914
  //#endregion
4886
4915
  //#region src/LiquidMetalButton.tsx
4887
- function li({ children: e, className: t, onClick: n, sound: r = !1, type: i = "button", renderer: a = "auto", ...o }) {
4916
+ function ui({ children: e, className: t, onClick: n, sound: r = !1, type: i = "button", renderer: a = "auto", ...o }) {
4888
4917
  let s = D(null), c = D(null), l = D(null), [u, d] = O("css");
4889
4918
  C(() => {
4890
4919
  let e = s.current, t = c.current, n = l.current;
4891
4920
  if (!e || !t || !n) return;
4892
4921
  let r = window.matchMedia("(prefers-reduced-motion: reduce)"), i = !1, o = !1, u = null, f = !1, p = () => {
4893
- u?.dispose(), u = null, o &&= (Hr(), !1), f || d("css");
4922
+ u?.dispose(), u = null, o &&= (Ur(), !1), f || d("css");
4894
4923
  }, m = () => {
4895
- if (!(f || u) && Ur({
4924
+ if (!(f || u) && Wr({
4896
4925
  renderer: a,
4897
4926
  hasWebGL2: typeof WebGL2RenderingContext < "u",
4898
4927
  prefersReducedMotion: r.matches,
4899
4928
  isInViewport: i
4900
- }) && Vr()) {
4901
- if (o = !0, u = ai(n, t, e), !u) {
4902
- Hr(), o = !1;
4929
+ }) && Hr()) {
4930
+ if (o = !0, u = oi(n, t, e), !u) {
4931
+ Ur(), o = !1;
4903
4932
  return;
4904
4933
  }
4905
4934
  d("webgl");
@@ -4924,7 +4953,7 @@ function li({ children: e, className: t, onClick: n, sound: r = !1, type: i = "b
4924
4953
  };
4925
4954
  }, [a]);
4926
4955
  let f = (e) => {
4927
- r && Vn(r), n?.(e);
4956
+ r && Hn(r), n?.(e);
4928
4957
  }, p = ["game-ui-liquid-metal", t].filter(Boolean).join(" ");
4929
4958
  return /* @__PURE__ */ j("span", {
4930
4959
  ref: s,
@@ -4956,7 +4985,7 @@ function li({ children: e, className: t, onClick: n, sound: r = !1, type: i = "b
4956
4985
  }
4957
4986
  //#endregion
4958
4987
  //#region src/GameCallout.tsx
4959
- function ui({ heading: e, children: t, tone: n = "info", className: r, ...i }) {
4988
+ function di({ heading: e, children: t, tone: n = "info", className: r, ...i }) {
4960
4989
  return /* @__PURE__ */ j("div", {
4961
4990
  className: [
4962
4991
  "game-ui-callout",
@@ -4977,7 +5006,7 @@ function ui({ heading: e, children: t, tone: n = "info", className: r, ...i }) {
4977
5006
  }
4978
5007
  //#endregion
4979
5008
  //#region src/GameDialog.tsx
4980
- function di({ children: e, className: t, title: n }) {
5009
+ function fi({ children: e, className: t, title: n }) {
4981
5010
  let r = w();
4982
5011
  return /* @__PURE__ */ j("section", {
4983
5012
  "aria-labelledby": r,
@@ -4995,7 +5024,7 @@ function di({ children: e, className: t, title: n }) {
4995
5024
  }
4996
5025
  //#endregion
4997
5026
  //#region src/GameHistoryPanel.tsx
4998
- function fi({ entries: e, label: t }) {
5027
+ function pi({ entries: e, label: t }) {
4999
5028
  return /* @__PURE__ */ A("section", {
5000
5029
  "aria-label": t,
5001
5030
  className: "game-ui-history",
@@ -5011,7 +5040,7 @@ function fi({ entries: e, label: t }) {
5011
5040
  }
5012
5041
  //#endregion
5013
5042
  //#region src/GameHudActions.tsx
5014
- function pi({ children: e, className: t, label: n, ...r }) {
5043
+ function mi({ children: e, className: t, label: n, ...r }) {
5015
5044
  return /* @__PURE__ */ A("nav", {
5016
5045
  "aria-label": n,
5017
5046
  className: ["game-ui-hud-actions", t].filter(Boolean).join(" "),
@@ -5031,7 +5060,7 @@ function $({ children: e, className: t, title: n, tone: r = "default", ...i }) {
5031
5060
  children: [n ? /* @__PURE__ */ A("h3", { children: n }) : null, e]
5032
5061
  });
5033
5062
  }
5034
- function mi({ children: e, className: t, label: n, surface: r = "flat", liquidFinish: i, type: a = "button", ...o }) {
5063
+ function hi({ children: e, className: t, label: n, surface: r = "flat", liquidFinish: i, type: a = "button", ...o }) {
5035
5064
  let s = /* @__PURE__ */ A("button", {
5036
5065
  "aria-label": n,
5037
5066
  className: ["game-ui-icon-button", t].filter(Boolean).join(" "),
@@ -5040,13 +5069,13 @@ function mi({ children: e, className: t, label: n, surface: r = "flat", liquidFi
5040
5069
  ...o,
5041
5070
  children: e
5042
5071
  });
5043
- return r !== "liquid" || o.disabled ? s : /* @__PURE__ */ A(Wn, {
5072
+ return r !== "liquid" || o.disabled ? s : /* @__PURE__ */ A(Gn, {
5044
5073
  className: "game-ui-icon-button-liquid",
5045
5074
  ...i === void 0 ? {} : { liquidFinish: i },
5046
5075
  children: s
5047
5076
  });
5048
5077
  }
5049
- function hi({ children: e, label: t }) {
5078
+ function gi({ children: e, label: t }) {
5050
5079
  let n = w();
5051
5080
  return /* @__PURE__ */ j("span", {
5052
5081
  className: "game-ui-tooltip",
@@ -5057,7 +5086,7 @@ function hi({ children: e, label: t }) {
5057
5086
  })]
5058
5087
  });
5059
5088
  }
5060
- function gi({ activeId: e, id: t, onSelect: n, tabs: r, orientation: i = "horizontal", "aria-label": a, "aria-labelledby": o }) {
5089
+ function _i({ activeId: e, id: t, onSelect: n, tabs: r, orientation: i = "horizontal", "aria-label": a, "aria-labelledby": o }) {
5061
5090
  let s = w(), c = t ?? s;
5062
5091
  return /* @__PURE__ */ A("div", {
5063
5092
  className: "game-ui-tabs",
@@ -5105,10 +5134,10 @@ function gi({ activeId: e, id: t, onSelect: n, tabs: r, orientation: i = "horizo
5105
5134
  }, t.id))
5106
5135
  });
5107
5136
  }
5108
- function _i(e, t) {
5137
+ function vi(e, t) {
5109
5138
  return e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height;
5110
5139
  }
5111
- function vi({ activeId: e, label: t, onSelect: n, options: r, surface: i = "liquid", liquidFinish: a, disabled: o }) {
5140
+ function yi({ activeId: e, label: t, onSelect: n, options: r, surface: i = "liquid", liquidFinish: a, disabled: o }) {
5112
5141
  let s = D(null), c = D([]), [l, u] = O({
5113
5142
  x: 0,
5114
5143
  y: 0,
@@ -5125,7 +5154,7 @@ function vi({ activeId: e, label: t, onSelect: n, options: r, surface: i = "liqu
5125
5154
  width: r.width,
5126
5155
  height: r.height
5127
5156
  };
5128
- u((e) => _i(e, i) ? e : i);
5157
+ u((e) => vi(e, i) ? e : i);
5129
5158
  };
5130
5159
  if (n(), typeof ResizeObserver > "u") return;
5131
5160
  let r = new ResizeObserver(n);
@@ -5142,7 +5171,7 @@ function vi({ activeId: e, label: t, onSelect: n, options: r, surface: i = "liqu
5142
5171
  "data-segmented-surface": f ? void 0 : "flat",
5143
5172
  "data-segmented-disabled": o ? "true" : void 0,
5144
5173
  children: [
5145
- f ? /* @__PURE__ */ A(bn, {
5174
+ f ? /* @__PURE__ */ A(xn, {
5146
5175
  "aria-hidden": "true",
5147
5176
  className: "game-ui-segmented-surface",
5148
5177
  fill: "var(--game-ui-surface-raised)",
@@ -5153,7 +5182,7 @@ function vi({ activeId: e, label: t, onSelect: n, options: r, surface: i = "liqu
5153
5182
  pointerEvents: "none",
5154
5183
  position: "absolute"
5155
5184
  },
5156
- children: /* @__PURE__ */ A(bn.Item, {
5185
+ children: /* @__PURE__ */ A(xn.Item, {
5157
5186
  style: {
5158
5187
  borderRadius: "var(--game-ui-radius-control)",
5159
5188
  inset: 0,
@@ -5162,7 +5191,7 @@ function vi({ activeId: e, label: t, onSelect: n, options: r, surface: i = "liqu
5162
5191
  children: null
5163
5192
  })
5164
5193
  }) : null,
5165
- f && l.width > 0 && l.height > 0 ? /* @__PURE__ */ A(bn, {
5194
+ f && l.width > 0 && l.height > 0 ? /* @__PURE__ */ A(xn, {
5166
5195
  ...a === void 0 ? {} : { liquidFinish: a },
5167
5196
  "aria-hidden": "true",
5168
5197
  className: "game-ui-segmented-follow",
@@ -5174,7 +5203,7 @@ function vi({ activeId: e, label: t, onSelect: n, options: r, surface: i = "liqu
5174
5203
  pointerEvents: "none",
5175
5204
  position: "absolute"
5176
5205
  },
5177
- children: /* @__PURE__ */ A(bn.Item, {
5206
+ children: /* @__PURE__ */ A(xn.Item, {
5178
5207
  "aria-hidden": "true",
5179
5208
  style: {
5180
5209
  borderRadius: "var(--game-ui-radius-control)",
@@ -5204,7 +5233,7 @@ function vi({ activeId: e, label: t, onSelect: n, options: r, surface: i = "liqu
5204
5233
  ]
5205
5234
  });
5206
5235
  }
5207
- function yi({ label: e, max: t, min: n, step: r, disabled: i, name: a, id: o, onChange: s, value: c }) {
5236
+ function bi({ label: e, max: t, min: n, step: r, disabled: i, name: a, id: o, onChange: s, value: c }) {
5208
5237
  return /* @__PURE__ */ j("label", {
5209
5238
  className: "game-ui-slider",
5210
5239
  children: [/* @__PURE__ */ A("span", { children: e }), /* @__PURE__ */ A("input", {
@@ -5222,7 +5251,7 @@ function yi({ label: e, max: t, min: n, step: r, disabled: i, name: a, id: o, on
5222
5251
  })]
5223
5252
  });
5224
5253
  }
5225
- function bi({ checked: e, disabled: t, label: n, onClick: r, surface: i = "flat", liquidFinish: a }) {
5254
+ function xi({ checked: e, disabled: t, label: n, onClick: r, surface: i = "flat", liquidFinish: a }) {
5226
5255
  return /* @__PURE__ */ j("button", {
5227
5256
  "aria-checked": e,
5228
5257
  className: "game-ui-toggle",
@@ -5234,14 +5263,14 @@ function bi({ checked: e, disabled: t, label: n, onClick: r, surface: i = "flat"
5234
5263
  children: [/* @__PURE__ */ A("span", { children: n }), i === "liquid" && !t ? /* @__PURE__ */ A("span", {
5235
5264
  "aria-hidden": "true",
5236
5265
  className: "game-ui-toggle-liquid-track",
5237
- children: /* @__PURE__ */ A(bn, {
5266
+ children: /* @__PURE__ */ A(xn, {
5238
5267
  className: "game-ui-toggle-liquid-body",
5239
5268
  blur: 3,
5240
5269
  contrast: 18,
5241
5270
  liquidFinish: a ?? "glossy",
5242
5271
  fill: "var(--game-ui-text)",
5243
5272
  filterPadding: 10,
5244
- children: /* @__PURE__ */ A(bn.Item, {
5273
+ children: /* @__PURE__ */ A(xn.Item, {
5245
5274
  className: "game-ui-toggle-liquid-thumb",
5246
5275
  radius: 999,
5247
5276
  x: e ? 24 : 0,
@@ -5255,7 +5284,7 @@ function bi({ checked: e, disabled: t, label: n, onClick: r, surface: i = "flat"
5255
5284
  })]
5256
5285
  });
5257
5286
  }
5258
- function xi({ items: e, label: t, onSelect: n }) {
5287
+ function Si({ items: e, label: t, onSelect: n }) {
5259
5288
  return /* @__PURE__ */ A("div", {
5260
5289
  "aria-label": t,
5261
5290
  className: "game-ui-radial-menu",
@@ -5270,7 +5299,7 @@ function xi({ items: e, label: t, onSelect: n }) {
5270
5299
  }, e.id))
5271
5300
  });
5272
5301
  }
5273
- function Si({ children: e, tone: t = "info" }) {
5302
+ function Ci({ children: e, tone: t = "info" }) {
5274
5303
  return /* @__PURE__ */ A("div", {
5275
5304
  className: "game-ui-toast",
5276
5305
  "data-toast-tone": t,
@@ -5278,7 +5307,7 @@ function Si({ children: e, tone: t = "info" }) {
5278
5307
  children: e
5279
5308
  });
5280
5309
  }
5281
- function Ci({ actionLabel: e, children: t, title: n }) {
5310
+ function wi({ actionLabel: e, children: t, title: n }) {
5282
5311
  return /* @__PURE__ */ j("section", {
5283
5312
  "aria-label": n,
5284
5313
  className: "game-ui-prompt",
@@ -5290,18 +5319,18 @@ function Ci({ actionLabel: e, children: t, title: n }) {
5290
5319
  }
5291
5320
  //#endregion
5292
5321
  //#region src/FirstSessionGameShell.tsx
5293
- function wi({ fallback: e, slot: t }) {
5322
+ function Ti({ fallback: e, slot: t }) {
5294
5323
  return t ?? /* @__PURE__ */ A(Z, {
5295
5324
  icon: e,
5296
5325
  size: "sm"
5297
5326
  });
5298
5327
  }
5299
- function Ti({ authenticated: e, batteryCount: t, className: n, dailyStreak: r, iconSlots: i, labels: a, onHistory: o, onSettings: s, onWardrobe: c, playerName: l }) {
5328
+ function Ei({ authenticated: e, batteryCount: t, className: n, dailyStreak: r, iconSlots: i, labels: a, onHistory: o, onSettings: s, onWardrobe: c, playerName: l }) {
5300
5329
  let u = ["swimmer-first-session-shell", n].filter(Boolean).join(" "), d = e ? `${t} 🔋` : a.guest ?? "guest";
5301
5330
  return /* @__PURE__ */ j("section", {
5302
5331
  "aria-label": a.shell,
5303
5332
  className: u,
5304
- children: [/* @__PURE__ */ A(mr, {
5333
+ children: [/* @__PURE__ */ A(hr, {
5305
5334
  className: "swimmer-first-session-hud",
5306
5335
  items: [
5307
5336
  {
@@ -5333,7 +5362,7 @@ function Ti({ authenticated: e, batteryCount: t, className: n, dailyStreak: r, i
5333
5362
  }
5334
5363
  ],
5335
5364
  label: a.hud,
5336
- actions: /* @__PURE__ */ j(pi, {
5365
+ actions: /* @__PURE__ */ j(mi, {
5337
5366
  className: "swimmer-first-session-hud-actions",
5338
5367
  label: a.tools,
5339
5368
  children: [
@@ -5341,7 +5370,7 @@ function Ti({ authenticated: e, batteryCount: t, className: n, dailyStreak: r, i
5341
5370
  "aria-label": a.wardrobe,
5342
5371
  onClick: c,
5343
5372
  variant: "secondary",
5344
- children: [/* @__PURE__ */ A(wi, {
5373
+ children: [/* @__PURE__ */ A(Ti, {
5345
5374
  fallback: "shirt",
5346
5375
  slot: i?.wardrobe
5347
5376
  }), a.wardrobe]
@@ -5350,7 +5379,7 @@ function Ti({ authenticated: e, batteryCount: t, className: n, dailyStreak: r, i
5350
5379
  "aria-label": a.settings,
5351
5380
  onClick: s,
5352
5381
  variant: "secondary",
5353
- children: [/* @__PURE__ */ A(wi, {
5382
+ children: [/* @__PURE__ */ A(Ti, {
5354
5383
  fallback: "settings",
5355
5384
  slot: i?.settings
5356
5385
  }), a.settings]
@@ -5359,7 +5388,7 @@ function Ti({ authenticated: e, batteryCount: t, className: n, dailyStreak: r, i
5359
5388
  "aria-label": a.history,
5360
5389
  onClick: o,
5361
5390
  variant: "secondary",
5362
- children: [/* @__PURE__ */ A(wi, {
5391
+ children: [/* @__PURE__ */ A(Ti, {
5363
5392
  fallback: "history",
5364
5393
  slot: i?.history
5365
5394
  }), a.history]
@@ -5384,7 +5413,7 @@ function Ti({ authenticated: e, batteryCount: t, className: n, dailyStreak: r, i
5384
5413
  }),
5385
5414
  /* @__PURE__ */ j("label", {
5386
5415
  className: "swimmer-first-session-input",
5387
- children: [/* @__PURE__ */ A(wi, {
5416
+ children: [/* @__PURE__ */ A(Ti, {
5388
5417
  fallback: "chat",
5389
5418
  slot: i?.input
5390
5419
  }), /* @__PURE__ */ A("span", { children: a.input })]
@@ -5392,7 +5421,7 @@ function Ti({ authenticated: e, batteryCount: t, className: n, dailyStreak: r, i
5392
5421
  /* @__PURE__ */ j("button", {
5393
5422
  className: "swimmer-first-session-emote",
5394
5423
  type: "button",
5395
- children: [/* @__PURE__ */ A(wi, {
5424
+ children: [/* @__PURE__ */ A(Ti, {
5396
5425
  fallback: "smile",
5397
5426
  slot: i?.emote
5398
5427
  }), a.emote]
@@ -5401,7 +5430,7 @@ function Ti({ authenticated: e, batteryCount: t, className: n, dailyStreak: r, i
5401
5430
  })]
5402
5431
  });
5403
5432
  }
5404
- function Ei({ labels: e, onDismiss: t, open: n }) {
5433
+ function Di({ labels: e, onDismiss: t, open: n }) {
5405
5434
  return n ? /* @__PURE__ */ j("aside", {
5406
5435
  "aria-labelledby": "swimmer-first-session-onboarding-title",
5407
5436
  "aria-modal": "true",
@@ -5449,7 +5478,7 @@ function Ei({ labels: e, onDismiss: t, open: n }) {
5449
5478
  }
5450
5479
  //#endregion
5451
5480
  //#region src/GameForms.tsx
5452
- var Di = y(function({ className: e, invalid: t, type: n = "text", ...r }, i) {
5481
+ var Oi = y(function({ className: e, invalid: t, type: n = "text", ...r }, i) {
5453
5482
  return /* @__PURE__ */ A("input", {
5454
5483
  className: ["game-ui-input", e].filter(Boolean).join(" "),
5455
5484
  "data-invalid": t ? "true" : void 0,
@@ -5458,7 +5487,7 @@ var Di = y(function({ className: e, invalid: t, type: n = "text", ...r }, i) {
5458
5487
  ...r,
5459
5488
  "aria-invalid": r["aria-invalid"] ?? (t || void 0)
5460
5489
  });
5461
- }), Oi = y(function({ className: e, invalid: t, rows: n = 3, ...r }, i) {
5490
+ }), ki = y(function({ className: e, invalid: t, rows: n = 3, ...r }, i) {
5462
5491
  return /* @__PURE__ */ A("textarea", {
5463
5492
  className: [
5464
5493
  "game-ui-input",
@@ -5472,7 +5501,7 @@ var Di = y(function({ className: e, invalid: t, type: n = "text", ...r }, i) {
5472
5501
  "aria-invalid": r["aria-invalid"] ?? (t || void 0)
5473
5502
  });
5474
5503
  });
5475
- function ki({ children: e, className: t, error: n, hint: r, label: i, required: a }) {
5504
+ function Ai({ children: e, className: t, error: n, hint: r, label: i, required: a }) {
5476
5505
  return /* @__PURE__ */ j("label", {
5477
5506
  className: ["game-ui-field", t].filter(Boolean).join(" "),
5478
5507
  "data-invalid": n ? "true" : void 0,
@@ -5498,7 +5527,7 @@ function ki({ children: e, className: t, error: n, hint: r, label: i, required:
5498
5527
  ]
5499
5528
  });
5500
5529
  }
5501
- function Ai({ className: e, label: t, ...n }) {
5530
+ function ji({ className: e, label: t, ...n }) {
5502
5531
  return /* @__PURE__ */ j("label", {
5503
5532
  className: ["game-ui-checkbox", e].filter(Boolean).join(" "),
5504
5533
  children: [
@@ -5520,7 +5549,7 @@ function Ai({ className: e, label: t, ...n }) {
5520
5549
  }
5521
5550
  //#endregion
5522
5551
  //#region src/GameSurfacePack.tsx
5523
- function ji({ assetLibrary: e, bottomBar: t, children: n, className: r, density: i = "comfortable", hud: a, layout: o = "auto", movementPad: s, overlay: c, sidePanel: l, title: u }) {
5552
+ function Mi({ assetLibrary: e, bottomBar: t, children: n, className: r, density: i = "comfortable", hud: a, layout: o = "auto", movementPad: s, overlay: c, sidePanel: l, title: u }) {
5524
5553
  return /* @__PURE__ */ j("section", {
5525
5554
  "aria-label": u,
5526
5555
  className: ["game-ui-shell", r].filter(Boolean).join(" "),
@@ -5558,8 +5587,8 @@ function ji({ assetLibrary: e, bottomBar: t, children: n, className: r, density:
5558
5587
  ]
5559
5588
  });
5560
5589
  }
5561
- var Mi = ji;
5562
- function Ni({ className: e, density: t = "comfortable", facts: n, label: r, variant: i = "facts" }) {
5590
+ var Ni = Mi;
5591
+ function Pi({ className: e, density: t = "comfortable", facts: n, label: r, variant: i = "facts" }) {
5563
5592
  return /* @__PURE__ */ A("section", {
5564
5593
  "aria-label": r,
5565
5594
  className: ["game-ui-fact-list", e].filter(Boolean).join(" "),
@@ -5588,9 +5617,9 @@ function Ni({ className: e, density: t = "comfortable", facts: n, label: r, vari
5588
5617
  }, e.id))
5589
5618
  });
5590
5619
  }
5591
- var Pi = Ni;
5592
- function Fi({ actions: e, className: t, density: n = "comfortable", iconLabelMode: r = "hidden", label: i, style: a = "button" }) {
5593
- return /* @__PURE__ */ j(pi, {
5620
+ var Fi = Pi;
5621
+ function Ii({ actions: e, className: t, density: n = "comfortable", iconLabelMode: r = "hidden", label: i, style: a = "button" }) {
5622
+ return /* @__PURE__ */ j(mi, {
5594
5623
  className: ["game-ui-action-grid", t].filter(Boolean).join(" "),
5595
5624
  "data-icon-label-mode": a === "icon" ? r : void 0,
5596
5625
  label: i,
@@ -5615,7 +5644,7 @@ function Fi({ actions: e, className: t, density: n = "comfortable", iconLabelMod
5615
5644
  }) : null,
5616
5645
  e.shortcut ? /* @__PURE__ */ A("kbd", { children: e.shortcut }) : null
5617
5646
  ] }), o = () => e.onAction?.(e.id);
5618
- return a === "icon" ? /* @__PURE__ */ A(mi, {
5647
+ return a === "icon" ? /* @__PURE__ */ A(hi, {
5619
5648
  "aria-pressed": e.selected,
5620
5649
  className: "game-ui-action-grid-button",
5621
5650
  disabled: e.disabled,
@@ -5633,7 +5662,7 @@ function Fi({ actions: e, className: t, density: n = "comfortable", iconLabelMod
5633
5662
  })]
5634
5663
  });
5635
5664
  }
5636
- var Ii = [
5665
+ var Li = [
5637
5666
  {
5638
5667
  direction: "forward",
5639
5668
  label: "Move forward",
@@ -5658,7 +5687,7 @@ var Ii = [
5658
5687
  shortcut: "S / ↓",
5659
5688
  symbol: "↓"
5660
5689
  }
5661
- ], Li = {
5690
+ ], Ri = {
5662
5691
  ArrowUp: "forward",
5663
5692
  w: "forward",
5664
5693
  W: "forward",
@@ -5673,7 +5702,7 @@ var Ii = [
5673
5702
  S: "backward",
5674
5703
  " ": "reset"
5675
5704
  };
5676
- function Ri({ actions: e = Ii, className: t, density: n = "comfortable", disabled: r = !1, helpText: i, label: a, layout: o = "dpad", onMove: s }) {
5705
+ function zi({ actions: e = Li, className: t, density: n = "comfortable", disabled: r = !1, helpText: i, label: a, layout: o = "dpad", onMove: s }) {
5677
5706
  let c = ["game-ui-movement-pad", t].filter(Boolean).join(" "), l = (e) => {
5678
5707
  r || s?.(e);
5679
5708
  };
@@ -5683,7 +5712,7 @@ function Ri({ actions: e = Ii, className: t, density: n = "comfortable", disable
5683
5712
  "data-density": n,
5684
5713
  "data-layout": o,
5685
5714
  onKeyDown: (t) => {
5686
- let n = Li[t.key];
5715
+ let n = Ri[t.key];
5687
5716
  if (!n) return;
5688
5717
  let i = e.find((e) => e.direction === n);
5689
5718
  !i || i.disabled || r || (t.preventDefault(), l(n));
@@ -5691,7 +5720,7 @@ function Ri({ actions: e = Ii, className: t, density: n = "comfortable", disable
5691
5720
  tabIndex: 0,
5692
5721
  children: [/* @__PURE__ */ A("div", {
5693
5722
  className: "game-ui-movement-pad-grid",
5694
- children: e.map((e) => /* @__PURE__ */ j(mi, {
5723
+ children: e.map((e) => /* @__PURE__ */ j(hi, {
5695
5724
  className: "game-ui-movement-button",
5696
5725
  "data-direction": e.direction,
5697
5726
  disabled: r || e.disabled,
@@ -5709,15 +5738,15 @@ function Ri({ actions: e = Ii, className: t, density: n = "comfortable", disable
5709
5738
  }), i ? /* @__PURE__ */ A("p", { children: i }) : null]
5710
5739
  });
5711
5740
  }
5712
- var zi = {
5741
+ var Bi = {
5713
5742
  generated: "Generated",
5714
5743
  imported: "Imported",
5715
5744
  starter: "Starter"
5716
- }, Bi = {
5745
+ }, Vi = {
5717
5746
  generated: "ai",
5718
5747
  imported: "warning",
5719
5748
  starter: "neutral"
5720
- }, Vi = {
5749
+ }, Hi = {
5721
5750
  error: "danger",
5722
5751
  generating: "ai",
5723
5752
  missing: "danger",
@@ -5725,8 +5754,8 @@ var zi = {
5725
5754
  ready: "neutral",
5726
5755
  selected: "success"
5727
5756
  };
5728
- function Hi({ assetId: e, badges: t = [], cardLayout: n = "list", className: r, description: i, disabled: a, facts: o = [], icon: s = "gem", onClick: c, onSelect: l, selected: u = !1, source: d, sourceLabel: f, status: p = "ready", statusLabel: m, thumbnailAlt: h = "", thumbnailSrc: g, title: _, type: v = "button", ...y }) {
5729
- let { "aria-label": b, ...x } = y, S = ["game-ui-asset-card", r].filter(Boolean).join(" "), C = f ?? zi[d], w = m ?? p;
5757
+ function Ui({ assetId: e, badges: t = [], cardLayout: n = "list", className: r, description: i, disabled: a, facts: o = [], icon: s = "gem", onClick: c, onSelect: l, selected: u = !1, source: d, sourceLabel: f, status: p = "ready", statusLabel: m, thumbnailAlt: h = "", thumbnailSrc: g, title: _, type: v = "button", ...y }) {
5758
+ let { "aria-label": b, ...x } = y, S = ["game-ui-asset-card", r].filter(Boolean).join(" "), C = f ?? Bi[d], w = m ?? p;
5730
5759
  return /* @__PURE__ */ j("button", {
5731
5760
  "aria-label": b ?? _,
5732
5761
  "aria-pressed": u,
@@ -5757,11 +5786,11 @@ function Hi({ assetId: e, badges: t = [], cardLayout: n = "list", className: r,
5757
5786
  className: "game-ui-asset-card-badges",
5758
5787
  children: [
5759
5788
  /* @__PURE__ */ A(X, {
5760
- tone: Bi[d],
5789
+ tone: Vi[d],
5761
5790
  children: C
5762
5791
  }),
5763
5792
  /* @__PURE__ */ A(X, {
5764
- tone: Vi[p],
5793
+ tone: Hi[p],
5765
5794
  children: w
5766
5795
  }),
5767
5796
  t.map((e) => /* @__PURE__ */ A(X, {
@@ -5780,7 +5809,7 @@ function Hi({ assetId: e, badges: t = [], cardLayout: n = "list", className: r,
5780
5809
  })]
5781
5810
  });
5782
5811
  }
5783
- function Ui({ cardLayout: e = "auto", className: t, density: n = "comfortable", emptyAction: r, emptyDescription: i = "Assets will appear here when they are ready to place.", emptyTitle: a = "No assets ready", groups: o, label: s, onSelectAsset: c, selectedAssetId: l, subtitle: u, title: d }) {
5812
+ function Wi({ cardLayout: e = "auto", className: t, density: n = "comfortable", emptyAction: r, emptyDescription: i = "Assets will appear here when they are ready to place.", emptyTitle: a = "No assets ready", groups: o, label: s, onSelectAsset: c, selectedAssetId: l, subtitle: u, title: d }) {
5784
5813
  let f = ["game-ui-asset-library", t].filter(Boolean).join(" "), p = o.reduce((e, t) => e + t.assets.length, 0), m = o.reduce((e, t) => (t.assets.forEach((t) => {
5785
5814
  e[t.source] += 1;
5786
5815
  }), e), {
@@ -5805,15 +5834,15 @@ function Ui({ cardLayout: e = "auto", className: t, density: n = "comfortable",
5805
5834
  "aria-label": "Asset source counts",
5806
5835
  className: "game-ui-asset-library-counts",
5807
5836
  children: Object.entries(m).map(([e, t]) => /* @__PURE__ */ j(X, {
5808
- tone: Bi[e],
5837
+ tone: Vi[e],
5809
5838
  children: [
5810
- zi[e],
5839
+ Bi[e],
5811
5840
  " ",
5812
5841
  t
5813
5842
  ]
5814
5843
  }, e))
5815
5844
  }),
5816
- p === 0 ? /* @__PURE__ */ A(Tr, {
5845
+ p === 0 ? /* @__PURE__ */ A(Er, {
5817
5846
  action: r,
5818
5847
  description: i,
5819
5848
  icon: "gem",
@@ -5825,13 +5854,13 @@ function Ui({ cardLayout: e = "auto", className: t, density: n = "comfortable",
5825
5854
  className: "game-ui-asset-library-group",
5826
5855
  "data-asset-source": t.source,
5827
5856
  children: [/* @__PURE__ */ j("header", { children: [/* @__PURE__ */ A("strong", { children: t.label }), t.source ? /* @__PURE__ */ A(X, {
5828
- tone: Bi[t.source],
5829
- children: zi[t.source]
5857
+ tone: Vi[t.source],
5858
+ children: Bi[t.source]
5830
5859
  }) : null] }), /* @__PURE__ */ A("div", {
5831
5860
  className: "game-ui-asset-library-grid",
5832
5861
  children: t.assets.map((t) => {
5833
5862
  let n = e === "auto" ? t.cardLayout : e;
5834
- return /* @__PURE__ */ A(Hi, {
5863
+ return /* @__PURE__ */ A(Ui, {
5835
5864
  ...t,
5836
5865
  ...n ? { cardLayout: n } : {},
5837
5866
  ...c ? { onSelect: c } : {},
@@ -5845,7 +5874,7 @@ function Ui({ cardLayout: e = "auto", className: t, density: n = "comfortable",
5845
5874
  })
5846
5875
  });
5847
5876
  }
5848
- function Wi({ actions: e = [], capacityLabel: t = "Objects", className: n, density: r = "comfortable", maxObjects: i, objectActions: a = [], placedObjects: o, selectedLabel: s = "Selected", selectedTitle: c, statusLabel: l = "Status", statusTone: u = "neutral", statusValue: d = "Idle", title: f }) {
5877
+ function Gi({ actions: e = [], capacityLabel: t = "Objects", className: n, density: r = "comfortable", maxObjects: i, objectActions: a = [], placedObjects: o, selectedLabel: s = "Selected", selectedTitle: c, statusLabel: l = "Status", statusTone: u = "neutral", statusValue: d = "Idle", title: f }) {
5849
5878
  let p = ["game-ui-placement-toolbar", n].filter(Boolean).join(" "), m = typeof o == "number" && typeof i == "number", h = m && i > 0 ? Math.min(i, o) : 0;
5850
5879
  return /* @__PURE__ */ A($, {
5851
5880
  className: p,
@@ -5854,7 +5883,7 @@ function Wi({ actions: e = [], capacityLabel: t = "Objects", className: n, densi
5854
5883
  children: /* @__PURE__ */ j("div", {
5855
5884
  "data-density": r,
5856
5885
  children: [
5857
- /* @__PURE__ */ A(Ni, {
5886
+ /* @__PURE__ */ A(Pi, {
5858
5887
  density: r,
5859
5888
  facts: [{
5860
5889
  icon: "gem",
@@ -5870,19 +5899,19 @@ function Wi({ actions: e = [], capacityLabel: t = "Objects", className: n, densi
5870
5899
  }],
5871
5900
  label: `${f} facts`
5872
5901
  }),
5873
- m ? /* @__PURE__ */ A(wr, {
5902
+ m ? /* @__PURE__ */ A(Tr, {
5874
5903
  label: t,
5875
5904
  max: i,
5876
5905
  showValue: !0,
5877
5906
  tone: h >= i ? "warning" : "success",
5878
5907
  value: h
5879
5908
  }) : null,
5880
- e.length > 0 ? /* @__PURE__ */ A(Fi, {
5909
+ e.length > 0 ? /* @__PURE__ */ A(Ii, {
5881
5910
  actions: e,
5882
5911
  density: r,
5883
5912
  label: `${f} actions`
5884
5913
  }) : null,
5885
- a.length > 0 ? /* @__PURE__ */ A(Fi, {
5914
+ a.length > 0 ? /* @__PURE__ */ A(Ii, {
5886
5915
  actions: a,
5887
5916
  density: r,
5888
5917
  label: `${f} object actions`,
@@ -5892,7 +5921,7 @@ function Wi({ actions: e = [], capacityLabel: t = "Objects", className: n, densi
5892
5921
  })
5893
5922
  });
5894
5923
  }
5895
- var Gi = Wi, Ki = {
5924
+ var Ki = Gi, qi = {
5896
5925
  build: "home",
5897
5926
  flatten: "card",
5898
5927
  inspect: "compass",
@@ -5902,7 +5931,7 @@ var Gi = Wi, Ki = {
5902
5931
  raise: "energy",
5903
5932
  smooth: "lucky",
5904
5933
  terrain: "portal"
5905
- }, qi = {
5934
+ }, Ji = {
5906
5935
  error: "danger",
5907
5936
  locked: "warning",
5908
5937
  missing: "danger",
@@ -5910,10 +5939,10 @@ var Gi = Wi, Ki = {
5910
5939
  ready: "neutral",
5911
5940
  selected: "success"
5912
5941
  };
5913
- function Ji(e, t, n, r) {
5942
+ function Yi(e, t, n, r) {
5914
5943
  let i = {
5915
5944
  disabled: !!(r || e.disabled),
5916
- icon: e.icon ?? Ki[e.id] ?? "gem",
5945
+ icon: e.icon ?? qi[e.id] ?? "gem",
5917
5946
  id: e.id,
5918
5947
  label: e.label,
5919
5948
  selected: e.id === t,
@@ -5921,21 +5950,21 @@ function Ji(e, t, n, r) {
5921
5950
  };
5922
5951
  return e.ariaLabel && (i.ariaLabel = e.ariaLabel), e.compactLabel && (i.compactLabel = e.compactLabel), e.meta && (i.meta = e.meta), e.shortcut && (i.shortcut = e.shortcut), n && (i.onAction = n), i;
5923
5952
  }
5924
- function Yi(e, t, n) {
5953
+ function Xi(e, t, n) {
5925
5954
  return Number.isNaN(e) ? t : Math.min(n, Math.max(t, e));
5926
5955
  }
5927
- function Xi(e) {
5956
+ function Zi(e) {
5928
5957
  return e;
5929
5958
  }
5930
- function Zi(e, t) {
5959
+ function Qi(e, t) {
5931
5960
  return e === "auto" ? t === "mobile" || t === "small-mobile" ? "caption" : "hidden" : e;
5932
5961
  }
5933
- function Qi({ activeModeId: e, className: t, disabled: n = !1, label: r, modes: i, onModeChange: a, variant: o = "desktop", "data-testid": s }) {
5962
+ function $i({ activeModeId: e, className: t, disabled: n = !1, label: r, modes: i, onModeChange: a, variant: o = "desktop", "data-testid": s }) {
5934
5963
  return /* @__PURE__ */ j("section", {
5935
5964
  "aria-label": r,
5936
5965
  className: ["game-ui-terrain-mode-control", t].filter(Boolean).join(" "),
5937
5966
  "data-ui-hook": "terrain-mode-control",
5938
- "data-variant": Xi(o),
5967
+ "data-variant": Zi(o),
5939
5968
  "data-testid": s,
5940
5969
  children: [/* @__PURE__ */ A("span", {
5941
5970
  className: "game-ui-sr-only",
@@ -5957,7 +5986,7 @@ function Qi({ activeModeId: e, className: t, disabled: n = !1, label: r, modes:
5957
5986
  type: "button",
5958
5987
  children: [
5959
5988
  /* @__PURE__ */ A(Z, {
5960
- icon: t.icon ?? Ki[t.id] ?? "portal",
5989
+ icon: t.icon ?? qi[t.id] ?? "portal",
5961
5990
  size: o === "small-mobile" ? "sm" : "md",
5962
5991
  style: "line"
5963
5992
  }),
@@ -5972,8 +6001,8 @@ function Qi({ activeModeId: e, className: t, disabled: n = !1, label: r, modes:
5972
6001
  })]
5973
6002
  });
5974
6003
  }
5975
- function $i({ activeToolId: e, className: t, compactLabelMode: n = "auto", density: r = "comfortable", disabled: i = !1, label: a, onToolChange: o, tools: s, variant: c = "desktop", "data-testid": l }) {
5976
- let u = ["game-ui-terrain-tool-strip", t].filter(Boolean).join(" "), d = Zi(n, c);
6004
+ function ea({ activeToolId: e, className: t, compactLabelMode: n = "auto", density: r = "comfortable", disabled: i = !1, label: a, onToolChange: o, tools: s, variant: c = "desktop", "data-testid": l }) {
6005
+ let u = ["game-ui-terrain-tool-strip", t].filter(Boolean).join(" "), d = Qi(n, c);
5977
6006
  return /* @__PURE__ */ A("section", {
5978
6007
  "aria-label": a,
5979
6008
  className: u,
@@ -5982,8 +6011,8 @@ function $i({ activeToolId: e, className: t, compactLabelMode: n = "auto", densi
5982
6011
  "data-ui-hook": "terrain-tool-strip",
5983
6012
  "data-variant": c,
5984
6013
  "data-testid": l,
5985
- children: /* @__PURE__ */ A(Fi, {
5986
- actions: s.map((t) => Ji(t, e, o, i)),
6014
+ children: /* @__PURE__ */ A(Ii, {
6015
+ actions: s.map((t) => Yi(t, e, o, i)),
5987
6016
  density: r,
5988
6017
  iconLabelMode: d,
5989
6018
  label: a,
@@ -5991,18 +6020,18 @@ function $i({ activeToolId: e, className: t, compactLabelMode: n = "auto", densi
5991
6020
  })
5992
6021
  });
5993
6022
  }
5994
- function ea({ className: e, labels: t = {}, onRadiusChange: n, onStrengthChange: r, state: i, variant: a = "desktop", "data-testid": o }) {
5995
- let s = ["game-ui-brush-controls", e].filter(Boolean).join(" "), c = i.minRadius ?? 1, l = i.maxRadius ?? 8, u = i.radiusStep ?? .25, d = i.minStrength ?? 0, f = i.maxStrength ?? 1, p = i.strengthStep ?? .05, m = Yi(i.radius, c, l), h = Yi(i.strength, d, f), g = !!i.disabled, _ = (e) => {
5996
- n?.(Yi(Number(e.currentTarget.value), c, l));
6023
+ function ta({ className: e, labels: t = {}, onRadiusChange: n, onStrengthChange: r, state: i, variant: a = "desktop", "data-testid": o }) {
6024
+ let s = ["game-ui-brush-controls", e].filter(Boolean).join(" "), c = i.minRadius ?? 1, l = i.maxRadius ?? 8, u = i.radiusStep ?? .25, d = i.minStrength ?? 0, f = i.maxStrength ?? 1, p = i.strengthStep ?? .05, m = Xi(i.radius, c, l), h = Xi(i.strength, d, f), g = !!i.disabled, _ = (e) => {
6025
+ n?.(Xi(Number(e.currentTarget.value), c, l));
5997
6026
  }, v = (e) => {
5998
- r?.(Yi(Number(e.currentTarget.value), d, f));
6027
+ r?.(Xi(Number(e.currentTarget.value), d, f));
5999
6028
  };
6000
6029
  return /* @__PURE__ */ j("section", {
6001
6030
  className: s,
6002
6031
  "data-ui-hook": "brush-controls",
6003
6032
  "data-variant": a,
6004
6033
  "data-testid": o,
6005
- children: [/* @__PURE__ */ A(ki, {
6034
+ children: [/* @__PURE__ */ A(Ai, {
6006
6035
  ...t.radiusHint ? { hint: t.radiusHint } : {},
6007
6036
  label: t.radius ?? "Brush radius",
6008
6037
  children: /* @__PURE__ */ j("div", {
@@ -6032,7 +6061,7 @@ function ea({ className: e, labels: t = {}, onRadiusChange: n, onStrengthChange:
6032
6061
  value: m
6033
6062
  })]
6034
6063
  })
6035
- }), /* @__PURE__ */ A(ki, {
6064
+ }), /* @__PURE__ */ A(Ai, {
6036
6065
  ...t.strengthHint ? { hint: t.strengthHint } : {},
6037
6066
  label: t.strength ?? "Brush strength",
6038
6067
  children: /* @__PURE__ */ j("div", {
@@ -6065,7 +6094,7 @@ function ea({ className: e, labels: t = {}, onRadiusChange: n, onStrengthChange:
6065
6094
  })]
6066
6095
  });
6067
6096
  }
6068
- function ta({ activeMaterialId: e, className: t, disabled: n = !1, label: r, materials: i, onMaterialChange: a, variant: o = "desktop", "data-testid": s }) {
6097
+ function na({ activeMaterialId: e, className: t, disabled: n = !1, label: r, materials: i, onMaterialChange: a, variant: o = "desktop", "data-testid": s }) {
6069
6098
  return /* @__PURE__ */ A("section", {
6070
6099
  "aria-label": r,
6071
6100
  className: ["game-ui-material-swatches", t].filter(Boolean).join(" "),
@@ -6108,14 +6137,14 @@ function ta({ activeMaterialId: e, className: t, disabled: n = !1, label: r, mat
6108
6137
  })
6109
6138
  });
6110
6139
  }
6111
- function na({ canRedo: e = !1, canUndo: t = !1, className: n, disabled: r = !1, label: i, onRedo: a, onUndo: o, redoLabel: s = "Redo", undoLabel: c = "Undo", variant: l = "desktop", "data-testid": u }) {
6140
+ function ra({ canRedo: e = !1, canUndo: t = !1, className: n, disabled: r = !1, label: i, onRedo: a, onUndo: o, redoLabel: s = "Redo", undoLabel: c = "Undo", variant: l = "desktop", "data-testid": u }) {
6112
6141
  return /* @__PURE__ */ A("section", {
6113
6142
  "aria-label": i,
6114
6143
  className: ["game-ui-undo-redo-actions", n].filter(Boolean).join(" "),
6115
6144
  "data-ui-hook": "undo-redo-actions",
6116
6145
  "data-variant": l,
6117
6146
  "data-testid": u,
6118
- children: /* @__PURE__ */ A(Fi, {
6147
+ children: /* @__PURE__ */ A(Ii, {
6119
6148
  actions: [{
6120
6149
  disabled: r || !t,
6121
6150
  icon: "undo",
@@ -6141,7 +6170,7 @@ function na({ canRedo: e = !1, canUndo: t = !1, className: n, disabled: r = !1,
6141
6170
  })
6142
6171
  });
6143
6172
  }
6144
- function ra({ activeCategoryId: e, categories: t, className: n, density: r = "comfortable", emptyDescription: i = "Building pieces will appear here when a category is available.", emptyTitle: a = "No build pieces ready", label: o, onCategoryChange: s, onSelectItem: c, selectedItemId: l, title: u, variant: d = "desktop", "data-testid": f }) {
6173
+ function ia({ activeCategoryId: e, categories: t, className: n, density: r = "comfortable", emptyDescription: i = "Building pieces will appear here when a category is available.", emptyTitle: a = "No build pieces ready", label: o, onCategoryChange: s, onSelectItem: c, selectedItemId: l, title: u, variant: d = "desktop", "data-testid": f }) {
6145
6174
  let p = ["game-ui-build-library", n].filter(Boolean).join(" "), m = t.filter((e) => !e.disabled), h = t.find((t) => t.id === e) ?? m[0] ?? t[0], g = h?.items ?? [], _ = d === "small-mobile";
6146
6175
  return /* @__PURE__ */ A($, {
6147
6176
  className: p,
@@ -6171,7 +6200,7 @@ function ra({ activeCategoryId: e, categories: t, className: n, density: r = "co
6171
6200
  type: "button",
6172
6201
  children: [
6173
6202
  /* @__PURE__ */ A(Z, {
6174
- icon: e.icon ?? Ki[e.id] ?? "home",
6203
+ icon: e.icon ?? qi[e.id] ?? "home",
6175
6204
  size: "sm",
6176
6205
  style: "line"
6177
6206
  }),
@@ -6180,7 +6209,7 @@ function ra({ activeCategoryId: e, categories: t, className: n, density: r = "co
6180
6209
  ]
6181
6210
  }, e.id);
6182
6211
  })
6183
- }), g.length === 0 || !h ? /* @__PURE__ */ A(Tr, {
6212
+ }), g.length === 0 || !h ? /* @__PURE__ */ A(Er, {
6184
6213
  description: i,
6185
6214
  icon: "home",
6186
6215
  title: a
@@ -6218,7 +6247,7 @@ function ra({ activeCategoryId: e, categories: t, className: n, density: r = "co
6218
6247
  /* @__PURE__ */ j("span", {
6219
6248
  className: "game-ui-build-item-badges",
6220
6249
  children: [/* @__PURE__ */ A(X, {
6221
- tone: qi[n],
6250
+ tone: Ji[n],
6222
6251
  children: n
6223
6252
  }), e.badges?.map((e) => /* @__PURE__ */ A(X, {
6224
6253
  tone: e.tone ?? "neutral",
@@ -6236,7 +6265,7 @@ function ra({ activeCategoryId: e, categories: t, className: n, density: r = "co
6236
6265
  })
6237
6266
  });
6238
6267
  }
6239
- function ia({ children: e, className: t, closeIcon: n = "close", closeLabel: r = "Close tools", disabled: i = !1, label: a, onOpenChange: o, open: s, panelId: c, title: l, triggerIcon: u = "settings", triggerLabel: d = "Tools", variant: f = "mobile", "data-testid": p }) {
6268
+ function aa({ children: e, className: t, closeIcon: n = "close", closeLabel: r = "Close tools", disabled: i = !1, label: a, onOpenChange: o, open: s, panelId: c, title: l, triggerIcon: u = "settings", triggerLabel: d = "Tools", variant: f = "mobile", "data-testid": p }) {
6240
6269
  let m = ["game-ui-compact-game-drawer", t].filter(Boolean).join(" "), h = c ?? `${l.toLowerCase().replace(/[^a-z0-9]+/g, "-") || "tools"}-drawer-panel`;
6241
6270
  return /* @__PURE__ */ j("aside", {
6242
6271
  "aria-label": a,
@@ -6271,7 +6300,7 @@ function ia({ children: e, className: t, closeIcon: n = "close", closeLabel: r =
6271
6300
  })]
6272
6301
  });
6273
6302
  }
6274
- function aa({ status: e }) {
6303
+ function oa({ status: e }) {
6275
6304
  if (!e) return null;
6276
6305
  let t = typeof e.progressValue == "number" && typeof e.progressMax == "number", n = e.tone === "danger" ? "danger" : e.tone === "warning" ? "warning" : "success", r = e.progressMax ?? 100, i = e.progressValue ?? 0;
6277
6306
  return /* @__PURE__ */ j("div", {
@@ -6284,7 +6313,7 @@ function aa({ status: e }) {
6284
6313
  children: e.label
6285
6314
  }),
6286
6315
  e.description ? /* @__PURE__ */ A("p", { children: e.description }) : null,
6287
- t ? /* @__PURE__ */ A(wr, {
6316
+ t ? /* @__PURE__ */ A(Tr, {
6288
6317
  label: e.progressLabel ?? e.label,
6289
6318
  max: r,
6290
6319
  showValue: !0,
@@ -6294,15 +6323,15 @@ function aa({ status: e }) {
6294
6323
  ]
6295
6324
  });
6296
6325
  }
6297
- function oa({ activeBuildCategoryId: e, activeMaterialId: t, activeModeId: n, activeToolId: r, brush: i, buildCategories: a = [], density: o = "comfortable", disabled: s = !1, materials: c = [], modes: l, onBrushRadiusChange: u, onBrushStrengthChange: d, onBuildCategoryChange: f, onMaterialChange: p, onModeChange: m, onRedo: h, onSelectBuildItem: g, onToolChange: _, onUndo: v, selectedBuildItemId: y, status: b, toolCompactLabelMode: x = "auto", tools: S, undoRedo: C, variant: w = "desktop" }) {
6326
+ function sa({ activeBuildCategoryId: e, activeMaterialId: t, activeModeId: n, activeToolId: r, brush: i, buildCategories: a = [], density: o = "comfortable", disabled: s = !1, materials: c = [], modes: l, onBrushRadiusChange: u, onBrushStrengthChange: d, onBuildCategoryChange: f, onMaterialChange: p, onModeChange: m, onRedo: h, onSelectBuildItem: g, onToolChange: _, onUndo: v, selectedBuildItemId: y, status: b, toolCompactLabelMode: x = "auto", tools: S, undoRedo: C, variant: w = "desktop" }) {
6298
6327
  return /* @__PURE__ */ j("div", {
6299
6328
  className: "game-ui-terrain-build-toolbox-body",
6300
6329
  "data-active-mode": n,
6301
6330
  "data-active-tool": r,
6302
6331
  "data-variant": w,
6303
6332
  children: [
6304
- /* @__PURE__ */ A(aa, { status: b }),
6305
- /* @__PURE__ */ A(Qi, {
6333
+ /* @__PURE__ */ A(oa, { status: b }),
6334
+ /* @__PURE__ */ A($i, {
6306
6335
  activeModeId: n,
6307
6336
  disabled: s,
6308
6337
  label: "Tool mode",
@@ -6313,7 +6342,7 @@ function oa({ activeBuildCategoryId: e, activeMaterialId: t, activeModeId: n, ac
6313
6342
  /* @__PURE__ */ j("div", {
6314
6343
  className: "game-ui-terrain-build-main-grid",
6315
6344
  children: [
6316
- /* @__PURE__ */ A($i, {
6345
+ /* @__PURE__ */ A(ea, {
6317
6346
  activeToolId: r,
6318
6347
  compactLabelMode: x,
6319
6348
  density: o,
@@ -6323,7 +6352,7 @@ function oa({ activeBuildCategoryId: e, activeMaterialId: t, activeModeId: n, ac
6323
6352
  tools: S,
6324
6353
  variant: w
6325
6354
  }),
6326
- /* @__PURE__ */ A(na, {
6355
+ /* @__PURE__ */ A(ra, {
6327
6356
  canRedo: C?.canRedo,
6328
6357
  canUndo: C?.canUndo,
6329
6358
  disabled: s,
@@ -6334,7 +6363,7 @@ function oa({ activeBuildCategoryId: e, activeMaterialId: t, activeModeId: n, ac
6334
6363
  undoLabel: C?.undoLabel,
6335
6364
  variant: w
6336
6365
  }),
6337
- /* @__PURE__ */ A(ea, {
6366
+ /* @__PURE__ */ A(ta, {
6338
6367
  onRadiusChange: u,
6339
6368
  onStrengthChange: d,
6340
6369
  state: {
@@ -6343,7 +6372,7 @@ function oa({ activeBuildCategoryId: e, activeMaterialId: t, activeModeId: n, ac
6343
6372
  },
6344
6373
  variant: w
6345
6374
  }),
6346
- c.length > 0 ? /* @__PURE__ */ A(ta, {
6375
+ c.length > 0 ? /* @__PURE__ */ A(na, {
6347
6376
  activeMaterialId: t,
6348
6377
  disabled: s,
6349
6378
  label: "Terrain materials",
@@ -6353,7 +6382,7 @@ function oa({ activeBuildCategoryId: e, activeMaterialId: t, activeModeId: n, ac
6353
6382
  }) : null
6354
6383
  ]
6355
6384
  }),
6356
- a.length > 0 ? /* @__PURE__ */ A(ra, {
6385
+ a.length > 0 ? /* @__PURE__ */ A(ia, {
6357
6386
  activeCategoryId: e,
6358
6387
  categories: a,
6359
6388
  density: o,
@@ -6367,12 +6396,12 @@ function oa({ activeBuildCategoryId: e, activeMaterialId: t, activeModeId: n, ac
6367
6396
  ]
6368
6397
  });
6369
6398
  }
6370
- function sa({ className: e, drawerOpen: t = !1, drawerTitle: n = "Terrain and build tools", label: r, onDrawerOpenChange: i, title: a, variant: o = "desktop", "data-testid": s, ...c }) {
6371
- let l = ["game-ui-terrain-build-toolbox", e].filter(Boolean).join(" "), u = /* @__PURE__ */ A(oa, {
6399
+ function ca({ className: e, drawerOpen: t = !1, drawerTitle: n = "Terrain and build tools", label: r, onDrawerOpenChange: i, title: a, variant: o = "desktop", "data-testid": s, ...c }) {
6400
+ let l = ["game-ui-terrain-build-toolbox", e].filter(Boolean).join(" "), u = /* @__PURE__ */ A(sa, {
6372
6401
  ...c,
6373
6402
  variant: o
6374
6403
  });
6375
- return o === "mobile" || o === "small-mobile" ? /* @__PURE__ */ A(ia, {
6404
+ return o === "mobile" || o === "small-mobile" ? /* @__PURE__ */ A(aa, {
6376
6405
  className: l,
6377
6406
  label: r,
6378
6407
  onOpenChange: i,
@@ -6397,7 +6426,7 @@ function sa({ className: e, drawerOpen: t = !1, drawerTitle: n = "Terrain and bu
6397
6426
  }
6398
6427
  //#endregion
6399
6428
  //#region src/GameContractorTools.tsx
6400
- var ca = {
6429
+ var la = {
6401
6430
  accepted: "success",
6402
6431
  blocked: "danger",
6403
6432
  cancelled: "neutral",
@@ -6406,7 +6435,7 @@ var ca = {
6406
6435
  queued: "warning",
6407
6436
  readyForReview: "success",
6408
6437
  working: "ai"
6409
- }, la = {
6438
+ }, ua = {
6410
6439
  accepted: "check",
6411
6440
  blocked: "alert",
6412
6441
  cancelled: "close",
@@ -6415,26 +6444,26 @@ var ca = {
6415
6444
  queued: "hourglass",
6416
6445
  readyForReview: "vote",
6417
6446
  working: "energy"
6418
- }, ua = {
6447
+ }, da = {
6419
6448
  active: "ai",
6420
6449
  blocked: "danger",
6421
6450
  complete: "success",
6422
6451
  pending: "neutral"
6423
- }, da = {
6452
+ }, fa = {
6424
6453
  blocked: "danger",
6425
6454
  done: "success",
6426
6455
  idle: "neutral",
6427
6456
  queued: "warning",
6428
6457
  working: "ai"
6429
- }, fa = {
6458
+ }, pa = {
6430
6459
  "local-only": "Local only",
6431
6460
  mock: "Mock run",
6432
6461
  "paid-disabled": "Paid provider off"
6433
- }, pa = {
6462
+ }, ma = {
6434
6463
  "local-only": "success",
6435
6464
  mock: "ai",
6436
6465
  "paid-disabled": "warning"
6437
- }, ma = {
6466
+ }, ha = {
6438
6467
  accepted: [{
6439
6468
  id: "revert",
6440
6469
  label: "Revert",
@@ -6540,17 +6569,17 @@ var ca = {
6540
6569
  tone: "danger"
6541
6570
  }]
6542
6571
  };
6543
- function ha(e, t) {
6572
+ function ga(e, t) {
6544
6573
  if (t) return t;
6545
6574
  switch (e) {
6546
6575
  case "readyForReview": return "Ready for review";
6547
6576
  default: return e.replace(/([A-Z])/g, " $1").replace(/^./, (e) => e.toUpperCase());
6548
6577
  }
6549
6578
  }
6550
- function ga(e) {
6579
+ function _a(e) {
6551
6580
  return e === "blocked" || e === "cancelled" ? "danger" : e === "accepted" || e === "readyForReview" ? "success" : e === "queued" || e === "draft" || e === "preview" ? "warning" : "accent";
6552
6581
  }
6553
- function _a(e) {
6582
+ function va(e) {
6554
6583
  switch (e) {
6555
6584
  case "accepted": return 100;
6556
6585
  case "blocked": return 42;
@@ -6562,7 +6591,7 @@ function _a(e) {
6562
6591
  case "working": return 64;
6563
6592
  }
6564
6593
  }
6565
- function va(e, t, n) {
6594
+ function ya(e, t, n) {
6566
6595
  let r = {
6567
6596
  disabled: !!(n || e.disabled),
6568
6597
  id: e.id,
@@ -6571,14 +6600,14 @@ function va(e, t, n) {
6571
6600
  };
6572
6601
  return e.icon && (r.icon = e.icon), e.ariaLabel && (r.ariaLabel = e.ariaLabel), e.meta && (r.meta = e.meta), t && (r.onAction = t), r;
6573
6602
  }
6574
- function ya(e) {
6603
+ function ba(e) {
6575
6604
  return e === "danger" || e === "warning" ? "alert" : "status";
6576
6605
  }
6577
- function ba(e) {
6606
+ function xa(e) {
6578
6607
  return !!(e.before && e.after);
6579
6608
  }
6580
- function xa({ className: e, label: t, max: n = 100, progressLabel: r = "Construction progress", showStatusBadge: i = !0, status: a, statusLabel: o, steps: s = [], validationWarnings: c = [], value: l, variant: u = "desktop", "data-testid": d }) {
6581
- let f = ["game-ui-construction-progress", e].filter(Boolean).join(" "), p = l ?? _a(a), m = ha(a, o);
6609
+ function Sa({ className: e, label: t, max: n = 100, progressLabel: r = "Construction progress", showStatusBadge: i = !0, status: a, statusLabel: o, steps: s = [], validationWarnings: c = [], value: l, variant: u = "desktop", "data-testid": d }) {
6610
+ let f = ["game-ui-construction-progress", e].filter(Boolean).join(" "), p = l ?? va(a), m = ga(a, o);
6582
6611
  return /* @__PURE__ */ j("section", {
6583
6612
  "aria-label": t,
6584
6613
  className: f,
@@ -6590,18 +6619,18 @@ function xa({ className: e, label: t, max: n = 100, progressLabel: r = "Construc
6590
6619
  /* @__PURE__ */ j("header", {
6591
6620
  className: "game-ui-construction-progress-header",
6592
6621
  children: [/* @__PURE__ */ j("span", { children: [/* @__PURE__ */ A(Z, {
6593
- icon: la[a],
6622
+ icon: ua[a],
6594
6623
  size: "sm"
6595
6624
  }), /* @__PURE__ */ A("strong", { children: r })] }), i ? /* @__PURE__ */ A(X, {
6596
- tone: ca[a],
6625
+ tone: la[a],
6597
6626
  children: m
6598
6627
  }) : null]
6599
6628
  }),
6600
- /* @__PURE__ */ A(wr, {
6629
+ /* @__PURE__ */ A(Tr, {
6601
6630
  label: r,
6602
6631
  max: n,
6603
6632
  showValue: !0,
6604
- tone: ga(a),
6633
+ tone: _a(a),
6605
6634
  value: p
6606
6635
  }),
6607
6636
  s.length > 0 ? /* @__PURE__ */ A("ol", {
@@ -6616,7 +6645,7 @@ function xa({ className: e, label: t, max: n = 100, progressLabel: r = "Construc
6616
6645
  }),
6617
6646
  /* @__PURE__ */ j("span", { children: [/* @__PURE__ */ A("strong", { children: e.label }), e.caption ? /* @__PURE__ */ A("small", { children: e.caption }) : null] }),
6618
6647
  /* @__PURE__ */ A(X, {
6619
- tone: ua[e.status],
6648
+ tone: da[e.status],
6620
6649
  children: e.status
6621
6650
  })
6622
6651
  ]
@@ -6628,7 +6657,7 @@ function xa({ className: e, label: t, max: n = 100, progressLabel: r = "Construc
6628
6657
  children: c.map((e) => /* @__PURE__ */ j("div", {
6629
6658
  className: "game-ui-construction-warning",
6630
6659
  "data-warning-tone": e.tone ?? "warning",
6631
- role: ya(e.tone),
6660
+ role: ba(e.tone),
6632
6661
  children: [/* @__PURE__ */ A(Z, {
6633
6662
  icon: e.tone === "danger" || e.tone === "warning" ? "alert" : "check",
6634
6663
  size: "sm"
@@ -6638,8 +6667,8 @@ function xa({ className: e, label: t, max: n = 100, progressLabel: r = "Construc
6638
6667
  ]
6639
6668
  });
6640
6669
  }
6641
- function Sa({ actions: e, className: t, disabled: n = !1, label: r, localOnlyLabel: i = "Local-only construction", onAction: a, providerMode: o, status: s, validationWarnings: c = [], variant: l = "desktop", "data-testid": u }) {
6642
- let d = ["game-ui-construction-approval-bar", t].filter(Boolean).join(" "), f = e ?? ma[s], p = c.filter((e) => e.tone !== "success").length, m = f.map((e) => va(e, a, n));
6670
+ function Ca({ actions: e, className: t, disabled: n = !1, label: r, localOnlyLabel: i = "Local-only construction", onAction: a, providerMode: o, status: s, validationWarnings: c = [], variant: l = "desktop", "data-testid": u }) {
6671
+ let d = ["game-ui-construction-approval-bar", t].filter(Boolean).join(" "), f = e ?? ha[s], p = c.filter((e) => e.tone !== "success").length, m = f.map((e) => ya(e, a, n));
6643
6672
  return /* @__PURE__ */ j("section", {
6644
6673
  "aria-label": r,
6645
6674
  className: d,
@@ -6650,8 +6679,8 @@ function Sa({ actions: e, className: t, disabled: n = !1, label: r, localOnlyLab
6650
6679
  children: [/* @__PURE__ */ j("div", {
6651
6680
  className: "game-ui-construction-approval-meta",
6652
6681
  children: [o ? /* @__PURE__ */ A(X, {
6653
- tone: pa[o],
6654
- children: fa[o]
6682
+ tone: ma[o],
6683
+ children: pa[o]
6655
6684
  }) : /* @__PURE__ */ A(X, {
6656
6685
  tone: "success",
6657
6686
  children: i
@@ -6666,21 +6695,21 @@ function Sa({ actions: e, className: t, disabled: n = !1, label: r, localOnlyLab
6666
6695
  tone: "success",
6667
6696
  children: "Validation clear"
6668
6697
  })]
6669
- }), m.length > 0 ? /* @__PURE__ */ A(Fi, {
6698
+ }), m.length > 0 ? /* @__PURE__ */ A(Ii, {
6670
6699
  actions: m,
6671
6700
  density: l === "small-mobile" ? "dense" : "comfortable",
6672
6701
  label: `${r} actions`
6673
6702
  }) : null]
6674
6703
  });
6675
6704
  }
6676
- function Ca({ className: e, crew: t, emptyDescription: n = "Robot crew members appear here when a construction job starts.", emptyTitle: r = "No robot crew assigned", label: i, title: a, variant: o = "desktop", "data-testid": s }) {
6705
+ function wa({ className: e, crew: t, emptyDescription: n = "Robot crew members appear here when a construction job starts.", emptyTitle: r = "No robot crew assigned", label: i, title: a, variant: o = "desktop", "data-testid": s }) {
6677
6706
  return /* @__PURE__ */ j("section", {
6678
6707
  "aria-label": i,
6679
6708
  className: ["game-ui-robot-crew-status", e].filter(Boolean).join(" "),
6680
6709
  "data-ui-hook": "robot-crew-status",
6681
6710
  "data-variant": o,
6682
6711
  "data-testid": s,
6683
- children: [a ? /* @__PURE__ */ A("header", { children: /* @__PURE__ */ A("strong", { children: a }) }) : null, t.length === 0 ? /* @__PURE__ */ A(Tr, {
6712
+ children: [a ? /* @__PURE__ */ A("header", { children: /* @__PURE__ */ A("strong", { children: a }) }) : null, t.length === 0 ? /* @__PURE__ */ A(Er, {
6684
6713
  description: n,
6685
6714
  icon: "ai",
6686
6715
  title: r
@@ -6703,7 +6732,7 @@ function Ca({ className: e, crew: t, emptyDescription: n = "Robot crew members a
6703
6732
  ]
6704
6733
  }),
6705
6734
  /* @__PURE__ */ A(X, {
6706
- tone: da[e.status],
6735
+ tone: fa[e.status],
6707
6736
  children: e.status
6708
6737
  })
6709
6738
  ]
@@ -6711,7 +6740,7 @@ function Ca({ className: e, crew: t, emptyDescription: n = "Robot crew members a
6711
6740
  })]
6712
6741
  });
6713
6742
  }
6714
- function wa({ activeView: e, after: t, before: n, className: r, label: i, onViewChange: a, variant: o = "desktop", "data-testid": s }) {
6743
+ function Ta({ activeView: e, after: t, before: n, className: r, label: i, onViewChange: a, variant: o = "desktop", "data-testid": s }) {
6715
6744
  let c = ["game-ui-before-after-toggle", r].filter(Boolean).join(" "), l = e === "before" ? n : t;
6716
6745
  return /* @__PURE__ */ j("section", {
6717
6746
  "aria-label": i,
@@ -6720,7 +6749,7 @@ function wa({ activeView: e, after: t, before: n, className: r, label: i, onView
6720
6749
  "data-ui-hook": "before-after-toggle",
6721
6750
  "data-variant": o,
6722
6751
  "data-testid": s,
6723
- children: [/* @__PURE__ */ A(vi, {
6752
+ children: [/* @__PURE__ */ A(yi, {
6724
6753
  activeId: e,
6725
6754
  label: `${i} view`,
6726
6755
  ...a ? { onSelect: (e) => a(e) } : {},
@@ -6747,8 +6776,8 @@ function wa({ activeView: e, after: t, before: n, className: r, label: i, onView
6747
6776
  })]
6748
6777
  });
6749
6778
  }
6750
- function Ta({ className: e, density: t = "comfortable", job: n, onAction: r, onSelect: i, selected: a = !1, showApprovalBar: o = !0, showBeforeAfter: s = !1, variant: c = "desktop", "data-testid": l }) {
6751
- let u = ["game-ui-construction-job-card", e].filter(Boolean).join(" "), d = ha(n.status, n.statusLabel), f = c === "mobile" || c === "small-mobile", p = n.facts ?? [];
6779
+ function Ea({ className: e, density: t = "comfortable", job: n, onAction: r, onSelect: i, selected: a = !1, showApprovalBar: o = !0, showBeforeAfter: s = !1, variant: c = "desktop", "data-testid": l }) {
6780
+ let u = ["game-ui-construction-job-card", e].filter(Boolean).join(" "), d = ga(n.status, n.statusLabel), f = c === "mobile" || c === "small-mobile", p = n.facts ?? [];
6752
6781
  return /* @__PURE__ */ j("article", {
6753
6782
  className: u,
6754
6783
  "data-density": t,
@@ -6768,19 +6797,19 @@ function Ta({ className: e, density: t = "comfortable", job: n, onAction: r, onS
6768
6797
  onClick: () => i?.(n.id),
6769
6798
  type: "button",
6770
6799
  children: [/* @__PURE__ */ A(Z, {
6771
- icon: la[n.status],
6800
+ icon: ua[n.status],
6772
6801
  size: f ? "sm" : "md"
6773
6802
  }), /* @__PURE__ */ j("span", { children: [/* @__PURE__ */ A("strong", { children: n.title }), n.description ? /* @__PURE__ */ A("small", { children: n.description }) : null] })]
6774
6803
  }), /* @__PURE__ */ j("span", {
6775
6804
  className: "game-ui-construction-job-badges",
6776
6805
  children: [
6777
6806
  /* @__PURE__ */ A(X, {
6778
- tone: ca[n.status],
6807
+ tone: la[n.status],
6779
6808
  children: d
6780
6809
  }),
6781
6810
  n.providerMode ? /* @__PURE__ */ A(X, {
6782
- tone: pa[n.providerMode],
6783
- children: fa[n.providerMode]
6811
+ tone: ma[n.providerMode],
6812
+ children: pa[n.providerMode]
6784
6813
  }) : null,
6785
6814
  n.badges?.map((e) => /* @__PURE__ */ A(X, {
6786
6815
  tone: e.tone ?? "neutral",
@@ -6798,7 +6827,7 @@ function Ta({ className: e, density: t = "comfortable", job: n, onAction: r, onS
6798
6827
  p.map((e) => /* @__PURE__ */ j("span", { children: [/* @__PURE__ */ A("small", { children: e.label }), /* @__PURE__ */ A("b", { children: e.value })] }, e.id))
6799
6828
  ]
6800
6829
  }),
6801
- /* @__PURE__ */ A(xa, {
6830
+ /* @__PURE__ */ A(Sa, {
6802
6831
  label: `${n.title} progress`,
6803
6832
  progressLabel: n.progressLabel,
6804
6833
  status: n.status,
@@ -6809,19 +6838,19 @@ function Ta({ className: e, density: t = "comfortable", job: n, onAction: r, onS
6809
6838
  max: n.progressMax,
6810
6839
  variant: c
6811
6840
  }),
6812
- s && ba(n) ? /* @__PURE__ */ A(wa, {
6841
+ s && xa(n) ? /* @__PURE__ */ A(Ta, {
6813
6842
  activeView: "after",
6814
6843
  after: n.after,
6815
6844
  before: n.before,
6816
6845
  label: `${n.title} preview`,
6817
6846
  variant: c
6818
6847
  }) : null,
6819
- n.crew && n.crew.length > 0 ? /* @__PURE__ */ A(Ca, {
6848
+ n.crew && n.crew.length > 0 ? /* @__PURE__ */ A(wa, {
6820
6849
  crew: n.crew,
6821
6850
  label: `${n.title} robot crew`,
6822
6851
  variant: c
6823
6852
  }) : null,
6824
- o ? /* @__PURE__ */ A(Sa, {
6853
+ o ? /* @__PURE__ */ A(Ca, {
6825
6854
  actions: n.actions,
6826
6855
  label: `${n.title} approval`,
6827
6856
  onAction: (e) => r?.(e, n.id),
@@ -6833,8 +6862,8 @@ function Ta({ className: e, density: t = "comfortable", job: n, onAction: r, onS
6833
6862
  ]
6834
6863
  });
6835
6864
  }
6836
- function Ea({ children: e, className: t, closeLabel: n = "Close jobs", disabled: r = !1, jobs: i = [], label: a, onAction: o, onOpenChange: s, onSelectJob: c, open: l, panelId: u = "game-compact-job-drawer-panel", selectedJobId: d, title: f, triggerLabel: p = "Construction jobs", variant: m = "mobile", "data-testid": h }) {
6837
- return /* @__PURE__ */ A(ia, {
6865
+ function Da({ children: e, className: t, closeLabel: n = "Close jobs", disabled: r = !1, jobs: i = [], label: a, onAction: o, onOpenChange: s, onSelectJob: c, open: l, panelId: u = "game-compact-job-drawer-panel", selectedJobId: d, title: f, triggerLabel: p = "Construction jobs", variant: m = "mobile", "data-testid": h }) {
6866
+ return /* @__PURE__ */ A(aa, {
6838
6867
  className: ["game-ui-compact-job-drawer", t].filter(Boolean).join(" "),
6839
6868
  closeLabel: n,
6840
6869
  disabled: r,
@@ -6850,7 +6879,7 @@ function Ea({ children: e, className: t, closeLabel: n = "Close jobs", disabled:
6850
6879
  children: e ?? /* @__PURE__ */ A("div", {
6851
6880
  className: "game-ui-compact-job-drawer-list",
6852
6881
  tabIndex: 0,
6853
- children: i.map((e) => /* @__PURE__ */ A(Ta, {
6882
+ children: i.map((e) => /* @__PURE__ */ A(Ea, {
6854
6883
  density: "dense",
6855
6884
  job: e,
6856
6885
  onAction: o,
@@ -6862,7 +6891,7 @@ function Ea({ children: e, className: t, closeLabel: n = "Close jobs", disabled:
6862
6891
  })
6863
6892
  });
6864
6893
  }
6865
- function Da({ activePreviewView: e = "after", className: t, density: n = "comfortable", drawerOpen: r = !1, emptyDescription: i = "Draft construction jobs will appear here before any provider call is allowed.", emptyTitle: a = "No construction jobs", jobs: o, label: s, onAction: c, onDrawerOpenChange: l, onPreviewViewChange: u, onSelectJob: d, selectedJobId: f, subtitle: p, title: m, variant: h = "desktop", "data-testid": g }) {
6894
+ function Oa({ activePreviewView: e = "after", className: t, density: n = "comfortable", drawerOpen: r = !1, emptyDescription: i = "Draft construction jobs will appear here before any provider call is allowed.", emptyTitle: a = "No construction jobs", jobs: o, label: s, onAction: c, onDrawerOpenChange: l, onPreviewViewChange: u, onSelectJob: d, selectedJobId: f, subtitle: p, title: m, variant: h = "desktop", "data-testid": g }) {
6866
6895
  let _ = ["game-ui-contractor-panel", t].filter(Boolean).join(" "), v = o.find((e) => e.id === f) ?? o[0];
6867
6896
  return h === "mobile" || h === "small-mobile" ? /* @__PURE__ */ j("section", {
6868
6897
  "aria-label": s,
@@ -6871,7 +6900,7 @@ function Da({ activePreviewView: e = "after", className: t, density: n = "comfor
6871
6900
  "data-variant": h,
6872
6901
  "data-testid": g,
6873
6902
  children: [
6874
- /* @__PURE__ */ A(Ea, {
6903
+ /* @__PURE__ */ A(Da, {
6875
6904
  jobs: o,
6876
6905
  label: `${s} drawer`,
6877
6906
  onAction: c,
@@ -6883,16 +6912,16 @@ function Da({ activePreviewView: e = "after", className: t, density: n = "comfor
6883
6912
  triggerLabel: "Contractor",
6884
6913
  variant: h
6885
6914
  }),
6886
- v && !r ? /* @__PURE__ */ A(Ta, {
6915
+ v && !r ? /* @__PURE__ */ A(Ea, {
6887
6916
  density: "dense",
6888
6917
  job: v,
6889
6918
  onAction: c,
6890
6919
  onSelect: d,
6891
6920
  selected: !0,
6892
- showBeforeAfter: ba(v),
6921
+ showBeforeAfter: xa(v),
6893
6922
  variant: h
6894
6923
  }) : null,
6895
- v ? null : /* @__PURE__ */ A(Tr, {
6924
+ v ? null : /* @__PURE__ */ A(Er, {
6896
6925
  description: i,
6897
6926
  icon: "energy",
6898
6927
  title: a
@@ -6913,7 +6942,7 @@ function Da({ activePreviewView: e = "after", className: t, density: n = "comfor
6913
6942
  className: "game-ui-contractor-panel-subtitle",
6914
6943
  children: p
6915
6944
  }) : null,
6916
- o.length === 0 ? /* @__PURE__ */ A(Tr, {
6945
+ o.length === 0 ? /* @__PURE__ */ A(Er, {
6917
6946
  description: i,
6918
6947
  icon: "energy",
6919
6948
  title: a
@@ -6924,7 +6953,7 @@ function Da({ activePreviewView: e = "after", className: t, density: n = "comfor
6924
6953
  "aria-label": "Construction job queue",
6925
6954
  className: "game-ui-contractor-job-list",
6926
6955
  tabIndex: 0,
6927
- children: o.map((e) => /* @__PURE__ */ A(Ta, {
6956
+ children: o.map((e) => /* @__PURE__ */ A(Ea, {
6928
6957
  density: n,
6929
6958
  job: e,
6930
6959
  onAction: c,
@@ -6937,7 +6966,7 @@ function Da({ activePreviewView: e = "after", className: t, density: n = "comfor
6937
6966
  className: "game-ui-contractor-detail",
6938
6967
  "aria-label": `${v.title} detail`,
6939
6968
  children: [
6940
- /* @__PURE__ */ A(xa, {
6969
+ /* @__PURE__ */ A(Sa, {
6941
6970
  label: `${v.title} progress detail`,
6942
6971
  progressLabel: v.progressLabel,
6943
6972
  status: v.status,
@@ -6948,7 +6977,7 @@ function Da({ activePreviewView: e = "after", className: t, density: n = "comfor
6948
6977
  max: v.progressMax,
6949
6978
  variant: h
6950
6979
  }),
6951
- ba(v) ? /* @__PURE__ */ A(wa, {
6980
+ xa(v) ? /* @__PURE__ */ A(Ta, {
6952
6981
  activeView: e,
6953
6982
  after: v.after,
6954
6983
  before: v.before,
@@ -6956,13 +6985,13 @@ function Da({ activePreviewView: e = "after", className: t, density: n = "comfor
6956
6985
  onViewChange: u,
6957
6986
  variant: h
6958
6987
  }) : null,
6959
- /* @__PURE__ */ A(Ca, {
6988
+ /* @__PURE__ */ A(wa, {
6960
6989
  crew: v.crew ?? [],
6961
6990
  label: `${v.title} robot crew`,
6962
6991
  title: "Robot crew",
6963
6992
  variant: h
6964
6993
  }),
6965
- /* @__PURE__ */ A(Sa, {
6994
+ /* @__PURE__ */ A(Ca, {
6966
6995
  actions: v.actions,
6967
6996
  label: `${v.title} approval`,
6968
6997
  onAction: c ? (e) => c(e, v.id) : void 0,
@@ -6980,16 +7009,16 @@ function Da({ activePreviewView: e = "after", className: t, density: n = "comfor
6980
7009
  }
6981
7010
  //#endregion
6982
7011
  //#region src/GamePanelSystem.tsx
6983
- function Oa(...e) {
7012
+ function ka(...e) {
6984
7013
  return e.filter(Boolean).join(" ");
6985
7014
  }
6986
- var ka = {
7015
+ var Aa = {
6987
7016
  collapse: "Collapse",
6988
7017
  expand: "Expand"
6989
7018
  };
6990
- function Aa({ actions: e, children: t, className: n, defaultOpen: r = !0, labels: i, onOpenChange: a, open: o, title: s, tone: c = "default", ...l }) {
7019
+ function ja({ actions: e, children: t, className: n, defaultOpen: r = !0, labels: i, onOpenChange: a, open: o, title: s, tone: c = "default", ...l }) {
6991
7020
  let u = w(), [d, f] = O(r), p = o ?? d, m = {
6992
- ...ka,
7021
+ ...Aa,
6993
7022
  ...i
6994
7023
  }, h = () => {
6995
7024
  let e = !p;
@@ -6997,7 +7026,7 @@ function Aa({ actions: e, children: t, className: n, defaultOpen: r = !0, labels
6997
7026
  };
6998
7027
  return /* @__PURE__ */ j("section", {
6999
7028
  ...l,
7000
- className: Oa("game-ui-collapsible", n),
7029
+ className: ka("game-ui-collapsible", n),
7001
7030
  "data-open": p,
7002
7031
  "data-panel-tone": c,
7003
7032
  children: [/* @__PURE__ */ j("header", {
@@ -7036,13 +7065,13 @@ function Aa({ actions: e, children: t, className: n, defaultOpen: r = !0, labels
7036
7065
  })]
7037
7066
  });
7038
7067
  }
7039
- var ja = {
7068
+ var Ma = {
7040
7069
  close: "Close",
7041
7070
  maximize: "Maximize",
7042
7071
  minimize: "Minimize",
7043
7072
  restore: "Restore"
7044
7073
  };
7045
- function Ma({ kind: e }) {
7074
+ function Na({ kind: e }) {
7046
7075
  return /* @__PURE__ */ A("svg", {
7047
7076
  "aria-hidden": "true",
7048
7077
  fill: "none",
@@ -7062,9 +7091,9 @@ function Ma({ kind: e }) {
7062
7091
  })
7063
7092
  });
7064
7093
  }
7065
- function Na({ allowMaximize: e = !0, allowMinimize: t = !0, children: n, className: r, defaultState: i = "normal", footer: a, icon: o, labels: s, onClose: c, onStateChange: l, state: u, title: d, ...f }) {
7094
+ function Pa({ allowMaximize: e = !0, allowMinimize: t = !0, children: n, className: r, defaultState: i = "normal", footer: a, icon: o, labels: s, onClose: c, onStateChange: l, state: u, title: d, ...f }) {
7066
7095
  let [p, m] = O(i), h = u ?? p, g = {
7067
- ...ja,
7096
+ ...Ma,
7068
7097
  ...s
7069
7098
  }, _ = (e) => {
7070
7099
  u === void 0 && m(e), l?.(e);
@@ -7072,7 +7101,7 @@ function Na({ allowMaximize: e = !0, allowMinimize: t = !0, children: n, classNa
7072
7101
  return /* @__PURE__ */ j("section", {
7073
7102
  ...f,
7074
7103
  "aria-label": d,
7075
- className: Oa("game-ui-window", r),
7104
+ className: ka("game-ui-window", r),
7076
7105
  "data-window-state": h,
7077
7106
  role: "group",
7078
7107
  children: [/* @__PURE__ */ j("header", {
@@ -7095,21 +7124,21 @@ function Na({ allowMaximize: e = !0, allowMinimize: t = !0, children: n, classNa
7095
7124
  className: "game-ui-icon-button game-ui-window-button",
7096
7125
  onClick: () => _(v ? "normal" : "minimized"),
7097
7126
  type: "button",
7098
- children: /* @__PURE__ */ A(Ma, { kind: v ? "restore" : "minimize" })
7127
+ children: /* @__PURE__ */ A(Na, { kind: v ? "restore" : "minimize" })
7099
7128
  }) : null,
7100
7129
  e ? /* @__PURE__ */ A("button", {
7101
7130
  "aria-label": y ? g.restore : g.maximize,
7102
7131
  className: "game-ui-icon-button game-ui-window-button",
7103
7132
  onClick: () => _(y ? "normal" : "maximized"),
7104
7133
  type: "button",
7105
- children: /* @__PURE__ */ A(Ma, { kind: y ? "restore" : "maximize" })
7134
+ children: /* @__PURE__ */ A(Na, { kind: y ? "restore" : "maximize" })
7106
7135
  }) : null,
7107
7136
  c ? /* @__PURE__ */ A("button", {
7108
7137
  "aria-label": g.close,
7109
7138
  className: "game-ui-icon-button game-ui-window-button",
7110
7139
  onClick: c,
7111
7140
  type: "button",
7112
- children: /* @__PURE__ */ A(Ma, { kind: "close" })
7141
+ children: /* @__PURE__ */ A(Na, { kind: "close" })
7113
7142
  }) : null
7114
7143
  ]
7115
7144
  })
@@ -7129,7 +7158,7 @@ function Na({ allowMaximize: e = !0, allowMinimize: t = !0, children: n, classNa
7129
7158
  })]
7130
7159
  });
7131
7160
  }
7132
- function Pa({ children: e, className: t, closeLabel: n = "Close", closeOnBackdrop: r = !0, footer: i, keepMounted: a = !1, onClose: o, open: s, position: c = "center", size: l = "md", title: u }) {
7161
+ function Fa({ children: e, className: t, closeLabel: n = "Close", closeOnBackdrop: r = !0, footer: i, keepMounted: a = !1, onClose: o, open: s, position: c = "center", size: l = "md", title: u }) {
7133
7162
  let d = D(null), f = D(null), p = w(), [m, h] = O(!s);
7134
7163
  return C(() => {
7135
7164
  let e = d.current, t = f.current;
@@ -7142,7 +7171,7 @@ function Pa({ children: e, className: t, closeLabel: n = "Close", closeOnBackdro
7142
7171
  }
7143
7172
  }, [m, s]), /* @__PURE__ */ A("dialog", {
7144
7173
  "aria-labelledby": p,
7145
- className: Oa("game-ui-modal", t),
7174
+ className: ka("game-ui-modal", t),
7146
7175
  "data-position": c,
7147
7176
  "data-size": l,
7148
7177
  onCancel: (e) => {
@@ -7169,7 +7198,7 @@ function Pa({ children: e, className: t, closeLabel: n = "Close", closeOnBackdro
7169
7198
  className: "game-ui-icon-button game-ui-window-button",
7170
7199
  onClick: o,
7171
7200
  type: "button",
7172
- children: /* @__PURE__ */ A(Ma, { kind: "close" })
7201
+ children: /* @__PURE__ */ A(Na, { kind: "close" })
7173
7202
  })]
7174
7203
  }),
7175
7204
  /* @__PURE__ */ A("div", {
@@ -7186,7 +7215,7 @@ function Pa({ children: e, className: t, closeLabel: n = "Close", closeOnBackdro
7186
7215
  }
7187
7216
  //#endregion
7188
7217
  //#region src/previewStates.ts
7189
- var Fa = [
7218
+ var Ia = [
7190
7219
  {
7191
7220
  id: "history-human-long",
7192
7221
  kind: "human",
@@ -7208,7 +7237,7 @@ var Fa = [
7208
7237
  speaker: "Table",
7209
7238
  text: "Three votes are locked. One more read can still change the pact."
7210
7239
  }
7211
- ], Ia = {
7240
+ ], La = {
7212
7241
  ...xe,
7213
7242
  ...I,
7214
7243
  ...Se,
@@ -7222,13 +7251,13 @@ var Fa = [
7222
7251
  ...V,
7223
7252
  ...Ce,
7224
7253
  ...ye
7225
- }, La = {
7254
+ }, Ra = {
7226
7255
  toneAttr: "data-game-ui-tone",
7227
7256
  toneGlass: "glass",
7228
7257
  densityAttr: "data-game-ui-density",
7229
7258
  densityCompact: "compact",
7230
7259
  scopeClass: "game-ui-overlay-scope"
7231
- }, Ra = H, za = /* @__PURE__ */ "--game-ui-bg.--game-ui-surface.--game-ui-surface-raised.--game-ui-panel.--game-ui-panel-strong.--game-ui-panel-deep.--game-ui-text.--game-ui-text-muted.--game-ui-accent.--game-ui-accent-bright.--game-ui-secondary.--game-ui-success.--game-ui-success-bright.--game-ui-danger.--game-ui-danger-bright.--game-ui-warning.--game-ui-focus-ring.--game-ui-border-subtle.--game-ui-border-strong.--game-ui-disabled.--game-ui-ink-deep.--game-ui-border-ink.--game-ui-wood.--game-ui-ink-title.--game-ui-ink-heading.--game-ui-liquid-metal-face.--game-ui-liquid-metal-ink".split("."), Ba = {
7260
+ }, za = H, Ba = /* @__PURE__ */ "--game-ui-bg.--game-ui-surface.--game-ui-surface-raised.--game-ui-panel.--game-ui-panel-strong.--game-ui-panel-deep.--game-ui-text.--game-ui-text-muted.--game-ui-accent.--game-ui-accent-bright.--game-ui-secondary.--game-ui-success.--game-ui-success-bright.--game-ui-danger.--game-ui-danger-bright.--game-ui-warning.--game-ui-focus-ring.--game-ui-border-subtle.--game-ui-border-strong.--game-ui-disabled.--game-ui-ink-deep.--game-ui-border-ink.--game-ui-wood.--game-ui-ink-title.--game-ui-ink-heading.--game-ui-liquid-metal-face.--game-ui-liquid-metal-ink".split("."), Va = {
7232
7261
  en: {
7233
7262
  triggerLabel: "EN",
7234
7263
  langMenuLabel: "Preview language",
@@ -7442,7 +7471,7 @@ var Fa = [
7442
7471
  hint: "Rotate manually if this browser blocks automatic landscape lock."
7443
7472
  },
7444
7473
  historyLabel: "Round history",
7445
- history: Fa
7474
+ history: Ia
7446
7475
  },
7447
7476
  "zh-CN": {
7448
7477
  triggerLabel: "中",
@@ -7681,7 +7710,7 @@ var Fa = [
7681
7710
  }
7682
7711
  ]
7683
7712
  }
7684
- }, Va = _(Ba.en), Ha = () => S(Va), Ua = [
7713
+ }, Ha = _(Va.en), Ua = () => S(Ha), Wa = [
7685
7714
  {
7686
7715
  id: "colors",
7687
7716
  tokens: F
@@ -7739,7 +7768,7 @@ var Fa = [
7739
7768
  tokens: Ce
7740
7769
  }
7741
7770
  ];
7742
- function Wa({ id: e, label: t, tokens: n }) {
7771
+ function Ga({ id: e, label: t, tokens: n }) {
7743
7772
  return /* @__PURE__ */ j("article", {
7744
7773
  className: "game-ui-token-card",
7745
7774
  children: [/* @__PURE__ */ A("h3", { children: t }), /* @__PURE__ */ A("div", {
@@ -7751,7 +7780,7 @@ function Wa({ id: e, label: t, tokens: n }) {
7751
7780
  })]
7752
7781
  });
7753
7782
  }
7754
- function Ga() {
7783
+ function Ka() {
7755
7784
  return /* @__PURE__ */ A("div", {
7756
7785
  "aria-label": "Clay color swatches",
7757
7786
  className: "game-ui-swatch-grid",
@@ -7761,8 +7790,8 @@ function Ga() {
7761
7790
  }, e))
7762
7791
  });
7763
7792
  }
7764
- function Ka() {
7765
- let { type: e } = Ha();
7793
+ function qa() {
7794
+ let { type: e } = Ua();
7766
7795
  return /* @__PURE__ */ j("div", {
7767
7796
  className: "game-ui-type-scale",
7768
7797
  children: [
@@ -7777,8 +7806,8 @@ function Ka() {
7777
7806
  ]
7778
7807
  });
7779
7808
  }
7780
- function qa() {
7781
- let { buttons: e } = Ha();
7809
+ function Ja() {
7810
+ let { buttons: e } = Ua();
7782
7811
  return /* @__PURE__ */ j($, {
7783
7812
  title: e.panelTitle,
7784
7813
  tone: "strong",
@@ -7816,9 +7845,9 @@ function qa() {
7816
7845
  /* @__PURE__ */ j("div", {
7817
7846
  className: "game-ui-component-row",
7818
7847
  children: [
7819
- /* @__PURE__ */ A(hi, {
7848
+ /* @__PURE__ */ A(gi, {
7820
7849
  label: e.settingsTip,
7821
- children: /* @__PURE__ */ A(mi, {
7850
+ children: /* @__PURE__ */ A(hi, {
7822
7851
  label: e.settingsTip,
7823
7852
  children: /* @__PURE__ */ A(Z, {
7824
7853
  icon: "settings",
@@ -7826,7 +7855,7 @@ function qa() {
7826
7855
  })
7827
7856
  })
7828
7857
  }),
7829
- /* @__PURE__ */ A(mi, {
7858
+ /* @__PURE__ */ A(hi, {
7830
7859
  label: e.copyInvite,
7831
7860
  children: /* @__PURE__ */ A(Z, {
7832
7861
  icon: "copy",
@@ -7847,7 +7876,7 @@ function qa() {
7847
7876
  })
7848
7877
  ]
7849
7878
  }),
7850
- /* @__PURE__ */ A(vi, {
7879
+ /* @__PURE__ */ A(yi, {
7851
7880
  activeId: "live",
7852
7881
  label: e.segmentedLabel,
7853
7882
  options: [
@@ -7865,7 +7894,7 @@ function qa() {
7865
7894
  }
7866
7895
  ]
7867
7896
  }),
7868
- /* @__PURE__ */ A(gi, {
7897
+ /* @__PURE__ */ A(_i, {
7869
7898
  activeId: "portal",
7870
7899
  tabs: [
7871
7900
  {
@@ -7882,7 +7911,7 @@ function qa() {
7882
7911
  }
7883
7912
  ]
7884
7913
  }),
7885
- /* @__PURE__ */ A(xi, {
7914
+ /* @__PURE__ */ A(Si, {
7886
7915
  items: [
7887
7916
  {
7888
7917
  id: "wave",
@@ -7899,28 +7928,28 @@ function qa() {
7899
7928
  ],
7900
7929
  label: e.radialLabel
7901
7930
  }),
7902
- /* @__PURE__ */ A(yi, {
7931
+ /* @__PURE__ */ A(bi, {
7903
7932
  label: e.sliderLabel,
7904
7933
  max: 100,
7905
7934
  min: 0,
7906
7935
  value: 68
7907
7936
  }),
7908
- /* @__PURE__ */ A(bi, {
7937
+ /* @__PURE__ */ A(xi, {
7909
7938
  checked: !0,
7910
7939
  label: e.toggleLabel
7911
7940
  })
7912
7941
  ]
7913
7942
  });
7914
7943
  }
7915
- function Ja() {
7916
- let { hud: e, tiles: t } = Ha();
7944
+ function Ya() {
7945
+ let { hud: e, tiles: t } = Ua();
7917
7946
  return /* @__PURE__ */ j("div", {
7918
7947
  className: "game-ui-stage-demo",
7919
7948
  children: [/* @__PURE__ */ j("div", {
7920
7949
  "aria-label": "Clay world HUD preview",
7921
7950
  className: "game-ui-stage-world",
7922
7951
  children: [
7923
- /* @__PURE__ */ A(mr, {
7952
+ /* @__PURE__ */ A(hr, {
7924
7953
  label: e.label,
7925
7954
  items: [
7926
7955
  {
@@ -7943,15 +7972,15 @@ function Ja() {
7943
7972
  value: "02:46"
7944
7973
  }
7945
7974
  ],
7946
- actions: /* @__PURE__ */ j(pi, {
7975
+ actions: /* @__PURE__ */ j(mi, {
7947
7976
  label: e.tools,
7948
- children: [/* @__PURE__ */ A(mi, {
7977
+ children: [/* @__PURE__ */ A(hi, {
7949
7978
  label: e.history,
7950
7979
  children: /* @__PURE__ */ A(Z, {
7951
7980
  icon: "scroll",
7952
7981
  size: "sm"
7953
7982
  })
7954
- }), /* @__PURE__ */ A(mi, {
7983
+ }), /* @__PURE__ */ A(hi, {
7955
7984
  label: e.settings,
7956
7985
  children: /* @__PURE__ */ A(Z, {
7957
7986
  icon: "settings",
@@ -7991,7 +8020,7 @@ function Ja() {
7991
8020
  }), /* @__PURE__ */ j("div", {
7992
8021
  className: "game-ui-stage-sidecar",
7993
8022
  children: [
7994
- /* @__PURE__ */ A(gr, {
8023
+ /* @__PURE__ */ A(_r, {
7995
8024
  badge: t.daily.badge,
7996
8025
  icon: "scroll",
7997
8026
  kicker: t.daily.kicker,
@@ -8000,7 +8029,7 @@ function Ja() {
8000
8029
  title: t.daily.title,
8001
8030
  tone: "daily"
8002
8031
  }),
8003
- /* @__PURE__ */ A(gr, {
8032
+ /* @__PURE__ */ A(_r, {
8004
8033
  badge: t.portal.badge,
8005
8034
  icon: "portal",
8006
8035
  kicker: t.portal.kicker,
@@ -8008,7 +8037,7 @@ function Ja() {
8008
8037
  title: t.portal.title,
8009
8038
  tone: "portal"
8010
8039
  }),
8011
- /* @__PURE__ */ A(gr, {
8040
+ /* @__PURE__ */ A(_r, {
8012
8041
  icon: "energy",
8013
8042
  kicker: t.host.kicker,
8014
8043
  summary: t.host.summary,
@@ -8019,21 +8048,21 @@ function Ja() {
8019
8048
  })]
8020
8049
  });
8021
8050
  }
8022
- function Ya() {
8023
- let { hud: e, buttons: t } = Ha(), n = (n) => {
8051
+ function Xa() {
8052
+ let { hud: e, buttons: t } = Ua(), n = (n) => {
8024
8053
  let r = n === "glass";
8025
8054
  return /* @__PURE__ */ j("div", {
8026
8055
  "aria-label": r ? "Overlay glass HUD" : "Default clay HUD",
8027
8056
  className: [
8028
8057
  "game-ui-stage-world",
8029
8058
  "game-ui-overlay-glass-proof",
8030
- r ? La.scopeClass : void 0
8059
+ r ? Ra.scopeClass : void 0
8031
8060
  ].filter(Boolean).join(" "),
8032
8061
  ...r ? {
8033
- [La.toneAttr]: La.toneGlass,
8034
- [La.densityAttr]: La.densityCompact
8062
+ [Ra.toneAttr]: Ra.toneGlass,
8063
+ [Ra.densityAttr]: Ra.densityCompact
8035
8064
  } : {},
8036
- children: [/* @__PURE__ */ A(mr, {
8065
+ children: [/* @__PURE__ */ A(hr, {
8037
8066
  label: e.label,
8038
8067
  items: [
8039
8068
  {
@@ -8056,15 +8085,15 @@ function Ya() {
8056
8085
  value: "02:46"
8057
8086
  }
8058
8087
  ],
8059
- actions: /* @__PURE__ */ j(pi, {
8088
+ actions: /* @__PURE__ */ j(mi, {
8060
8089
  label: e.tools,
8061
- children: [/* @__PURE__ */ A(mi, {
8090
+ children: [/* @__PURE__ */ A(hi, {
8062
8091
  label: e.history,
8063
8092
  children: /* @__PURE__ */ A(Z, {
8064
8093
  icon: "scroll",
8065
8094
  size: "sm"
8066
8095
  })
8067
- }), /* @__PURE__ */ A(mi, {
8096
+ }), /* @__PURE__ */ A(hi, {
8068
8097
  label: e.settings,
8069
8098
  children: /* @__PURE__ */ A(Z, {
8070
8099
  icon: "settings",
@@ -8085,7 +8114,7 @@ function Ya() {
8085
8114
  tone: "success",
8086
8115
  children: t.readyBadge
8087
8116
  }),
8088
- /* @__PURE__ */ A(wr, {
8117
+ /* @__PURE__ */ A(Tr, {
8089
8118
  label: e.reveal,
8090
8119
  value: 68
8091
8120
  })
@@ -8123,22 +8152,22 @@ function Ya() {
8123
8152
  children: [/* @__PURE__ */ j("header", { children: [/* @__PURE__ */ A("strong", { children: "Overlay glass + compact" }), /* @__PURE__ */ j("span", {
8124
8153
  className: "game-ui-small-copy",
8125
8154
  children: [
8126
- La.toneAttr,
8155
+ Ra.toneAttr,
8127
8156
  "=\"",
8128
- La.toneGlass,
8157
+ Ra.toneGlass,
8129
8158
  "\" ·",
8130
8159
  " ",
8131
- La.densityAttr,
8160
+ Ra.densityAttr,
8132
8161
  "=\"",
8133
- La.densityCompact,
8162
+ Ra.densityCompact,
8134
8163
  "\""
8135
8164
  ]
8136
8165
  })] }), n("glass")]
8137
8166
  })]
8138
8167
  });
8139
8168
  }
8140
- function Xa() {
8141
- let { liquid: e } = Ha();
8169
+ function Za() {
8170
+ let { liquid: e } = Ua();
8142
8171
  return /* @__PURE__ */ j("div", {
8143
8172
  className: "game-ui-liquid-showcase",
8144
8173
  children: [
@@ -8207,8 +8236,8 @@ function Xa() {
8207
8236
  ]
8208
8237
  });
8209
8238
  }
8210
- function Za() {
8211
- let { liquidMetal: e } = Ha();
8239
+ function Qa() {
8240
+ let { liquidMetal: e } = Ua();
8212
8241
  return /* @__PURE__ */ j("div", {
8213
8242
  className: "game-ui-liquid-metal-compare",
8214
8243
  children: [/* @__PURE__ */ A($, {
@@ -8216,7 +8245,7 @@ function Za() {
8216
8245
  tone: "strong",
8217
8246
  children: /* @__PURE__ */ A("div", {
8218
8247
  className: "game-ui-liquid-metal-stage",
8219
- children: /* @__PURE__ */ A(li, {
8248
+ children: /* @__PURE__ */ A(ui, {
8220
8249
  renderer: "css",
8221
8250
  children: e.cta
8222
8251
  })
@@ -8226,7 +8255,7 @@ function Za() {
8226
8255
  tone: "strong",
8227
8256
  children: /* @__PURE__ */ A("div", {
8228
8257
  className: "game-ui-liquid-metal-stage",
8229
- children: /* @__PURE__ */ A(li, {
8258
+ children: /* @__PURE__ */ A(ui, {
8230
8259
  renderer: "webgl",
8231
8260
  children: e.cta
8232
8261
  })
@@ -8234,13 +8263,13 @@ function Za() {
8234
8263
  })]
8235
8264
  });
8236
8265
  }
8237
- function Qa() {
8238
- let { modals: e } = Ha();
8266
+ function $a() {
8267
+ let { modals: e } = Ua();
8239
8268
  return /* @__PURE__ */ j("div", {
8240
8269
  className: "game-ui-preview-two-up",
8241
- children: [/* @__PURE__ */ j(di, {
8270
+ children: [/* @__PURE__ */ j(fi, {
8242
8271
  title: e.dialogTitle,
8243
- children: [/* @__PURE__ */ A("p", { children: e.dialogBody }), /* @__PURE__ */ j(pi, {
8272
+ children: [/* @__PURE__ */ A("p", { children: e.dialogBody }), /* @__PURE__ */ j(mi, {
8244
8273
  label: e.actionsLabel,
8245
8274
  children: [/* @__PURE__ */ A(J, {
8246
8275
  variant: "primary",
@@ -8254,16 +8283,16 @@ function Qa() {
8254
8283
  title: e.panelTitle,
8255
8284
  tone: "strong",
8256
8285
  children: [
8257
- /* @__PURE__ */ A(Si, {
8286
+ /* @__PURE__ */ A(Ci, {
8258
8287
  tone: "success",
8259
8288
  children: e.toastOk
8260
8289
  }),
8261
- /* @__PURE__ */ A(Si, {
8290
+ /* @__PURE__ */ A(Ci, {
8262
8291
  tone: "danger",
8263
8292
  children: e.toastErr
8264
8293
  }),
8265
- /* @__PURE__ */ A(br, { label: e.loading }),
8266
- /* @__PURE__ */ A(br, {
8294
+ /* @__PURE__ */ A(xr, { label: e.loading }),
8295
+ /* @__PURE__ */ A(xr, {
8267
8296
  label: e.loadingErr,
8268
8297
  tone: "error"
8269
8298
  })
@@ -8271,14 +8300,14 @@ function Qa() {
8271
8300
  })]
8272
8301
  });
8273
8302
  }
8274
- function $a() {
8275
- let { cards: e } = Ha();
8303
+ function eo() {
8304
+ let { cards: e } = Ua();
8276
8305
  return /* @__PURE__ */ j("div", {
8277
8306
  className: "game-ui-preview-two-up",
8278
8307
  children: [/* @__PURE__ */ A($, {
8279
8308
  title: e.fanTitle,
8280
8309
  tone: "strong",
8281
- children: /* @__PURE__ */ A(hr, {
8310
+ children: /* @__PURE__ */ A(gr, {
8282
8311
  label: e.fanLabel,
8283
8312
  cards: [
8284
8313
  {
@@ -8310,16 +8339,16 @@ function $a() {
8310
8339
  }), /* @__PURE__ */ j("div", {
8311
8340
  className: "game-ui-asset-path-grid",
8312
8341
  children: [
8313
- /* @__PURE__ */ A("code", { children: er.catalog.manifest }),
8314
- /* @__PURE__ */ A("code", { children: er.catalog.sourceCatalog }),
8315
- /* @__PURE__ */ A("code", { children: er.buttons.primary }),
8316
- /* @__PURE__ */ A("code", { children: er.icons.trophy })
8342
+ /* @__PURE__ */ A("code", { children: tr.catalog.manifest }),
8343
+ /* @__PURE__ */ A("code", { children: tr.catalog.sourceCatalog }),
8344
+ /* @__PURE__ */ A("code", { children: tr.buttons.primary }),
8345
+ /* @__PURE__ */ A("code", { children: tr.icons.trophy })
8317
8346
  ]
8318
8347
  })]
8319
8348
  })]
8320
8349
  });
8321
8350
  }
8322
- var eo = [
8351
+ var to = [
8323
8352
  {
8324
8353
  id: "terrain",
8325
8354
  label: "Terrain",
@@ -8335,7 +8364,7 @@ var eo = [
8335
8364
  label: "Place",
8336
8365
  icon: "gem"
8337
8366
  }
8338
- ], to = [
8367
+ ], no = [
8339
8368
  {
8340
8369
  id: "raise",
8341
8370
  label: "Raise",
@@ -8361,7 +8390,7 @@ var eo = [
8361
8390
  label: "Paint",
8362
8391
  shortcut: "5"
8363
8392
  }
8364
- ], no = [
8393
+ ], ro = [
8365
8394
  {
8366
8395
  id: "grass",
8367
8396
  label: "Grass",
@@ -8377,7 +8406,7 @@ var eo = [
8377
8406
  label: "Path",
8378
8407
  color: "#b98d5d"
8379
8408
  }
8380
- ], ro = [{
8409
+ ], io = [{
8381
8410
  id: "foundation",
8382
8411
  label: "Foundation",
8383
8412
  icon: "home",
@@ -8396,10 +8425,10 @@ var eo = [
8396
8425
  status: "ready"
8397
8426
  }]
8398
8427
  }];
8399
- function io() {
8428
+ function ao() {
8400
8429
  return /* @__PURE__ */ j("div", {
8401
8430
  className: "game-ui-preview-two-up",
8402
- children: [/* @__PURE__ */ A(sa, {
8431
+ children: [/* @__PURE__ */ A(ca, {
8403
8432
  activeBuildCategoryId: "foundation",
8404
8433
  activeMaterialId: "grass",
8405
8434
  activeModeId: "terrain",
@@ -8408,10 +8437,10 @@ function io() {
8408
8437
  radius: 2.75,
8409
8438
  strength: .45
8410
8439
  },
8411
- buildCategories: ro,
8440
+ buildCategories: io,
8412
8441
  label: "Desktop terrain and build tools",
8413
- materials: no,
8414
- modes: eo,
8442
+ materials: ro,
8443
+ modes: to,
8415
8444
  selectedBuildItemId: "floor-2x2",
8416
8445
  status: {
8417
8446
  label: "Ready",
@@ -8422,12 +8451,12 @@ function io() {
8422
8451
  progressValue: 68
8423
8452
  },
8424
8453
  title: "Island tools",
8425
- tools: to,
8454
+ tools: no,
8426
8455
  undoRedo: {
8427
8456
  canRedo: !1,
8428
8457
  canUndo: !0
8429
8458
  }
8430
- }), /* @__PURE__ */ A(sa, {
8459
+ }), /* @__PURE__ */ A(ca, {
8431
8460
  activeBuildCategoryId: "foundation",
8432
8461
  activeMaterialId: "path",
8433
8462
  activeModeId: "terrain",
@@ -8436,11 +8465,11 @@ function io() {
8436
8465
  radius: 1.5,
8437
8466
  strength: .3
8438
8467
  },
8439
- buildCategories: ro,
8468
+ buildCategories: io,
8440
8469
  drawerOpen: !0,
8441
8470
  label: "Small mobile terrain drawer",
8442
- materials: no,
8443
- modes: eo,
8471
+ materials: ro,
8472
+ modes: to,
8444
8473
  selectedBuildItemId: "floor-2x2",
8445
8474
  status: {
8446
8475
  label: "Blocked",
@@ -8448,7 +8477,7 @@ function io() {
8448
8477
  description: "This edit would bury a placed object."
8449
8478
  },
8450
8479
  title: "Tools",
8451
- tools: to,
8480
+ tools: no,
8452
8481
  undoRedo: {
8453
8482
  canRedo: !0,
8454
8483
  canUndo: !0
@@ -8457,7 +8486,7 @@ function io() {
8457
8486
  })]
8458
8487
  });
8459
8488
  }
8460
- function ao({ label: e, mode: t }) {
8489
+ function oo({ label: e, mode: t }) {
8461
8490
  return /* @__PURE__ */ j("div", {
8462
8491
  className: "game-ui-construction-preview-card",
8463
8492
  "data-preview": t,
@@ -8471,7 +8500,7 @@ function ao({ label: e, mode: t }) {
8471
8500
  ]
8472
8501
  });
8473
8502
  }
8474
- var oo = [
8503
+ var so = [
8475
8504
  {
8476
8505
  id: "preview-deck",
8477
8506
  title: "Deck robot crew",
@@ -8532,7 +8561,7 @@ var oo = [
8532
8561
  before: {
8533
8562
  label: "Before",
8534
8563
  caption: "Uneven terrain pad.",
8535
- content: /* @__PURE__ */ A(ao, {
8564
+ content: /* @__PURE__ */ A(oo, {
8536
8565
  label: "Rough pad",
8537
8566
  mode: "before"
8538
8567
  })
@@ -8540,7 +8569,7 @@ var oo = [
8540
8569
  after: {
8541
8570
  label: "After",
8542
8571
  caption: "Flattened foundation pad with safe clearance.",
8543
- content: /* @__PURE__ */ A(ao, {
8572
+ content: /* @__PURE__ */ A(oo, {
8544
8573
  label: "Foundation ready",
8545
8574
  mode: "after"
8546
8575
  })
@@ -8569,19 +8598,19 @@ var oo = [
8569
8598
  }]
8570
8599
  }
8571
8600
  ];
8572
- function so() {
8601
+ function co() {
8573
8602
  return /* @__PURE__ */ j("div", {
8574
8603
  className: "game-ui-preview-two-up",
8575
- children: [/* @__PURE__ */ A(Da, {
8576
- jobs: oo,
8604
+ children: [/* @__PURE__ */ A(Oa, {
8605
+ jobs: so,
8577
8606
  label: "AI contractor jobs",
8578
8607
  selectedJobId: "review-house-pad",
8579
8608
  subtitle: "Official contractor UI covers drafts, previews, robot work, validation, review, and local-only provider boundaries.",
8580
8609
  title: "AI contractor",
8581
8610
  variant: "desktop"
8582
- }), /* @__PURE__ */ A(Da, {
8611
+ }), /* @__PURE__ */ A(Oa, {
8583
8612
  drawerOpen: !0,
8584
- jobs: oo,
8613
+ jobs: so,
8585
8614
  label: "Small mobile contractor jobs",
8586
8615
  selectedJobId: "blocked-fence",
8587
8616
  title: "Contractor",
@@ -8589,10 +8618,10 @@ function so() {
8589
8618
  })]
8590
8619
  });
8591
8620
  }
8592
- function co() {
8593
- return /* @__PURE__ */ A(ji, {
8621
+ function lo() {
8622
+ return /* @__PURE__ */ A(Mi, {
8594
8623
  title: "OwnMySpace island editor preview",
8595
- hud: /* @__PURE__ */ A(Ni, {
8624
+ hud: /* @__PURE__ */ A(Pi, {
8596
8625
  label: "Island facts",
8597
8626
  facts: [
8598
8627
  {
@@ -8616,11 +8645,11 @@ function co() {
8616
8645
  }
8617
8646
  ]
8618
8647
  }),
8619
- movementPad: /* @__PURE__ */ A(Ri, {
8648
+ movementPad: /* @__PURE__ */ A(zi, {
8620
8649
  helpText: "WASD or arrows",
8621
8650
  label: "Move avatar"
8622
8651
  }),
8623
- assetLibrary: /* @__PURE__ */ A(Ui, {
8652
+ assetLibrary: /* @__PURE__ */ A(Wi, {
8624
8653
  label: "Placeable assets",
8625
8654
  title: "Assets",
8626
8655
  subtitle: "Starter, generated, and imported assets stay visibly distinct but share one placement path.",
@@ -8667,7 +8696,7 @@ function co() {
8667
8696
  }
8668
8697
  ]
8669
8698
  }),
8670
- bottomBar: /* @__PURE__ */ A(Wi, {
8699
+ bottomBar: /* @__PURE__ */ A(Gi, {
8671
8700
  title: "Placement",
8672
8701
  selectedTitle: "Manual chair",
8673
8702
  placedObjects: 3,
@@ -8703,7 +8732,7 @@ function co() {
8703
8732
  })
8704
8733
  });
8705
8734
  }
8706
- var lo = [{
8735
+ var uo = [{
8707
8736
  id: "starter",
8708
8737
  label: "Starter pieces",
8709
8738
  source: "starter",
@@ -8734,7 +8763,7 @@ var lo = [{
8734
8763
  }
8735
8764
  ]
8736
8765
  }];
8737
- function uo() {
8766
+ function fo() {
8738
8767
  return /* @__PURE__ */ A("div", {
8739
8768
  className: "game-ui-asset-compression-repro",
8740
8769
  "aria-label": "Asset card compression repro",
@@ -8758,9 +8787,9 @@ function uo() {
8758
8787
  className: "game-ui-asset-compression-repro-surface",
8759
8788
  "data-repro-surface": e.id,
8760
8789
  style: { "--repro-width": e.width },
8761
- children: [/* @__PURE__ */ A(X, { children: e.label }), /* @__PURE__ */ A(Ui, {
8790
+ children: [/* @__PURE__ */ A(X, { children: e.label }), /* @__PURE__ */ A(Wi, {
8762
8791
  density: "dense",
8763
- groups: lo,
8792
+ groups: uo,
8764
8793
  label: `${e.label} assets`,
8765
8794
  selectedAssetId: "asset-repro-chair",
8766
8795
  title: "Build"
@@ -8768,13 +8797,13 @@ function uo() {
8768
8797
  }, e.id))
8769
8798
  });
8770
8799
  }
8771
- function fo() {
8772
- let { firstSession: e } = Ha();
8800
+ function po() {
8801
+ let { firstSession: e } = Ua();
8773
8802
  return /* @__PURE__ */ j("div", {
8774
8803
  className: "game-ui-first-session-preview",
8775
8804
  children: [/* @__PURE__ */ A("div", {
8776
8805
  className: "game-ui-first-session-world",
8777
- children: /* @__PURE__ */ A(Ti, {
8806
+ children: /* @__PURE__ */ A(Ei, {
8778
8807
  authenticated: !0,
8779
8808
  batteryCount: 5,
8780
8809
  dailyStreak: 3,
@@ -8808,7 +8837,7 @@ function fo() {
8808
8837
  })
8809
8838
  }), /* @__PURE__ */ A("div", {
8810
8839
  className: "game-ui-first-session-modal-slot",
8811
- children: /* @__PURE__ */ A(Ei, {
8840
+ children: /* @__PURE__ */ A(Di, {
8812
8841
  open: !0,
8813
8842
  onDismiss: () => void 0,
8814
8843
  labels: {
@@ -8836,46 +8865,46 @@ function fo() {
8836
8865
  })]
8837
8866
  });
8838
8867
  }
8839
- function po() {
8840
- let { responsive: e } = Ha();
8868
+ function mo() {
8869
+ let { responsive: e } = Ua();
8841
8870
  return /* @__PURE__ */ j("div", {
8842
8871
  className: "game-ui-proof-frames",
8843
8872
  children: [/* @__PURE__ */ j("article", {
8844
8873
  className: "game-ui-proof-frame is-desktop",
8845
- children: [/* @__PURE__ */ j("header", { children: [/* @__PURE__ */ A(X, { children: e.desktop }), /* @__PURE__ */ A("strong", { children: "1440×900" })] }), /* @__PURE__ */ A(Ja, {})]
8874
+ children: [/* @__PURE__ */ j("header", { children: [/* @__PURE__ */ A(X, { children: e.desktop }), /* @__PURE__ */ A("strong", { children: "1440×900" })] }), /* @__PURE__ */ A(Ya, {})]
8846
8875
  }), /* @__PURE__ */ j("article", {
8847
8876
  className: "game-ui-proof-frame is-mobile-landscape",
8848
- children: [/* @__PURE__ */ j("header", { children: [/* @__PURE__ */ A(X, { children: e.mobileLandscape }), /* @__PURE__ */ A("strong", { children: "844×390" })] }), /* @__PURE__ */ A(Ja, {})]
8877
+ children: [/* @__PURE__ */ j("header", { children: [/* @__PURE__ */ A(X, { children: e.mobileLandscape }), /* @__PURE__ */ A("strong", { children: "844×390" })] }), /* @__PURE__ */ A(Ya, {})]
8849
8878
  })]
8850
8879
  });
8851
8880
  }
8852
- function mo() {
8853
- let { forms: e } = Ha();
8881
+ function ho() {
8882
+ let { forms: e } = Ua();
8854
8883
  return /* @__PURE__ */ j("div", {
8855
8884
  className: "game-ui-preview-two-up",
8856
8885
  children: [/* @__PURE__ */ j($, {
8857
8886
  title: e.formsTitle,
8858
8887
  tone: "strong",
8859
8888
  children: [
8860
- /* @__PURE__ */ A(ki, {
8889
+ /* @__PURE__ */ A(Ai, {
8861
8890
  hint: e.roomCodeHint,
8862
8891
  label: e.roomCodeLabel,
8863
- children: /* @__PURE__ */ A(Di, { placeholder: e.roomCodePlaceholder })
8892
+ children: /* @__PURE__ */ A(Oi, { placeholder: e.roomCodePlaceholder })
8864
8893
  }),
8865
- /* @__PURE__ */ A(ki, {
8894
+ /* @__PURE__ */ A(Ai, {
8866
8895
  label: e.nameLabel,
8867
8896
  required: !0,
8868
- children: /* @__PURE__ */ A(Di, { placeholder: e.namePlaceholder })
8897
+ children: /* @__PURE__ */ A(Oi, { placeholder: e.namePlaceholder })
8869
8898
  }),
8870
- /* @__PURE__ */ A(ki, {
8899
+ /* @__PURE__ */ A(Ai, {
8871
8900
  error: e.readError,
8872
8901
  label: e.readLabel,
8873
- children: /* @__PURE__ */ A(Oi, {
8902
+ children: /* @__PURE__ */ A(ki, {
8874
8903
  invalid: !0,
8875
8904
  placeholder: e.readPlaceholder
8876
8905
  })
8877
8906
  }),
8878
- /* @__PURE__ */ A(Ai, {
8907
+ /* @__PURE__ */ A(ji, {
8879
8908
  defaultChecked: !0,
8880
8909
  label: e.rememberLabel
8881
8910
  })
@@ -8887,38 +8916,38 @@ function mo() {
8887
8916
  /* @__PURE__ */ j("div", {
8888
8917
  className: "game-ui-component-row",
8889
8918
  children: [
8890
- /* @__PURE__ */ A(Cr, {
8919
+ /* @__PURE__ */ A(wr, {
8891
8920
  name: "Mika Ono",
8892
8921
  status: "online"
8893
8922
  }),
8894
- /* @__PURE__ */ A(Cr, {
8923
+ /* @__PURE__ */ A(wr, {
8895
8924
  name: "River",
8896
8925
  size: "lg",
8897
8926
  status: "busy"
8898
8927
  }),
8899
- /* @__PURE__ */ A(Cr, {
8928
+ /* @__PURE__ */ A(wr, {
8900
8929
  name: "Noa",
8901
8930
  status: "away"
8902
8931
  }),
8903
- /* @__PURE__ */ A(Cr, {
8932
+ /* @__PURE__ */ A(wr, {
8904
8933
  name: e.guestName,
8905
8934
  size: "sm"
8906
8935
  })
8907
8936
  ]
8908
8937
  }),
8909
- /* @__PURE__ */ A(wr, {
8938
+ /* @__PURE__ */ A(Tr, {
8910
8939
  label: e.revealLabel,
8911
8940
  showValue: !0,
8912
8941
  value: 64
8913
8942
  }),
8914
- /* @__PURE__ */ A(wr, {
8943
+ /* @__PURE__ */ A(Tr, {
8915
8944
  label: e.batteryLabel,
8916
8945
  max: 20,
8917
8946
  showValue: !0,
8918
8947
  tone: "success",
8919
8948
  value: 14
8920
8949
  }),
8921
- /* @__PURE__ */ A(Tr, {
8950
+ /* @__PURE__ */ A(Er, {
8922
8951
  action: /* @__PURE__ */ A(J, {
8923
8952
  variant: "primary",
8924
8953
  children: e.emptyCta
@@ -8931,8 +8960,8 @@ function mo() {
8931
8960
  })]
8932
8961
  });
8933
8962
  }
8934
- var ho = qn.filter((e) => Zn(e).includes("game")), go = qn.filter((e) => Zn(e).includes("line"));
8935
- function _o({ names: e, style: t }) {
8963
+ var go = Jn.filter((e) => Qn(e).includes("game")), _o = Jn.filter((e) => Qn(e).includes("line"));
8964
+ function vo({ names: e, style: t }) {
8936
8965
  return /* @__PURE__ */ A("div", {
8937
8966
  className: "game-ui-icon-grid",
8938
8967
  children: e.map((e) => /* @__PURE__ */ j("figure", {
@@ -8945,10 +8974,10 @@ function _o({ names: e, style: t }) {
8945
8974
  }, `${t}-${e}`))
8946
8975
  });
8947
8976
  }
8948
- function vo() {
8977
+ function yo() {
8949
8978
  return /* @__PURE__ */ A("div", {
8950
8979
  className: "game-ui-icon-grid",
8951
- children: $n.map((e) => /* @__PURE__ */ j("figure", {
8980
+ children: er.map((e) => /* @__PURE__ */ j("figure", {
8952
8981
  className: "game-ui-icon-cell",
8953
8982
  children: [/* @__PURE__ */ A("span", {
8954
8983
  className: "game-ui-asset-icon",
@@ -8957,14 +8986,14 @@ function vo() {
8957
8986
  "aria-hidden": !0,
8958
8987
  children: /* @__PURE__ */ A("img", {
8959
8988
  alt: "",
8960
- src: Qn[e]
8989
+ src: $n[e]
8961
8990
  })
8962
8991
  }), /* @__PURE__ */ A("figcaption", { children: e })]
8963
8992
  }, `sprite-${e}`))
8964
8993
  });
8965
8994
  }
8966
- function yo() {
8967
- let { gallery: e } = Ha();
8995
+ function bo() {
8996
+ let { gallery: e } = Ua();
8968
8997
  return /* @__PURE__ */ j("div", {
8969
8998
  className: "game-ui-icon-gallery",
8970
8999
  children: [
@@ -8979,8 +9008,8 @@ function yo() {
8979
9008
  className: "game-ui-small-copy",
8980
9009
  children: e.gameHint
8981
9010
  })]
8982
- }), /* @__PURE__ */ A(_o, {
8983
- names: ho,
9011
+ }), /* @__PURE__ */ A(vo, {
9012
+ names: go,
8984
9013
  style: "game"
8985
9014
  })]
8986
9015
  }),
@@ -8992,8 +9021,8 @@ function yo() {
8992
9021
  className: "game-ui-small-copy",
8993
9022
  children: e.lineHint
8994
9023
  })]
8995
- }), /* @__PURE__ */ A(_o, {
8996
- names: go,
9024
+ }), /* @__PURE__ */ A(vo, {
9025
+ names: _o,
8997
9026
  style: "line"
8998
9027
  })]
8999
9028
  }),
@@ -9008,16 +9037,16 @@ function yo() {
9008
9037
  className: "game-ui-small-copy",
9009
9038
  children: e.spriteHint
9010
9039
  })]
9011
- }), /* @__PURE__ */ A(vo, {})]
9040
+ }), /* @__PURE__ */ A(yo, {})]
9012
9041
  })
9013
9042
  ]
9014
9043
  });
9015
9044
  }
9016
- function bo({ title: e, body: t }) {
9017
- let [n, r] = O("en"), i = Ba[n], a = e && n === "en" ? e : i.heroTitle, o = t && n === "en" ? t : i.heroBody;
9045
+ function xo({ title: e, body: t }) {
9046
+ let [n, r] = O("en"), i = Va[n], a = e && n === "en" ? e : i.heroTitle, o = t && n === "en" ? t : i.heroBody;
9018
9047
  return C(() => (document.documentElement.dataset.gameUiPreview = "clay", () => {
9019
9048
  delete document.documentElement.dataset.gameUiPreview;
9020
- }), []), /* @__PURE__ */ A(Va.Provider, {
9049
+ }), []), /* @__PURE__ */ A(Ha.Provider, {
9021
9050
  value: i,
9022
9051
  children: /* @__PURE__ */ j("main", {
9023
9052
  "aria-label": "Swimmer UI Kit clay preview",
@@ -9030,7 +9059,7 @@ function bo({ title: e, body: t }) {
9030
9059
  tone: "ai",
9031
9060
  children: "@pieai/swimmer-ui-kit"
9032
9061
  }),
9033
- /* @__PURE__ */ A(yr, {
9062
+ /* @__PURE__ */ A(br, {
9034
9063
  currentLabel: i.triggerLabel,
9035
9064
  label: i.langMenuLabel,
9036
9065
  onSelect: (e) => r(e),
@@ -9119,10 +9148,10 @@ function bo({ title: e, body: t }) {
9119
9148
  id: "game-ui-preview-token-title",
9120
9149
  children: i.sections.tokens
9121
9150
  }),
9122
- /* @__PURE__ */ A(Ga, {}),
9151
+ /* @__PURE__ */ A(Ka, {}),
9123
9152
  /* @__PURE__ */ A("div", {
9124
9153
  className: "game-ui-token-ledger",
9125
- children: Ua.map((e) => /* @__PURE__ */ A(Wa, {
9154
+ children: Wa.map((e) => /* @__PURE__ */ A(Ga, {
9126
9155
  id: e.id,
9127
9156
  label: i.tokenGroups[e.id] ?? e.id,
9128
9157
  tokens: e.tokens
@@ -9142,7 +9171,7 @@ function bo({ title: e, body: t }) {
9142
9171
  className: "game-ui-small-copy",
9143
9172
  children: i.iconsIntro
9144
9173
  }),
9145
- /* @__PURE__ */ A(yo, {})
9174
+ /* @__PURE__ */ A(bo, {})
9146
9175
  ]
9147
9176
  }),
9148
9177
  /* @__PURE__ */ j("section", {
@@ -9151,7 +9180,7 @@ function bo({ title: e, body: t }) {
9151
9180
  children: [/* @__PURE__ */ A("h2", {
9152
9181
  id: "game-ui-preview-type-title",
9153
9182
  children: i.sections.typography
9154
- }), /* @__PURE__ */ A(Ka, {})]
9183
+ }), /* @__PURE__ */ A(qa, {})]
9155
9184
  }),
9156
9185
  /* @__PURE__ */ j("section", {
9157
9186
  "aria-labelledby": "game-ui-preview-components-title",
@@ -9161,11 +9190,11 @@ function bo({ title: e, body: t }) {
9161
9190
  id: "game-ui-preview-components-title",
9162
9191
  children: i.sections.components
9163
9192
  }),
9164
- /* @__PURE__ */ A(qa, {}),
9165
9193
  /* @__PURE__ */ A(Ja, {}),
9166
- /* @__PURE__ */ A(Qa, {}),
9194
+ /* @__PURE__ */ A(Ya, {}),
9167
9195
  /* @__PURE__ */ A($a, {}),
9168
- /* @__PURE__ */ A(fi, {
9196
+ /* @__PURE__ */ A(eo, {}),
9197
+ /* @__PURE__ */ A(pi, {
9169
9198
  entries: i.history,
9170
9199
  label: i.historyLabel
9171
9200
  })
@@ -9177,7 +9206,7 @@ function bo({ title: e, body: t }) {
9177
9206
  children: [/* @__PURE__ */ A("h2", {
9178
9207
  id: "game-ui-preview-forms-title",
9179
9208
  children: i.sections.forms
9180
- }), /* @__PURE__ */ A(mo, {})]
9209
+ }), /* @__PURE__ */ A(ho, {})]
9181
9210
  }),
9182
9211
  /* @__PURE__ */ j("section", {
9183
9212
  "aria-labelledby": "game-ui-preview-overlay-glass-title",
@@ -9191,7 +9220,7 @@ function bo({ title: e, body: t }) {
9191
9220
  className: "game-ui-small-copy",
9192
9221
  children: "Official HUD-on-scene tone: dark translucent glass, thin light border, no clay cast shadow, compact density. Use on any container that wraps scene-overlay chrome (3D tavern, cinematic stage). Nest inside light or night theme."
9193
9222
  }),
9194
- /* @__PURE__ */ A(Ya, {})
9223
+ /* @__PURE__ */ A(Xa, {})
9195
9224
  ]
9196
9225
  }),
9197
9226
  /* @__PURE__ */ j("section", {
@@ -9206,7 +9235,7 @@ function bo({ title: e, body: t }) {
9206
9235
  className: "game-ui-small-copy",
9207
9236
  children: i.liquid.body
9208
9237
  }),
9209
- /* @__PURE__ */ A(Xa, {})
9238
+ /* @__PURE__ */ A(Za, {})
9210
9239
  ]
9211
9240
  }),
9212
9241
  /* @__PURE__ */ j("section", {
@@ -9221,7 +9250,7 @@ function bo({ title: e, body: t }) {
9221
9250
  className: "game-ui-small-copy",
9222
9251
  children: i.liquidMetal.body
9223
9252
  }),
9224
- /* @__PURE__ */ A(Za, {})
9253
+ /* @__PURE__ */ A(Qa, {})
9225
9254
  ]
9226
9255
  }),
9227
9256
  /* @__PURE__ */ j("section", {
@@ -9230,7 +9259,7 @@ function bo({ title: e, body: t }) {
9230
9259
  children: [/* @__PURE__ */ A("h2", {
9231
9260
  id: "game-ui-preview-ownmyspace-title",
9232
9261
  children: "OwnMySpace game surface pack"
9233
- }), /* @__PURE__ */ A(co, {})]
9262
+ }), /* @__PURE__ */ A(lo, {})]
9234
9263
  }),
9235
9264
  /* @__PURE__ */ j("section", {
9236
9265
  "aria-labelledby": "game-ui-preview-terrain-build-title",
@@ -9244,7 +9273,7 @@ function bo({ title: e, body: t }) {
9244
9273
  className: "game-ui-small-copy",
9245
9274
  children: "Official terrain controls cover mode, brush, material, undo/redo, build library, status, progress, and compact mobile drawer surfaces."
9246
9275
  }),
9247
- /* @__PURE__ */ A(io, {})
9276
+ /* @__PURE__ */ A(ao, {})
9248
9277
  ]
9249
9278
  }),
9250
9279
  /* @__PURE__ */ j("section", {
@@ -9259,7 +9288,7 @@ function bo({ title: e, body: t }) {
9259
9288
  className: "game-ui-small-copy",
9260
9289
  children: "Official construction surfaces cover job queue states, before/after review, robot crew status, validation warnings, approval actions, and local-only provider badges."
9261
9290
  }),
9262
- /* @__PURE__ */ A(so, {})
9291
+ /* @__PURE__ */ A(co, {})
9263
9292
  ]
9264
9293
  }),
9265
9294
  /* @__PURE__ */ j("section", {
@@ -9274,7 +9303,7 @@ function bo({ title: e, body: t }) {
9274
9303
  className: "game-ui-small-copy",
9275
9304
  children: "Official asset cards must stay visually complete when a game shell uses dense, narrow, or rail-style inventory slots."
9276
9305
  }),
9277
- /* @__PURE__ */ A(uo, {})
9306
+ /* @__PURE__ */ A(fo, {})
9278
9307
  ]
9279
9308
  }),
9280
9309
  /* @__PURE__ */ j("section", {
@@ -9283,7 +9312,7 @@ function bo({ title: e, body: t }) {
9283
9312
  children: [/* @__PURE__ */ A("h2", {
9284
9313
  id: "game-ui-preview-first-session-title",
9285
9314
  children: i.sections.firstSession
9286
- }), /* @__PURE__ */ A(fo, {})]
9315
+ }), /* @__PURE__ */ A(po, {})]
9287
9316
  }),
9288
9317
  /* @__PURE__ */ j("section", {
9289
9318
  "aria-labelledby": "game-ui-preview-orientation-title",
@@ -9291,7 +9320,7 @@ function bo({ title: e, body: t }) {
9291
9320
  children: [/* @__PURE__ */ A("h2", {
9292
9321
  id: "game-ui-preview-orientation-title",
9293
9322
  children: i.sections.orientation
9294
- }), /* @__PURE__ */ A(vr, {
9323
+ }), /* @__PURE__ */ A(yr, {
9295
9324
  badgeLabel: i.orientation.badge,
9296
9325
  body: i.orientation.body,
9297
9326
  cta: i.orientation.cta,
@@ -9306,11 +9335,11 @@ function bo({ title: e, body: t }) {
9306
9335
  children: [/* @__PURE__ */ A("h2", {
9307
9336
  id: "game-ui-preview-responsive-title",
9308
9337
  children: i.sections.responsive
9309
- }), /* @__PURE__ */ A(po, {})]
9338
+ }), /* @__PURE__ */ A(mo, {})]
9310
9339
  })
9311
9340
  ]
9312
9341
  })
9313
9342
  });
9314
9343
  }
9315
9344
  //#endregion
9316
- export { er as CLAY_ASSETS, Gn as CLAY_ASSET_BASE_PATH, Ce as CLAY_ASSET_SIZE_TOKENS, F as CLAY_COLOR_TOKENS, z as CLAY_ELEVATION_TOKENS, Qn as CLAY_GAME_SPRITES, $n as CLAY_GAME_SPRITE_NAMES, qn as CLAY_ICON_NAMES, Kn as CLAY_ICON_VARIANTS, V as CLAY_LAYER_TOKENS, ye as CLAY_LIQUID_GOOEY_TOKENS, ye as GAME_UI_LIQUID_GOOEY_TOKENS, ve as CLAY_LIQUID_METAL_TOKENS, ve as GAME_UI_LIQUID_METAL_TOKENS, B as CLAY_MOTION_TOKENS, be as CLAY_OVERLAY_GLASS_TOKENS, be as GAME_UI_OVERLAY_GLASS_TOKENS, L as CLAY_RADIUS_TOKENS, R as CLAY_SCROLLBAR_TOKENS, xe as CLAY_SEMANTIC_TOKENS, Se as CLAY_SPACE_TOKENS, H as CLAY_TARGET_TOKENS, I as CLAY_TYPE_TOKENS, we as CLAY_UI_TOKENS, r as DEFAULT_LIQUID_GOOEY_ANIMATION_BUDGET, i as DEFAULT_LIQUID_GOOEY_FILTER_AREA_BUDGET, Ir as DEFAULT_LIQUID_METAL_CONTEXT_BUDGET, G as DISSOLVE_DEFAULTS, Ti as FirstSessionHud, Ei as FirstSessionOnboarding, La as GAME_UI_OVERLAY, Fa as GAME_UI_PREVIEW_MESSAGES, Ra as GAME_UI_TARGETS, za as GAME_UI_THEME_CONTRACT, Ia as GAME_UI_TOKENS, Fi as GameActionGrid, Hi as GameAssetCard, Z as GameAssetIcon, Ui as GameAssetLibrary, Cr as GameAvatar, X as GameBadge, wa as GameBeforeAfterToggle, ea as GameBrushControls, ra as GameBuildLibrary, J as GameButton, ui as GameCallout, hr as GameCardFan, Ai as GameCheckbox, Aa as GameCollapsiblePanel, Pr as GameCollectibleCard, Fr as GameCollectibleCardSlot, ia as GameCompactGameDrawer, Ea as GameCompactJobDrawer, Sa as GameConstructionApprovalBar, Ta as GameConstructionJobCard, xa as GameConstructionProgress, Da as GameContractorPanel, di as GameDialog, Tr as GameEmptyState, Ni as GameFactList, ki as GameField, Nn as GameHelpTip, fi as GameHistoryPanel, mr as GameHud, pi as GameHudActions, mi as GameIconButton, Di as GameInput, yr as GameLanguageMenu, _e as GameListRow, br as GameLoadingState, ta as GameMaterialSwatches, Pa as GameModal, Ri as GameMovementPad, Gi as GameObjectToolbar, vr as GameOrientationGate, ge as GameOtpInput, $ as GamePanel, Wi as GamePlacementToolbar, wr as GameProgress, Ci as GamePrompt, xi as GameRadialMenu, Ca as GameRobotCrewStatus, Mi as GameSceneHudLayout, vi as GameSegmentedControl, Mn as GameSelect, ji as GameShell, yi as GameSlider, Dr as GameSplash, gr as GameStageTile, Pi as GameStatList, gi as GameTabs, sa as GameTerrainBuildToolbox, Qi as GameTerrainModeControl, $i as GameTerrainToolStrip, Oi as GameTextArea, Si as GameToast, bi as GameToggle, hi as GameTooltip, bo as GameUiPreview, na as GameUndoRedoActions, Na as GameWindowPanel, At as IMAGE_MELT_DEFAULTS, Sn as LIQUID_FORMS, Cn as LIQUID_FORM_NAMES, Ee as LIQUID_GOOEY_WAVINESS_MAX_FRACTION, bn as LiquidGroup, yn as LiquidItem, li as LiquidMetalButton, An as LiquidSurface, dr as acknowledgeClayPlaceholders, cr as getClayAssetBasePath, or as getClayAssetMode, xr as getClayCatalogPaths, fr as getClayIconPath, Zn as getClayIconStyles, pr as getClaySourceAssetPath, f as getLiquidGooeyBudget, zr as getLiquidMetalContextBudget, wn as liquidFormGroup, Tn as liquidFormItem, jn as liquidFormSummary, Un as playGameCardRevealSound, Hn as playGameCardRevealSoundForContext, Vn as playGameInteractionSound, Bn as playGameInteractionSoundForContext, Ft as resolveDissolveOptions, sr as setClayAssetBasePath, ar as setClayAssetMode, o as setLiquidGooeyBudget, Br as setLiquidMetalContextBudget, me as useGameCardOrientation, Or as useGameSplashDelay };
9345
+ export { tr as CLAY_ASSETS, Kn as CLAY_ASSET_BASE_PATH, Ce as CLAY_ASSET_SIZE_TOKENS, F as CLAY_COLOR_TOKENS, z as CLAY_ELEVATION_TOKENS, $n as CLAY_GAME_SPRITES, er as CLAY_GAME_SPRITE_NAMES, Jn as CLAY_ICON_NAMES, qn as CLAY_ICON_VARIANTS, V as CLAY_LAYER_TOKENS, ye as CLAY_LIQUID_GOOEY_TOKENS, ye as GAME_UI_LIQUID_GOOEY_TOKENS, ve as CLAY_LIQUID_METAL_TOKENS, ve as GAME_UI_LIQUID_METAL_TOKENS, B as CLAY_MOTION_TOKENS, be as CLAY_OVERLAY_GLASS_TOKENS, be as GAME_UI_OVERLAY_GLASS_TOKENS, L as CLAY_RADIUS_TOKENS, R as CLAY_SCROLLBAR_TOKENS, xe as CLAY_SEMANTIC_TOKENS, Se as CLAY_SPACE_TOKENS, H as CLAY_TARGET_TOKENS, I as CLAY_TYPE_TOKENS, we as CLAY_UI_TOKENS, r as DEFAULT_LIQUID_GOOEY_ANIMATION_BUDGET, i as DEFAULT_LIQUID_GOOEY_FILTER_AREA_BUDGET, Lr as DEFAULT_LIQUID_METAL_CONTEXT_BUDGET, G as DISSOLVE_DEFAULTS, Ei as FirstSessionHud, Di as FirstSessionOnboarding, Ra as GAME_UI_OVERLAY, Ia as GAME_UI_PREVIEW_MESSAGES, za as GAME_UI_TARGETS, Ba as GAME_UI_THEME_CONTRACT, La as GAME_UI_TOKENS, Ii as GameActionGrid, Ui as GameAssetCard, Z as GameAssetIcon, Wi as GameAssetLibrary, wr as GameAvatar, X as GameBadge, Ta as GameBeforeAfterToggle, ta as GameBrushControls, ia as GameBuildLibrary, J as GameButton, di as GameCallout, gr as GameCardFan, ji as GameCheckbox, ja as GameCollapsiblePanel, Fr as GameCollectibleCard, Ir as GameCollectibleCardSlot, aa as GameCompactGameDrawer, Da as GameCompactJobDrawer, Ca as GameConstructionApprovalBar, Ea as GameConstructionJobCard, Sa as GameConstructionProgress, Oa as GameContractorPanel, fi as GameDialog, Er as GameEmptyState, Pi as GameFactList, Ai as GameField, Pn as GameHelpTip, pi as GameHistoryPanel, hr as GameHud, mi as GameHudActions, hi as GameIconButton, Oi as GameInput, br as GameLanguageMenu, _e as GameListRow, xr as GameLoadingState, na as GameMaterialSwatches, Fa as GameModal, zi as GameMovementPad, Ki as GameObjectToolbar, yr as GameOrientationGate, ge as GameOtpInput, $ as GamePanel, Gi as GamePlacementToolbar, Tr as GameProgress, wi as GamePrompt, Si as GameRadialMenu, wa as GameRobotCrewStatus, Ni as GameSceneHudLayout, yi as GameSegmentedControl, Nn as GameSelect, Mi as GameShell, bi as GameSlider, Or as GameSplash, _r as GameStageTile, Fi as GameStatList, _i as GameTabs, ca as GameTerrainBuildToolbox, $i as GameTerrainModeControl, ea as GameTerrainToolStrip, ki as GameTextArea, Ci as GameToast, xi as GameToggle, gi as GameTooltip, xo as GameUiPreview, ra as GameUndoRedoActions, Pa as GameWindowPanel, At as IMAGE_MELT_DEFAULTS, Cn as LIQUID_FORMS, wn as LIQUID_FORM_NAMES, Ee as LIQUID_GOOEY_WAVINESS_MAX_FRACTION, xn as LiquidGroup, bn as LiquidItem, ui as LiquidMetalButton, jn as LiquidSurface, fr as acknowledgeClayPlaceholders, lr as getClayAssetBasePath, sr as getClayAssetMode, Sr as getClayCatalogPaths, pr as getClayIconPath, Qn as getClayIconStyles, mr as getClaySourceAssetPath, f as getLiquidGooeyBudget, Br as getLiquidMetalContextBudget, Tn as liquidFormGroup, En as liquidFormItem, Mn as liquidFormSummary, Wn as playGameCardRevealSound, Un as playGameCardRevealSoundForContext, Hn as playGameInteractionSound, Vn as playGameInteractionSoundForContext, Ft as resolveDissolveOptions, cr as setClayAssetBasePath, or as setClayAssetMode, o as setLiquidGooeyBudget, Vr as setLiquidMetalContextBudget, me as useGameCardOrientation, kr as useGameSplashDelay };