@pieai/swimmer-ui-kit 1.10.0 → 1.10.1

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.
Files changed (3) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/index.js +519 -514
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -376,14 +376,14 @@ void main(){
376
376
  top: .35,
377
377
  press: .85,
378
378
  ripple: 1.6
379
- }, j = Object.keys(de), fe = {
379
+ }, j = Object.keys(de), M = {
380
380
  glow: 1.95,
381
381
  glowR: 1.3,
382
382
  glowIn: .3,
383
383
  occl: .62,
384
384
  soften: .24,
385
385
  punch: 1.5
386
- }, M = {
386
+ }, N = {
387
387
  speed: 1.85,
388
388
  width: .2,
389
389
  decay: 1.35,
@@ -399,7 +399,7 @@ void main(){
399
399
  ptrLag: .0016,
400
400
  ptrVref: 4.5
401
401
  };
402
- function pe(e) {
402
+ function fe(e) {
403
403
  let t = e.trim(), n = /^#([0-9a-f]{3,8})$/i.exec(t);
404
404
  if (n?.[1]) {
405
405
  let e = n[1];
@@ -424,11 +424,11 @@ function pe(e) {
424
424
  1
425
425
  ];
426
426
  }
427
- function me(e, t, n) {
427
+ function pe(e, t, n) {
428
428
  let r = Number.parseFloat(e.getPropertyValue(t).trim());
429
429
  return Number.isFinite(r) ? r : n;
430
430
  }
431
- function N(e, t) {
431
+ function P(e, t) {
432
432
  let n = (e) => t[e] ?? null;
433
433
  return {
434
434
  f1: (t, r) => e.uniform1f(n(t), r),
@@ -440,7 +440,7 @@ function N(e, t) {
440
440
  i1: (t, r) => e.uniform1i(n(t), r)
441
441
  };
442
442
  }
443
- function he(e, t, n) {
443
+ function me(e, t, n) {
444
444
  if (typeof e.getContext != "function") return null;
445
445
  let r = null;
446
446
  try {
@@ -456,21 +456,21 @@ function he(e, t, n) {
456
456
  if (!r) return null;
457
457
  let i = r;
458
458
  try {
459
- return _e(i, e, t, n);
459
+ return ge(i, e, t, n);
460
460
  } catch {
461
461
  return i.getExtension("WEBGL_lose_context")?.loseContext(), null;
462
462
  }
463
463
  }
464
- function ge(e, t, n) {
464
+ function he(e, t, n) {
465
465
  let r = e.createShader(t);
466
466
  if (!r) throw Error("liquid-metal: createShader returned null");
467
467
  if (e.shaderSource(r, n), e.compileShader(r), !e.getShaderParameter(r, e.COMPILE_STATUS)) throw Error(e.getShaderInfoLog(r) ?? "liquid-metal: shader compile failed");
468
468
  return r;
469
469
  }
470
- function P(e, t) {
470
+ function F(e, t) {
471
471
  let n = e.createProgram();
472
472
  if (!n) throw Error("liquid-metal: createProgram returned null");
473
- if (e.attachShader(n, ge(e, e.VERTEX_SHADER, re)), e.attachShader(n, ge(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");
473
+ if (e.attachShader(n, he(e, e.VERTEX_SHADER, re)), e.attachShader(n, he(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");
474
474
  let r = {}, i = e.getProgramParameter(n, e.ACTIVE_UNIFORMS);
475
475
  for (let t = 0; t < i; t += 1) {
476
476
  let i = e.getActiveUniform(n, t);
@@ -481,8 +481,8 @@ function P(e, t) {
481
481
  u: r
482
482
  };
483
483
  }
484
- function _e(e, t, n, r) {
485
- let i = P(e, oe), a = P(e, ae), o = P(e, se), s = P(e, ce), c = P(e, A), l = e.createVertexArray(), u = e.createBuffer();
484
+ function ge(e, t, n, r) {
485
+ let i = F(e, oe), a = F(e, ae), o = F(e, se), s = F(e, ce), c = F(e, A), l = e.createVertexArray(), u = e.createBuffer();
486
486
  if (!l || !u) throw Error("liquid-metal: VAO/VBO unavailable");
487
487
  e.bindVertexArray(l), e.bindBuffer(e.ARRAY_BUFFER, u), e.bufferData(e.ARRAY_BUFFER, new Float32Array([
488
488
  -1,
@@ -521,7 +521,7 @@ function _e(e, t, n, r) {
521
521
  function k(t) {
522
522
  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);
523
523
  }
524
- let te = new Float32Array(ue.length), ne = new Float32Array(j.length), re = 0, ie = 0, he = 0, ge = performance.now(), _e = [
524
+ let te = new Float32Array(ue.length), ne = new Float32Array(j.length), re = 0, ie = 0, me = 0, he = performance.now(), ge = [
525
525
  0,
526
526
  1,
527
527
  2
@@ -530,55 +530,55 @@ function _e(e, t, n, r) {
530
530
  y: 0,
531
531
  t: -99,
532
532
  on: 0
533
- })), ve = /* @__PURE__ */ new Float32Array(12), F = 0, I = 0, L = 0, R = {
533
+ })), _e = /* @__PURE__ */ new Float32Array(12), I = 0, L = 0, R = 0, z = {
534
534
  x: 0,
535
535
  y: 0
536
- }, z = {
536
+ }, B = {
537
537
  x: 0,
538
538
  y: 0
539
- }, B = 0, ye = 0, V = {
539
+ }, ve = 0, ye = 0, V = {
540
540
  over: !1,
541
541
  press: !1,
542
542
  focus: !1
543
543
  };
544
544
  function H(e, t) {
545
- let n = _e[F];
546
- n && (F = (F + 1) % _e.length, n.x = e, n.y = t, n.t = he, n.on = 1);
545
+ let n = ge[I];
546
+ n && (I = (I + 1) % ge.length, n.x = e, n.y = t, n.t = me, n.on = 1);
547
547
  }
548
548
  function U(e) {
549
549
  let t = n.getBoundingClientRect(), r = t.height || 1;
550
550
  return [(e.clientX - (t.left + t.width / 2)) / r, (e.clientY - (t.top + t.height / 2)) / r];
551
551
  }
552
552
  function W() {
553
- ie = V.over || V.press || V.focus ? 1 : 0, L = +!!V.press;
553
+ ie = V.over || V.press || V.focus ? 1 : 0, R = +!!V.press;
554
554
  }
555
555
  let be = window.matchMedia("(prefers-reduced-motion: reduce)"), xe = null, G = 0, Se = !1, K = !1;
556
556
  function Ce() {
557
557
  let e = getComputedStyle(n);
558
- return de.base = me(e, "--game-ui-liquid-metal-rest", de.base), de.speed = me(e, "--game-ui-liquid-metal-sweep-speed", de.speed), le.disp = me(e, "--game-ui-liquid-metal-dispersion", le.disp), fe.glow = me(e, "--game-ui-liquid-metal-bloom", fe.glow), { accent: pe(getComputedStyle(O).color) };
558
+ return de.base = pe(e, "--game-ui-liquid-metal-rest", de.base), de.speed = pe(e, "--game-ui-liquid-metal-sweep-speed", de.speed), le.disp = pe(e, "--game-ui-liquid-metal-dispersion", le.disp), M.glow = pe(e, "--game-ui-liquid-metal-bloom", M.glow), { accent: fe(getComputedStyle(O).color) };
559
559
  }
560
560
  function we(t) {
561
561
  if (G = 0, Se || K) return;
562
- let r = (t - ge) / 1e3;
563
- ge = t;
562
+ let r = (t - he) / 1e3;
563
+ he = t;
564
564
  let l = Math.min(r, 1 / 20);
565
- be.matches || (he += l);
565
+ be.matches || (me += l);
566
566
  let u = ie > re ? 1 - .0012 ** l : 1 - 12e-5 ** l;
567
567
  re += (ie - re) * u, Math.abs(ie - re) < 8e-4 && (re = ie);
568
- let d = L > I ? 1 - 1e-9 ** l : 1 - .004 ** l;
569
- I += (L - I) * d, Math.abs(L - I) < .002 && (I = L);
568
+ let d = R > L ? 1 - 1e-9 ** l : 1 - .004 ** l;
569
+ L += (R - L) * d, Math.abs(R - L) < .002 && (L = R);
570
570
  let f = !1;
571
- for (let e = 0; e < _e.length; e += 1) {
572
- let t = _e[e];
573
- t && (t.on && he - t.t > 4 && (t.on = 0), t.on && (f = !0), ve[e * 4] = t.x, ve[e * 4 + 1] = t.y, ve[e * 4 + 2] = t.t, ve[e * 4 + 3] = t.on);
571
+ for (let e = 0; e < ge.length; e += 1) {
572
+ let t = ge[e];
573
+ t && (t.on && me - t.t > 4 && (t.on = 0), t.on && (f = !0), _e[e * 4] = t.x, _e[e * 4 + 1] = t.y, _e[e * 4 + 2] = t.t, _e[e * 4 + 3] = t.on);
574
574
  }
575
- let p = 1 - M.ptrLag ** +l, O = (R.x - z.x) * p, ae = (R.y - z.y) * p;
576
- z.x += O, z.y += ae;
577
- let oe = Math.min(Math.hypot(O, ae) / Math.max(l, .001) / M.ptrVref, 1);
575
+ let p = 1 - N.ptrLag ** +l, O = (z.x - B.x) * p, ae = (z.y - B.y) * p;
576
+ B.x += O, B.y += ae;
577
+ let oe = Math.min(Math.hypot(O, ae) / Math.max(l, .001) / N.ptrVref, 1);
578
578
  ye += (oe - ye) * (1 - (oe > ye ? .001 : .02) ** l);
579
579
  let se = V.over || V.press ? 1 : 0;
580
- B += (se - B) * (1 - .004 ** l), Math.abs(se - B) < .002 && (B = se), V.over = n.matches(":hover"), V.focus = n.matches(":focus-visible"), W(), D && ee();
581
- let ce = be.matches && !f && B < .002 ? `${re}|${I}|${b}|${x}` : null;
580
+ ve += (se - ve) * (1 - .004 ** l), Math.abs(se - ve) < .002 && (ve = se), V.over = n.matches(":hover"), V.focus = n.matches(":focus-visible"), W(), D && ee();
581
+ let ce = be.matches && !f && ve < .002 ? `${re}|${L}|${b}|${x}` : null;
582
582
  if (ce !== null && ce === xe) {
583
583
  G = requestAnimationFrame(we);
584
584
  return;
@@ -593,37 +593,37 @@ function _e(e, t, n, r) {
593
593
  let t = j[e];
594
594
  t && (ne[e] = de[t]);
595
595
  }
596
- let pe = Math.max(C, 110), me = Math.max(2.4, pe / 516 * 3.2), P = N(e, i.u), F = N(e, a.u), H = N(e, o.u), U = N(e, s.u), q = N(e, c.u);
597
- e.useProgram(i.p), P.f2("uC", w, T), P.f2("uHalf", S / 2, C / 2), P.f1("uT", he), P.f1("uHover", re), P.f1("uPress", I), P.fv4("uRip", ve), P.f4("uRipK", M.speed, M.width, M.decay, M.amp), P.f4("uRipK2", M.facet, M.lobes, M.sharp, M.emit), P.f4("uPtr", z.x, z.y, B, ye), P.f4("uPtrK", M.ptrRad, M.ptrAmp, M.ptrFast, M.ptrRim), P.f3("uAccent", A[0], A[1], A[2]), P.fv1("uP", te), k(m), e.useProgram(a.p), F.f2("uC", w, T), F.f2("uHalf", S / 2, C / 2), F.f1("uT", he), F.f1("uBw", me), F.f1("uPress", I), F.fv4("uRip", ve), F.f4("uRipK", M.speed, M.width, M.decay, M.amp), F.f4("uRipK2", M.facet, M.lobes, M.sharp, M.emit), F.f4("uPtr", z.x, z.y, B, ye), F.f4("uPtrK", M.ptrRad, M.ptrAmp, M.ptrFast, M.ptrRim), F.f3("uAccent", A[0], A[1], A[2]), F.fv1("uE", ne), k(h), e.useProgram(o.p), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, m.tex), H.i1("uTex", 0), H.f1("uAdd", 0), H.f2("uDstTexel", 1 / g.w, 1 / g.h), H.f2("uSrcTexel", 1 / b, 1 / x), k(g), e.useProgram(s.p), U.i1("uTex", 0), U.f2("uTexel", 1 / g.w, 1 / g.h);
598
- let Te = fe.soften * (pe * .5) * .95;
596
+ let fe = Math.max(C, 110), pe = Math.max(2.4, fe / 516 * 3.2), F = P(e, i.u), I = P(e, a.u), H = P(e, o.u), U = P(e, s.u), q = P(e, c.u);
597
+ e.useProgram(i.p), F.f2("uC", w, T), F.f2("uHalf", S / 2, C / 2), F.f1("uT", me), F.f1("uHover", re), F.f1("uPress", L), F.fv4("uRip", _e), F.f4("uRipK", N.speed, N.width, N.decay, N.amp), F.f4("uRipK2", N.facet, N.lobes, N.sharp, N.emit), F.f4("uPtr", B.x, B.y, ve, ye), F.f4("uPtrK", N.ptrRad, N.ptrAmp, N.ptrFast, N.ptrRim), F.f3("uAccent", A[0], A[1], A[2]), F.fv1("uP", te), k(m), e.useProgram(a.p), I.f2("uC", w, T), I.f2("uHalf", S / 2, C / 2), I.f1("uT", me), I.f1("uBw", pe), I.f1("uPress", L), I.fv4("uRip", _e), I.f4("uRipK", N.speed, N.width, N.decay, N.amp), I.f4("uRipK2", N.facet, N.lobes, N.sharp, N.emit), I.f4("uPtr", B.x, B.y, ve, ye), I.f4("uPtrK", N.ptrRad, N.ptrAmp, N.ptrFast, N.ptrRim), I.f3("uAccent", A[0], A[1], A[2]), I.fv1("uE", ne), k(h), e.useProgram(o.p), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, m.tex), H.i1("uTex", 0), H.f1("uAdd", 0), H.f2("uDstTexel", 1 / g.w, 1 / g.h), H.f2("uSrcTexel", 1 / b, 1 / x), k(g), e.useProgram(s.p), U.i1("uTex", 0), U.f2("uTexel", 1 / g.w, 1 / g.h);
598
+ let Te = M.soften * (fe * .5) * .95;
599
599
  if (Te > .1) {
600
600
  let t = Math.min(4, Math.max(1, Math.ceil(Te / 3)));
601
601
  U.f1("uR", Te / Math.sqrt(t) / 1.95);
602
602
  for (let n = 0; n < t; n += 1) e.bindTexture(e.TEXTURE_2D, g.tex), U.f2("uDir", 1, 0), k(_), e.bindTexture(e.TEXTURE_2D, _.tex), U.f2("uDir", 0, 1), k(g);
603
603
  }
604
604
  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), H.i1("uTex", 0), H.i1("uTex2", 1), H.f1("uAdd", 1), H.f2("uDstTexel", 1 / v.w, 1 / v.h), H.f2("uSrcTexel", 1 / g.w, 1 / g.h), k(v), e.useProgram(s.p), e.activeTexture(e.TEXTURE0), U.i1("uTex", 0), U.f2("uTexel", 1 / v.w, 1 / v.h);
605
- let Ee = fe.glowR * (pe / E) / 129;
605
+ let Ee = M.glowR * (fe / E) / 129;
606
606
  for (let t of [
607
607
  1,
608
608
  2.3,
609
609
  5.2,
610
610
  9
611
611
  ].map((e) => e * Ee)) U.f1("uR", t), e.bindTexture(e.TEXTURE_2D, v.tex), U.f2("uDir", 1, 0), k(y), e.bindTexture(e.TEXTURE_2D, y.tex), U.f2("uDir", 0, 1), k(v);
612
- e.useProgram(c.p), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, g.tex), q.i1("uSoft", 0), e.activeTexture(e.TEXTURE1), e.bindTexture(e.TEXTURE_2D, h.tex), q.i1("uRim", 1), e.activeTexture(e.TEXTURE2), e.bindTexture(e.TEXTURE_2D, v.tex), q.i1("uGlow", 2), q.f2("uRes", b, x), q.f2("uC", w, T), q.f2("uHalf", S / 2, C / 2), q.f1("uT", he), q.fv4("uRip", ve), q.f4("uRipK", M.speed, M.width, M.decay, M.amp), q.f4("uRipK2", M.facet, M.lobes, M.sharp, M.emit), q.f3("uAccent", A[0], A[1], A[2]), q.f1("uGlowGain", fe.glow), q.f1("uGlowIn", fe.glowIn), q.f1("uOccl", fe.occl), q.f1("uDim", le.dim), q.f1("uPunch", fe.punch), k(null), G = requestAnimationFrame(we);
612
+ e.useProgram(c.p), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, g.tex), q.i1("uSoft", 0), e.activeTexture(e.TEXTURE1), e.bindTexture(e.TEXTURE_2D, h.tex), q.i1("uRim", 1), e.activeTexture(e.TEXTURE2), e.bindTexture(e.TEXTURE_2D, v.tex), q.i1("uGlow", 2), q.f2("uRes", b, x), q.f2("uC", w, T), q.f2("uHalf", S / 2, C / 2), q.f1("uT", me), q.fv4("uRip", _e), q.f4("uRipK", N.speed, N.width, N.decay, N.amp), q.f4("uRipK2", N.facet, N.lobes, N.sharp, N.emit), q.f3("uAccent", A[0], A[1], A[2]), q.f1("uGlowGain", M.glow), q.f1("uGlowIn", M.glowIn), q.f1("uOccl", M.occl), q.f1("uDim", le.dim), q.f1("uPunch", M.punch), k(null), G = requestAnimationFrame(we);
613
613
  }
614
614
  let q = (e) => {
615
615
  if (e.pointerType !== "mouse") return;
616
616
  let [t, n] = U(e);
617
- R.x = t, R.y = n, z.x = t, z.y = n, ye = 0, V.over = !0, W();
617
+ z.x = t, z.y = n, B.x = t, B.y = n, ye = 0, V.over = !0, W();
618
618
  }, Te = (e) => {
619
619
  e.pointerType === "mouse" && (V.over = !1, W());
620
620
  }, Ee = (e) => {
621
621
  if (!V.over && !V.press) return;
622
622
  let [t, n] = U(e);
623
- R.x = t, R.y = n;
623
+ z.x = t, z.y = n;
624
624
  }, De = (e) => {
625
625
  let [t, n] = U(e);
626
- R.x = t, R.y = n, V.press = !0, W(), H(t, n);
626
+ z.x = t, z.y = n, V.press = !0, W(), H(t, n);
627
627
  }, Oe = () => {
628
628
  V.press = !1, W();
629
629
  }, ke = () => {
@@ -644,7 +644,7 @@ function _e(e, t, n, r) {
644
644
  Se = !0, G && cancelAnimationFrame(G), G = 0;
645
645
  },
646
646
  resume: () => {
647
- K || (Se = !1, ge = performance.now(), xe = null, G ||= requestAnimationFrame(we));
647
+ K || (Se = !1, he = performance.now(), xe = null, G ||= requestAnimationFrame(we));
648
648
  },
649
649
  dispose: () => {
650
650
  K || (K = !0, Se = !0, G && cancelAnimationFrame(G), G = 0, Ne.disconnect(), n.removeEventListener("pointerenter", q), n.removeEventListener("pointerleave", Te), window.removeEventListener("pointermove", Ee), n.removeEventListener("pointerdown", De), window.removeEventListener("pointerup", Oe), window.removeEventListener("pointercancel", Oe), n.removeEventListener("focus", ke), n.removeEventListener("blur", Ae), n.removeEventListener("keydown", je), n.removeEventListener("keyup", Me), O.remove(), e.getExtension("WEBGL_lose_context")?.loseContext());
@@ -653,7 +653,7 @@ function _e(e, t, n, r) {
653
653
  }
654
654
  //#endregion
655
655
  //#region src/LiquidMetalButton.tsx
656
- function ve({ children: e, className: r, onClick: i, sound: a = !1, type: o = "button", renderer: s = "auto", ...c }) {
656
+ function _e({ children: e, className: r, onClick: i, sound: a = !1, type: o = "button", renderer: s = "auto", ...c }) {
657
657
  let u = p(null), d = p(null), f = p(null), [h, g] = m("css");
658
658
  l(() => {
659
659
  let e = u.current, t = d.current, n = f.current;
@@ -667,7 +667,7 @@ function ve({ children: e, className: r, onClick: i, sound: a = !1, type: o = "b
667
667
  prefersReducedMotion: r.matches,
668
668
  isInViewport: i
669
669
  }) && k()) {
670
- if (a = !0, o = he(n, t, e), !o) {
670
+ if (a = !0, o = me(n, t, e), !o) {
671
671
  te(), a = !1;
672
672
  return;
673
673
  }
@@ -725,7 +725,7 @@ function ve({ children: e, className: r, onClick: i, sound: a = !1, type: o = "b
725
725
  }
726
726
  //#endregion
727
727
  //#region src/clay/tokens.ts
728
- var F = {
728
+ var I = {
729
729
  ink: "#3b2d23",
730
730
  inkMuted: "#786250",
731
731
  parchment: "#fff8ec",
@@ -748,7 +748,7 @@ var F = {
748
748
  overlayGlassText: "#fff6ee",
749
749
  liquidMetalFace: "#3a2518",
750
750
  liquidMetalInk: "#fff8ec"
751
- }, I = {
751
+ }, L = {
752
752
  face: "var(--game-ui-liquid-metal-face)",
753
753
  ink: "var(--game-ui-liquid-metal-ink)",
754
754
  accent: "var(--game-ui-liquid-metal-accent)",
@@ -756,7 +756,7 @@ var F = {
756
756
  sweepSpeed: "var(--game-ui-liquid-metal-sweep-speed)",
757
757
  rest: "var(--game-ui-liquid-metal-rest)",
758
758
  bloom: "var(--game-ui-liquid-metal-bloom)"
759
- }, L = {
759
+ }, R = {
760
760
  moveStiffness: "var(--game-ui-liquid-gooey-move-stiffness)",
761
761
  moveDamping: "var(--game-ui-liquid-gooey-move-damping)",
762
762
  moveStretch: "var(--game-ui-liquid-gooey-move-stretch)",
@@ -786,7 +786,7 @@ var F = {
786
786
  moveIntegrationRate: "var(--game-ui-liquid-gooey-move-integration-rate)",
787
787
  waviness: "var(--game-ui-liquid-gooey-waviness)",
788
788
  wavinessFreq: "var(--game-ui-liquid-gooey-waviness-freq)"
789
- }, R = {
789
+ }, z = {
790
790
  bg: "var(--game-ui-overlay-glass-bg)",
791
791
  bgHover: "var(--game-ui-overlay-glass-bg-hover)",
792
792
  bgStrong: "var(--game-ui-overlay-glass-bg-strong)",
@@ -798,7 +798,7 @@ var F = {
798
798
  blur: "var(--game-ui-overlay-glass-blur)",
799
799
  focusRing: "var(--game-ui-overlay-glass-focus-ring)",
800
800
  primaryFill: "var(--game-ui-overlay-glass-primary-fill)"
801
- }, z = {
801
+ }, B = {
802
802
  background: "var(--game-ui-bg)",
803
803
  playfieldScrim: "var(--game-ui-playfield-scrim)",
804
804
  surface: "var(--game-ui-surface)",
@@ -817,7 +817,7 @@ var F = {
817
817
  borderSubtle: "var(--game-ui-border-subtle)",
818
818
  borderStrong: "var(--game-ui-border-strong)",
819
819
  disabled: "var(--game-ui-disabled)"
820
- }, B = {
820
+ }, ve = {
821
821
  familyDisplay: "var(--game-ui-font-display)",
822
822
  familyBody: "var(--game-ui-font-body)",
823
823
  familyMono: "var(--game-ui-font-mono)",
@@ -900,9 +900,9 @@ var F = {
900
900
  buildRailCardSize: "var(--game-ui-build-rail-card-size)",
901
901
  brushNumberWidth: "var(--game-ui-brush-number-width)"
902
902
  }, G = {
903
- colors: F,
904
- semantic: z,
905
- typography: B,
903
+ colors: I,
904
+ semantic: B,
905
+ typography: ve,
906
906
  spacing: ye,
907
907
  radius: V,
908
908
  elevation: H,
@@ -910,9 +910,9 @@ var F = {
910
910
  layers: W,
911
911
  targets: be,
912
912
  assetSizing: xe,
913
- overlayGlass: R,
914
- liquidMetal: I,
915
- liquidGooey: L
913
+ overlayGlass: z,
914
+ liquidMetal: L,
915
+ liquidGooey: R
916
916
  }, Se = "1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 60 -29.5", K = {
917
917
  waviness: 0,
918
918
  wavinessFreq: .018
@@ -1154,7 +1154,7 @@ function Ue(e) {
1154
1154
  return /^var\((--[\w-]+)\)$/.exec(e.trim())?.[1] ?? null;
1155
1155
  }
1156
1156
  function We(e, t, n) {
1157
- let r = e?.ownerDocument.defaultView, i = Ue(L[t]);
1157
+ let r = e?.ownerDocument.defaultView, i = Ue(R[t]);
1158
1158
  if (!r || !i) return n;
1159
1159
  let a = r.getComputedStyle(e).getPropertyValue(i), o = Number.parseFloat(a);
1160
1160
  return Number.isFinite(o) ? o : n;
@@ -1745,41 +1745,46 @@ function Tt(...e) {
1745
1745
  return e.filter(Boolean).join(" ") || void 0;
1746
1746
  }
1747
1747
  function Et() {
1748
- let [e, t] = m(() => typeof window > "u" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches);
1748
+ return typeof window > "u" || typeof window.matchMedia != "function" ? null : window.matchMedia("(prefers-reduced-motion: reduce)");
1749
+ }
1750
+ function Dt() {
1751
+ let [e, t] = m(() => Et()?.matches ?? !1);
1749
1752
  return l(() => {
1750
- let e = window.matchMedia("(prefers-reduced-motion: reduce)"), n = (e) => t(e.matches);
1753
+ let e = Et();
1754
+ if (!e) return;
1755
+ let n = (e) => t(e.matches);
1751
1756
  return t(e.matches), e.addEventListener("change", n), () => e.removeEventListener("change", n);
1752
1757
  }, []), e;
1753
1758
  }
1754
- function Dt(e) {
1759
+ function Ot(e) {
1755
1760
  return e.reduce((e, t) => Math.max(e, Math.max(Math.abs(t.x), Math.abs(t.y)) + t.blur * 1.5 + Math.max(0, t.spread)), 0);
1756
1761
  }
1757
- var Ot = a(function({ blur: e = 6, contrast: r = 18, fill: i = "var(--game-ui-surface, var(--game-ui-panel-strong))", filterPadding: a = 24, shadow: o, stroke: c, waviness: h, wavinessFreq: g, motion: _ = "auto", className: v, style: y, children: b, ...x }, S) {
1762
+ var kt = a(function({ blur: e = 6, contrast: r = 18, fill: i = "var(--game-ui-surface, var(--game-ui-panel-strong))", filterPadding: a = 24, shadow: o, stroke: c, waviness: h, wavinessFreq: g, motion: _ = "auto", className: v, style: y, children: b, ...x }, S) {
1758
1763
  let C = p(null), [w, T] = m(null), [E, D] = m({
1759
1764
  w: 0,
1760
1765
  h: 0
1761
1766
  }), [O, ee] = m({
1762
1767
  waviness: K.waviness,
1763
1768
  wavinessFreq: K.wavinessFreq
1764
- }), k = Et(), te = _ === "reduced" || k, [ne, re] = m(te ? "reduced" : "static"), ie = Math.max(0, St(e, 6)), ae = Math.max(1, St(r, 18)), oe = Math.max(0, St(a, 24)), se = Math.max(0, St(h ?? O.waviness, K.waviness)), ce = Math.max(0, St(g ?? O.wavinessFreq, K.wavinessFreq)), A = Ct(o, C.current), le = Ct(c, C.current), ue = f(() => _t(A), [A]), de = f(() => vt(le), [le]), j = Math.ceil(ie * 3 + oe + Dt(ue) + (de ? de.width : 0) + se), fe = p(j);
1765
- fe.current = j;
1766
- let M = `liquid-gooey-${xt(u())}`, pe = s((e) => {
1769
+ }), k = Dt(), te = _ === "reduced" || k, [ne, re] = m(te ? "reduced" : "static"), ie = Math.max(0, St(e, 6)), ae = Math.max(1, St(r, 18)), oe = Math.max(0, St(a, 24)), se = Math.max(0, St(h ?? O.waviness, K.waviness)), ce = Math.max(0, St(g ?? O.wavinessFreq, K.wavinessFreq)), A = Ct(o, C.current), le = Ct(c, C.current), ue = f(() => _t(A), [A]), de = f(() => vt(le), [le]), j = Math.ceil(ie * 3 + oe + Ot(ue) + (de ? de.width : 0) + se), M = p(j);
1770
+ M.current = j;
1771
+ let N = `liquid-gooey-${xt(u())}`, fe = s((e) => {
1767
1772
  C.current = e, typeof S == "function" ? S(e) : S && (S.current = e);
1768
- }, [S]), me = s((e) => T(e), []);
1773
+ }, [S]), pe = s((e) => T(e), []);
1769
1774
  d(() => {
1770
1775
  let e = C.current;
1771
1776
  if (!e) return;
1772
1777
  let t = {
1773
- waviness: Math.max(0, h === void 0 ? wt(L.waviness, e, K.waviness) : St(h, K.waviness)),
1774
- wavinessFreq: Math.max(0, g === void 0 ? wt(L.wavinessFreq, e, K.wavinessFreq) : St(g, K.wavinessFreq))
1778
+ waviness: Math.max(0, h === void 0 ? wt(R.waviness, e, K.waviness) : St(h, K.waviness)),
1779
+ wavinessFreq: Math.max(0, g === void 0 ? wt(R.wavinessFreq, e, K.wavinessFreq) : St(g, K.wavinessFreq))
1775
1780
  };
1776
1781
  ee((e) => e.waviness === t.waviness && e.wavinessFreq === t.wavinessFreq ? e : t);
1777
1782
  }, [h, g]);
1778
- let N = f(() => new mt({
1783
+ let P = f(() => new mt({
1779
1784
  getGroup: () => C.current,
1780
1785
  getFilterArea: () => {
1781
1786
  let e = C.current;
1782
- return e ? (e.offsetWidth + fe.current * 2) * (e.offsetHeight + fe.current * 2) : 0;
1787
+ return e ? (e.offsetWidth + M.current * 2) * (e.offsetHeight + M.current * 2) : 0;
1783
1788
  },
1784
1789
  onModeChange: re,
1785
1790
  follow: _ === "follow"
@@ -1792,19 +1797,19 @@ var Ot = a(function({ blur: e = 6, contrast: r = 18, fill: i = "var(--game-ui-su
1792
1797
  w: e.offsetWidth,
1793
1798
  h: e.offsetHeight
1794
1799
  };
1795
- D((e) => e.w === t.w && e.h === t.h ? e : t), N.setFilterArea((t.w + j * 2) * (t.h + j * 2));
1800
+ D((e) => e.w === t.w && e.h === t.h ? e : t), P.setFilterArea((t.w + j * 2) * (t.h + j * 2));
1796
1801
  };
1797
1802
  if (t(), typeof ResizeObserver > "u") return;
1798
1803
  let n = new ResizeObserver(t);
1799
1804
  return n.observe(e), () => n.disconnect();
1800
- }, [N, j]), l(() => {
1801
- N.setReducedMotion(te);
1802
- }, [N, te]), l(() => () => N.dispose(), [N]);
1803
- let he = Math.max(1, E.w), ge = Math.max(1, E.h), P = Tt("game-ui-liquid-group", v);
1805
+ }, [P, j]), l(() => {
1806
+ P.setReducedMotion(te);
1807
+ }, [P, te]), l(() => () => P.dispose(), [P]);
1808
+ let me = Math.max(1, E.w), he = Math.max(1, E.h), F = Tt("game-ui-liquid-group", v);
1804
1809
  return /* @__PURE__ */ n("div", {
1805
1810
  ...x,
1806
- ref: pe,
1807
- className: P,
1811
+ ref: fe,
1812
+ className: F,
1808
1813
  "data-liquid-motion": ne,
1809
1814
  style: y,
1810
1815
  children: [/* @__PURE__ */ n("svg", {
@@ -1812,13 +1817,13 @@ var Ot = a(function({ blur: e = 6, contrast: r = 18, fill: i = "var(--game-ui-su
1812
1817
  className: "game-ui-liquid-silhouette",
1813
1818
  "data-liquid-gooey-silhouette": "",
1814
1819
  focusable: "false",
1815
- viewBox: `0 0 ${he} ${ge}`,
1820
+ viewBox: `0 0 ${me} ${he}`,
1816
1821
  children: [/* @__PURE__ */ t("defs", { children: /* @__PURE__ */ t("filter", {
1817
1822
  colorInterpolationFilters: "sRGB",
1818
1823
  filterUnits: "userSpaceOnUse",
1819
- height: ge + j * 2,
1820
- id: M,
1821
- width: he + j * 2,
1824
+ height: he + j * 2,
1825
+ id: N,
1826
+ width: me + j * 2,
1822
1827
  x: -j,
1823
1828
  y: -j,
1824
1829
  children: /* @__PURE__ */ t(Te, {
@@ -1830,14 +1835,14 @@ var Ot = a(function({ blur: e = 6, contrast: r = 18, fill: i = "var(--game-ui-su
1830
1835
  wavinessFreq: ce
1831
1836
  })
1832
1837
  }) }), /* @__PURE__ */ t("g", {
1833
- ref: me,
1838
+ ref: pe,
1834
1839
  fill: i,
1835
- filter: `url(#${M})`
1840
+ filter: `url(#${N})`
1836
1841
  })]
1837
1842
  }), /* @__PURE__ */ t(yt.Provider, {
1838
1843
  value: {
1839
1844
  portal: w,
1840
- engine: N
1845
+ engine: P
1841
1846
  },
1842
1847
  children: /* @__PURE__ */ t("div", {
1843
1848
  className: "game-ui-liquid-content",
@@ -1845,7 +1850,7 @@ var Ot = a(function({ blur: e = 6, contrast: r = 18, fill: i = "var(--game-ui-su
1845
1850
  })
1846
1851
  })]
1847
1852
  });
1848
- }), kt = a(function({ x: r = 0, y: i = 0, scale: a = 1, transition: o, delay: c, radius: l, className: m, style: g, children: _, ...v }, y) {
1853
+ }), At = a(function({ x: r = 0, y: i = 0, scale: a = 1, transition: o, delay: c, radius: l, className: m, style: g, children: _, ...v }, y) {
1849
1854
  let { portal: b, engine: x } = bt(), S = `liquid-item-${xt(u())}`, C = p(null), w = p(null), T = p(null), E = f(() => {
1850
1855
  let e = {
1851
1856
  x: St(r, 0),
@@ -1894,10 +1899,10 @@ var Ot = a(function({ blur: e = 6, contrast: r = 18, fill: i = "var(--game-ui-su
1894
1899
  d: "",
1895
1900
  "data-liquid-gooey-blob": ""
1896
1901
  }), b) : null] });
1897
- }), At = Object.assign(Ot, { Item: kt });
1902
+ }), jt = Object.assign(kt, { Item: At });
1898
1903
  //#endregion
1899
1904
  //#region src/GameCallout.tsx
1900
- function jt({ heading: e, children: r, tone: i = "info", className: a, ...o }) {
1905
+ function Mt({ heading: e, children: r, tone: i = "info", className: a, ...o }) {
1901
1906
  return /* @__PURE__ */ n("div", {
1902
1907
  className: [
1903
1908
  "game-ui-callout",
@@ -1918,7 +1923,7 @@ function jt({ heading: e, children: r, tone: i = "info", className: a, ...o }) {
1918
1923
  }
1919
1924
  //#endregion
1920
1925
  //#region src/GameDialog.tsx
1921
- function Mt({ children: e, className: r, title: i }) {
1926
+ function Nt({ children: e, className: r, title: i }) {
1922
1927
  let a = u();
1923
1928
  return /* @__PURE__ */ n("section", {
1924
1929
  "aria-labelledby": a,
@@ -1936,7 +1941,7 @@ function Mt({ children: e, className: r, title: i }) {
1936
1941
  }
1937
1942
  //#endregion
1938
1943
  //#region src/GameHistoryPanel.tsx
1939
- function Nt({ entries: e, label: r }) {
1944
+ function Pt({ entries: e, label: r }) {
1940
1945
  return /* @__PURE__ */ t("section", {
1941
1946
  "aria-label": r,
1942
1947
  className: "game-ui-history",
@@ -1952,7 +1957,7 @@ function Nt({ entries: e, label: r }) {
1952
1957
  }
1953
1958
  //#endregion
1954
1959
  //#region src/GameHudActions.tsx
1955
- function Pt({ children: e, className: n, label: r, ...i }) {
1960
+ function Ft({ children: e, className: n, label: r, ...i }) {
1956
1961
  return /* @__PURE__ */ t("nav", {
1957
1962
  "aria-label": r,
1958
1963
  className: ["game-ui-hud-actions", n].filter(Boolean).join(" "),
@@ -1972,7 +1977,7 @@ function X({ children: e, className: r, title: i, tone: a = "default", ...o }) {
1972
1977
  children: [i ? /* @__PURE__ */ t("h3", { children: i }) : null, e]
1973
1978
  });
1974
1979
  }
1975
- function Ft({ children: e, className: n, label: r, type: i = "button", ...a }) {
1980
+ function It({ children: e, className: n, label: r, type: i = "button", ...a }) {
1976
1981
  return /* @__PURE__ */ t("button", {
1977
1982
  "aria-label": r,
1978
1983
  className: ["game-ui-icon-button", n].filter(Boolean).join(" "),
@@ -1981,7 +1986,7 @@ function Ft({ children: e, className: n, label: r, type: i = "button", ...a }) {
1981
1986
  children: e
1982
1987
  });
1983
1988
  }
1984
- function It({ children: e, label: i }) {
1989
+ function Lt({ children: e, label: i }) {
1985
1990
  let a = u();
1986
1991
  return /* @__PURE__ */ n("span", {
1987
1992
  className: "game-ui-tooltip",
@@ -1992,7 +1997,7 @@ function It({ children: e, label: i }) {
1992
1997
  })]
1993
1998
  });
1994
1999
  }
1995
- function Lt({ activeId: e, id: n, onSelect: r, tabs: i }) {
2000
+ function Rt({ activeId: e, id: n, onSelect: r, tabs: i }) {
1996
2001
  let a = u(), o = n ?? a;
1997
2002
  return /* @__PURE__ */ t("div", {
1998
2003
  className: "game-ui-tabs",
@@ -2032,10 +2037,10 @@ function Lt({ activeId: e, id: n, onSelect: r, tabs: i }) {
2032
2037
  }, n.id))
2033
2038
  });
2034
2039
  }
2035
- function Rt(e, t) {
2040
+ function zt(e, t) {
2036
2041
  return e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height;
2037
2042
  }
2038
- function zt({ activeId: e, label: r, onSelect: i, options: a }) {
2043
+ function Bt({ activeId: e, label: r, onSelect: i, options: a }) {
2039
2044
  let o = p(null), s = p([]), [c, l] = m({
2040
2045
  x: 0,
2041
2046
  y: 0,
@@ -2052,7 +2057,7 @@ function zt({ activeId: e, label: r, onSelect: i, options: a }) {
2052
2057
  width: r.width,
2053
2058
  height: r.height
2054
2059
  };
2055
- l((e) => Rt(e, i) ? e : i);
2060
+ l((e) => zt(e, i) ? e : i);
2056
2061
  };
2057
2062
  if (n(), typeof ResizeObserver > "u") return;
2058
2063
  let r = new ResizeObserver(n);
@@ -2067,7 +2072,7 @@ function zt({ activeId: e, label: r, onSelect: i, options: a }) {
2067
2072
  className: "game-ui-segmented",
2068
2073
  role: "group",
2069
2074
  children: [
2070
- /* @__PURE__ */ t(At, {
2075
+ /* @__PURE__ */ t(jt, {
2071
2076
  "aria-hidden": "true",
2072
2077
  className: "game-ui-segmented-surface",
2073
2078
  fill: "var(--game-ui-surface-raised)",
@@ -2078,7 +2083,7 @@ function zt({ activeId: e, label: r, onSelect: i, options: a }) {
2078
2083
  pointerEvents: "none",
2079
2084
  position: "absolute"
2080
2085
  },
2081
- children: /* @__PURE__ */ t(At.Item, {
2086
+ children: /* @__PURE__ */ t(jt.Item, {
2082
2087
  style: {
2083
2088
  borderRadius: "var(--game-ui-radius-control)",
2084
2089
  inset: 0,
@@ -2087,7 +2092,7 @@ function zt({ activeId: e, label: r, onSelect: i, options: a }) {
2087
2092
  children: null
2088
2093
  })
2089
2094
  }),
2090
- c.width > 0 && c.height > 0 ? /* @__PURE__ */ t(At, {
2095
+ c.width > 0 && c.height > 0 ? /* @__PURE__ */ t(jt, {
2091
2096
  "aria-hidden": "true",
2092
2097
  className: "game-ui-segmented-follow",
2093
2098
  fill: "var(--game-ui-secondary)",
@@ -2098,7 +2103,7 @@ function zt({ activeId: e, label: r, onSelect: i, options: a }) {
2098
2103
  pointerEvents: "none",
2099
2104
  position: "absolute"
2100
2105
  },
2101
- children: /* @__PURE__ */ t(At.Item, {
2106
+ children: /* @__PURE__ */ t(jt.Item, {
2102
2107
  "aria-hidden": "true",
2103
2108
  style: {
2104
2109
  borderRadius: "var(--game-ui-radius-control)",
@@ -2127,7 +2132,7 @@ function zt({ activeId: e, label: r, onSelect: i, options: a }) {
2127
2132
  ]
2128
2133
  });
2129
2134
  }
2130
- function Bt({ label: e, max: r, min: i, onChange: a, value: o }) {
2135
+ function Vt({ label: e, max: r, min: i, onChange: a, value: o }) {
2131
2136
  return /* @__PURE__ */ n("label", {
2132
2137
  className: "game-ui-slider",
2133
2138
  children: [/* @__PURE__ */ t("span", { children: e }), /* @__PURE__ */ t("input", {
@@ -2141,7 +2146,7 @@ function Bt({ label: e, max: r, min: i, onChange: a, value: o }) {
2141
2146
  })]
2142
2147
  });
2143
2148
  }
2144
- function Vt({ checked: e, disabled: r, label: i, onClick: a }) {
2149
+ function Ht({ checked: e, disabled: r, label: i, onClick: a }) {
2145
2150
  return /* @__PURE__ */ n("button", {
2146
2151
  "aria-checked": e,
2147
2152
  className: "game-ui-toggle",
@@ -2155,7 +2160,7 @@ function Vt({ checked: e, disabled: r, label: i, onClick: a }) {
2155
2160
  })]
2156
2161
  });
2157
2162
  }
2158
- function Ht({ items: e, label: n, onSelect: r }) {
2163
+ function Ut({ items: e, label: n, onSelect: r }) {
2159
2164
  return /* @__PURE__ */ t("div", {
2160
2165
  "aria-label": n,
2161
2166
  className: "game-ui-radial-menu",
@@ -2170,7 +2175,7 @@ function Ht({ items: e, label: n, onSelect: r }) {
2170
2175
  }, e.id))
2171
2176
  });
2172
2177
  }
2173
- function Ut({ children: e, tone: n = "info" }) {
2178
+ function Wt({ children: e, tone: n = "info" }) {
2174
2179
  return /* @__PURE__ */ t("div", {
2175
2180
  className: "game-ui-toast",
2176
2181
  "data-toast-tone": n,
@@ -2178,7 +2183,7 @@ function Ut({ children: e, tone: n = "info" }) {
2178
2183
  children: e
2179
2184
  });
2180
2185
  }
2181
- function Wt({ actionLabel: e, children: r, title: i }) {
2186
+ function Gt({ actionLabel: e, children: r, title: i }) {
2182
2187
  return /* @__PURE__ */ n("section", {
2183
2188
  "aria-label": i,
2184
2189
  className: "game-ui-prompt",
@@ -2190,7 +2195,7 @@ function Wt({ actionLabel: e, children: r, title: i }) {
2190
2195
  }
2191
2196
  //#endregion
2192
2197
  //#region src/clay/assets.ts
2193
- var Gt = "/assets/game/ui/clay/phase03-clay-kit", Z = (e) => `${Gt}/${e}`, Kt = {
2198
+ var Kt = "/assets/game/ui/clay/phase03-clay-kit", Z = (e) => `${Kt}/${e}`, qt = {
2194
2199
  ai: { line: Z("icons/function/brain-v1.png") },
2195
2200
  alert: {
2196
2201
  game: Z("components/common/alert-v1.png"),
@@ -2280,20 +2285,20 @@ var Gt = "/assets/game/ui/clay/phase03-clay-kit", Z = (e) => `${Gt}/${e}`, Kt =
2280
2285
  game: Z("icons/common/target-v1.png"),
2281
2286
  line: Z("icons/function/target-v1.png")
2282
2287
  }
2283
- }, qt = Object.keys(Kt), Jt = Gt;
2284
- function Yt(e) {
2285
- let t = Jt;
2288
+ }, Jt = Object.keys(qt), Yt = Kt;
2289
+ function Xt(e) {
2290
+ let t = Yt;
2286
2291
  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;
2287
2292
  }
2288
- function Xt(e, t) {
2289
- let n = Kt[e];
2290
- return Yt(t === "line" ? n.line ?? n.game ?? "" : n.game ?? n.line ?? "");
2293
+ function Zt(e, t) {
2294
+ let n = qt[e];
2295
+ return Xt(t === "line" ? n.line ?? n.game ?? "" : n.game ?? n.line ?? "");
2291
2296
  }
2292
- function Zt(e) {
2293
- let t = Kt[e], n = [];
2297
+ function Qt(e) {
2298
+ let t = qt[e], n = [];
2294
2299
  return t.game && n.push("game"), t.line && n.push("line"), n;
2295
2300
  }
2296
- var Qt = {
2301
+ var $t = {
2297
2302
  anvil: Z("icons/common/anvil-v1.png"),
2298
2303
  arrow: Z("icons/common/arrow-v1.png"),
2299
2304
  bomb: Z("icons/common/bomb-v1.png"),
@@ -2320,7 +2325,7 @@ var Qt = {
2320
2325
  swordB: Z("icons/common/sword-b-v1.png"),
2321
2326
  talaria: Z("icons/common/talaria-v1.png"),
2322
2327
  treasure: Z("icons/common/treasure-v1.png")
2323
- }, $t = Object.keys(Qt), en = {
2328
+ }, en = Object.keys($t), tn = {
2324
2329
  buttons: {
2325
2330
  primary: Z("buttons/button-brown-large-v2.png"),
2326
2331
  blue: Z("buttons/button-blue-large-v2.png"),
@@ -2341,7 +2346,7 @@ var Qt = {
2341
2346
  tabSelected: Z("components/common/tab-s-v1.png"),
2342
2347
  tabNormal: Z("components/common/tab-n-v1.png")
2343
2348
  },
2344
- icons: Object.fromEntries(qt.map((e) => [e, Xt(e)])),
2349
+ icons: Object.fromEntries(Jt.map((e) => [e, Zt(e)])),
2345
2350
  catalog: {
2346
2351
  manifest: "/assets/game/ui/clay/asset-manifest.json",
2347
2352
  sourceCatalog: Z("catalog/phase03-clay-ui-catalog.json"),
@@ -2349,7 +2354,7 @@ var Qt = {
2349
2354
  contactSheetComponents: Z("catalog/component-candidates-contact-sheet-v1.png"),
2350
2355
  contactSheetFunction: Z("catalog/function-icons-contact-sheet-v1.png")
2351
2356
  }
2352
- }, tn = {
2357
+ }, nn = {
2353
2358
  ai: "AI",
2354
2359
  alert: "!",
2355
2360
  card: "▣",
@@ -2385,72 +2390,72 @@ var Qt = {
2385
2390
  timer: "◷",
2386
2391
  trophy: "★",
2387
2392
  vote: "⌾"
2388
- }, nn = {
2389
- ai: F.berry,
2390
- alert: F.red,
2391
- card: F.honey,
2392
- chat: F.sky,
2393
- check: F.green,
2394
- close: F.red,
2395
- coin: F.honey,
2396
- compass: F.teal,
2397
- copy: F.wood,
2398
- crown: F.honey,
2399
- energy: F.orange,
2400
- gem: F.sky,
2401
- gift: F.red,
2402
- globe: F.teal,
2403
- history: F.inkMuted,
2404
- redo: F.wood,
2405
- undo: F.wood,
2406
- home: F.wood,
2407
- hourglass: F.orange,
2408
- laurel: F.green,
2409
- lock: F.ink,
2410
- lucky: F.green,
2411
- mail: F.sky,
2412
- medal: F.honey,
2413
- mission: F.berry,
2414
- mobile: F.sky,
2415
- portal: F.teal,
2416
- scroll: F.berry,
2417
- settings: F.inkMuted,
2418
- shirt: F.sky,
2419
- shop: F.inkMuted,
2420
- smile: F.honey,
2421
- timer: F.orange,
2422
- trophy: F.honey,
2423
- vote: F.red
2393
+ }, rn = {
2394
+ ai: I.berry,
2395
+ alert: I.red,
2396
+ card: I.honey,
2397
+ chat: I.sky,
2398
+ check: I.green,
2399
+ close: I.red,
2400
+ coin: I.honey,
2401
+ compass: I.teal,
2402
+ copy: I.wood,
2403
+ crown: I.honey,
2404
+ energy: I.orange,
2405
+ gem: I.sky,
2406
+ gift: I.red,
2407
+ globe: I.teal,
2408
+ history: I.inkMuted,
2409
+ redo: I.wood,
2410
+ undo: I.wood,
2411
+ home: I.wood,
2412
+ hourglass: I.orange,
2413
+ laurel: I.green,
2414
+ lock: I.ink,
2415
+ lucky: I.green,
2416
+ mail: I.sky,
2417
+ medal: I.honey,
2418
+ mission: I.berry,
2419
+ mobile: I.sky,
2420
+ portal: I.teal,
2421
+ scroll: I.berry,
2422
+ settings: I.inkMuted,
2423
+ shirt: I.sky,
2424
+ shop: I.inkMuted,
2425
+ smile: I.honey,
2426
+ timer: I.orange,
2427
+ trophy: I.honey,
2428
+ vote: I.red
2424
2429
  };
2425
- function rn(e) {
2426
- let t = tn[e], n = nn[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>`;
2430
+ function an(e) {
2431
+ let t = nn[e], n = rn[e], r = I.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>`;
2427
2432
  return `data:image/svg+xml,${encodeURIComponent(i)}`;
2428
2433
  }
2429
- var an = "inline";
2430
- function on(e) {
2431
- an = e;
2434
+ var on = "inline";
2435
+ function sn(e) {
2436
+ on = e;
2432
2437
  }
2433
- function sn() {
2434
- return an;
2438
+ function cn() {
2439
+ return on;
2435
2440
  }
2436
- function cn(e) {
2437
- Jt = e.replace(/\/+$/, "");
2441
+ function ln(e) {
2442
+ Yt = e.replace(/\/+$/, "");
2438
2443
  }
2439
- function ln() {
2440
- return Jt;
2441
- }
2442
- var un = !1;
2443
- function dn() {
2444
- un || (un = !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."));
2444
+ function un() {
2445
+ return Yt;
2445
2446
  }
2447
+ var dn = !1;
2446
2448
  function fn() {
2447
- un = !0;
2449
+ dn || (dn = !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."));
2450
+ }
2451
+ function pn() {
2452
+ dn = !0;
2448
2453
  }
2449
- function pn(e, t = {}) {
2450
- return t.inline ?? an === "inline" ? (dn(), rn(e)) : Xt(e, t.style);
2454
+ function mn(e, t = {}) {
2455
+ return t.inline ?? on === "inline" ? (fn(), an(e)) : Zt(e, t.style);
2451
2456
  }
2452
- function mn(e, t) {
2453
- return Xt(e, t);
2457
+ function hn(e, t) {
2458
+ return Zt(e, t);
2454
2459
  }
2455
2460
  //#endregion
2456
2461
  //#region src/ClayComponents.tsx
@@ -2462,7 +2467,7 @@ function Q({ children: e, className: n, tone: r = "neutral" }) {
2462
2467
  });
2463
2468
  }
2464
2469
  function $({ className: e, icon: n, label: r, size: i = "md", style: a, useSourceAsset: o = !1 }) {
2465
- let s = ["game-ui-asset-icon", e].filter(Boolean).join(" "), c = r ? { "aria-label": r } : { "aria-hidden": !0 }, l = pn(n, {
2470
+ let s = ["game-ui-asset-icon", e].filter(Boolean).join(" "), c = r ? { "aria-label": r } : { "aria-hidden": !0 }, l = mn(n, {
2466
2471
  ...a ? { style: a } : {},
2467
2472
  ...o ? { inline: !1 } : {}
2468
2473
  });
@@ -2477,7 +2482,7 @@ function $({ className: e, icon: n, label: r, size: i = "md", style: a, useSourc
2477
2482
  })
2478
2483
  });
2479
2484
  }
2480
- function hn({ actions: e, className: r, items: i, label: a }) {
2485
+ function gn({ actions: e, className: r, items: i, label: a }) {
2481
2486
  return /* @__PURE__ */ n("section", {
2482
2487
  "aria-label": a,
2483
2488
  className: ["game-ui-hud", r].filter(Boolean).join(" "),
@@ -2500,7 +2505,7 @@ function hn({ actions: e, className: r, items: i, label: a }) {
2500
2505
  }) : null]
2501
2506
  });
2502
2507
  }
2503
- function gn({ cards: e, className: r, label: i }) {
2508
+ function _n({ cards: e, className: r, label: i }) {
2504
2509
  let a = ["game-ui-card-fan", r].filter(Boolean).join(" "), o = (e.length - 1) / 2;
2505
2510
  return /* @__PURE__ */ t("div", {
2506
2511
  "aria-label": i,
@@ -2523,7 +2528,7 @@ function gn({ cards: e, className: r, label: i }) {
2523
2528
  }, e.id))
2524
2529
  });
2525
2530
  }
2526
- function _n({ badge: e, className: r, icon: i, kicker: a, selected: o = !1, summary: s, title: c, tone: l = "daily", type: u = "button", ...d }) {
2531
+ function vn({ badge: e, className: r, icon: i, kicker: a, selected: o = !1, summary: s, title: c, tone: l = "daily", type: u = "button", ...d }) {
2527
2532
  return /* @__PURE__ */ n("button", {
2528
2533
  "aria-pressed": o,
2529
2534
  className: ["game-ui-stage-tile", r].filter(Boolean).join(" "),
@@ -2550,15 +2555,15 @@ function _n({ badge: e, className: r, icon: i, kicker: a, selected: o = !1, summ
2550
2555
  ]
2551
2556
  });
2552
2557
  }
2553
- function vn() {
2558
+ function yn() {
2554
2559
  return typeof window > "u" ? !1 : (window.matchMedia?.("(pointer: coarse), (max-width: 899px)").matches ?? window.innerWidth < 900) && window.innerHeight > window.innerWidth;
2555
2560
  }
2556
- function yn({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a = "Rotate manually if this browser blocks automatic landscape lock.", preview: o = !1, title: s }) {
2557
- let [c, u] = m(o || vn), [d, f] = m("");
2561
+ function bn({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a = "Rotate manually if this browser blocks automatic landscape lock.", preview: o = !1, title: s }) {
2562
+ let [c, u] = m(o || yn), [d, f] = m("");
2558
2563
  if (l(() => {
2559
2564
  if (o) return;
2560
2565
  let e = () => {
2561
- let e = vn();
2566
+ let e = yn();
2562
2567
  u(e), e || f("");
2563
2568
  };
2564
2569
  return e(), window.addEventListener("resize", e), window.addEventListener("orientationchange", e), () => {
@@ -2568,7 +2573,7 @@ function yn({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a =
2568
2573
  let p = async () => {
2569
2574
  if (f(""), !o) try {
2570
2575
  let e = document.documentElement;
2571
- !document.fullscreenElement && e.requestFullscreen && await e.requestFullscreen(), await screen.orientation.lock?.("landscape-primary"), u(vn());
2576
+ !document.fullscreenElement && e.requestFullscreen && await e.requestFullscreen(), await screen.orientation.lock?.("landscape-primary"), u(yn());
2572
2577
  } catch {
2573
2578
  f(a);
2574
2579
  }
@@ -2599,7 +2604,7 @@ function yn({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a =
2599
2604
  })
2600
2605
  });
2601
2606
  }
2602
- function bn({ className: e, currentLabel: r, label: i, options: a, value: o, defaultValue: s, onSelect: c }) {
2607
+ function xn({ className: e, currentLabel: r, label: i, options: a, value: o, defaultValue: s, onSelect: c }) {
2603
2608
  let [l, d] = m(!1), [f, p] = m(s ?? a[0]?.id ?? ""), h = u(), g = ["game-ui-language-menu", e].filter(Boolean).join(" "), _ = o ?? f, v = a.find((e) => e.id === _), y = r ?? v?.label ?? a[0]?.label ?? "", b = (e) => {
2604
2609
  o === void 0 && p(e), c?.(e), d(!1);
2605
2610
  };
@@ -2631,34 +2636,34 @@ function bn({ className: e, currentLabel: r, label: i, options: a, value: o, def
2631
2636
  }) : null]
2632
2637
  });
2633
2638
  }
2634
- function xn({ label: e, tone: r = "loading" }) {
2639
+ function Sn({ label: e, tone: r = "loading" }) {
2635
2640
  return /* @__PURE__ */ n("div", {
2636
2641
  className: "game-ui-loading-state",
2637
2642
  "data-loading-tone": r,
2638
2643
  role: r === "error" ? "alert" : "status",
2639
2644
  children: [/* @__PURE__ */ t("img", {
2640
2645
  alt: "",
2641
- src: pn(r === "error" ? "alert" : "timer")
2646
+ src: mn(r === "error" ? "alert" : "timer")
2642
2647
  }), /* @__PURE__ */ t("span", { children: e })]
2643
2648
  });
2644
2649
  }
2645
- function Sn() {
2646
- return en.catalog;
2650
+ function Cn() {
2651
+ return tn.catalog;
2647
2652
  }
2648
2653
  //#endregion
2649
2654
  //#region src/FirstSessionGameShell.tsx
2650
- function Cn({ fallback: e, slot: n }) {
2655
+ function wn({ fallback: e, slot: n }) {
2651
2656
  return n ?? /* @__PURE__ */ t($, {
2652
2657
  icon: e,
2653
2658
  size: "sm"
2654
2659
  });
2655
2660
  }
2656
- function wn({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, iconSlots: o, labels: s, onHistory: c, onSettings: l, onWardrobe: u, playerName: d }) {
2661
+ function Tn({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, iconSlots: o, labels: s, onHistory: c, onSettings: l, onWardrobe: u, playerName: d }) {
2657
2662
  let f = ["swimmer-first-session-shell", i].filter(Boolean).join(" "), p = e ? `${r} 🔋` : s.guest ?? "guest";
2658
2663
  return /* @__PURE__ */ n("section", {
2659
2664
  "aria-label": s.shell,
2660
2665
  className: f,
2661
- children: [/* @__PURE__ */ t(hn, {
2666
+ children: [/* @__PURE__ */ t(gn, {
2662
2667
  className: "swimmer-first-session-hud",
2663
2668
  items: [
2664
2669
  {
@@ -2690,7 +2695,7 @@ function wn({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
2690
2695
  }
2691
2696
  ],
2692
2697
  label: s.hud,
2693
- actions: /* @__PURE__ */ n(Pt, {
2698
+ actions: /* @__PURE__ */ n(Ft, {
2694
2699
  className: "swimmer-first-session-hud-actions",
2695
2700
  label: s.tools,
2696
2701
  children: [
@@ -2698,7 +2703,7 @@ function wn({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
2698
2703
  "aria-label": s.wardrobe,
2699
2704
  onClick: u,
2700
2705
  variant: "secondary",
2701
- children: [/* @__PURE__ */ t(Cn, {
2706
+ children: [/* @__PURE__ */ t(wn, {
2702
2707
  fallback: "shirt",
2703
2708
  slot: o?.wardrobe
2704
2709
  }), s.wardrobe]
@@ -2707,7 +2712,7 @@ function wn({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
2707
2712
  "aria-label": s.settings,
2708
2713
  onClick: l,
2709
2714
  variant: "secondary",
2710
- children: [/* @__PURE__ */ t(Cn, {
2715
+ children: [/* @__PURE__ */ t(wn, {
2711
2716
  fallback: "settings",
2712
2717
  slot: o?.settings
2713
2718
  }), s.settings]
@@ -2716,7 +2721,7 @@ function wn({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
2716
2721
  "aria-label": s.history,
2717
2722
  onClick: c,
2718
2723
  variant: "secondary",
2719
- children: [/* @__PURE__ */ t(Cn, {
2724
+ children: [/* @__PURE__ */ t(wn, {
2720
2725
  fallback: "history",
2721
2726
  slot: o?.history
2722
2727
  }), s.history]
@@ -2741,7 +2746,7 @@ function wn({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
2741
2746
  }),
2742
2747
  /* @__PURE__ */ n("label", {
2743
2748
  className: "swimmer-first-session-input",
2744
- children: [/* @__PURE__ */ t(Cn, {
2749
+ children: [/* @__PURE__ */ t(wn, {
2745
2750
  fallback: "chat",
2746
2751
  slot: o?.input
2747
2752
  }), /* @__PURE__ */ t("span", { children: s.input })]
@@ -2749,7 +2754,7 @@ function wn({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
2749
2754
  /* @__PURE__ */ n("button", {
2750
2755
  className: "swimmer-first-session-emote",
2751
2756
  type: "button",
2752
- children: [/* @__PURE__ */ t(Cn, {
2757
+ children: [/* @__PURE__ */ t(wn, {
2753
2758
  fallback: "smile",
2754
2759
  slot: o?.emote
2755
2760
  }), s.emote]
@@ -2758,7 +2763,7 @@ function wn({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
2758
2763
  })]
2759
2764
  });
2760
2765
  }
2761
- function Tn({ labels: e, onDismiss: r, open: i }) {
2766
+ function En({ labels: e, onDismiss: r, open: i }) {
2762
2767
  return i ? /* @__PURE__ */ n("aside", {
2763
2768
  "aria-labelledby": "swimmer-first-session-onboarding-title",
2764
2769
  "aria-modal": "true",
@@ -2806,7 +2811,7 @@ function Tn({ labels: e, onDismiss: r, open: i }) {
2806
2811
  }
2807
2812
  //#endregion
2808
2813
  //#region src/GameForms.tsx
2809
- var En = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
2814
+ var Dn = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
2810
2815
  return /* @__PURE__ */ t("input", {
2811
2816
  className: ["game-ui-input", e].filter(Boolean).join(" "),
2812
2817
  "data-invalid": n ? "true" : void 0,
@@ -2814,7 +2819,7 @@ var En = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
2814
2819
  type: r,
2815
2820
  ...i
2816
2821
  });
2817
- }), Dn = a(function({ className: e, invalid: n, rows: r = 3, ...i }, a) {
2822
+ }), On = a(function({ className: e, invalid: n, rows: r = 3, ...i }, a) {
2818
2823
  return /* @__PURE__ */ t("textarea", {
2819
2824
  className: [
2820
2825
  "game-ui-input",
@@ -2827,7 +2832,7 @@ var En = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
2827
2832
  ...i
2828
2833
  });
2829
2834
  });
2830
- function On({ children: e, className: r, error: i, hint: a, label: o, required: s }) {
2835
+ function kn({ children: e, className: r, error: i, hint: a, label: o, required: s }) {
2831
2836
  return /* @__PURE__ */ n("label", {
2832
2837
  className: ["game-ui-field", r].filter(Boolean).join(" "),
2833
2838
  "data-invalid": i ? "true" : void 0,
@@ -2853,7 +2858,7 @@ function On({ children: e, className: r, error: i, hint: a, label: o, required:
2853
2858
  ]
2854
2859
  });
2855
2860
  }
2856
- function kn({ className: e, label: r, ...i }) {
2861
+ function An({ className: e, label: r, ...i }) {
2857
2862
  return /* @__PURE__ */ n("label", {
2858
2863
  className: ["game-ui-checkbox", e].filter(Boolean).join(" "),
2859
2864
  children: [
@@ -2875,11 +2880,11 @@ function kn({ className: e, label: r, ...i }) {
2875
2880
  }
2876
2881
  //#endregion
2877
2882
  //#region src/GameDisplay.tsx
2878
- function An(e) {
2883
+ function jn(e) {
2879
2884
  let t = e.trim().split(/\s+/).filter(Boolean);
2880
2885
  return t.length === 0 ? "?" : t.slice(0, 2).map((e) => e[0] ?? "").join("").toUpperCase();
2881
2886
  }
2882
- function jn({ className: r, name: i, size: a = "md", src: o, status: s = "none" }) {
2887
+ function Mn({ className: r, name: i, size: a = "md", src: o, status: s = "none" }) {
2883
2888
  return /* @__PURE__ */ n("span", {
2884
2889
  className: ["game-ui-avatar", r].filter(Boolean).join(" "),
2885
2890
  "data-avatar-size": a,
@@ -2890,7 +2895,7 @@ function jn({ className: r, name: i, size: a = "md", src: o, status: s = "none"
2890
2895
  }) : /* @__PURE__ */ n(e, { children: [/* @__PURE__ */ t("span", {
2891
2896
  "aria-hidden": "true",
2892
2897
  className: "game-ui-avatar-initials",
2893
- children: An(i)
2898
+ children: jn(i)
2894
2899
  }), /* @__PURE__ */ t("span", {
2895
2900
  className: "game-ui-sr-only",
2896
2901
  children: i
@@ -2900,7 +2905,7 @@ function jn({ className: r, name: i, size: a = "md", src: o, status: s = "none"
2900
2905
  })]
2901
2906
  });
2902
2907
  }
2903
- function Mn({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o = "accent", value: s, valueLabel: c }) {
2908
+ function Nn({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o = "accent", value: s, valueLabel: c }) {
2904
2909
  let l = i <= 0 ? 100 : i, u = Math.max(0, Math.min(100, s / l * 100)), d = ["game-ui-progress", e].filter(Boolean).join(" "), f = !!c, p = {
2905
2910
  accent: "var(--game-ui-accent)",
2906
2911
  danger: "var(--game-ui-danger)",
@@ -2918,7 +2923,7 @@ function Mn({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o =
2918
2923
  "aria-valuetext": f ? c : void 0,
2919
2924
  className: "game-ui-progress-track",
2920
2925
  role: "progressbar",
2921
- children: /* @__PURE__ */ t(At, {
2926
+ children: /* @__PURE__ */ t(jt, {
2922
2927
  "aria-hidden": "true",
2923
2928
  className: "game-ui-progress-liquid",
2924
2929
  fill: p,
@@ -2929,7 +2934,7 @@ function Mn({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o =
2929
2934
  pointerEvents: "none",
2930
2935
  position: "absolute"
2931
2936
  },
2932
- children: /* @__PURE__ */ t(At.Item, {
2937
+ children: /* @__PURE__ */ t(jt.Item, {
2933
2938
  "aria-hidden": "true",
2934
2939
  className: "game-ui-progress-fill",
2935
2940
  style: {
@@ -2952,7 +2957,7 @@ function Mn({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o =
2952
2957
  }) : null]
2953
2958
  });
2954
2959
  }
2955
- function Nn({ action: e, className: r, description: i, icon: a, title: o }) {
2960
+ function Pn({ action: e, className: r, description: i, icon: a, title: o }) {
2956
2961
  return /* @__PURE__ */ n("div", {
2957
2962
  className: ["game-ui-empty-state", r].filter(Boolean).join(" "),
2958
2963
  children: [
@@ -2977,7 +2982,7 @@ function Nn({ action: e, className: r, description: i, icon: a, title: o }) {
2977
2982
  }
2978
2983
  //#endregion
2979
2984
  //#region src/GameSurfacePack.tsx
2980
- function Pn({ assetLibrary: e, bottomBar: r, children: i, className: a, density: o = "comfortable", hud: s, layout: c = "auto", movementPad: l, overlay: u, sidePanel: d, title: f }) {
2985
+ function Fn({ assetLibrary: e, bottomBar: r, children: i, className: a, density: o = "comfortable", hud: s, layout: c = "auto", movementPad: l, overlay: u, sidePanel: d, title: f }) {
2981
2986
  return /* @__PURE__ */ n("section", {
2982
2987
  "aria-label": f,
2983
2988
  className: ["game-ui-shell", a].filter(Boolean).join(" "),
@@ -3015,8 +3020,8 @@ function Pn({ assetLibrary: e, bottomBar: r, children: i, className: a, density:
3015
3020
  ]
3016
3021
  });
3017
3022
  }
3018
- var Fn = Pn;
3019
- function In({ className: e, density: r = "comfortable", facts: i, label: a, variant: o = "facts" }) {
3023
+ var In = Fn;
3024
+ function Ln({ className: e, density: r = "comfortable", facts: i, label: a, variant: o = "facts" }) {
3020
3025
  return /* @__PURE__ */ t("section", {
3021
3026
  "aria-label": a,
3022
3027
  className: ["game-ui-fact-list", e].filter(Boolean).join(" "),
@@ -3045,9 +3050,9 @@ function In({ className: e, density: r = "comfortable", facts: i, label: a, vari
3045
3050
  }, e.id))
3046
3051
  });
3047
3052
  }
3048
- var Ln = In;
3049
- function Rn({ actions: r, className: i, density: a = "comfortable", iconLabelMode: o = "hidden", label: s, style: c = "button" }) {
3050
- return /* @__PURE__ */ n(Pt, {
3053
+ var Rn = Ln;
3054
+ function zn({ actions: r, className: i, density: a = "comfortable", iconLabelMode: o = "hidden", label: s, style: c = "button" }) {
3055
+ return /* @__PURE__ */ n(Ft, {
3051
3056
  className: ["game-ui-action-grid", i].filter(Boolean).join(" "),
3052
3057
  "data-icon-label-mode": c === "icon" ? o : void 0,
3053
3058
  label: s,
@@ -3072,7 +3077,7 @@ function Rn({ actions: r, className: i, density: a = "comfortable", iconLabelMod
3072
3077
  }) : null,
3073
3078
  r.shortcut ? /* @__PURE__ */ t("kbd", { children: r.shortcut }) : null
3074
3079
  ] }), l = () => r.onAction?.(r.id);
3075
- return c === "icon" ? /* @__PURE__ */ t(Ft, {
3080
+ return c === "icon" ? /* @__PURE__ */ t(It, {
3076
3081
  "aria-pressed": r.selected,
3077
3082
  className: "game-ui-action-grid-button",
3078
3083
  disabled: r.disabled,
@@ -3090,7 +3095,7 @@ function Rn({ actions: r, className: i, density: a = "comfortable", iconLabelMod
3090
3095
  })]
3091
3096
  });
3092
3097
  }
3093
- var zn = [
3098
+ var Bn = [
3094
3099
  {
3095
3100
  direction: "forward",
3096
3101
  label: "Move forward",
@@ -3115,7 +3120,7 @@ var zn = [
3115
3120
  shortcut: "S / ↓",
3116
3121
  symbol: "↓"
3117
3122
  }
3118
- ], Bn = {
3123
+ ], Vn = {
3119
3124
  ArrowUp: "forward",
3120
3125
  w: "forward",
3121
3126
  W: "forward",
@@ -3130,7 +3135,7 @@ var zn = [
3130
3135
  S: "backward",
3131
3136
  " ": "reset"
3132
3137
  };
3133
- function Vn({ actions: e = zn, className: r, density: i = "comfortable", disabled: a = !1, helpText: o, label: s, layout: c = "dpad", onMove: l }) {
3138
+ function Hn({ actions: e = Bn, className: r, density: i = "comfortable", disabled: a = !1, helpText: o, label: s, layout: c = "dpad", onMove: l }) {
3134
3139
  let u = ["game-ui-movement-pad", r].filter(Boolean).join(" "), d = (e) => {
3135
3140
  a || l?.(e);
3136
3141
  };
@@ -3140,7 +3145,7 @@ function Vn({ actions: e = zn, className: r, density: i = "comfortable", disable
3140
3145
  "data-density": i,
3141
3146
  "data-layout": c,
3142
3147
  onKeyDown: (t) => {
3143
- let n = Bn[t.key];
3148
+ let n = Vn[t.key];
3144
3149
  if (!n) return;
3145
3150
  let r = e.find((e) => e.direction === n);
3146
3151
  !r || r.disabled || a || (t.preventDefault(), d(n));
@@ -3148,7 +3153,7 @@ function Vn({ actions: e = zn, className: r, density: i = "comfortable", disable
3148
3153
  tabIndex: 0,
3149
3154
  children: [/* @__PURE__ */ t("div", {
3150
3155
  className: "game-ui-movement-pad-grid",
3151
- children: e.map((e) => /* @__PURE__ */ n(Ft, {
3156
+ children: e.map((e) => /* @__PURE__ */ n(It, {
3152
3157
  className: "game-ui-movement-button",
3153
3158
  "data-direction": e.direction,
3154
3159
  disabled: a || e.disabled,
@@ -3166,15 +3171,15 @@ function Vn({ actions: e = zn, className: r, density: i = "comfortable", disable
3166
3171
  }), o ? /* @__PURE__ */ t("p", { children: o }) : null]
3167
3172
  });
3168
3173
  }
3169
- var Hn = {
3174
+ var Un = {
3170
3175
  generated: "Generated",
3171
3176
  imported: "Imported",
3172
3177
  starter: "Starter"
3173
- }, Un = {
3178
+ }, Wn = {
3174
3179
  generated: "ai",
3175
3180
  imported: "warning",
3176
3181
  starter: "neutral"
3177
- }, Wn = {
3182
+ }, Gn = {
3178
3183
  error: "danger",
3179
3184
  generating: "ai",
3180
3185
  missing: "danger",
@@ -3182,8 +3187,8 @@ var Hn = {
3182
3187
  ready: "neutral",
3183
3188
  selected: "success"
3184
3189
  };
3185
- function Gn({ assetId: e, badges: r = [], cardLayout: i = "list", className: a, description: o, disabled: s, facts: c = [], icon: l = "gem", onClick: u, onSelect: d, selected: f = !1, source: p, sourceLabel: m, status: h = "ready", statusLabel: g, thumbnailAlt: _ = "", thumbnailSrc: v, title: y, type: b = "button", ...x }) {
3186
- let { "aria-label": S, ...C } = x, w = ["game-ui-asset-card", a].filter(Boolean).join(" "), T = m ?? Hn[p], E = g ?? h;
3190
+ function Kn({ assetId: e, badges: r = [], cardLayout: i = "list", className: a, description: o, disabled: s, facts: c = [], icon: l = "gem", onClick: u, onSelect: d, selected: f = !1, source: p, sourceLabel: m, status: h = "ready", statusLabel: g, thumbnailAlt: _ = "", thumbnailSrc: v, title: y, type: b = "button", ...x }) {
3191
+ let { "aria-label": S, ...C } = x, w = ["game-ui-asset-card", a].filter(Boolean).join(" "), T = m ?? Un[p], E = g ?? h;
3187
3192
  return /* @__PURE__ */ n("button", {
3188
3193
  "aria-label": S ?? y,
3189
3194
  "aria-pressed": f,
@@ -3214,11 +3219,11 @@ function Gn({ assetId: e, badges: r = [], cardLayout: i = "list", className: a,
3214
3219
  className: "game-ui-asset-card-badges",
3215
3220
  children: [
3216
3221
  /* @__PURE__ */ t(Q, {
3217
- tone: Un[p],
3222
+ tone: Wn[p],
3218
3223
  children: T
3219
3224
  }),
3220
3225
  /* @__PURE__ */ t(Q, {
3221
- tone: Wn[h],
3226
+ tone: Gn[h],
3222
3227
  children: E
3223
3228
  }),
3224
3229
  r.map((e) => /* @__PURE__ */ t(Q, {
@@ -3237,7 +3242,7 @@ function Gn({ assetId: e, badges: r = [], cardLayout: i = "list", className: a,
3237
3242
  })]
3238
3243
  });
3239
3244
  }
3240
- function Kn({ cardLayout: e = "auto", className: r, density: i = "comfortable", emptyAction: a, emptyDescription: o = "Assets will appear here when they are ready to place.", emptyTitle: s = "No assets ready", groups: c, label: l, onSelectAsset: u, selectedAssetId: d, subtitle: f, title: p }) {
3245
+ function qn({ cardLayout: e = "auto", className: r, density: i = "comfortable", emptyAction: a, emptyDescription: o = "Assets will appear here when they are ready to place.", emptyTitle: s = "No assets ready", groups: c, label: l, onSelectAsset: u, selectedAssetId: d, subtitle: f, title: p }) {
3241
3246
  let m = ["game-ui-asset-library", r].filter(Boolean).join(" "), h = c.reduce((e, t) => e + t.assets.length, 0), g = c.reduce((e, t) => (t.assets.forEach((t) => {
3242
3247
  e[t.source] += 1;
3243
3248
  }), e), {
@@ -3262,15 +3267,15 @@ function Kn({ cardLayout: e = "auto", className: r, density: i = "comfortable",
3262
3267
  "aria-label": "Asset source counts",
3263
3268
  className: "game-ui-asset-library-counts",
3264
3269
  children: Object.entries(g).map(([e, t]) => /* @__PURE__ */ n(Q, {
3265
- tone: Un[e],
3270
+ tone: Wn[e],
3266
3271
  children: [
3267
- Hn[e],
3272
+ Un[e],
3268
3273
  " ",
3269
3274
  t
3270
3275
  ]
3271
3276
  }, e))
3272
3277
  }),
3273
- h === 0 ? /* @__PURE__ */ t(Nn, {
3278
+ h === 0 ? /* @__PURE__ */ t(Pn, {
3274
3279
  action: a,
3275
3280
  description: o,
3276
3281
  icon: "gem",
@@ -3282,13 +3287,13 @@ function Kn({ cardLayout: e = "auto", className: r, density: i = "comfortable",
3282
3287
  className: "game-ui-asset-library-group",
3283
3288
  "data-asset-source": r.source,
3284
3289
  children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t("strong", { children: r.label }), r.source ? /* @__PURE__ */ t(Q, {
3285
- tone: Un[r.source],
3286
- children: Hn[r.source]
3290
+ tone: Wn[r.source],
3291
+ children: Un[r.source]
3287
3292
  }) : null] }), /* @__PURE__ */ t("div", {
3288
3293
  className: "game-ui-asset-library-grid",
3289
3294
  children: r.assets.map((n) => {
3290
3295
  let r = e === "auto" ? n.cardLayout : e;
3291
- return /* @__PURE__ */ t(Gn, {
3296
+ return /* @__PURE__ */ t(Kn, {
3292
3297
  ...n,
3293
3298
  ...r ? { cardLayout: r } : {},
3294
3299
  ...u ? { onSelect: u } : {},
@@ -3302,7 +3307,7 @@ function Kn({ cardLayout: e = "auto", className: r, density: i = "comfortable",
3302
3307
  })
3303
3308
  });
3304
3309
  }
3305
- function qn({ actions: e = [], capacityLabel: r = "Objects", className: i, density: a = "comfortable", maxObjects: o, objectActions: s = [], placedObjects: c, selectedLabel: l = "Selected", selectedTitle: u, statusLabel: d = "Status", statusTone: f = "neutral", statusValue: p = "Idle", title: m }) {
3310
+ function Jn({ actions: e = [], capacityLabel: r = "Objects", className: i, density: a = "comfortable", maxObjects: o, objectActions: s = [], placedObjects: c, selectedLabel: l = "Selected", selectedTitle: u, statusLabel: d = "Status", statusTone: f = "neutral", statusValue: p = "Idle", title: m }) {
3306
3311
  let h = ["game-ui-placement-toolbar", i].filter(Boolean).join(" "), g = typeof c == "number" && typeof o == "number", _ = g && o > 0 ? Math.min(o, c) : 0;
3307
3312
  return /* @__PURE__ */ t(X, {
3308
3313
  className: h,
@@ -3311,7 +3316,7 @@ function qn({ actions: e = [], capacityLabel: r = "Objects", className: i, densi
3311
3316
  children: /* @__PURE__ */ n("div", {
3312
3317
  "data-density": a,
3313
3318
  children: [
3314
- /* @__PURE__ */ t(In, {
3319
+ /* @__PURE__ */ t(Ln, {
3315
3320
  density: a,
3316
3321
  facts: [{
3317
3322
  icon: "gem",
@@ -3327,19 +3332,19 @@ function qn({ actions: e = [], capacityLabel: r = "Objects", className: i, densi
3327
3332
  }],
3328
3333
  label: `${m} facts`
3329
3334
  }),
3330
- g ? /* @__PURE__ */ t(Mn, {
3335
+ g ? /* @__PURE__ */ t(Nn, {
3331
3336
  label: r,
3332
3337
  max: o,
3333
3338
  showValue: !0,
3334
3339
  tone: _ >= o ? "warning" : "success",
3335
3340
  value: _
3336
3341
  }) : null,
3337
- e.length > 0 ? /* @__PURE__ */ t(Rn, {
3342
+ e.length > 0 ? /* @__PURE__ */ t(zn, {
3338
3343
  actions: e,
3339
3344
  density: a,
3340
3345
  label: `${m} actions`
3341
3346
  }) : null,
3342
- s.length > 0 ? /* @__PURE__ */ t(Rn, {
3347
+ s.length > 0 ? /* @__PURE__ */ t(zn, {
3343
3348
  actions: s,
3344
3349
  density: a,
3345
3350
  label: `${m} object actions`,
@@ -3349,7 +3354,7 @@ function qn({ actions: e = [], capacityLabel: r = "Objects", className: i, densi
3349
3354
  })
3350
3355
  });
3351
3356
  }
3352
- var Jn = qn, Yn = {
3357
+ var Yn = Jn, Xn = {
3353
3358
  build: "home",
3354
3359
  flatten: "card",
3355
3360
  inspect: "compass",
@@ -3359,7 +3364,7 @@ var Jn = qn, Yn = {
3359
3364
  raise: "energy",
3360
3365
  smooth: "lucky",
3361
3366
  terrain: "portal"
3362
- }, Xn = {
3367
+ }, Zn = {
3363
3368
  error: "danger",
3364
3369
  locked: "warning",
3365
3370
  missing: "danger",
@@ -3367,10 +3372,10 @@ var Jn = qn, Yn = {
3367
3372
  ready: "neutral",
3368
3373
  selected: "success"
3369
3374
  };
3370
- function Zn(e, t, n, r) {
3375
+ function Qn(e, t, n, r) {
3371
3376
  let i = {
3372
3377
  disabled: !!(r || e.disabled),
3373
- icon: e.icon ?? Yn[e.id] ?? "gem",
3378
+ icon: e.icon ?? Xn[e.id] ?? "gem",
3374
3379
  id: e.id,
3375
3380
  label: e.label,
3376
3381
  selected: e.id === t,
@@ -3378,21 +3383,21 @@ function Zn(e, t, n, r) {
3378
3383
  };
3379
3384
  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;
3380
3385
  }
3381
- function Qn(e, t, n) {
3386
+ function $n(e, t, n) {
3382
3387
  return Number.isNaN(e) ? t : Math.min(n, Math.max(t, e));
3383
3388
  }
3384
- function $n(e) {
3389
+ function er(e) {
3385
3390
  return e;
3386
3391
  }
3387
- function er(e, t) {
3392
+ function tr(e, t) {
3388
3393
  return e === "auto" ? t === "mobile" || t === "small-mobile" ? "caption" : "hidden" : e;
3389
3394
  }
3390
- function tr({ activeModeId: e, className: r, disabled: i = !1, label: a, modes: o, onModeChange: s, variant: c = "desktop", "data-testid": l }) {
3395
+ function nr({ activeModeId: e, className: r, disabled: i = !1, label: a, modes: o, onModeChange: s, variant: c = "desktop", "data-testid": l }) {
3391
3396
  return /* @__PURE__ */ n("section", {
3392
3397
  "aria-label": a,
3393
3398
  className: ["game-ui-terrain-mode-control", r].filter(Boolean).join(" "),
3394
3399
  "data-ui-hook": "terrain-mode-control",
3395
- "data-variant": $n(c),
3400
+ "data-variant": er(c),
3396
3401
  "data-testid": l,
3397
3402
  children: [/* @__PURE__ */ t("span", {
3398
3403
  className: "game-ui-sr-only",
@@ -3414,7 +3419,7 @@ function tr({ activeModeId: e, className: r, disabled: i = !1, label: a, modes:
3414
3419
  type: "button",
3415
3420
  children: [
3416
3421
  /* @__PURE__ */ t($, {
3417
- icon: r.icon ?? Yn[r.id] ?? "portal",
3422
+ icon: r.icon ?? Xn[r.id] ?? "portal",
3418
3423
  size: c === "small-mobile" ? "sm" : "md",
3419
3424
  style: "line"
3420
3425
  }),
@@ -3429,8 +3434,8 @@ function tr({ activeModeId: e, className: r, disabled: i = !1, label: a, modes:
3429
3434
  })]
3430
3435
  });
3431
3436
  }
3432
- function nr({ activeToolId: e, className: n, compactLabelMode: r = "auto", density: i = "comfortable", disabled: a = !1, label: o, onToolChange: s, tools: c, variant: l = "desktop", "data-testid": u }) {
3433
- let d = ["game-ui-terrain-tool-strip", n].filter(Boolean).join(" "), f = er(r, l);
3437
+ function rr({ activeToolId: e, className: n, compactLabelMode: r = "auto", density: i = "comfortable", disabled: a = !1, label: o, onToolChange: s, tools: c, variant: l = "desktop", "data-testid": u }) {
3438
+ let d = ["game-ui-terrain-tool-strip", n].filter(Boolean).join(" "), f = tr(r, l);
3434
3439
  return /* @__PURE__ */ t("section", {
3435
3440
  "aria-label": o,
3436
3441
  className: d,
@@ -3439,8 +3444,8 @@ function nr({ activeToolId: e, className: n, compactLabelMode: r = "auto", densi
3439
3444
  "data-ui-hook": "terrain-tool-strip",
3440
3445
  "data-variant": l,
3441
3446
  "data-testid": u,
3442
- children: /* @__PURE__ */ t(Rn, {
3443
- actions: c.map((t) => Zn(t, e, s, a)),
3447
+ children: /* @__PURE__ */ t(zn, {
3448
+ actions: c.map((t) => Qn(t, e, s, a)),
3444
3449
  density: i,
3445
3450
  iconLabelMode: f,
3446
3451
  label: o,
@@ -3448,18 +3453,18 @@ function nr({ activeToolId: e, className: n, compactLabelMode: r = "auto", densi
3448
3453
  })
3449
3454
  });
3450
3455
  }
3451
- function rr({ className: e, labels: r = {}, onRadiusChange: i, onStrengthChange: a, state: o, variant: s = "desktop", "data-testid": c }) {
3452
- let l = ["game-ui-brush-controls", e].filter(Boolean).join(" "), u = o.minRadius ?? 1, d = o.maxRadius ?? 8, f = o.radiusStep ?? .25, p = o.minStrength ?? 0, m = o.maxStrength ?? 1, h = o.strengthStep ?? .05, g = Qn(o.radius, u, d), _ = Qn(o.strength, p, m), v = !!o.disabled, y = (e) => {
3453
- i?.(Qn(Number(e.currentTarget.value), u, d));
3456
+ function ir({ className: e, labels: r = {}, onRadiusChange: i, onStrengthChange: a, state: o, variant: s = "desktop", "data-testid": c }) {
3457
+ let l = ["game-ui-brush-controls", e].filter(Boolean).join(" "), u = o.minRadius ?? 1, d = o.maxRadius ?? 8, f = o.radiusStep ?? .25, p = o.minStrength ?? 0, m = o.maxStrength ?? 1, h = o.strengthStep ?? .05, g = $n(o.radius, u, d), _ = $n(o.strength, p, m), v = !!o.disabled, y = (e) => {
3458
+ i?.($n(Number(e.currentTarget.value), u, d));
3454
3459
  }, b = (e) => {
3455
- a?.(Qn(Number(e.currentTarget.value), p, m));
3460
+ a?.($n(Number(e.currentTarget.value), p, m));
3456
3461
  };
3457
3462
  return /* @__PURE__ */ n("section", {
3458
3463
  className: l,
3459
3464
  "data-ui-hook": "brush-controls",
3460
3465
  "data-variant": s,
3461
3466
  "data-testid": c,
3462
- children: [/* @__PURE__ */ t(On, {
3467
+ children: [/* @__PURE__ */ t(kn, {
3463
3468
  ...r.radiusHint ? { hint: r.radiusHint } : {},
3464
3469
  label: r.radius ?? "Brush radius",
3465
3470
  children: /* @__PURE__ */ n("div", {
@@ -3489,7 +3494,7 @@ function rr({ className: e, labels: r = {}, onRadiusChange: i, onStrengthChange:
3489
3494
  value: g
3490
3495
  })]
3491
3496
  })
3492
- }), /* @__PURE__ */ t(On, {
3497
+ }), /* @__PURE__ */ t(kn, {
3493
3498
  ...r.strengthHint ? { hint: r.strengthHint } : {},
3494
3499
  label: r.strength ?? "Brush strength",
3495
3500
  children: /* @__PURE__ */ n("div", {
@@ -3522,7 +3527,7 @@ function rr({ className: e, labels: r = {}, onRadiusChange: i, onStrengthChange:
3522
3527
  })]
3523
3528
  });
3524
3529
  }
3525
- function ir({ activeMaterialId: e, className: r, disabled: i = !1, label: a, materials: o, onMaterialChange: s, variant: c = "desktop", "data-testid": l }) {
3530
+ function ar({ activeMaterialId: e, className: r, disabled: i = !1, label: a, materials: o, onMaterialChange: s, variant: c = "desktop", "data-testid": l }) {
3526
3531
  return /* @__PURE__ */ t("section", {
3527
3532
  "aria-label": a,
3528
3533
  className: ["game-ui-material-swatches", r].filter(Boolean).join(" "),
@@ -3565,14 +3570,14 @@ function ir({ activeMaterialId: e, className: r, disabled: i = !1, label: a, mat
3565
3570
  })
3566
3571
  });
3567
3572
  }
3568
- function ar({ canRedo: e = !1, canUndo: n = !1, className: r, disabled: i = !1, label: a, onRedo: o, onUndo: s, redoLabel: c = "Redo", undoLabel: l = "Undo", variant: u = "desktop", "data-testid": d }) {
3573
+ function or({ canRedo: e = !1, canUndo: n = !1, className: r, disabled: i = !1, label: a, onRedo: o, onUndo: s, redoLabel: c = "Redo", undoLabel: l = "Undo", variant: u = "desktop", "data-testid": d }) {
3569
3574
  return /* @__PURE__ */ t("section", {
3570
3575
  "aria-label": a,
3571
3576
  className: ["game-ui-undo-redo-actions", r].filter(Boolean).join(" "),
3572
3577
  "data-ui-hook": "undo-redo-actions",
3573
3578
  "data-variant": u,
3574
3579
  "data-testid": d,
3575
- children: /* @__PURE__ */ t(Rn, {
3580
+ children: /* @__PURE__ */ t(zn, {
3576
3581
  actions: [{
3577
3582
  disabled: i || !n,
3578
3583
  icon: "undo",
@@ -3598,7 +3603,7 @@ function ar({ canRedo: e = !1, canUndo: n = !1, className: r, disabled: i = !1,
3598
3603
  })
3599
3604
  });
3600
3605
  }
3601
- function or({ activeCategoryId: e, categories: r, className: i, density: a = "comfortable", emptyDescription: o = "Building pieces will appear here when a category is available.", emptyTitle: s = "No build pieces ready", label: c, onCategoryChange: l, onSelectItem: u, selectedItemId: d, title: f, variant: p = "desktop", "data-testid": m }) {
3606
+ function sr({ activeCategoryId: e, categories: r, className: i, density: a = "comfortable", emptyDescription: o = "Building pieces will appear here when a category is available.", emptyTitle: s = "No build pieces ready", label: c, onCategoryChange: l, onSelectItem: u, selectedItemId: d, title: f, variant: p = "desktop", "data-testid": m }) {
3602
3607
  let h = ["game-ui-build-library", i].filter(Boolean).join(" "), g = r.filter((e) => !e.disabled), _ = r.find((t) => t.id === e) ?? g[0] ?? r[0], v = _?.items ?? [], y = p === "small-mobile";
3603
3608
  return /* @__PURE__ */ t(X, {
3604
3609
  className: h,
@@ -3628,7 +3633,7 @@ function or({ activeCategoryId: e, categories: r, className: i, density: a = "co
3628
3633
  type: "button",
3629
3634
  children: [
3630
3635
  /* @__PURE__ */ t($, {
3631
- icon: e.icon ?? Yn[e.id] ?? "home",
3636
+ icon: e.icon ?? Xn[e.id] ?? "home",
3632
3637
  size: "sm",
3633
3638
  style: "line"
3634
3639
  }),
@@ -3637,7 +3642,7 @@ function or({ activeCategoryId: e, categories: r, className: i, density: a = "co
3637
3642
  ]
3638
3643
  }, e.id);
3639
3644
  })
3640
- }), v.length === 0 || !_ ? /* @__PURE__ */ t(Nn, {
3645
+ }), v.length === 0 || !_ ? /* @__PURE__ */ t(Pn, {
3641
3646
  description: o,
3642
3647
  icon: "home",
3643
3648
  title: s
@@ -3675,7 +3680,7 @@ function or({ activeCategoryId: e, categories: r, className: i, density: a = "co
3675
3680
  /* @__PURE__ */ n("span", {
3676
3681
  className: "game-ui-build-item-badges",
3677
3682
  children: [/* @__PURE__ */ t(Q, {
3678
- tone: Xn[i],
3683
+ tone: Zn[i],
3679
3684
  children: i
3680
3685
  }), e.badges?.map((e) => /* @__PURE__ */ t(Q, {
3681
3686
  tone: e.tone ?? "neutral",
@@ -3693,7 +3698,7 @@ function or({ activeCategoryId: e, categories: r, className: i, density: a = "co
3693
3698
  })
3694
3699
  });
3695
3700
  }
3696
- function sr({ children: e, className: r, closeIcon: i = "close", closeLabel: a = "Close tools", disabled: o = !1, label: s, onOpenChange: c, open: l, panelId: u, title: d, triggerIcon: f = "settings", triggerLabel: p = "Tools", variant: m = "mobile", "data-testid": h }) {
3701
+ function cr({ children: e, className: r, closeIcon: i = "close", closeLabel: a = "Close tools", disabled: o = !1, label: s, onOpenChange: c, open: l, panelId: u, title: d, triggerIcon: f = "settings", triggerLabel: p = "Tools", variant: m = "mobile", "data-testid": h }) {
3697
3702
  let g = ["game-ui-compact-game-drawer", r].filter(Boolean).join(" "), _ = u ?? `${d.toLowerCase().replace(/[^a-z0-9]+/g, "-") || "tools"}-drawer-panel`;
3698
3703
  return /* @__PURE__ */ n("aside", {
3699
3704
  "aria-label": s,
@@ -3728,7 +3733,7 @@ function sr({ children: e, className: r, closeIcon: i = "close", closeLabel: a =
3728
3733
  })]
3729
3734
  });
3730
3735
  }
3731
- function cr({ status: e }) {
3736
+ function lr({ status: e }) {
3732
3737
  if (!e) return null;
3733
3738
  let r = typeof e.progressValue == "number" && typeof e.progressMax == "number", i = e.tone === "danger" ? "danger" : e.tone === "warning" ? "warning" : "success", a = e.progressMax ?? 100, o = e.progressValue ?? 0;
3734
3739
  return /* @__PURE__ */ n("div", {
@@ -3741,7 +3746,7 @@ function cr({ status: e }) {
3741
3746
  children: e.label
3742
3747
  }),
3743
3748
  e.description ? /* @__PURE__ */ t("p", { children: e.description }) : null,
3744
- r ? /* @__PURE__ */ t(Mn, {
3749
+ r ? /* @__PURE__ */ t(Nn, {
3745
3750
  label: e.progressLabel ?? e.label,
3746
3751
  max: a,
3747
3752
  showValue: !0,
@@ -3751,15 +3756,15 @@ function cr({ status: e }) {
3751
3756
  ]
3752
3757
  });
3753
3758
  }
3754
- function lr({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, activeToolId: a, brush: o, buildCategories: s = [], density: c = "comfortable", disabled: l = !1, materials: u = [], modes: d, onBrushRadiusChange: f, onBrushStrengthChange: p, onBuildCategoryChange: m, onMaterialChange: h, onModeChange: g, onRedo: _, onSelectBuildItem: v, onToolChange: y, onUndo: b, selectedBuildItemId: x, status: S, toolCompactLabelMode: C = "auto", tools: w, undoRedo: T, variant: E = "desktop" }) {
3759
+ function ur({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, activeToolId: a, brush: o, buildCategories: s = [], density: c = "comfortable", disabled: l = !1, materials: u = [], modes: d, onBrushRadiusChange: f, onBrushStrengthChange: p, onBuildCategoryChange: m, onMaterialChange: h, onModeChange: g, onRedo: _, onSelectBuildItem: v, onToolChange: y, onUndo: b, selectedBuildItemId: x, status: S, toolCompactLabelMode: C = "auto", tools: w, undoRedo: T, variant: E = "desktop" }) {
3755
3760
  return /* @__PURE__ */ n("div", {
3756
3761
  className: "game-ui-terrain-build-toolbox-body",
3757
3762
  "data-active-mode": i,
3758
3763
  "data-active-tool": a,
3759
3764
  "data-variant": E,
3760
3765
  children: [
3761
- /* @__PURE__ */ t(cr, { status: S }),
3762
- /* @__PURE__ */ t(tr, {
3766
+ /* @__PURE__ */ t(lr, { status: S }),
3767
+ /* @__PURE__ */ t(nr, {
3763
3768
  activeModeId: i,
3764
3769
  disabled: l,
3765
3770
  label: "Tool mode",
@@ -3770,7 +3775,7 @@ function lr({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
3770
3775
  /* @__PURE__ */ n("div", {
3771
3776
  className: "game-ui-terrain-build-main-grid",
3772
3777
  children: [
3773
- /* @__PURE__ */ t(nr, {
3778
+ /* @__PURE__ */ t(rr, {
3774
3779
  activeToolId: a,
3775
3780
  compactLabelMode: C,
3776
3781
  density: c,
@@ -3780,7 +3785,7 @@ function lr({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
3780
3785
  tools: w,
3781
3786
  variant: E
3782
3787
  }),
3783
- /* @__PURE__ */ t(ar, {
3788
+ /* @__PURE__ */ t(or, {
3784
3789
  canRedo: T?.canRedo,
3785
3790
  canUndo: T?.canUndo,
3786
3791
  disabled: l,
@@ -3791,7 +3796,7 @@ function lr({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
3791
3796
  undoLabel: T?.undoLabel,
3792
3797
  variant: E
3793
3798
  }),
3794
- /* @__PURE__ */ t(rr, {
3799
+ /* @__PURE__ */ t(ir, {
3795
3800
  onRadiusChange: f,
3796
3801
  onStrengthChange: p,
3797
3802
  state: {
@@ -3800,7 +3805,7 @@ function lr({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
3800
3805
  },
3801
3806
  variant: E
3802
3807
  }),
3803
- u.length > 0 ? /* @__PURE__ */ t(ir, {
3808
+ u.length > 0 ? /* @__PURE__ */ t(ar, {
3804
3809
  activeMaterialId: r,
3805
3810
  disabled: l,
3806
3811
  label: "Terrain materials",
@@ -3810,7 +3815,7 @@ function lr({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
3810
3815
  }) : null
3811
3816
  ]
3812
3817
  }),
3813
- s.length > 0 ? /* @__PURE__ */ t(or, {
3818
+ s.length > 0 ? /* @__PURE__ */ t(sr, {
3814
3819
  activeCategoryId: e,
3815
3820
  categories: s,
3816
3821
  density: c,
@@ -3824,12 +3829,12 @@ function lr({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
3824
3829
  ]
3825
3830
  });
3826
3831
  }
3827
- function ur({ className: e, drawerOpen: n = !1, drawerTitle: r = "Terrain and build tools", label: i, onDrawerOpenChange: a, title: o, variant: s = "desktop", "data-testid": c, ...l }) {
3828
- let u = ["game-ui-terrain-build-toolbox", e].filter(Boolean).join(" "), d = /* @__PURE__ */ t(lr, {
3832
+ function dr({ className: e, drawerOpen: n = !1, drawerTitle: r = "Terrain and build tools", label: i, onDrawerOpenChange: a, title: o, variant: s = "desktop", "data-testid": c, ...l }) {
3833
+ let u = ["game-ui-terrain-build-toolbox", e].filter(Boolean).join(" "), d = /* @__PURE__ */ t(ur, {
3829
3834
  ...l,
3830
3835
  variant: s
3831
3836
  });
3832
- return s === "mobile" || s === "small-mobile" ? /* @__PURE__ */ t(sr, {
3837
+ return s === "mobile" || s === "small-mobile" ? /* @__PURE__ */ t(cr, {
3833
3838
  className: u,
3834
3839
  label: i,
3835
3840
  onOpenChange: a,
@@ -3854,7 +3859,7 @@ function ur({ className: e, drawerOpen: n = !1, drawerTitle: r = "Terrain and bu
3854
3859
  }
3855
3860
  //#endregion
3856
3861
  //#region src/GameContractorTools.tsx
3857
- var dr = {
3862
+ var fr = {
3858
3863
  accepted: "success",
3859
3864
  blocked: "danger",
3860
3865
  cancelled: "neutral",
@@ -3863,7 +3868,7 @@ var dr = {
3863
3868
  queued: "warning",
3864
3869
  readyForReview: "success",
3865
3870
  working: "ai"
3866
- }, fr = {
3871
+ }, pr = {
3867
3872
  accepted: "check",
3868
3873
  blocked: "alert",
3869
3874
  cancelled: "close",
@@ -3872,26 +3877,26 @@ var dr = {
3872
3877
  queued: "hourglass",
3873
3878
  readyForReview: "vote",
3874
3879
  working: "energy"
3875
- }, pr = {
3880
+ }, mr = {
3876
3881
  active: "ai",
3877
3882
  blocked: "danger",
3878
3883
  complete: "success",
3879
3884
  pending: "neutral"
3880
- }, mr = {
3885
+ }, hr = {
3881
3886
  blocked: "danger",
3882
3887
  done: "success",
3883
3888
  idle: "neutral",
3884
3889
  queued: "warning",
3885
3890
  working: "ai"
3886
- }, hr = {
3891
+ }, gr = {
3887
3892
  "local-only": "Local only",
3888
3893
  mock: "Mock run",
3889
3894
  "paid-disabled": "Paid provider off"
3890
- }, gr = {
3895
+ }, _r = {
3891
3896
  "local-only": "success",
3892
3897
  mock: "ai",
3893
3898
  "paid-disabled": "warning"
3894
- }, _r = {
3899
+ }, vr = {
3895
3900
  accepted: [{
3896
3901
  id: "revert",
3897
3902
  label: "Revert",
@@ -3997,17 +4002,17 @@ var dr = {
3997
4002
  tone: "danger"
3998
4003
  }]
3999
4004
  };
4000
- function vr(e, t) {
4005
+ function yr(e, t) {
4001
4006
  if (t) return t;
4002
4007
  switch (e) {
4003
4008
  case "readyForReview": return "Ready for review";
4004
4009
  default: return e.replace(/([A-Z])/g, " $1").replace(/^./, (e) => e.toUpperCase());
4005
4010
  }
4006
4011
  }
4007
- function yr(e) {
4012
+ function br(e) {
4008
4013
  return e === "blocked" || e === "cancelled" ? "danger" : e === "accepted" || e === "readyForReview" ? "success" : e === "queued" || e === "draft" || e === "preview" ? "warning" : "accent";
4009
4014
  }
4010
- function br(e) {
4015
+ function xr(e) {
4011
4016
  switch (e) {
4012
4017
  case "accepted": return 100;
4013
4018
  case "blocked": return 42;
@@ -4019,7 +4024,7 @@ function br(e) {
4019
4024
  case "working": return 64;
4020
4025
  }
4021
4026
  }
4022
- function xr(e, t, n) {
4027
+ function Sr(e, t, n) {
4023
4028
  let r = {
4024
4029
  disabled: !!(n || e.disabled),
4025
4030
  id: e.id,
@@ -4028,14 +4033,14 @@ function xr(e, t, n) {
4028
4033
  };
4029
4034
  return e.icon && (r.icon = e.icon), e.ariaLabel && (r.ariaLabel = e.ariaLabel), e.meta && (r.meta = e.meta), t && (r.onAction = t), r;
4030
4035
  }
4031
- function Sr(e) {
4036
+ function Cr(e) {
4032
4037
  return e === "danger" || e === "warning" ? "alert" : "status";
4033
4038
  }
4034
- function Cr(e) {
4039
+ function wr(e) {
4035
4040
  return !!(e.before && e.after);
4036
4041
  }
4037
- function wr({ className: e, label: r, max: i = 100, progressLabel: a = "Construction progress", showStatusBadge: o = !0, status: s, statusLabel: c, steps: l = [], validationWarnings: u = [], value: d, variant: f = "desktop", "data-testid": p }) {
4038
- let m = ["game-ui-construction-progress", e].filter(Boolean).join(" "), h = d ?? br(s), g = vr(s, c);
4042
+ function Tr({ className: e, label: r, max: i = 100, progressLabel: a = "Construction progress", showStatusBadge: o = !0, status: s, statusLabel: c, steps: l = [], validationWarnings: u = [], value: d, variant: f = "desktop", "data-testid": p }) {
4043
+ let m = ["game-ui-construction-progress", e].filter(Boolean).join(" "), h = d ?? xr(s), g = yr(s, c);
4039
4044
  return /* @__PURE__ */ n("section", {
4040
4045
  "aria-label": r,
4041
4046
  className: m,
@@ -4047,18 +4052,18 @@ function wr({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
4047
4052
  /* @__PURE__ */ n("header", {
4048
4053
  className: "game-ui-construction-progress-header",
4049
4054
  children: [/* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t($, {
4050
- icon: fr[s],
4055
+ icon: pr[s],
4051
4056
  size: "sm"
4052
4057
  }), /* @__PURE__ */ t("strong", { children: a })] }), o ? /* @__PURE__ */ t(Q, {
4053
- tone: dr[s],
4058
+ tone: fr[s],
4054
4059
  children: g
4055
4060
  }) : null]
4056
4061
  }),
4057
- /* @__PURE__ */ t(Mn, {
4062
+ /* @__PURE__ */ t(Nn, {
4058
4063
  label: a,
4059
4064
  max: i,
4060
4065
  showValue: !0,
4061
- tone: yr(s),
4066
+ tone: br(s),
4062
4067
  value: h
4063
4068
  }),
4064
4069
  l.length > 0 ? /* @__PURE__ */ t("ol", {
@@ -4073,7 +4078,7 @@ function wr({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
4073
4078
  }),
4074
4079
  /* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t("strong", { children: e.label }), e.caption ? /* @__PURE__ */ t("small", { children: e.caption }) : null] }),
4075
4080
  /* @__PURE__ */ t(Q, {
4076
- tone: pr[e.status],
4081
+ tone: mr[e.status],
4077
4082
  children: e.status
4078
4083
  })
4079
4084
  ]
@@ -4085,7 +4090,7 @@ function wr({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
4085
4090
  children: u.map((e) => /* @__PURE__ */ n("div", {
4086
4091
  className: "game-ui-construction-warning",
4087
4092
  "data-warning-tone": e.tone ?? "warning",
4088
- role: Sr(e.tone),
4093
+ role: Cr(e.tone),
4089
4094
  children: [/* @__PURE__ */ t($, {
4090
4095
  icon: e.tone === "danger" || e.tone === "warning" ? "alert" : "check",
4091
4096
  size: "sm"
@@ -4095,8 +4100,8 @@ function wr({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
4095
4100
  ]
4096
4101
  });
4097
4102
  }
4098
- function Tr({ actions: e, className: r, disabled: i = !1, label: a, localOnlyLabel: o = "Local-only construction", onAction: s, providerMode: c, status: l, validationWarnings: u = [], variant: d = "desktop", "data-testid": f }) {
4099
- let p = ["game-ui-construction-approval-bar", r].filter(Boolean).join(" "), m = e ?? _r[l], h = u.filter((e) => e.tone !== "success").length, g = m.map((e) => xr(e, s, i));
4103
+ function Er({ actions: e, className: r, disabled: i = !1, label: a, localOnlyLabel: o = "Local-only construction", onAction: s, providerMode: c, status: l, validationWarnings: u = [], variant: d = "desktop", "data-testid": f }) {
4104
+ let p = ["game-ui-construction-approval-bar", r].filter(Boolean).join(" "), m = e ?? vr[l], h = u.filter((e) => e.tone !== "success").length, g = m.map((e) => Sr(e, s, i));
4100
4105
  return /* @__PURE__ */ n("section", {
4101
4106
  "aria-label": a,
4102
4107
  className: p,
@@ -4107,8 +4112,8 @@ function Tr({ actions: e, className: r, disabled: i = !1, label: a, localOnlyLab
4107
4112
  children: [/* @__PURE__ */ n("div", {
4108
4113
  className: "game-ui-construction-approval-meta",
4109
4114
  children: [c ? /* @__PURE__ */ t(Q, {
4110
- tone: gr[c],
4111
- children: hr[c]
4115
+ tone: _r[c],
4116
+ children: gr[c]
4112
4117
  }) : /* @__PURE__ */ t(Q, {
4113
4118
  tone: "success",
4114
4119
  children: o
@@ -4123,21 +4128,21 @@ function Tr({ actions: e, className: r, disabled: i = !1, label: a, localOnlyLab
4123
4128
  tone: "success",
4124
4129
  children: "Validation clear"
4125
4130
  })]
4126
- }), g.length > 0 ? /* @__PURE__ */ t(Rn, {
4131
+ }), g.length > 0 ? /* @__PURE__ */ t(zn, {
4127
4132
  actions: g,
4128
4133
  density: d === "small-mobile" ? "dense" : "comfortable",
4129
4134
  label: `${a} actions`
4130
4135
  }) : null]
4131
4136
  });
4132
4137
  }
4133
- function Er({ className: e, crew: r, emptyDescription: i = "Robot crew members appear here when a construction job starts.", emptyTitle: a = "No robot crew assigned", label: o, title: s, variant: c = "desktop", "data-testid": l }) {
4138
+ function Dr({ className: e, crew: r, emptyDescription: i = "Robot crew members appear here when a construction job starts.", emptyTitle: a = "No robot crew assigned", label: o, title: s, variant: c = "desktop", "data-testid": l }) {
4134
4139
  return /* @__PURE__ */ n("section", {
4135
4140
  "aria-label": o,
4136
4141
  className: ["game-ui-robot-crew-status", e].filter(Boolean).join(" "),
4137
4142
  "data-ui-hook": "robot-crew-status",
4138
4143
  "data-variant": c,
4139
4144
  "data-testid": l,
4140
- children: [s ? /* @__PURE__ */ t("header", { children: /* @__PURE__ */ t("strong", { children: s }) }) : null, r.length === 0 ? /* @__PURE__ */ t(Nn, {
4145
+ children: [s ? /* @__PURE__ */ t("header", { children: /* @__PURE__ */ t("strong", { children: s }) }) : null, r.length === 0 ? /* @__PURE__ */ t(Pn, {
4141
4146
  description: i,
4142
4147
  icon: "ai",
4143
4148
  title: a
@@ -4160,7 +4165,7 @@ function Er({ className: e, crew: r, emptyDescription: i = "Robot crew members a
4160
4165
  ]
4161
4166
  }),
4162
4167
  /* @__PURE__ */ t(Q, {
4163
- tone: mr[e.status],
4168
+ tone: hr[e.status],
4164
4169
  children: e.status
4165
4170
  })
4166
4171
  ]
@@ -4168,7 +4173,7 @@ function Er({ className: e, crew: r, emptyDescription: i = "Robot crew members a
4168
4173
  })]
4169
4174
  });
4170
4175
  }
4171
- function Dr({ activeView: e, after: r, before: i, className: a, label: o, onViewChange: s, variant: c = "desktop", "data-testid": l }) {
4176
+ function Or({ activeView: e, after: r, before: i, className: a, label: o, onViewChange: s, variant: c = "desktop", "data-testid": l }) {
4172
4177
  let u = ["game-ui-before-after-toggle", a].filter(Boolean).join(" "), d = e === "before" ? i : r;
4173
4178
  return /* @__PURE__ */ n("section", {
4174
4179
  "aria-label": o,
@@ -4177,7 +4182,7 @@ function Dr({ activeView: e, after: r, before: i, className: a, label: o, onView
4177
4182
  "data-ui-hook": "before-after-toggle",
4178
4183
  "data-variant": c,
4179
4184
  "data-testid": l,
4180
- children: [/* @__PURE__ */ t(zt, {
4185
+ children: [/* @__PURE__ */ t(Bt, {
4181
4186
  activeId: e,
4182
4187
  label: `${o} view`,
4183
4188
  ...s ? { onSelect: (e) => s(e) } : {},
@@ -4204,8 +4209,8 @@ function Dr({ activeView: e, after: r, before: i, className: a, label: o, onView
4204
4209
  })]
4205
4210
  });
4206
4211
  }
4207
- function Or({ className: e, density: r = "comfortable", job: i, onAction: a, onSelect: o, selected: s = !1, showApprovalBar: c = !0, showBeforeAfter: l = !1, variant: u = "desktop", "data-testid": d }) {
4208
- let f = ["game-ui-construction-job-card", e].filter(Boolean).join(" "), p = vr(i.status, i.statusLabel), m = u === "mobile" || u === "small-mobile", h = i.facts ?? [];
4212
+ function kr({ className: e, density: r = "comfortable", job: i, onAction: a, onSelect: o, selected: s = !1, showApprovalBar: c = !0, showBeforeAfter: l = !1, variant: u = "desktop", "data-testid": d }) {
4213
+ let f = ["game-ui-construction-job-card", e].filter(Boolean).join(" "), p = yr(i.status, i.statusLabel), m = u === "mobile" || u === "small-mobile", h = i.facts ?? [];
4209
4214
  return /* @__PURE__ */ n("article", {
4210
4215
  className: f,
4211
4216
  "data-density": r,
@@ -4225,19 +4230,19 @@ function Or({ className: e, density: r = "comfortable", job: i, onAction: a, onS
4225
4230
  onClick: () => o?.(i.id),
4226
4231
  type: "button",
4227
4232
  children: [/* @__PURE__ */ t($, {
4228
- icon: fr[i.status],
4233
+ icon: pr[i.status],
4229
4234
  size: m ? "sm" : "md"
4230
4235
  }), /* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t("strong", { children: i.title }), i.description ? /* @__PURE__ */ t("small", { children: i.description }) : null] })]
4231
4236
  }), /* @__PURE__ */ n("span", {
4232
4237
  className: "game-ui-construction-job-badges",
4233
4238
  children: [
4234
4239
  /* @__PURE__ */ t(Q, {
4235
- tone: dr[i.status],
4240
+ tone: fr[i.status],
4236
4241
  children: p
4237
4242
  }),
4238
4243
  i.providerMode ? /* @__PURE__ */ t(Q, {
4239
- tone: gr[i.providerMode],
4240
- children: hr[i.providerMode]
4244
+ tone: _r[i.providerMode],
4245
+ children: gr[i.providerMode]
4241
4246
  }) : null,
4242
4247
  i.badges?.map((e) => /* @__PURE__ */ t(Q, {
4243
4248
  tone: e.tone ?? "neutral",
@@ -4255,7 +4260,7 @@ function Or({ className: e, density: r = "comfortable", job: i, onAction: a, onS
4255
4260
  h.map((e) => /* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t("small", { children: e.label }), /* @__PURE__ */ t("b", { children: e.value })] }, e.id))
4256
4261
  ]
4257
4262
  }),
4258
- /* @__PURE__ */ t(wr, {
4263
+ /* @__PURE__ */ t(Tr, {
4259
4264
  label: `${i.title} progress`,
4260
4265
  progressLabel: i.progressLabel,
4261
4266
  status: i.status,
@@ -4266,19 +4271,19 @@ function Or({ className: e, density: r = "comfortable", job: i, onAction: a, onS
4266
4271
  max: i.progressMax,
4267
4272
  variant: u
4268
4273
  }),
4269
- l && Cr(i) ? /* @__PURE__ */ t(Dr, {
4274
+ l && wr(i) ? /* @__PURE__ */ t(Or, {
4270
4275
  activeView: "after",
4271
4276
  after: i.after,
4272
4277
  before: i.before,
4273
4278
  label: `${i.title} preview`,
4274
4279
  variant: u
4275
4280
  }) : null,
4276
- i.crew && i.crew.length > 0 ? /* @__PURE__ */ t(Er, {
4281
+ i.crew && i.crew.length > 0 ? /* @__PURE__ */ t(Dr, {
4277
4282
  crew: i.crew,
4278
4283
  label: `${i.title} robot crew`,
4279
4284
  variant: u
4280
4285
  }) : null,
4281
- c ? /* @__PURE__ */ t(Tr, {
4286
+ c ? /* @__PURE__ */ t(Er, {
4282
4287
  actions: i.actions,
4283
4288
  label: `${i.title} approval`,
4284
4289
  onAction: (e) => a?.(e, i.id),
@@ -4290,8 +4295,8 @@ function Or({ className: e, density: r = "comfortable", job: i, onAction: a, onS
4290
4295
  ]
4291
4296
  });
4292
4297
  }
4293
- function kr({ children: e, className: n, closeLabel: r = "Close jobs", disabled: i = !1, jobs: a = [], label: o, onAction: s, onOpenChange: c, onSelectJob: l, open: u, panelId: d = "game-compact-job-drawer-panel", selectedJobId: f, title: p, triggerLabel: m = "Construction jobs", variant: h = "mobile", "data-testid": g }) {
4294
- return /* @__PURE__ */ t(sr, {
4298
+ function Ar({ children: e, className: n, closeLabel: r = "Close jobs", disabled: i = !1, jobs: a = [], label: o, onAction: s, onOpenChange: c, onSelectJob: l, open: u, panelId: d = "game-compact-job-drawer-panel", selectedJobId: f, title: p, triggerLabel: m = "Construction jobs", variant: h = "mobile", "data-testid": g }) {
4299
+ return /* @__PURE__ */ t(cr, {
4295
4300
  className: ["game-ui-compact-job-drawer", n].filter(Boolean).join(" "),
4296
4301
  closeLabel: r,
4297
4302
  disabled: i,
@@ -4307,7 +4312,7 @@ function kr({ children: e, className: n, closeLabel: r = "Close jobs", disabled:
4307
4312
  children: e ?? /* @__PURE__ */ t("div", {
4308
4313
  className: "game-ui-compact-job-drawer-list",
4309
4314
  tabIndex: 0,
4310
- children: a.map((e) => /* @__PURE__ */ t(Or, {
4315
+ children: a.map((e) => /* @__PURE__ */ t(kr, {
4311
4316
  density: "dense",
4312
4317
  job: e,
4313
4318
  onAction: s,
@@ -4319,7 +4324,7 @@ function kr({ children: e, className: n, closeLabel: r = "Close jobs", disabled:
4319
4324
  })
4320
4325
  });
4321
4326
  }
4322
- function Ar({ activePreviewView: e = "after", className: r, density: i = "comfortable", drawerOpen: a = !1, emptyDescription: o = "Draft construction jobs will appear here before any provider call is allowed.", emptyTitle: s = "No construction jobs", jobs: c, label: l, onAction: u, onDrawerOpenChange: d, onPreviewViewChange: f, onSelectJob: p, selectedJobId: m, subtitle: h, title: g, variant: _ = "desktop", "data-testid": v }) {
4327
+ function jr({ activePreviewView: e = "after", className: r, density: i = "comfortable", drawerOpen: a = !1, emptyDescription: o = "Draft construction jobs will appear here before any provider call is allowed.", emptyTitle: s = "No construction jobs", jobs: c, label: l, onAction: u, onDrawerOpenChange: d, onPreviewViewChange: f, onSelectJob: p, selectedJobId: m, subtitle: h, title: g, variant: _ = "desktop", "data-testid": v }) {
4323
4328
  let y = ["game-ui-contractor-panel", r].filter(Boolean).join(" "), b = c.find((e) => e.id === m) ?? c[0];
4324
4329
  return _ === "mobile" || _ === "small-mobile" ? /* @__PURE__ */ n("section", {
4325
4330
  "aria-label": l,
@@ -4328,7 +4333,7 @@ function Ar({ activePreviewView: e = "after", className: r, density: i = "comfor
4328
4333
  "data-variant": _,
4329
4334
  "data-testid": v,
4330
4335
  children: [
4331
- /* @__PURE__ */ t(kr, {
4336
+ /* @__PURE__ */ t(Ar, {
4332
4337
  jobs: c,
4333
4338
  label: `${l} drawer`,
4334
4339
  onAction: u,
@@ -4340,16 +4345,16 @@ function Ar({ activePreviewView: e = "after", className: r, density: i = "comfor
4340
4345
  triggerLabel: "Contractor",
4341
4346
  variant: _
4342
4347
  }),
4343
- b && !a ? /* @__PURE__ */ t(Or, {
4348
+ b && !a ? /* @__PURE__ */ t(kr, {
4344
4349
  density: "dense",
4345
4350
  job: b,
4346
4351
  onAction: u,
4347
4352
  onSelect: p,
4348
4353
  selected: !0,
4349
- showBeforeAfter: Cr(b),
4354
+ showBeforeAfter: wr(b),
4350
4355
  variant: _
4351
4356
  }) : null,
4352
- b ? null : /* @__PURE__ */ t(Nn, {
4357
+ b ? null : /* @__PURE__ */ t(Pn, {
4353
4358
  description: o,
4354
4359
  icon: "energy",
4355
4360
  title: s
@@ -4370,7 +4375,7 @@ function Ar({ activePreviewView: e = "after", className: r, density: i = "comfor
4370
4375
  className: "game-ui-contractor-panel-subtitle",
4371
4376
  children: h
4372
4377
  }) : null,
4373
- c.length === 0 ? /* @__PURE__ */ t(Nn, {
4378
+ c.length === 0 ? /* @__PURE__ */ t(Pn, {
4374
4379
  description: o,
4375
4380
  icon: "energy",
4376
4381
  title: s
@@ -4381,7 +4386,7 @@ function Ar({ activePreviewView: e = "after", className: r, density: i = "comfor
4381
4386
  "aria-label": "Construction job queue",
4382
4387
  className: "game-ui-contractor-job-list",
4383
4388
  tabIndex: 0,
4384
- children: c.map((e) => /* @__PURE__ */ t(Or, {
4389
+ children: c.map((e) => /* @__PURE__ */ t(kr, {
4385
4390
  density: i,
4386
4391
  job: e,
4387
4392
  onAction: u,
@@ -4394,7 +4399,7 @@ function Ar({ activePreviewView: e = "after", className: r, density: i = "comfor
4394
4399
  className: "game-ui-contractor-detail",
4395
4400
  "aria-label": `${b.title} detail`,
4396
4401
  children: [
4397
- /* @__PURE__ */ t(wr, {
4402
+ /* @__PURE__ */ t(Tr, {
4398
4403
  label: `${b.title} progress detail`,
4399
4404
  progressLabel: b.progressLabel,
4400
4405
  status: b.status,
@@ -4405,7 +4410,7 @@ function Ar({ activePreviewView: e = "after", className: r, density: i = "comfor
4405
4410
  max: b.progressMax,
4406
4411
  variant: _
4407
4412
  }),
4408
- Cr(b) ? /* @__PURE__ */ t(Dr, {
4413
+ wr(b) ? /* @__PURE__ */ t(Or, {
4409
4414
  activeView: e,
4410
4415
  after: b.after,
4411
4416
  before: b.before,
@@ -4413,13 +4418,13 @@ function Ar({ activePreviewView: e = "after", className: r, density: i = "comfor
4413
4418
  onViewChange: f,
4414
4419
  variant: _
4415
4420
  }) : null,
4416
- /* @__PURE__ */ t(Er, {
4421
+ /* @__PURE__ */ t(Dr, {
4417
4422
  crew: b.crew ?? [],
4418
4423
  label: `${b.title} robot crew`,
4419
4424
  title: "Robot crew",
4420
4425
  variant: _
4421
4426
  }),
4422
- /* @__PURE__ */ t(Tr, {
4427
+ /* @__PURE__ */ t(Er, {
4423
4428
  actions: b.actions,
4424
4429
  label: `${b.title} approval`,
4425
4430
  onAction: u ? (e) => u(e, b.id) : void 0,
@@ -4437,16 +4442,16 @@ function Ar({ activePreviewView: e = "after", className: r, density: i = "comfor
4437
4442
  }
4438
4443
  //#endregion
4439
4444
  //#region src/GamePanelSystem.tsx
4440
- function jr(...e) {
4445
+ function Mr(...e) {
4441
4446
  return e.filter(Boolean).join(" ");
4442
4447
  }
4443
- var Mr = {
4448
+ var Nr = {
4444
4449
  collapse: "Collapse",
4445
4450
  expand: "Expand"
4446
4451
  };
4447
- function Nr({ actions: e, children: r, className: i, defaultOpen: a = !0, labels: o, onOpenChange: s, open: c, title: l, tone: d = "default", ...f }) {
4452
+ function Pr({ actions: e, children: r, className: i, defaultOpen: a = !0, labels: o, onOpenChange: s, open: c, title: l, tone: d = "default", ...f }) {
4448
4453
  let p = u(), [h, g] = m(a), _ = c ?? h, v = {
4449
- ...Mr,
4454
+ ...Nr,
4450
4455
  ...o
4451
4456
  }, y = () => {
4452
4457
  let e = !_;
@@ -4454,7 +4459,7 @@ function Nr({ actions: e, children: r, className: i, defaultOpen: a = !0, labels
4454
4459
  };
4455
4460
  return /* @__PURE__ */ n("section", {
4456
4461
  ...f,
4457
- className: jr("game-ui-collapsible", i),
4462
+ className: Mr("game-ui-collapsible", i),
4458
4463
  "data-open": _,
4459
4464
  "data-panel-tone": d,
4460
4465
  children: [/* @__PURE__ */ n("header", {
@@ -4493,13 +4498,13 @@ function Nr({ actions: e, children: r, className: i, defaultOpen: a = !0, labels
4493
4498
  })]
4494
4499
  });
4495
4500
  }
4496
- var Pr = {
4501
+ var Fr = {
4497
4502
  close: "Close",
4498
4503
  maximize: "Maximize",
4499
4504
  minimize: "Minimize",
4500
4505
  restore: "Restore"
4501
4506
  };
4502
- function Fr({ kind: e }) {
4507
+ function Ir({ kind: e }) {
4503
4508
  return /* @__PURE__ */ t("svg", {
4504
4509
  "aria-hidden": "true",
4505
4510
  fill: "none",
@@ -4519,9 +4524,9 @@ function Fr({ kind: e }) {
4519
4524
  })
4520
4525
  });
4521
4526
  }
4522
- function Ir({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, className: a, defaultState: o = "normal", footer: s, icon: c, labels: l, onClose: u, onStateChange: d, state: f, title: p, ...h }) {
4527
+ function Lr({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, className: a, defaultState: o = "normal", footer: s, icon: c, labels: l, onClose: u, onStateChange: d, state: f, title: p, ...h }) {
4523
4528
  let [g, _] = m(o), v = f ?? g, y = {
4524
- ...Pr,
4529
+ ...Fr,
4525
4530
  ...l
4526
4531
  }, b = (e) => {
4527
4532
  f === void 0 && _(e), d?.(e);
@@ -4529,7 +4534,7 @@ function Ir({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, classNa
4529
4534
  return /* @__PURE__ */ n("section", {
4530
4535
  ...h,
4531
4536
  "aria-label": p,
4532
- className: jr("game-ui-window", a),
4537
+ className: Mr("game-ui-window", a),
4533
4538
  "data-window-state": v,
4534
4539
  role: "group",
4535
4540
  children: [/* @__PURE__ */ n("header", {
@@ -4552,21 +4557,21 @@ function Ir({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, classNa
4552
4557
  className: "game-ui-icon-button game-ui-window-button",
4553
4558
  onClick: () => b(x ? "normal" : "minimized"),
4554
4559
  type: "button",
4555
- children: /* @__PURE__ */ t(Fr, { kind: x ? "restore" : "minimize" })
4560
+ children: /* @__PURE__ */ t(Ir, { kind: x ? "restore" : "minimize" })
4556
4561
  }) : null,
4557
4562
  e ? /* @__PURE__ */ t("button", {
4558
4563
  "aria-label": S ? y.restore : y.maximize,
4559
4564
  className: "game-ui-icon-button game-ui-window-button",
4560
4565
  onClick: () => b(S ? "normal" : "maximized"),
4561
4566
  type: "button",
4562
- children: /* @__PURE__ */ t(Fr, { kind: S ? "restore" : "maximize" })
4567
+ children: /* @__PURE__ */ t(Ir, { kind: S ? "restore" : "maximize" })
4563
4568
  }) : null,
4564
4569
  u ? /* @__PURE__ */ t("button", {
4565
4570
  "aria-label": y.close,
4566
4571
  className: "game-ui-icon-button game-ui-window-button",
4567
4572
  onClick: u,
4568
4573
  type: "button",
4569
- children: /* @__PURE__ */ t(Fr, { kind: "close" })
4574
+ children: /* @__PURE__ */ t(Ir, { kind: "close" })
4570
4575
  }) : null
4571
4576
  ]
4572
4577
  })
@@ -4586,14 +4591,14 @@ function Ir({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, classNa
4586
4591
  })]
4587
4592
  });
4588
4593
  }
4589
- function Lr({ children: e, className: r, closeLabel: i = "Close", closeOnBackdrop: a = !0, footer: o, onClose: s, open: c, position: d = "center", size: f = "md", title: m }) {
4594
+ function Rr({ children: e, className: r, closeLabel: i = "Close", closeOnBackdrop: a = !0, footer: o, onClose: s, open: c, position: d = "center", size: f = "md", title: m }) {
4590
4595
  let h = p(null), g = u();
4591
4596
  return l(() => {
4592
4597
  let e = h.current;
4593
4598
  e && (c && !e.open && e.showModal(), !c && e.open && e.close());
4594
4599
  }, [c]), /* @__PURE__ */ t("dialog", {
4595
4600
  "aria-labelledby": g,
4596
- className: jr("game-ui-modal", r),
4601
+ className: Mr("game-ui-modal", r),
4597
4602
  "data-position": d,
4598
4603
  "data-size": f,
4599
4604
  onCancel: (e) => {
@@ -4617,7 +4622,7 @@ function Lr({ children: e, className: r, closeLabel: i = "Close", closeOnBackdro
4617
4622
  className: "game-ui-icon-button game-ui-window-button",
4618
4623
  onClick: s,
4619
4624
  type: "button",
4620
- children: /* @__PURE__ */ t(Fr, { kind: "close" })
4625
+ children: /* @__PURE__ */ t(Ir, { kind: "close" })
4621
4626
  })]
4622
4627
  }),
4623
4628
  /* @__PURE__ */ t("div", {
@@ -4634,7 +4639,7 @@ function Lr({ children: e, className: r, closeLabel: i = "Close", closeOnBackdro
4634
4639
  }
4635
4640
  //#endregion
4636
4641
  //#region src/previewStates.ts
4637
- var Rr = [
4642
+ var zr = [
4638
4643
  {
4639
4644
  id: "history-human-long",
4640
4645
  kind: "human",
@@ -4656,23 +4661,23 @@ var Rr = [
4656
4661
  speaker: "Table",
4657
4662
  text: "Three votes are locked. One more read can still change the pact."
4658
4663
  }
4659
- ], zr = {
4660
- ...z,
4664
+ ], Br = {
4661
4665
  ...B,
4666
+ ...ve,
4662
4667
  ...ye,
4663
4668
  ...V,
4664
4669
  ...H,
4665
4670
  ...U,
4666
4671
  ...W,
4667
4672
  ...xe,
4668
- ...L
4669
- }, Br = {
4673
+ ...R
4674
+ }, Vr = {
4670
4675
  toneAttr: "data-game-ui-tone",
4671
4676
  toneGlass: "glass",
4672
4677
  densityAttr: "data-game-ui-density",
4673
4678
  densityCompact: "compact",
4674
4679
  scopeClass: "game-ui-overlay-scope"
4675
- }, Vr = be, Hr = /* @__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("."), Ur = {
4680
+ }, Hr = be, Ur = /* @__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("."), Wr = {
4676
4681
  en: {
4677
4682
  triggerLabel: "EN",
4678
4683
  langMenuLabel: "Preview language",
@@ -4874,7 +4879,7 @@ var Rr = [
4874
4879
  hint: "Rotate manually if this browser blocks automatic landscape lock."
4875
4880
  },
4876
4881
  historyLabel: "Round history",
4877
- history: Rr
4882
+ history: zr
4878
4883
  },
4879
4884
  "zh-CN": {
4880
4885
  triggerLabel: "中",
@@ -5101,18 +5106,18 @@ var Rr = [
5101
5106
  }
5102
5107
  ]
5103
5108
  }
5104
- }, Wr = i(Ur.en), Gr = () => c(Wr), Kr = [
5109
+ }, Gr = i(Wr.en), Kr = () => c(Gr), qr = [
5105
5110
  {
5106
5111
  id: "colors",
5107
- tokens: F
5112
+ tokens: I
5108
5113
  },
5109
5114
  {
5110
5115
  id: "semantic",
5111
- tokens: z
5116
+ tokens: B
5112
5117
  },
5113
5118
  {
5114
5119
  id: "typography",
5115
- tokens: B
5120
+ tokens: ve
5116
5121
  },
5117
5122
  {
5118
5123
  id: "spacing",
@@ -5132,15 +5137,15 @@ var Rr = [
5132
5137
  },
5133
5138
  {
5134
5139
  id: "overlayGlass",
5135
- tokens: R
5140
+ tokens: z
5136
5141
  },
5137
5142
  {
5138
5143
  id: "liquidMetal",
5139
- tokens: I
5144
+ tokens: L
5140
5145
  },
5141
5146
  {
5142
5147
  id: "liquidGooey",
5143
- tokens: L
5148
+ tokens: R
5144
5149
  },
5145
5150
  {
5146
5151
  id: "layers",
@@ -5155,7 +5160,7 @@ var Rr = [
5155
5160
  tokens: xe
5156
5161
  }
5157
5162
  ];
5158
- function qr({ id: e, label: r, tokens: i }) {
5163
+ function Jr({ id: e, label: r, tokens: i }) {
5159
5164
  return /* @__PURE__ */ n("article", {
5160
5165
  className: "game-ui-token-card",
5161
5166
  children: [/* @__PURE__ */ t("h3", { children: r }), /* @__PURE__ */ t("div", {
@@ -5167,18 +5172,18 @@ function qr({ id: e, label: r, tokens: i }) {
5167
5172
  })]
5168
5173
  });
5169
5174
  }
5170
- function Jr() {
5175
+ function Yr() {
5171
5176
  return /* @__PURE__ */ t("div", {
5172
5177
  "aria-label": "Clay color swatches",
5173
5178
  className: "game-ui-swatch-grid",
5174
- children: Object.entries(F).map(([e, r]) => /* @__PURE__ */ n("figure", {
5179
+ children: Object.entries(I).map(([e, r]) => /* @__PURE__ */ n("figure", {
5175
5180
  className: "game-ui-swatch",
5176
5181
  children: [/* @__PURE__ */ t("span", { style: { background: r } }), /* @__PURE__ */ n("figcaption", { children: [/* @__PURE__ */ t("strong", { children: e }), /* @__PURE__ */ t("code", { children: r })] })]
5177
5182
  }, e))
5178
5183
  });
5179
5184
  }
5180
- function Yr() {
5181
- let { type: e } = Gr();
5185
+ function Xr() {
5186
+ let { type: e } = Kr();
5182
5187
  return /* @__PURE__ */ n("div", {
5183
5188
  className: "game-ui-type-scale",
5184
5189
  children: [
@@ -5193,8 +5198,8 @@ function Yr() {
5193
5198
  ]
5194
5199
  });
5195
5200
  }
5196
- function Xr() {
5197
- let { buttons: e } = Gr();
5201
+ function Zr() {
5202
+ let { buttons: e } = Kr();
5198
5203
  return /* @__PURE__ */ n(X, {
5199
5204
  title: e.panelTitle,
5200
5205
  tone: "strong",
@@ -5232,9 +5237,9 @@ function Xr() {
5232
5237
  /* @__PURE__ */ n("div", {
5233
5238
  className: "game-ui-component-row",
5234
5239
  children: [
5235
- /* @__PURE__ */ t(It, {
5240
+ /* @__PURE__ */ t(Lt, {
5236
5241
  label: e.settingsTip,
5237
- children: /* @__PURE__ */ t(Ft, {
5242
+ children: /* @__PURE__ */ t(It, {
5238
5243
  label: e.settingsTip,
5239
5244
  children: /* @__PURE__ */ t($, {
5240
5245
  icon: "settings",
@@ -5242,7 +5247,7 @@ function Xr() {
5242
5247
  })
5243
5248
  })
5244
5249
  }),
5245
- /* @__PURE__ */ t(Ft, {
5250
+ /* @__PURE__ */ t(It, {
5246
5251
  label: e.copyInvite,
5247
5252
  children: /* @__PURE__ */ t($, {
5248
5253
  icon: "copy",
@@ -5263,7 +5268,7 @@ function Xr() {
5263
5268
  })
5264
5269
  ]
5265
5270
  }),
5266
- /* @__PURE__ */ t(zt, {
5271
+ /* @__PURE__ */ t(Bt, {
5267
5272
  activeId: "live",
5268
5273
  label: e.segmentedLabel,
5269
5274
  options: [
@@ -5281,7 +5286,7 @@ function Xr() {
5281
5286
  }
5282
5287
  ]
5283
5288
  }),
5284
- /* @__PURE__ */ t(Lt, {
5289
+ /* @__PURE__ */ t(Rt, {
5285
5290
  activeId: "portal",
5286
5291
  tabs: [
5287
5292
  {
@@ -5298,7 +5303,7 @@ function Xr() {
5298
5303
  }
5299
5304
  ]
5300
5305
  }),
5301
- /* @__PURE__ */ t(Ht, {
5306
+ /* @__PURE__ */ t(Ut, {
5302
5307
  items: [
5303
5308
  {
5304
5309
  id: "wave",
@@ -5315,28 +5320,28 @@ function Xr() {
5315
5320
  ],
5316
5321
  label: e.radialLabel
5317
5322
  }),
5318
- /* @__PURE__ */ t(Bt, {
5323
+ /* @__PURE__ */ t(Vt, {
5319
5324
  label: e.sliderLabel,
5320
5325
  max: 100,
5321
5326
  min: 0,
5322
5327
  value: 68
5323
5328
  }),
5324
- /* @__PURE__ */ t(Vt, {
5329
+ /* @__PURE__ */ t(Ht, {
5325
5330
  checked: !0,
5326
5331
  label: e.toggleLabel
5327
5332
  })
5328
5333
  ]
5329
5334
  });
5330
5335
  }
5331
- function Zr() {
5332
- let { hud: e, tiles: r } = Gr();
5336
+ function Qr() {
5337
+ let { hud: e, tiles: r } = Kr();
5333
5338
  return /* @__PURE__ */ n("div", {
5334
5339
  className: "game-ui-stage-demo",
5335
5340
  children: [/* @__PURE__ */ n("div", {
5336
5341
  "aria-label": "Clay world HUD preview",
5337
5342
  className: "game-ui-stage-world",
5338
5343
  children: [
5339
- /* @__PURE__ */ t(hn, {
5344
+ /* @__PURE__ */ t(gn, {
5340
5345
  label: e.label,
5341
5346
  items: [
5342
5347
  {
@@ -5359,15 +5364,15 @@ function Zr() {
5359
5364
  value: "02:46"
5360
5365
  }
5361
5366
  ],
5362
- actions: /* @__PURE__ */ n(Pt, {
5367
+ actions: /* @__PURE__ */ n(Ft, {
5363
5368
  label: e.tools,
5364
- children: [/* @__PURE__ */ t(Ft, {
5369
+ children: [/* @__PURE__ */ t(It, {
5365
5370
  label: e.history,
5366
5371
  children: /* @__PURE__ */ t($, {
5367
5372
  icon: "scroll",
5368
5373
  size: "sm"
5369
5374
  })
5370
- }), /* @__PURE__ */ t(Ft, {
5375
+ }), /* @__PURE__ */ t(It, {
5371
5376
  label: e.settings,
5372
5377
  children: /* @__PURE__ */ t($, {
5373
5378
  icon: "settings",
@@ -5407,7 +5412,7 @@ function Zr() {
5407
5412
  }), /* @__PURE__ */ n("div", {
5408
5413
  className: "game-ui-stage-sidecar",
5409
5414
  children: [
5410
- /* @__PURE__ */ t(_n, {
5415
+ /* @__PURE__ */ t(vn, {
5411
5416
  badge: r.daily.badge,
5412
5417
  icon: "scroll",
5413
5418
  kicker: r.daily.kicker,
@@ -5416,7 +5421,7 @@ function Zr() {
5416
5421
  title: r.daily.title,
5417
5422
  tone: "daily"
5418
5423
  }),
5419
- /* @__PURE__ */ t(_n, {
5424
+ /* @__PURE__ */ t(vn, {
5420
5425
  badge: r.portal.badge,
5421
5426
  icon: "portal",
5422
5427
  kicker: r.portal.kicker,
@@ -5424,7 +5429,7 @@ function Zr() {
5424
5429
  title: r.portal.title,
5425
5430
  tone: "portal"
5426
5431
  }),
5427
- /* @__PURE__ */ t(_n, {
5432
+ /* @__PURE__ */ t(vn, {
5428
5433
  icon: "energy",
5429
5434
  kicker: r.host.kicker,
5430
5435
  summary: r.host.summary,
@@ -5435,21 +5440,21 @@ function Zr() {
5435
5440
  })]
5436
5441
  });
5437
5442
  }
5438
- function Qr() {
5439
- let { hud: e, buttons: r } = Gr(), i = (i) => {
5443
+ function $r() {
5444
+ let { hud: e, buttons: r } = Kr(), i = (i) => {
5440
5445
  let a = i === "glass";
5441
5446
  return /* @__PURE__ */ n("div", {
5442
5447
  "aria-label": a ? "Overlay glass HUD" : "Default clay HUD",
5443
5448
  className: [
5444
5449
  "game-ui-stage-world",
5445
5450
  "game-ui-overlay-glass-proof",
5446
- a ? Br.scopeClass : void 0
5451
+ a ? Vr.scopeClass : void 0
5447
5452
  ].filter(Boolean).join(" "),
5448
5453
  ...a ? {
5449
- [Br.toneAttr]: Br.toneGlass,
5450
- [Br.densityAttr]: Br.densityCompact
5454
+ [Vr.toneAttr]: Vr.toneGlass,
5455
+ [Vr.densityAttr]: Vr.densityCompact
5451
5456
  } : {},
5452
- children: [/* @__PURE__ */ t(hn, {
5457
+ children: [/* @__PURE__ */ t(gn, {
5453
5458
  label: e.label,
5454
5459
  items: [
5455
5460
  {
@@ -5472,15 +5477,15 @@ function Qr() {
5472
5477
  value: "02:46"
5473
5478
  }
5474
5479
  ],
5475
- actions: /* @__PURE__ */ n(Pt, {
5480
+ actions: /* @__PURE__ */ n(Ft, {
5476
5481
  label: e.tools,
5477
- children: [/* @__PURE__ */ t(Ft, {
5482
+ children: [/* @__PURE__ */ t(It, {
5478
5483
  label: e.history,
5479
5484
  children: /* @__PURE__ */ t($, {
5480
5485
  icon: "scroll",
5481
5486
  size: "sm"
5482
5487
  })
5483
- }), /* @__PURE__ */ t(Ft, {
5488
+ }), /* @__PURE__ */ t(It, {
5484
5489
  label: e.settings,
5485
5490
  children: /* @__PURE__ */ t($, {
5486
5491
  icon: "settings",
@@ -5501,7 +5506,7 @@ function Qr() {
5501
5506
  tone: "success",
5502
5507
  children: r.readyBadge
5503
5508
  }),
5504
- /* @__PURE__ */ t(Mn, {
5509
+ /* @__PURE__ */ t(Nn, {
5505
5510
  label: e.reveal,
5506
5511
  value: 68
5507
5512
  })
@@ -5539,22 +5544,22 @@ function Qr() {
5539
5544
  children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t("strong", { children: "Overlay glass + compact" }), /* @__PURE__ */ n("span", {
5540
5545
  className: "game-ui-small-copy",
5541
5546
  children: [
5542
- Br.toneAttr,
5547
+ Vr.toneAttr,
5543
5548
  "=\"",
5544
- Br.toneGlass,
5549
+ Vr.toneGlass,
5545
5550
  "\" ·",
5546
5551
  " ",
5547
- Br.densityAttr,
5552
+ Vr.densityAttr,
5548
5553
  "=\"",
5549
- Br.densityCompact,
5554
+ Vr.densityCompact,
5550
5555
  "\""
5551
5556
  ]
5552
5557
  })] }), i("glass")]
5553
5558
  })]
5554
5559
  });
5555
5560
  }
5556
- function $r() {
5557
- let { liquidMetal: e } = Gr();
5561
+ function ei() {
5562
+ let { liquidMetal: e } = Kr();
5558
5563
  return /* @__PURE__ */ n("div", {
5559
5564
  className: "game-ui-liquid-metal-compare",
5560
5565
  children: [/* @__PURE__ */ t(X, {
@@ -5562,7 +5567,7 @@ function $r() {
5562
5567
  tone: "strong",
5563
5568
  children: /* @__PURE__ */ t("div", {
5564
5569
  className: "game-ui-liquid-metal-stage",
5565
- children: /* @__PURE__ */ t(ve, {
5570
+ children: /* @__PURE__ */ t(_e, {
5566
5571
  renderer: "css",
5567
5572
  children: e.cta
5568
5573
  })
@@ -5572,7 +5577,7 @@ function $r() {
5572
5577
  tone: "strong",
5573
5578
  children: /* @__PURE__ */ t("div", {
5574
5579
  className: "game-ui-liquid-metal-stage",
5575
- children: /* @__PURE__ */ t(ve, {
5580
+ children: /* @__PURE__ */ t(_e, {
5576
5581
  renderer: "webgl",
5577
5582
  children: e.cta
5578
5583
  })
@@ -5580,13 +5585,13 @@ function $r() {
5580
5585
  })]
5581
5586
  });
5582
5587
  }
5583
- function ei() {
5584
- let { modals: e } = Gr();
5588
+ function ti() {
5589
+ let { modals: e } = Kr();
5585
5590
  return /* @__PURE__ */ n("div", {
5586
5591
  className: "game-ui-preview-two-up",
5587
- children: [/* @__PURE__ */ n(Mt, {
5592
+ children: [/* @__PURE__ */ n(Nt, {
5588
5593
  title: e.dialogTitle,
5589
- children: [/* @__PURE__ */ t("p", { children: e.dialogBody }), /* @__PURE__ */ n(Pt, {
5594
+ children: [/* @__PURE__ */ t("p", { children: e.dialogBody }), /* @__PURE__ */ n(Ft, {
5590
5595
  label: e.actionsLabel,
5591
5596
  children: [/* @__PURE__ */ t(w, {
5592
5597
  variant: "primary",
@@ -5600,16 +5605,16 @@ function ei() {
5600
5605
  title: e.panelTitle,
5601
5606
  tone: "strong",
5602
5607
  children: [
5603
- /* @__PURE__ */ t(Ut, {
5608
+ /* @__PURE__ */ t(Wt, {
5604
5609
  tone: "success",
5605
5610
  children: e.toastOk
5606
5611
  }),
5607
- /* @__PURE__ */ t(Ut, {
5612
+ /* @__PURE__ */ t(Wt, {
5608
5613
  tone: "danger",
5609
5614
  children: e.toastErr
5610
5615
  }),
5611
- /* @__PURE__ */ t(xn, { label: e.loading }),
5612
- /* @__PURE__ */ t(xn, {
5616
+ /* @__PURE__ */ t(Sn, { label: e.loading }),
5617
+ /* @__PURE__ */ t(Sn, {
5613
5618
  label: e.loadingErr,
5614
5619
  tone: "error"
5615
5620
  })
@@ -5617,14 +5622,14 @@ function ei() {
5617
5622
  })]
5618
5623
  });
5619
5624
  }
5620
- function ti() {
5621
- let { cards: e } = Gr();
5625
+ function ni() {
5626
+ let { cards: e } = Kr();
5622
5627
  return /* @__PURE__ */ n("div", {
5623
5628
  className: "game-ui-preview-two-up",
5624
5629
  children: [/* @__PURE__ */ t(X, {
5625
5630
  title: e.fanTitle,
5626
5631
  tone: "strong",
5627
- children: /* @__PURE__ */ t(gn, {
5632
+ children: /* @__PURE__ */ t(_n, {
5628
5633
  label: e.fanLabel,
5629
5634
  cards: [
5630
5635
  {
@@ -5656,16 +5661,16 @@ function ti() {
5656
5661
  }), /* @__PURE__ */ n("div", {
5657
5662
  className: "game-ui-asset-path-grid",
5658
5663
  children: [
5659
- /* @__PURE__ */ t("code", { children: en.catalog.manifest }),
5660
- /* @__PURE__ */ t("code", { children: en.catalog.sourceCatalog }),
5661
- /* @__PURE__ */ t("code", { children: en.buttons.primary }),
5662
- /* @__PURE__ */ t("code", { children: en.icons.trophy })
5664
+ /* @__PURE__ */ t("code", { children: tn.catalog.manifest }),
5665
+ /* @__PURE__ */ t("code", { children: tn.catalog.sourceCatalog }),
5666
+ /* @__PURE__ */ t("code", { children: tn.buttons.primary }),
5667
+ /* @__PURE__ */ t("code", { children: tn.icons.trophy })
5663
5668
  ]
5664
5669
  })]
5665
5670
  })]
5666
5671
  });
5667
5672
  }
5668
- var ni = [
5673
+ var ri = [
5669
5674
  {
5670
5675
  id: "terrain",
5671
5676
  label: "Terrain",
@@ -5681,7 +5686,7 @@ var ni = [
5681
5686
  label: "Place",
5682
5687
  icon: "gem"
5683
5688
  }
5684
- ], ri = [
5689
+ ], ii = [
5685
5690
  {
5686
5691
  id: "raise",
5687
5692
  label: "Raise",
@@ -5707,7 +5712,7 @@ var ni = [
5707
5712
  label: "Paint",
5708
5713
  shortcut: "5"
5709
5714
  }
5710
- ], ii = [
5715
+ ], ai = [
5711
5716
  {
5712
5717
  id: "grass",
5713
5718
  label: "Grass",
@@ -5723,7 +5728,7 @@ var ni = [
5723
5728
  label: "Path",
5724
5729
  color: "#b98d5d"
5725
5730
  }
5726
- ], ai = [{
5731
+ ], oi = [{
5727
5732
  id: "foundation",
5728
5733
  label: "Foundation",
5729
5734
  icon: "home",
@@ -5742,10 +5747,10 @@ var ni = [
5742
5747
  status: "ready"
5743
5748
  }]
5744
5749
  }];
5745
- function oi() {
5750
+ function si() {
5746
5751
  return /* @__PURE__ */ n("div", {
5747
5752
  className: "game-ui-preview-two-up",
5748
- children: [/* @__PURE__ */ t(ur, {
5753
+ children: [/* @__PURE__ */ t(dr, {
5749
5754
  activeBuildCategoryId: "foundation",
5750
5755
  activeMaterialId: "grass",
5751
5756
  activeModeId: "terrain",
@@ -5754,10 +5759,10 @@ function oi() {
5754
5759
  radius: 2.75,
5755
5760
  strength: .45
5756
5761
  },
5757
- buildCategories: ai,
5762
+ buildCategories: oi,
5758
5763
  label: "Desktop terrain and build tools",
5759
- materials: ii,
5760
- modes: ni,
5764
+ materials: ai,
5765
+ modes: ri,
5761
5766
  selectedBuildItemId: "floor-2x2",
5762
5767
  status: {
5763
5768
  label: "Ready",
@@ -5768,12 +5773,12 @@ function oi() {
5768
5773
  progressValue: 68
5769
5774
  },
5770
5775
  title: "Island tools",
5771
- tools: ri,
5776
+ tools: ii,
5772
5777
  undoRedo: {
5773
5778
  canRedo: !1,
5774
5779
  canUndo: !0
5775
5780
  }
5776
- }), /* @__PURE__ */ t(ur, {
5781
+ }), /* @__PURE__ */ t(dr, {
5777
5782
  activeBuildCategoryId: "foundation",
5778
5783
  activeMaterialId: "path",
5779
5784
  activeModeId: "terrain",
@@ -5782,11 +5787,11 @@ function oi() {
5782
5787
  radius: 1.5,
5783
5788
  strength: .3
5784
5789
  },
5785
- buildCategories: ai,
5790
+ buildCategories: oi,
5786
5791
  drawerOpen: !0,
5787
5792
  label: "Small mobile terrain drawer",
5788
- materials: ii,
5789
- modes: ni,
5793
+ materials: ai,
5794
+ modes: ri,
5790
5795
  selectedBuildItemId: "floor-2x2",
5791
5796
  status: {
5792
5797
  label: "Blocked",
@@ -5794,7 +5799,7 @@ function oi() {
5794
5799
  description: "This edit would bury a placed object."
5795
5800
  },
5796
5801
  title: "Tools",
5797
- tools: ri,
5802
+ tools: ii,
5798
5803
  undoRedo: {
5799
5804
  canRedo: !0,
5800
5805
  canUndo: !0
@@ -5803,7 +5808,7 @@ function oi() {
5803
5808
  })]
5804
5809
  });
5805
5810
  }
5806
- function si({ label: e, mode: r }) {
5811
+ function ci({ label: e, mode: r }) {
5807
5812
  return /* @__PURE__ */ n("div", {
5808
5813
  className: "game-ui-construction-preview-card",
5809
5814
  "data-preview": r,
@@ -5817,7 +5822,7 @@ function si({ label: e, mode: r }) {
5817
5822
  ]
5818
5823
  });
5819
5824
  }
5820
- var ci = [
5825
+ var li = [
5821
5826
  {
5822
5827
  id: "preview-deck",
5823
5828
  title: "Deck robot crew",
@@ -5878,7 +5883,7 @@ var ci = [
5878
5883
  before: {
5879
5884
  label: "Before",
5880
5885
  caption: "Uneven terrain pad.",
5881
- content: /* @__PURE__ */ t(si, {
5886
+ content: /* @__PURE__ */ t(ci, {
5882
5887
  label: "Rough pad",
5883
5888
  mode: "before"
5884
5889
  })
@@ -5886,7 +5891,7 @@ var ci = [
5886
5891
  after: {
5887
5892
  label: "After",
5888
5893
  caption: "Flattened foundation pad with safe clearance.",
5889
- content: /* @__PURE__ */ t(si, {
5894
+ content: /* @__PURE__ */ t(ci, {
5890
5895
  label: "Foundation ready",
5891
5896
  mode: "after"
5892
5897
  })
@@ -5915,19 +5920,19 @@ var ci = [
5915
5920
  }]
5916
5921
  }
5917
5922
  ];
5918
- function li() {
5923
+ function ui() {
5919
5924
  return /* @__PURE__ */ n("div", {
5920
5925
  className: "game-ui-preview-two-up",
5921
- children: [/* @__PURE__ */ t(Ar, {
5922
- jobs: ci,
5926
+ children: [/* @__PURE__ */ t(jr, {
5927
+ jobs: li,
5923
5928
  label: "AI contractor jobs",
5924
5929
  selectedJobId: "review-house-pad",
5925
5930
  subtitle: "Official contractor UI covers drafts, previews, robot work, validation, review, and local-only provider boundaries.",
5926
5931
  title: "AI contractor",
5927
5932
  variant: "desktop"
5928
- }), /* @__PURE__ */ t(Ar, {
5933
+ }), /* @__PURE__ */ t(jr, {
5929
5934
  drawerOpen: !0,
5930
- jobs: ci,
5935
+ jobs: li,
5931
5936
  label: "Small mobile contractor jobs",
5932
5937
  selectedJobId: "blocked-fence",
5933
5938
  title: "Contractor",
@@ -5935,10 +5940,10 @@ function li() {
5935
5940
  })]
5936
5941
  });
5937
5942
  }
5938
- function ui() {
5939
- return /* @__PURE__ */ t(Pn, {
5943
+ function di() {
5944
+ return /* @__PURE__ */ t(Fn, {
5940
5945
  title: "OwnMySpace island editor preview",
5941
- hud: /* @__PURE__ */ t(In, {
5946
+ hud: /* @__PURE__ */ t(Ln, {
5942
5947
  label: "Island facts",
5943
5948
  facts: [
5944
5949
  {
@@ -5962,11 +5967,11 @@ function ui() {
5962
5967
  }
5963
5968
  ]
5964
5969
  }),
5965
- movementPad: /* @__PURE__ */ t(Vn, {
5970
+ movementPad: /* @__PURE__ */ t(Hn, {
5966
5971
  helpText: "WASD or arrows",
5967
5972
  label: "Move avatar"
5968
5973
  }),
5969
- assetLibrary: /* @__PURE__ */ t(Kn, {
5974
+ assetLibrary: /* @__PURE__ */ t(qn, {
5970
5975
  label: "Placeable assets",
5971
5976
  title: "Assets",
5972
5977
  subtitle: "Starter, generated, and imported assets stay visibly distinct but share one placement path.",
@@ -6013,7 +6018,7 @@ function ui() {
6013
6018
  }
6014
6019
  ]
6015
6020
  }),
6016
- bottomBar: /* @__PURE__ */ t(qn, {
6021
+ bottomBar: /* @__PURE__ */ t(Jn, {
6017
6022
  title: "Placement",
6018
6023
  selectedTitle: "Manual chair",
6019
6024
  placedObjects: 3,
@@ -6049,7 +6054,7 @@ function ui() {
6049
6054
  })
6050
6055
  });
6051
6056
  }
6052
- var di = [{
6057
+ var fi = [{
6053
6058
  id: "starter",
6054
6059
  label: "Starter pieces",
6055
6060
  source: "starter",
@@ -6080,7 +6085,7 @@ var di = [{
6080
6085
  }
6081
6086
  ]
6082
6087
  }];
6083
- function fi() {
6088
+ function pi() {
6084
6089
  return /* @__PURE__ */ t("div", {
6085
6090
  className: "game-ui-asset-compression-repro",
6086
6091
  "aria-label": "Asset card compression repro",
@@ -6104,9 +6109,9 @@ function fi() {
6104
6109
  className: "game-ui-asset-compression-repro-surface",
6105
6110
  "data-repro-surface": e.id,
6106
6111
  style: { "--repro-width": e.width },
6107
- children: [/* @__PURE__ */ t(Q, { children: e.label }), /* @__PURE__ */ t(Kn, {
6112
+ children: [/* @__PURE__ */ t(Q, { children: e.label }), /* @__PURE__ */ t(qn, {
6108
6113
  density: "dense",
6109
- groups: di,
6114
+ groups: fi,
6110
6115
  label: `${e.label} assets`,
6111
6116
  selectedAssetId: "asset-repro-chair",
6112
6117
  title: "Build"
@@ -6114,13 +6119,13 @@ function fi() {
6114
6119
  }, e.id))
6115
6120
  });
6116
6121
  }
6117
- function pi() {
6118
- let { firstSession: e } = Gr();
6122
+ function mi() {
6123
+ let { firstSession: e } = Kr();
6119
6124
  return /* @__PURE__ */ n("div", {
6120
6125
  className: "game-ui-first-session-preview",
6121
6126
  children: [/* @__PURE__ */ t("div", {
6122
6127
  className: "game-ui-first-session-world",
6123
- children: /* @__PURE__ */ t(wn, {
6128
+ children: /* @__PURE__ */ t(Tn, {
6124
6129
  authenticated: !0,
6125
6130
  batteryCount: 5,
6126
6131
  dailyStreak: 3,
@@ -6154,7 +6159,7 @@ function pi() {
6154
6159
  })
6155
6160
  }), /* @__PURE__ */ t("div", {
6156
6161
  className: "game-ui-first-session-modal-slot",
6157
- children: /* @__PURE__ */ t(Tn, {
6162
+ children: /* @__PURE__ */ t(En, {
6158
6163
  open: !0,
6159
6164
  onDismiss: () => void 0,
6160
6165
  labels: {
@@ -6182,46 +6187,46 @@ function pi() {
6182
6187
  })]
6183
6188
  });
6184
6189
  }
6185
- function mi() {
6186
- let { responsive: e } = Gr();
6190
+ function hi() {
6191
+ let { responsive: e } = Kr();
6187
6192
  return /* @__PURE__ */ n("div", {
6188
6193
  className: "game-ui-proof-frames",
6189
6194
  children: [/* @__PURE__ */ n("article", {
6190
6195
  className: "game-ui-proof-frame is-desktop",
6191
- children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t(Q, { children: e.desktop }), /* @__PURE__ */ t("strong", { children: "1440×900" })] }), /* @__PURE__ */ t(Zr, {})]
6196
+ children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t(Q, { children: e.desktop }), /* @__PURE__ */ t("strong", { children: "1440×900" })] }), /* @__PURE__ */ t(Qr, {})]
6192
6197
  }), /* @__PURE__ */ n("article", {
6193
6198
  className: "game-ui-proof-frame is-mobile-landscape",
6194
- children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t(Q, { children: e.mobileLandscape }), /* @__PURE__ */ t("strong", { children: "844×390" })] }), /* @__PURE__ */ t(Zr, {})]
6199
+ children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t(Q, { children: e.mobileLandscape }), /* @__PURE__ */ t("strong", { children: "844×390" })] }), /* @__PURE__ */ t(Qr, {})]
6195
6200
  })]
6196
6201
  });
6197
6202
  }
6198
- function hi() {
6199
- let { forms: e } = Gr();
6203
+ function gi() {
6204
+ let { forms: e } = Kr();
6200
6205
  return /* @__PURE__ */ n("div", {
6201
6206
  className: "game-ui-preview-two-up",
6202
6207
  children: [/* @__PURE__ */ n(X, {
6203
6208
  title: e.formsTitle,
6204
6209
  tone: "strong",
6205
6210
  children: [
6206
- /* @__PURE__ */ t(On, {
6211
+ /* @__PURE__ */ t(kn, {
6207
6212
  hint: e.roomCodeHint,
6208
6213
  label: e.roomCodeLabel,
6209
- children: /* @__PURE__ */ t(En, { placeholder: e.roomCodePlaceholder })
6214
+ children: /* @__PURE__ */ t(Dn, { placeholder: e.roomCodePlaceholder })
6210
6215
  }),
6211
- /* @__PURE__ */ t(On, {
6216
+ /* @__PURE__ */ t(kn, {
6212
6217
  label: e.nameLabel,
6213
6218
  required: !0,
6214
- children: /* @__PURE__ */ t(En, { placeholder: e.namePlaceholder })
6219
+ children: /* @__PURE__ */ t(Dn, { placeholder: e.namePlaceholder })
6215
6220
  }),
6216
- /* @__PURE__ */ t(On, {
6221
+ /* @__PURE__ */ t(kn, {
6217
6222
  error: e.readError,
6218
6223
  label: e.readLabel,
6219
- children: /* @__PURE__ */ t(Dn, {
6224
+ children: /* @__PURE__ */ t(On, {
6220
6225
  invalid: !0,
6221
6226
  placeholder: e.readPlaceholder
6222
6227
  })
6223
6228
  }),
6224
- /* @__PURE__ */ t(kn, {
6229
+ /* @__PURE__ */ t(An, {
6225
6230
  defaultChecked: !0,
6226
6231
  label: e.rememberLabel
6227
6232
  })
@@ -6233,38 +6238,38 @@ function hi() {
6233
6238
  /* @__PURE__ */ n("div", {
6234
6239
  className: "game-ui-component-row",
6235
6240
  children: [
6236
- /* @__PURE__ */ t(jn, {
6241
+ /* @__PURE__ */ t(Mn, {
6237
6242
  name: "Mika Ono",
6238
6243
  status: "online"
6239
6244
  }),
6240
- /* @__PURE__ */ t(jn, {
6245
+ /* @__PURE__ */ t(Mn, {
6241
6246
  name: "River",
6242
6247
  size: "lg",
6243
6248
  status: "busy"
6244
6249
  }),
6245
- /* @__PURE__ */ t(jn, {
6250
+ /* @__PURE__ */ t(Mn, {
6246
6251
  name: "Noa",
6247
6252
  status: "away"
6248
6253
  }),
6249
- /* @__PURE__ */ t(jn, {
6254
+ /* @__PURE__ */ t(Mn, {
6250
6255
  name: e.guestName,
6251
6256
  size: "sm"
6252
6257
  })
6253
6258
  ]
6254
6259
  }),
6255
- /* @__PURE__ */ t(Mn, {
6260
+ /* @__PURE__ */ t(Nn, {
6256
6261
  label: e.revealLabel,
6257
6262
  showValue: !0,
6258
6263
  value: 64
6259
6264
  }),
6260
- /* @__PURE__ */ t(Mn, {
6265
+ /* @__PURE__ */ t(Nn, {
6261
6266
  label: e.batteryLabel,
6262
6267
  max: 20,
6263
6268
  showValue: !0,
6264
6269
  tone: "success",
6265
6270
  value: 14
6266
6271
  }),
6267
- /* @__PURE__ */ t(Nn, {
6272
+ /* @__PURE__ */ t(Pn, {
6268
6273
  action: /* @__PURE__ */ t(w, {
6269
6274
  variant: "primary",
6270
6275
  children: e.emptyCta
@@ -6277,8 +6282,8 @@ function hi() {
6277
6282
  })]
6278
6283
  });
6279
6284
  }
6280
- var gi = qt.filter((e) => Zt(e).includes("game")), _i = qt.filter((e) => Zt(e).includes("line"));
6281
- function vi({ names: e, style: r }) {
6285
+ var _i = Jt.filter((e) => Qt(e).includes("game")), vi = Jt.filter((e) => Qt(e).includes("line"));
6286
+ function yi({ names: e, style: r }) {
6282
6287
  return /* @__PURE__ */ t("div", {
6283
6288
  className: "game-ui-icon-grid",
6284
6289
  children: e.map((e) => /* @__PURE__ */ n("figure", {
@@ -6291,10 +6296,10 @@ function vi({ names: e, style: r }) {
6291
6296
  }, `${r}-${e}`))
6292
6297
  });
6293
6298
  }
6294
- function yi() {
6299
+ function bi() {
6295
6300
  return /* @__PURE__ */ t("div", {
6296
6301
  className: "game-ui-icon-grid",
6297
- children: $t.map((e) => /* @__PURE__ */ n("figure", {
6302
+ children: en.map((e) => /* @__PURE__ */ n("figure", {
6298
6303
  className: "game-ui-icon-cell",
6299
6304
  children: [/* @__PURE__ */ t("span", {
6300
6305
  className: "game-ui-asset-icon",
@@ -6303,14 +6308,14 @@ function yi() {
6303
6308
  "aria-hidden": !0,
6304
6309
  children: /* @__PURE__ */ t("img", {
6305
6310
  alt: "",
6306
- src: Qt[e]
6311
+ src: $t[e]
6307
6312
  })
6308
6313
  }), /* @__PURE__ */ t("figcaption", { children: e })]
6309
6314
  }, `sprite-${e}`))
6310
6315
  });
6311
6316
  }
6312
- function bi() {
6313
- let { gallery: e } = Gr();
6317
+ function xi() {
6318
+ let { gallery: e } = Kr();
6314
6319
  return /* @__PURE__ */ n("div", {
6315
6320
  className: "game-ui-icon-gallery",
6316
6321
  children: [
@@ -6325,8 +6330,8 @@ function bi() {
6325
6330
  className: "game-ui-small-copy",
6326
6331
  children: e.gameHint
6327
6332
  })]
6328
- }), /* @__PURE__ */ t(vi, {
6329
- names: gi,
6333
+ }), /* @__PURE__ */ t(yi, {
6334
+ names: _i,
6330
6335
  style: "game"
6331
6336
  })]
6332
6337
  }),
@@ -6338,8 +6343,8 @@ function bi() {
6338
6343
  className: "game-ui-small-copy",
6339
6344
  children: e.lineHint
6340
6345
  })]
6341
- }), /* @__PURE__ */ t(vi, {
6342
- names: _i,
6346
+ }), /* @__PURE__ */ t(yi, {
6347
+ names: vi,
6343
6348
  style: "line"
6344
6349
  })]
6345
6350
  }),
@@ -6354,16 +6359,16 @@ function bi() {
6354
6359
  className: "game-ui-small-copy",
6355
6360
  children: e.spriteHint
6356
6361
  })]
6357
- }), /* @__PURE__ */ t(yi, {})]
6362
+ }), /* @__PURE__ */ t(bi, {})]
6358
6363
  })
6359
6364
  ]
6360
6365
  });
6361
6366
  }
6362
- function xi({ title: e, body: r }) {
6363
- let [i, a] = m("en"), o = Ur[i], s = e && i === "en" ? e : o.heroTitle, c = r && i === "en" ? r : o.heroBody;
6367
+ function Si({ title: e, body: r }) {
6368
+ let [i, a] = m("en"), o = Wr[i], s = e && i === "en" ? e : o.heroTitle, c = r && i === "en" ? r : o.heroBody;
6364
6369
  return l(() => (document.documentElement.dataset.gameUiPreview = "clay", () => {
6365
6370
  delete document.documentElement.dataset.gameUiPreview;
6366
- }), []), /* @__PURE__ */ t(Wr.Provider, {
6371
+ }), []), /* @__PURE__ */ t(Gr.Provider, {
6367
6372
  value: o,
6368
6373
  children: /* @__PURE__ */ n("main", {
6369
6374
  "aria-label": "Swimmer UI Kit clay preview",
@@ -6376,7 +6381,7 @@ function xi({ title: e, body: r }) {
6376
6381
  tone: "ai",
6377
6382
  children: "@pieai/swimmer-ui-kit"
6378
6383
  }),
6379
- /* @__PURE__ */ t(bn, {
6384
+ /* @__PURE__ */ t(xn, {
6380
6385
  currentLabel: o.triggerLabel,
6381
6386
  label: o.langMenuLabel,
6382
6387
  onSelect: (e) => a(e),
@@ -6403,10 +6408,10 @@ function xi({ title: e, body: r }) {
6403
6408
  id: "game-ui-preview-token-title",
6404
6409
  children: o.sections.tokens
6405
6410
  }),
6406
- /* @__PURE__ */ t(Jr, {}),
6411
+ /* @__PURE__ */ t(Yr, {}),
6407
6412
  /* @__PURE__ */ t("div", {
6408
6413
  className: "game-ui-token-ledger",
6409
- children: Kr.map((e) => /* @__PURE__ */ t(qr, {
6414
+ children: qr.map((e) => /* @__PURE__ */ t(Jr, {
6410
6415
  id: e.id,
6411
6416
  label: o.tokenGroups[e.id] ?? e.id,
6412
6417
  tokens: e.tokens
@@ -6426,7 +6431,7 @@ function xi({ title: e, body: r }) {
6426
6431
  className: "game-ui-small-copy",
6427
6432
  children: o.iconsIntro
6428
6433
  }),
6429
- /* @__PURE__ */ t(bi, {})
6434
+ /* @__PURE__ */ t(xi, {})
6430
6435
  ]
6431
6436
  }),
6432
6437
  /* @__PURE__ */ n("section", {
@@ -6435,7 +6440,7 @@ function xi({ title: e, body: r }) {
6435
6440
  children: [/* @__PURE__ */ t("h2", {
6436
6441
  id: "game-ui-preview-type-title",
6437
6442
  children: o.sections.typography
6438
- }), /* @__PURE__ */ t(Yr, {})]
6443
+ }), /* @__PURE__ */ t(Xr, {})]
6439
6444
  }),
6440
6445
  /* @__PURE__ */ n("section", {
6441
6446
  "aria-labelledby": "game-ui-preview-components-title",
@@ -6445,11 +6450,11 @@ function xi({ title: e, body: r }) {
6445
6450
  id: "game-ui-preview-components-title",
6446
6451
  children: o.sections.components
6447
6452
  }),
6448
- /* @__PURE__ */ t(Xr, {}),
6449
6453
  /* @__PURE__ */ t(Zr, {}),
6450
- /* @__PURE__ */ t(ei, {}),
6454
+ /* @__PURE__ */ t(Qr, {}),
6451
6455
  /* @__PURE__ */ t(ti, {}),
6452
- /* @__PURE__ */ t(Nt, {
6456
+ /* @__PURE__ */ t(ni, {}),
6457
+ /* @__PURE__ */ t(Pt, {
6453
6458
  entries: o.history,
6454
6459
  label: o.historyLabel
6455
6460
  })
@@ -6461,7 +6466,7 @@ function xi({ title: e, body: r }) {
6461
6466
  children: [/* @__PURE__ */ t("h2", {
6462
6467
  id: "game-ui-preview-forms-title",
6463
6468
  children: o.sections.forms
6464
- }), /* @__PURE__ */ t(hi, {})]
6469
+ }), /* @__PURE__ */ t(gi, {})]
6465
6470
  }),
6466
6471
  /* @__PURE__ */ n("section", {
6467
6472
  "aria-labelledby": "game-ui-preview-overlay-glass-title",
@@ -6475,7 +6480,7 @@ function xi({ title: e, body: r }) {
6475
6480
  className: "game-ui-small-copy",
6476
6481
  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."
6477
6482
  }),
6478
- /* @__PURE__ */ t(Qr, {})
6483
+ /* @__PURE__ */ t($r, {})
6479
6484
  ]
6480
6485
  }),
6481
6486
  /* @__PURE__ */ n("section", {
@@ -6490,7 +6495,7 @@ function xi({ title: e, body: r }) {
6490
6495
  className: "game-ui-small-copy",
6491
6496
  children: o.liquidMetal.body
6492
6497
  }),
6493
- /* @__PURE__ */ t($r, {})
6498
+ /* @__PURE__ */ t(ei, {})
6494
6499
  ]
6495
6500
  }),
6496
6501
  /* @__PURE__ */ n("section", {
@@ -6499,7 +6504,7 @@ function xi({ title: e, body: r }) {
6499
6504
  children: [/* @__PURE__ */ t("h2", {
6500
6505
  id: "game-ui-preview-ownmyspace-title",
6501
6506
  children: "OwnMySpace game surface pack"
6502
- }), /* @__PURE__ */ t(ui, {})]
6507
+ }), /* @__PURE__ */ t(di, {})]
6503
6508
  }),
6504
6509
  /* @__PURE__ */ n("section", {
6505
6510
  "aria-labelledby": "game-ui-preview-terrain-build-title",
@@ -6513,7 +6518,7 @@ function xi({ title: e, body: r }) {
6513
6518
  className: "game-ui-small-copy",
6514
6519
  children: "Official terrain controls cover mode, brush, material, undo/redo, build library, status, progress, and compact mobile drawer surfaces."
6515
6520
  }),
6516
- /* @__PURE__ */ t(oi, {})
6521
+ /* @__PURE__ */ t(si, {})
6517
6522
  ]
6518
6523
  }),
6519
6524
  /* @__PURE__ */ n("section", {
@@ -6528,7 +6533,7 @@ function xi({ title: e, body: r }) {
6528
6533
  className: "game-ui-small-copy",
6529
6534
  children: "Official construction surfaces cover job queue states, before/after review, robot crew status, validation warnings, approval actions, and local-only provider badges."
6530
6535
  }),
6531
- /* @__PURE__ */ t(li, {})
6536
+ /* @__PURE__ */ t(ui, {})
6532
6537
  ]
6533
6538
  }),
6534
6539
  /* @__PURE__ */ n("section", {
@@ -6543,7 +6548,7 @@ function xi({ title: e, body: r }) {
6543
6548
  className: "game-ui-small-copy",
6544
6549
  children: "Official asset cards must stay visually complete when a game shell uses dense, narrow, or rail-style inventory slots."
6545
6550
  }),
6546
- /* @__PURE__ */ t(fi, {})
6551
+ /* @__PURE__ */ t(pi, {})
6547
6552
  ]
6548
6553
  }),
6549
6554
  /* @__PURE__ */ n("section", {
@@ -6552,7 +6557,7 @@ function xi({ title: e, body: r }) {
6552
6557
  children: [/* @__PURE__ */ t("h2", {
6553
6558
  id: "game-ui-preview-first-session-title",
6554
6559
  children: o.sections.firstSession
6555
- }), /* @__PURE__ */ t(pi, {})]
6560
+ }), /* @__PURE__ */ t(mi, {})]
6556
6561
  }),
6557
6562
  /* @__PURE__ */ n("section", {
6558
6563
  "aria-labelledby": "game-ui-preview-orientation-title",
@@ -6560,7 +6565,7 @@ function xi({ title: e, body: r }) {
6560
6565
  children: [/* @__PURE__ */ t("h2", {
6561
6566
  id: "game-ui-preview-orientation-title",
6562
6567
  children: o.sections.orientation
6563
- }), /* @__PURE__ */ t(yn, {
6568
+ }), /* @__PURE__ */ t(bn, {
6564
6569
  badgeLabel: o.orientation.badge,
6565
6570
  body: o.orientation.body,
6566
6571
  cta: o.orientation.cta,
@@ -6575,11 +6580,11 @@ function xi({ title: e, body: r }) {
6575
6580
  children: [/* @__PURE__ */ t("h2", {
6576
6581
  id: "game-ui-preview-responsive-title",
6577
6582
  children: o.sections.responsive
6578
- }), /* @__PURE__ */ t(mi, {})]
6583
+ }), /* @__PURE__ */ t(hi, {})]
6579
6584
  })
6580
6585
  ]
6581
6586
  })
6582
6587
  });
6583
6588
  }
6584
6589
  //#endregion
6585
- export { en as CLAY_ASSETS, Gt as CLAY_ASSET_BASE_PATH, xe as CLAY_ASSET_SIZE_TOKENS, F as CLAY_COLOR_TOKENS, H as CLAY_ELEVATION_TOKENS, Qt as CLAY_GAME_SPRITES, $t as CLAY_GAME_SPRITE_NAMES, qt as CLAY_ICON_NAMES, Kt as CLAY_ICON_VARIANTS, W as CLAY_LAYER_TOKENS, L as CLAY_LIQUID_GOOEY_TOKENS, L as GAME_UI_LIQUID_GOOEY_TOKENS, I as CLAY_LIQUID_METAL_TOKENS, I as GAME_UI_LIQUID_METAL_TOKENS, U as CLAY_MOTION_TOKENS, R as CLAY_OVERLAY_GLASS_TOKENS, R as GAME_UI_OVERLAY_GLASS_TOKENS, V as CLAY_RADIUS_TOKENS, z as CLAY_SEMANTIC_TOKENS, ye as CLAY_SPACE_TOKENS, be as CLAY_TARGET_TOKENS, B as CLAY_TYPE_TOKENS, G as CLAY_UI_TOKENS, Ae as DEFAULT_LIQUID_GOOEY_ANIMATION_BUDGET, je as DEFAULT_LIQUID_GOOEY_FILTER_AREA_BUDGET, T as DEFAULT_LIQUID_METAL_CONTEXT_BUDGET, wn as FirstSessionHud, Tn as FirstSessionOnboarding, Br as GAME_UI_OVERLAY, Rr as GAME_UI_PREVIEW_MESSAGES, Vr as GAME_UI_TARGETS, Hr as GAME_UI_THEME_CONTRACT, zr as GAME_UI_TOKENS, Rn as GameActionGrid, Gn as GameAssetCard, $ as GameAssetIcon, Kn as GameAssetLibrary, jn as GameAvatar, Q as GameBadge, Dr as GameBeforeAfterToggle, rr as GameBrushControls, or as GameBuildLibrary, w as GameButton, jt as GameCallout, gn as GameCardFan, kn as GameCheckbox, Nr as GameCollapsiblePanel, sr as GameCompactGameDrawer, kr as GameCompactJobDrawer, Tr as GameConstructionApprovalBar, Or as GameConstructionJobCard, wr as GameConstructionProgress, Ar as GameContractorPanel, Mt as GameDialog, Nn as GameEmptyState, In as GameFactList, On as GameField, Nt as GameHistoryPanel, hn as GameHud, Pt as GameHudActions, Ft as GameIconButton, En as GameInput, bn as GameLanguageMenu, xn as GameLoadingState, ir as GameMaterialSwatches, Lr as GameModal, Vn as GameMovementPad, Jn as GameObjectToolbar, yn as GameOrientationGate, X as GamePanel, qn as GamePlacementToolbar, Mn as GameProgress, Wt as GamePrompt, Ht as GameRadialMenu, Er as GameRobotCrewStatus, Fn as GameSceneHudLayout, zt as GameSegmentedControl, Pn as GameShell, Bt as GameSlider, _n as GameStageTile, Ln as GameStatList, Lt as GameTabs, ur as GameTerrainBuildToolbox, tr as GameTerrainModeControl, nr as GameTerrainToolStrip, Dn as GameTextArea, Ut as GameToast, Vt as GameToggle, It as GameTooltip, xi as GameUiPreview, ar as GameUndoRedoActions, Ir as GameWindowPanel, At as LiquidGroup, kt as LiquidItem, ve as LiquidMetalButton, fn as acknowledgeClayPlaceholders, ln as getClayAssetBasePath, sn as getClayAssetMode, Sn as getClayCatalogPaths, pn as getClayIconPath, Zt as getClayIconStyles, mn as getClaySourceAssetPath, Ie as getLiquidGooeyBudget, O as getLiquidMetalContextBudget, C as playGameInteractionSound, S as playGameInteractionSoundForContext, cn as setClayAssetBasePath, on as setClayAssetMode, Le as setLiquidGooeyBudget, ee as setLiquidMetalContextBudget };
6590
+ export { tn as CLAY_ASSETS, Kt as CLAY_ASSET_BASE_PATH, xe as CLAY_ASSET_SIZE_TOKENS, I as CLAY_COLOR_TOKENS, H as CLAY_ELEVATION_TOKENS, $t as CLAY_GAME_SPRITES, en as CLAY_GAME_SPRITE_NAMES, Jt as CLAY_ICON_NAMES, qt as CLAY_ICON_VARIANTS, W as CLAY_LAYER_TOKENS, R as CLAY_LIQUID_GOOEY_TOKENS, R as GAME_UI_LIQUID_GOOEY_TOKENS, L as CLAY_LIQUID_METAL_TOKENS, L as GAME_UI_LIQUID_METAL_TOKENS, U as CLAY_MOTION_TOKENS, z as CLAY_OVERLAY_GLASS_TOKENS, z as GAME_UI_OVERLAY_GLASS_TOKENS, V as CLAY_RADIUS_TOKENS, B as CLAY_SEMANTIC_TOKENS, ye as CLAY_SPACE_TOKENS, be as CLAY_TARGET_TOKENS, ve as CLAY_TYPE_TOKENS, G as CLAY_UI_TOKENS, Ae as DEFAULT_LIQUID_GOOEY_ANIMATION_BUDGET, je as DEFAULT_LIQUID_GOOEY_FILTER_AREA_BUDGET, T as DEFAULT_LIQUID_METAL_CONTEXT_BUDGET, Tn as FirstSessionHud, En as FirstSessionOnboarding, Vr as GAME_UI_OVERLAY, zr as GAME_UI_PREVIEW_MESSAGES, Hr as GAME_UI_TARGETS, Ur as GAME_UI_THEME_CONTRACT, Br as GAME_UI_TOKENS, zn as GameActionGrid, Kn as GameAssetCard, $ as GameAssetIcon, qn as GameAssetLibrary, Mn as GameAvatar, Q as GameBadge, Or as GameBeforeAfterToggle, ir as GameBrushControls, sr as GameBuildLibrary, w as GameButton, Mt as GameCallout, _n as GameCardFan, An as GameCheckbox, Pr as GameCollapsiblePanel, cr as GameCompactGameDrawer, Ar as GameCompactJobDrawer, Er as GameConstructionApprovalBar, kr as GameConstructionJobCard, Tr as GameConstructionProgress, jr as GameContractorPanel, Nt as GameDialog, Pn as GameEmptyState, Ln as GameFactList, kn as GameField, Pt as GameHistoryPanel, gn as GameHud, Ft as GameHudActions, It as GameIconButton, Dn as GameInput, xn as GameLanguageMenu, Sn as GameLoadingState, ar as GameMaterialSwatches, Rr as GameModal, Hn as GameMovementPad, Yn as GameObjectToolbar, bn as GameOrientationGate, X as GamePanel, Jn as GamePlacementToolbar, Nn as GameProgress, Gt as GamePrompt, Ut as GameRadialMenu, Dr as GameRobotCrewStatus, In as GameSceneHudLayout, Bt as GameSegmentedControl, Fn as GameShell, Vt as GameSlider, vn as GameStageTile, Rn as GameStatList, Rt as GameTabs, dr as GameTerrainBuildToolbox, nr as GameTerrainModeControl, rr as GameTerrainToolStrip, On as GameTextArea, Wt as GameToast, Ht as GameToggle, Lt as GameTooltip, Si as GameUiPreview, or as GameUndoRedoActions, Lr as GameWindowPanel, jt as LiquidGroup, At as LiquidItem, _e as LiquidMetalButton, pn as acknowledgeClayPlaceholders, un as getClayAssetBasePath, cn as getClayAssetMode, Cn as getClayCatalogPaths, mn as getClayIconPath, Qt as getClayIconStyles, hn as getClaySourceAssetPath, Ie as getLiquidGooeyBudget, O as getLiquidMetalContextBudget, C as playGameInteractionSound, S as playGameInteractionSoundForContext, ln as setClayAssetBasePath, sn as setClayAssetMode, Le as setLiquidGooeyBudget, ee as setLiquidMetalContextBudget };