@pieai/swimmer-ui-kit 1.11.0 → 1.11.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.
package/dist/index.js CHANGED
@@ -96,15 +96,15 @@ function ee(e) {
96
96
  function k() {
97
97
  return D >= E ? !1 : (D += 1, !0);
98
98
  }
99
- function te() {
99
+ function A() {
100
100
  D > 0 && --D;
101
101
  }
102
- function ne(e) {
102
+ function te(e) {
103
103
  return !(e.renderer === "css" || !e.hasWebGL2 || e.prefersReducedMotion || !e.isInViewport);
104
104
  }
105
105
  //#endregion
106
106
  //#region src/liquidMetalWebGL.ts
107
- var re = "#version 300 es\nin vec2 position; void main(){ gl_Position = vec4(position,0.,1.); }", A = "#version 300 es\nprecision highp float;\nout vec4 o;\n\nuniform vec2 uC; // pill centre, device px\nuniform vec2 uHalf; // pill half-extent, device px\nuniform float uT; // seconds\nuniform float uHover; // 0..1\nuniform float uPress; // 0..1, eased\nuniform vec4 uRip[3]; // xy centre (button heights, +y down), z start, w live\nuniform vec4 uRipK; // speed, ring width, decay, amplitude\nuniform vec4 uRipK2; // facet depth, facet count, crest sharpness, emission\nuniform vec4 uPtr; // xy trailing cursor, z strength, w normalised speed\nuniform vec4 uPtrK; // radius, base amplitude, speed amplitude, rim lift\nuniform vec3 uAccent; // brand tint from computed --game-ui-liquid-metal-accent\n\n#define PI 3.14159265\n\nfloat sdPill(vec2 p, vec2 b, float r){\n vec2 q = abs(p) - b + r;\n return min(max(q.x,q.y),0.) + length(max(q,0.)) - r;\n}\n\n/* Expanding ring from each press, in button-height units. Three slots so a\n quick double-tap overlaps instead of cutting the first one off.\n\n Two things keep it from reading as a water ripple: the wavefront is\n faceted rather than circular — its radius is modulated by angle, and the\n facets rotate as it travels — and the crest profile is a cusp rather than\n a gaussian, so it lands as a crease in sheet metal instead of a soft swell. */\nfloat ripple(vec2 p, float t){\n float sum = 0.;\n for(int i = 0; i < 3; i++){\n if(uRip[i].w < 0.5) continue;\n float age = t - uRip[i].z;\n if(age < 0. || age > 4.) continue;\n vec2 rp = p - uRip[i].xy;\n float facet = 1. + uRipK2.x * cos(uRipK2.y * atan(rp.y, rp.x) + age * 2.1 + float(i) * 2.4);\n float x = (length(rp) - age * uRipK.x * facet) / uRipK.y;\n sum += exp(-pow(abs(x) + 1e-4, uRipK2.z)) * exp(-age * uRipK.z);\n }\n return sum;\n}\n\n/* A soft well under the cursor. It lags behind the real pointer and swells\n with speed, so moving across the button drags the metal rather than sliding\n a static blob over it. */\nfloat pointerW(vec2 p){\n if(uPtr.z < 0.001) return 0.;\n float d = length(p - uPtr.xy) / uPtrK.x;\n return exp(-d*d) * uPtr.z;\n}\n/* Displacing the sample point, not the field value, is what makes this read as\n liquid: the bands bulge and stretch around the cursor like a lens instead of\n just getting brighter under it. */\nvec2 pointerWarp(vec2 p){\n float w = pointerW(p);\n if(w <= 0.) return vec2(0.);\n return normalize(p - uPtr.xy + vec2(1e-5)) * w * (uPtrK.y + uPtrK.z * uPtr.w);\n}\n", j = `${A}
107
+ var j = "#version 300 es\nin vec2 position; void main(){ gl_Position = vec4(position,0.,1.); }", M = "#version 300 es\nprecision highp float;\nout vec4 o;\n\nuniform vec2 uC; // pill centre, device px\nuniform vec2 uHalf; // pill half-extent, device px\nuniform float uT; // seconds\nuniform float uHover; // 0..1\nuniform float uPress; // 0..1, eased\nuniform vec4 uRip[3]; // xy centre (button heights, +y down), z start, w live\nuniform vec4 uRipK; // speed, ring width, decay, amplitude\nuniform vec4 uRipK2; // facet depth, facet count, crest sharpness, emission\nuniform vec4 uPtr; // xy trailing cursor, z strength, w normalised speed\nuniform vec4 uPtrK; // radius, base amplitude, speed amplitude, rim lift\nuniform vec3 uAccent; // brand tint from computed --game-ui-liquid-metal-accent\n\n#define PI 3.14159265\n\nfloat sdPill(vec2 p, vec2 b, float r){\n vec2 q = abs(p) - b + r;\n return min(max(q.x,q.y),0.) + length(max(q,0.)) - r;\n}\n\n/* Expanding ring from each press, in button-height units. Three slots so a\n quick double-tap overlaps instead of cutting the first one off.\n\n Two things keep it from reading as a water ripple: the wavefront is\n faceted rather than circular — its radius is modulated by angle, and the\n facets rotate as it travels — and the crest profile is a cusp rather than\n a gaussian, so it lands as a crease in sheet metal instead of a soft swell. */\nfloat ripple(vec2 p, float t){\n float sum = 0.;\n for(int i = 0; i < 3; i++){\n if(uRip[i].w < 0.5) continue;\n float age = t - uRip[i].z;\n if(age < 0. || age > 4.) continue;\n vec2 rp = p - uRip[i].xy;\n float facet = 1. + uRipK2.x * cos(uRipK2.y * atan(rp.y, rp.x) + age * 2.1 + float(i) * 2.4);\n float x = (length(rp) - age * uRipK.x * facet) / uRipK.y;\n sum += exp(-pow(abs(x) + 1e-4, uRipK2.z)) * exp(-age * uRipK.z);\n }\n return sum;\n}\n\n/* A soft well under the cursor. It lags behind the real pointer and swells\n with speed, so moving across the button drags the metal rather than sliding\n a static blob over it. */\nfloat pointerW(vec2 p){\n if(uPtr.z < 0.001) return 0.;\n float d = length(p - uPtr.xy) / uPtrK.x;\n return exp(-d*d) * uPtr.z;\n}\n/* Displacing the sample point, not the field value, is what makes this read as\n liquid: the bands bulge and stretch around the cursor like a lens instead of\n just getting brighter under it. */\nvec2 pointerWarp(vec2 p){\n float w = pointerW(p);\n if(w <= 0.) return vec2(0.);\n return normalize(p - uPtr.xy + vec2(1e-5)) * w * (uPtrK.y + uPtrK.z * uPtr.w);\n}\n", N = `${M}
108
108
  uniform float uBw; // stroke half-width, device px
109
109
  uniform float uE[8]; // base, hot, chroma-across, chroma-along, speed,
110
110
  // topBias, press lift, ripple lift
@@ -174,7 +174,7 @@ void main(){
174
174
  // what make it metal, and replacing them with a flat accent would turn
175
175
  // the rim into a neon sticker.
176
176
  o.rgb *= mix(vec3(1.0), uAccent, 0.40);
177
- }`, ie = `${A}
177
+ }`, ne = `${M}
178
178
  uniform float uP[21]; // tunables
179
179
 
180
180
  float h21(vec2 p){
@@ -296,7 +296,7 @@ void main(){
296
296
  col = col * (1. + rip * 1.15 + well * 0.60);
297
297
 
298
298
  o = vec4(col * pill * uHover, pill);
299
- }`, ae = "#version 300 es\nprecision highp float;\nout vec4 o;\nuniform sampler2D uTex, uTex2;\nuniform vec2 uDstTexel; // 1 / destination size (maps dest fragCoord -> uv)\nuniform vec2 uSrcTexel; // 1 / source size (tap spacing)\nuniform float uAdd; // 1 to include uTex2\nvoid main(){\n vec2 uv = gl_FragCoord.xy * uDstTexel;\n // Taps sit a quarter of a *destination* texel out, so for a 2x reduction\n // they land exactly on the four source texel centres. Spacing them by a\n // whole source texel instead — as this did originally — skips every other\n // pixel, and any fine detail in the field folds down into low-frequency\n // moiré that no amount of subsequent blurring can remove.\n vec2 e = uDstTexel * 0.25;\n vec4 s = texture(uTex, uv + vec2(-e.x,-e.y)) + texture(uTex, uv + vec2( e.x,-e.y))\n + texture(uTex, uv + vec2(-e.x, e.y)) + texture(uTex, uv + vec2( e.x, e.y));\n s *= 0.25;\n if(uAdd > 0.5){\n vec4 r = texture(uTex2, uv + vec2(-e.x,-e.y)) + texture(uTex2, uv + vec2( e.x,-e.y))\n + texture(uTex2, uv + vec2(-e.x, e.y)) + texture(uTex2, uv + vec2( e.x, e.y));\n s.rgb += r.rgb * 0.25;\n }\n o = s;\n}", oe = "#version 300 es\nprecision highp float;\nout vec4 o;\nuniform sampler2D uTex; uniform vec2 uTexel; uniform vec2 uDir; uniform float uR;\nvoid main(){\n vec2 uv = gl_FragCoord.xy * uTexel;\n vec2 st = uTexel * uDir * uR;\n vec4 s = texture(uTex, uv) * 0.1964;\n s += (texture(uTex, uv + st*1.4118) + texture(uTex, uv - st*1.4118)) * 0.2969;\n s += (texture(uTex, uv + st*3.2941) + texture(uTex, uv - st*3.2941)) * 0.0944;\n s += (texture(uTex, uv + st*5.1765) + texture(uTex, uv - st*5.1765)) * 0.0104;\n o = s;\n}", M = `${A}
299
+ }`, re = "#version 300 es\nprecision highp float;\nout vec4 o;\nuniform sampler2D uTex, uTex2;\nuniform vec2 uDstTexel; // 1 / destination size (maps dest fragCoord -> uv)\nuniform vec2 uSrcTexel; // 1 / source size (tap spacing)\nuniform float uAdd; // 1 to include uTex2\nvoid main(){\n vec2 uv = gl_FragCoord.xy * uDstTexel;\n // Taps sit a quarter of a *destination* texel out, so for a 2x reduction\n // they land exactly on the four source texel centres. Spacing them by a\n // whole source texel instead — as this did originally — skips every other\n // pixel, and any fine detail in the field folds down into low-frequency\n // moiré that no amount of subsequent blurring can remove.\n vec2 e = uDstTexel * 0.25;\n vec4 s = texture(uTex, uv + vec2(-e.x,-e.y)) + texture(uTex, uv + vec2( e.x,-e.y))\n + texture(uTex, uv + vec2(-e.x, e.y)) + texture(uTex, uv + vec2( e.x, e.y));\n s *= 0.25;\n if(uAdd > 0.5){\n vec4 r = texture(uTex2, uv + vec2(-e.x,-e.y)) + texture(uTex2, uv + vec2( e.x,-e.y))\n + texture(uTex2, uv + vec2(-e.x, e.y)) + texture(uTex2, uv + vec2( e.x, e.y));\n s.rgb += r.rgb * 0.25;\n }\n o = s;\n}", ie = "#version 300 es\nprecision highp float;\nout vec4 o;\nuniform sampler2D uTex; uniform vec2 uTexel; uniform vec2 uDir; uniform float uR;\nvoid main(){\n vec2 uv = gl_FragCoord.xy * uTexel;\n vec2 st = uTexel * uDir * uR;\n vec4 s = texture(uTex, uv) * 0.1964;\n s += (texture(uTex, uv + st*1.4118) + texture(uTex, uv - st*1.4118)) * 0.2969;\n s += (texture(uTex, uv + st*3.2941) + texture(uTex, uv - st*3.2941)) * 0.0944;\n s += (texture(uTex, uv + st*5.1765) + texture(uTex, uv - st*5.1765)) * 0.0104;\n o = s;\n}", ae = `${M}
300
300
  uniform sampler2D uSoft, uRim, uGlow;
301
301
  uniform vec2 uRes;
302
302
  uniform float uGlowGain, uGlowIn, uOccl, uDim, uPunch;
@@ -345,7 +345,7 @@ void main(){
345
345
  // CSS underneath, and this layer adds light on top of them
346
346
  float a = clamp(max(rgb.r, max(rgb.g, rgb.b)), 0., 1.);
347
347
  o = vec4(min(rgb, vec3(1.)), a);
348
- }`, se = {
348
+ }`, oe = {
349
349
  valFreq: .5,
350
350
  valAmp: .55,
351
351
  dens: 2.4,
@@ -367,7 +367,7 @@ void main(){
367
367
  litLo: -.26,
368
368
  litHi: .1,
369
369
  dim: .44
370
- }, ce = Object.keys(se), le = {
370
+ }, se = Object.keys(oe), ce = {
371
371
  base: .2,
372
372
  hot: .82,
373
373
  chromA: .42,
@@ -376,14 +376,14 @@ void main(){
376
376
  top: .35,
377
377
  press: .85,
378
378
  ripple: 1.6
379
- }, ue = Object.keys(le), de = {
379
+ }, le = Object.keys(ce), ue = {
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
- }, N = {
386
+ }, P = {
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 fe(e) {
402
+ function de(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 fe(e) {
424
424
  1
425
425
  ];
426
426
  }
427
- function pe(e, t, n) {
427
+ function fe(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 P(e, t) {
431
+ function pe(e, t) {
432
432
  let n = (e) => t[e] ?? null;
433
433
  return {
434
434
  f1: (t, r) => e.uniform1f(n(t), r),
@@ -470,7 +470,7 @@ function he(e, t, n) {
470
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, 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");
473
+ if (e.attachShader(n, he(e, e.VERTEX_SHADER, j)), 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);
@@ -482,7 +482,7 @@ function F(e, t) {
482
482
  };
483
483
  }
484
484
  function ge(e, t, n, r) {
485
- let i = F(e, ie), a = F(e, j), o = F(e, ae), s = F(e, oe), c = F(e, M), l = e.createVertexArray(), u = e.createBuffer();
485
+ let i = F(e, ne), a = F(e, N), o = F(e, re), s = F(e, ie), c = F(e, ae), 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 ge(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(ce.length), ne = new Float32Array(ue.length), re = 0, A = 0, me = 0, he = performance.now(), ge = [
524
+ let A = new Float32Array(se.length), te = new Float32Array(le.length), j = 0, M = 0, me = 0, he = performance.now(), ge = [
525
525
  0,
526
526
  1,
527
527
  2
@@ -530,32 +530,32 @@ function ge(e, t, n, r) {
530
530
  y: 0,
531
531
  t: -99,
532
532
  on: 0
533
- })), I = /* @__PURE__ */ new Float32Array(12), L = 0, R = 0, z = 0, B = {
533
+ })), _e = /* @__PURE__ */ new Float32Array(12), I = 0, L = 0, R = 0, z = {
534
534
  x: 0,
535
535
  y: 0
536
- }, V = {
536
+ }, B = {
537
537
  x: 0,
538
538
  y: 0
539
- }, _e = 0, ve = 0, H = {
539
+ }, V = 0, ve = 0, H = {
540
540
  over: !1,
541
541
  press: !1,
542
542
  focus: !1
543
543
  };
544
544
  function U(e, t) {
545
- let n = ge[L];
546
- n && (L = (L + 1) % ge.length, n.x = e, n.y = t, n.t = me, 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 W(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 ye() {
553
- A = H.over || H.press || H.focus ? 1 : 0, z = +!!H.press;
553
+ M = H.over || H.press || H.focus ? 1 : 0, R = +!!H.press;
554
554
  }
555
555
  let be = window.matchMedia("(prefers-reduced-motion: reduce)"), xe = null, Se = 0, Ce = !1, we = !1;
556
556
  function Te() {
557
557
  let e = getComputedStyle(n);
558
- return le.base = pe(e, "--game-ui-liquid-metal-rest", le.base), le.speed = pe(e, "--game-ui-liquid-metal-sweep-speed", le.speed), se.disp = pe(e, "--game-ui-liquid-metal-dispersion", se.disp), de.glow = pe(e, "--game-ui-liquid-metal-bloom", de.glow), { accent: fe(getComputedStyle(O).color) };
558
+ return ce.base = fe(e, "--game-ui-liquid-metal-rest", ce.base), ce.speed = fe(e, "--game-ui-liquid-metal-sweep-speed", ce.speed), oe.disp = fe(e, "--game-ui-liquid-metal-dispersion", oe.disp), ue.glow = fe(e, "--game-ui-liquid-metal-bloom", ue.glow), { accent: de(getComputedStyle(O).color) };
559
559
  }
560
560
  function Ee(t) {
561
561
  if (Se = 0, Ce || we) return;
@@ -563,67 +563,67 @@ function ge(e, t, n, r) {
563
563
  he = t;
564
564
  let l = Math.min(r, 1 / 20);
565
565
  be.matches || (me += l);
566
- let u = A > re ? 1 - .0012 ** l : 1 - 12e-5 ** l;
567
- re += (A - re) * u, Math.abs(A - re) < 8e-4 && (re = A);
568
- let d = z > R ? 1 - 1e-9 ** l : 1 - .004 ** l;
569
- R += (z - R) * d, Math.abs(z - R) < .002 && (R = z);
566
+ let u = M > j ? 1 - .0012 ** l : 1 - 12e-5 ** l;
567
+ j += (M - j) * u, Math.abs(M - j) < 8e-4 && (j = M);
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
571
  for (let e = 0; e < ge.length; e += 1) {
572
572
  let t = ge[e];
573
- t && (t.on && me - t.t > 4 && (t.on = 0), t.on && (f = !0), I[e * 4] = t.x, I[e * 4 + 1] = t.y, I[e * 4 + 2] = t.t, I[e * 4 + 3] = t.on);
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 - N.ptrLag ** +l, O = (B.x - V.x) * p, j = (B.y - V.y) * p;
576
- V.x += O, V.y += j;
577
- let ie = Math.min(Math.hypot(O, j) / Math.max(l, .001) / N.ptrVref, 1);
578
- ve += (ie - ve) * (1 - (ie > ve ? .001 : .02) ** l);
579
- let ae = H.over || H.press ? 1 : 0;
580
- _e += (ae - _e) * (1 - .004 ** l), Math.abs(ae - _e) < .002 && (_e = ae), H.over = n.matches(":hover"), H.focus = n.matches(":focus-visible"), ye(), D && ee();
581
- let oe = be.matches && !f && _e < .002 ? `${re}|${R}|${b}|${x}` : null;
582
- if (oe !== null && oe === xe) {
575
+ let p = 1 - P.ptrLag ** +l, O = (z.x - B.x) * p, N = (z.y - B.y) * p;
576
+ B.x += O, B.y += N;
577
+ let ne = Math.min(Math.hypot(O, N) / Math.max(l, .001) / P.ptrVref, 1);
578
+ ve += (ne - ve) * (1 - (ne > ve ? .001 : .02) ** l);
579
+ let re = H.over || H.press ? 1 : 0;
580
+ V += (re - V) * (1 - .004 ** l), Math.abs(re - V) < .002 && (V = re), H.over = n.matches(":hover"), H.focus = n.matches(":focus-visible"), ye(), D && ee();
581
+ let ie = be.matches && !f && V < .002 ? `${j}|${L}|${b}|${x}` : null;
582
+ if (ie !== null && ie === xe) {
583
583
  Se = requestAnimationFrame(Ee);
584
584
  return;
585
585
  }
586
- xe = oe;
587
- let { accent: M } = Te();
588
- for (let e = 0; e < te.length; e += 1) {
589
- let t = ce[e];
590
- t && (te[e] = se[t]);
586
+ xe = ie;
587
+ let { accent: ae } = Te();
588
+ for (let e = 0; e < A.length; e += 1) {
589
+ let t = se[e];
590
+ t && (A[e] = oe[t]);
591
591
  }
592
- for (let e = 0; e < ne.length; e += 1) {
593
- let t = ue[e];
594
- t && (ne[e] = le[t]);
592
+ for (let e = 0; e < te.length; e += 1) {
593
+ let t = le[e];
594
+ t && (te[e] = ce[t]);
595
595
  }
596
- let fe = Math.max(C, 110), pe = Math.max(2.4, fe / 516 * 3.2), F = P(e, i.u), L = P(e, a.u), U = P(e, o.u), W = P(e, s.u), G = 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", R), F.fv4("uRip", I), 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", V.x, V.y, _e, ve), F.f4("uPtrK", N.ptrRad, N.ptrAmp, N.ptrFast, N.ptrRim), F.f3("uAccent", M[0], M[1], M[2]), F.fv1("uP", te), k(m), e.useProgram(a.p), L.f2("uC", w, T), L.f2("uHalf", S / 2, C / 2), L.f1("uT", me), L.f1("uBw", pe), L.f1("uPress", R), L.fv4("uRip", I), L.f4("uRipK", N.speed, N.width, N.decay, N.amp), L.f4("uRipK2", N.facet, N.lobes, N.sharp, N.emit), L.f4("uPtr", V.x, V.y, _e, ve), L.f4("uPtrK", N.ptrRad, N.ptrAmp, N.ptrFast, N.ptrRim), L.f3("uAccent", M[0], M[1], M[2]), L.fv1("uE", ne), k(h), e.useProgram(o.p), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, m.tex), U.i1("uTex", 0), U.f1("uAdd", 0), U.f2("uDstTexel", 1 / g.w, 1 / g.h), U.f2("uSrcTexel", 1 / b, 1 / x), k(g), e.useProgram(s.p), W.i1("uTex", 0), W.f2("uTexel", 1 / g.w, 1 / g.h);
598
- let De = de.soften * (fe * .5) * .95;
596
+ let de = Math.max(C, 110), fe = Math.max(2.4, de / 516 * 3.2), F = pe(e, i.u), I = pe(e, a.u), U = pe(e, o.u), W = pe(e, s.u), G = pe(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", j), F.f1("uPress", L), F.fv4("uRip", _e), F.f4("uRipK", P.speed, P.width, P.decay, P.amp), F.f4("uRipK2", P.facet, P.lobes, P.sharp, P.emit), F.f4("uPtr", B.x, B.y, V, ve), F.f4("uPtrK", P.ptrRad, P.ptrAmp, P.ptrFast, P.ptrRim), F.f3("uAccent", ae[0], ae[1], ae[2]), F.fv1("uP", A), 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", fe), I.f1("uPress", L), I.fv4("uRip", _e), I.f4("uRipK", P.speed, P.width, P.decay, P.amp), I.f4("uRipK2", P.facet, P.lobes, P.sharp, P.emit), I.f4("uPtr", B.x, B.y, V, ve), I.f4("uPtrK", P.ptrRad, P.ptrAmp, P.ptrFast, P.ptrRim), I.f3("uAccent", ae[0], ae[1], ae[2]), I.fv1("uE", te), k(h), e.useProgram(o.p), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, m.tex), U.i1("uTex", 0), U.f1("uAdd", 0), U.f2("uDstTexel", 1 / g.w, 1 / g.h), U.f2("uSrcTexel", 1 / b, 1 / x), k(g), e.useProgram(s.p), W.i1("uTex", 0), W.f2("uTexel", 1 / g.w, 1 / g.h);
598
+ let De = ue.soften * (de * .5) * .95;
599
599
  if (De > .1) {
600
600
  let t = Math.min(4, Math.max(1, Math.ceil(De / 3)));
601
601
  W.f1("uR", De / Math.sqrt(t) / 1.95);
602
602
  for (let n = 0; n < t; n += 1) e.bindTexture(e.TEXTURE_2D, g.tex), W.f2("uDir", 1, 0), k(_), e.bindTexture(e.TEXTURE_2D, _.tex), W.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), U.i1("uTex", 0), U.i1("uTex2", 1), U.f1("uAdd", 1), U.f2("uDstTexel", 1 / v.w, 1 / v.h), U.f2("uSrcTexel", 1 / g.w, 1 / g.h), k(v), e.useProgram(s.p), e.activeTexture(e.TEXTURE0), W.i1("uTex", 0), W.f2("uTexel", 1 / v.w, 1 / v.h);
605
- let Oe = de.glowR * (fe / E) / 129;
605
+ let Oe = ue.glowR * (de / 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 * Oe)) W.f1("uR", t), e.bindTexture(e.TEXTURE_2D, v.tex), W.f2("uDir", 1, 0), k(y), e.bindTexture(e.TEXTURE_2D, y.tex), W.f2("uDir", 0, 1), k(v);
612
- e.useProgram(c.p), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, g.tex), G.i1("uSoft", 0), e.activeTexture(e.TEXTURE1), e.bindTexture(e.TEXTURE_2D, h.tex), G.i1("uRim", 1), e.activeTexture(e.TEXTURE2), e.bindTexture(e.TEXTURE_2D, v.tex), G.i1("uGlow", 2), G.f2("uRes", b, x), G.f2("uC", w, T), G.f2("uHalf", S / 2, C / 2), G.f1("uT", me), G.fv4("uRip", I), G.f4("uRipK", N.speed, N.width, N.decay, N.amp), G.f4("uRipK2", N.facet, N.lobes, N.sharp, N.emit), G.f3("uAccent", M[0], M[1], M[2]), G.f1("uGlowGain", de.glow), G.f1("uGlowIn", de.glowIn), G.f1("uOccl", de.occl), G.f1("uDim", se.dim), G.f1("uPunch", de.punch), k(null), Se = requestAnimationFrame(Ee);
612
+ e.useProgram(c.p), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, g.tex), G.i1("uSoft", 0), e.activeTexture(e.TEXTURE1), e.bindTexture(e.TEXTURE_2D, h.tex), G.i1("uRim", 1), e.activeTexture(e.TEXTURE2), e.bindTexture(e.TEXTURE_2D, v.tex), G.i1("uGlow", 2), G.f2("uRes", b, x), G.f2("uC", w, T), G.f2("uHalf", S / 2, C / 2), G.f1("uT", me), G.fv4("uRip", _e), G.f4("uRipK", P.speed, P.width, P.decay, P.amp), G.f4("uRipK2", P.facet, P.lobes, P.sharp, P.emit), G.f3("uAccent", ae[0], ae[1], ae[2]), G.f1("uGlowGain", ue.glow), G.f1("uGlowIn", ue.glowIn), G.f1("uOccl", ue.occl), G.f1("uDim", oe.dim), G.f1("uPunch", ue.punch), k(null), Se = requestAnimationFrame(Ee);
613
613
  }
614
614
  let G = (e) => {
615
615
  if (e.pointerType !== "mouse") return;
616
616
  let [t, n] = W(e);
617
- B.x = t, B.y = n, V.x = t, V.y = n, ve = 0, H.over = !0, ye();
617
+ z.x = t, z.y = n, B.x = t, B.y = n, ve = 0, H.over = !0, ye();
618
618
  }, De = (e) => {
619
619
  e.pointerType === "mouse" && (H.over = !1, ye());
620
620
  }, Oe = (e) => {
621
621
  if (!H.over && !H.press) return;
622
622
  let [t, n] = W(e);
623
- B.x = t, B.y = n;
623
+ z.x = t, z.y = n;
624
624
  }, ke = (e) => {
625
625
  let [t, n] = W(e);
626
- B.x = t, B.y = n, H.press = !0, ye(), U(t, n);
626
+ z.x = t, z.y = n, H.press = !0, ye(), U(t, n);
627
627
  }, Ae = () => {
628
628
  H.press = !1, ye();
629
629
  }, je = () => {
@@ -653,22 +653,22 @@ function ge(e, t, n, r) {
653
653
  }
654
654
  //#endregion
655
655
  //#region src/LiquidMetalButton.tsx
656
- function I({ 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;
660
660
  if (!e || !t || !n) return;
661
661
  let r = window.matchMedia("(prefers-reduced-motion: reduce)"), i = !1, a = !1, o = null, c = !1, l = () => {
662
- o?.dispose(), o = null, a &&= (te(), !1), c || g("css");
662
+ o?.dispose(), o = null, a &&= (A(), !1), c || g("css");
663
663
  }, p = () => {
664
- if (!(c || o) && ne({
664
+ if (!(c || o) && te({
665
665
  renderer: s,
666
666
  hasWebGL2: typeof WebGL2RenderingContext < "u",
667
667
  prefersReducedMotion: r.matches,
668
668
  isInViewport: i
669
669
  }) && k()) {
670
670
  if (a = !0, o = me(n, t, e), !o) {
671
- te(), a = !1;
671
+ A(), a = !1;
672
672
  return;
673
673
  }
674
674
  g("webgl");
@@ -725,7 +725,7 @@ function I({ children: e, className: r, onClick: i, sound: a = !1, type: o = "bu
725
725
  }
726
726
  //#endregion
727
727
  //#region src/clay/tokens.ts
728
- var L = {
728
+ var I = {
729
729
  ink: "#3b2d23",
730
730
  inkMuted: "#786250",
731
731
  parchment: "#fff8ec",
@@ -748,7 +748,7 @@ var L = {
748
748
  overlayGlassText: "#fff6ee",
749
749
  liquidMetalFace: "#3a2518",
750
750
  liquidMetalInk: "#fff8ec"
751
- }, R = {
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 L = {
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
- }, z = {
759
+ }, R = {
760
760
  morphShape: "var(--game-ui-liquid-gooey-morph-shape)",
761
761
  morphSpeed: "var(--game-ui-liquid-gooey-morph-speed)",
762
762
  morphBounce: "var(--game-ui-liquid-gooey-morph-bounce)",
@@ -840,7 +840,7 @@ var L = {
840
840
  dissolveStrength: "var(--game-ui-liquid-gooey-dissolve-strength)",
841
841
  dissolveSink: "var(--game-ui-liquid-gooey-dissolve-sink)",
842
842
  dissolveSeamBlur: "var(--game-ui-liquid-gooey-dissolve-seam-blur)"
843
- }, B = {
843
+ }, z = {
844
844
  bg: "var(--game-ui-overlay-glass-bg)",
845
845
  bgHover: "var(--game-ui-overlay-glass-bg-hover)",
846
846
  bgStrong: "var(--game-ui-overlay-glass-bg-strong)",
@@ -852,7 +852,7 @@ var L = {
852
852
  blur: "var(--game-ui-overlay-glass-blur)",
853
853
  focusRing: "var(--game-ui-overlay-glass-focus-ring)",
854
854
  primaryFill: "var(--game-ui-overlay-glass-primary-fill)"
855
- }, V = {
855
+ }, B = {
856
856
  background: "var(--game-ui-bg)",
857
857
  playfieldScrim: "var(--game-ui-playfield-scrim)",
858
858
  surface: "var(--game-ui-surface)",
@@ -871,7 +871,7 @@ var L = {
871
871
  borderSubtle: "var(--game-ui-border-subtle)",
872
872
  borderStrong: "var(--game-ui-border-strong)",
873
873
  disabled: "var(--game-ui-disabled)"
874
- }, _e = {
874
+ }, V = {
875
875
  familyDisplay: "var(--game-ui-font-display)",
876
876
  familyBody: "var(--game-ui-font-body)",
877
877
  familyMono: "var(--game-ui-font-mono)",
@@ -954,9 +954,9 @@ var L = {
954
954
  buildRailCardSize: "var(--game-ui-build-rail-card-size)",
955
955
  brushNumberWidth: "var(--game-ui-brush-number-width)"
956
956
  }, Se = {
957
- colors: L,
958
- semantic: V,
959
- typography: _e,
957
+ colors: I,
958
+ semantic: B,
959
+ typography: V,
960
960
  spacing: ve,
961
961
  radius: H,
962
962
  elevation: U,
@@ -964,9 +964,9 @@ var L = {
964
964
  layers: ye,
965
965
  targets: be,
966
966
  assetSizing: xe,
967
- overlayGlass: B,
968
- liquidMetal: R,
969
- liquidGooey: z
967
+ overlayGlass: z,
968
+ liquidMetal: L,
969
+ liquidGooey: R
970
970
  }, Ce = 2, we = 48e4, Te = 2, Ee = we, G = 0;
971
971
  function De(e, t) {
972
972
  return Number.isFinite(e) ? Math.max(0, Math.floor(e)) : t;
@@ -993,11 +993,11 @@ function je() {
993
993
  }
994
994
  //#endregion
995
995
  //#region src/liquidGooeyFilter.tsx
996
- var Me = "1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 60 -29.5", Ne = {
996
+ var Me = "1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 60 -29.5", Ne = .5, Pe = {
997
997
  waviness: 6,
998
998
  wavinessFreq: .018
999
999
  };
1000
- function Pe({ index: n, shadow: r }) {
1000
+ function Fe({ index: n, shadow: r }) {
1001
1001
  let i = [], a = "bin";
1002
1002
  return r.spread !== 0 && (i.push(/* @__PURE__ */ t("feMorphology", {
1003
1003
  in: a,
@@ -1028,7 +1028,7 @@ function Pe({ index: n, shadow: r }) {
1028
1028
  result: `shadow-${n}`
1029
1029
  }, "fill")), /* @__PURE__ */ t(e, { children: i });
1030
1030
  }
1031
- function Fe({ index: n, shadow: r }) {
1031
+ function Ie({ index: n, shadow: r }) {
1032
1032
  let i = [], a = "shape";
1033
1033
  return r.spread !== 0 && (i.push(/* @__PURE__ */ t("feMorphology", {
1034
1034
  in: "bin",
@@ -1054,7 +1054,7 @@ function Fe({ index: n, shadow: r }) {
1054
1054
  result: `shadow-${n}`
1055
1055
  }, "fill")), /* @__PURE__ */ t(e, { children: i });
1056
1056
  }
1057
- function Ie({ stroke: n }) {
1057
+ function Le({ stroke: n }) {
1058
1058
  let r = [];
1059
1059
  return r.push(/* @__PURE__ */ t("feMorphology", {
1060
1060
  in: "bin",
@@ -1076,7 +1076,7 @@ function Ie({ stroke: n }) {
1076
1076
  result: "stroke-out"
1077
1077
  }, "fill")), /* @__PURE__ */ t(e, { children: r });
1078
1078
  }
1079
- function Le({ blur: r, contrast: i, shadows: a, stroke: o, waviness: s = Ne.waviness, wavinessFreq: c = Ne.wavinessFreq }) {
1079
+ function Re({ blur: r, contrast: i, shadows: a, stroke: o, waviness: s = Pe.waviness, wavinessFreq: c = Pe.wavinessFreq }) {
1080
1080
  let l = Math.round((.5 - 5 / 12 * i) * 100) / 100, u = s > 0;
1081
1081
  return /* @__PURE__ */ n(e, { children: [
1082
1082
  /* @__PURE__ */ t("feGaussianBlur", {
@@ -1096,34 +1096,42 @@ function Le({ blur: r, contrast: i, shadows: a, stroke: o, waviness: s = Ne.wavi
1096
1096
  operator: "atop",
1097
1097
  result: u ? "shape-raw" : "shape"
1098
1098
  }),
1099
- u ? /* @__PURE__ */ n(e, { children: [/* @__PURE__ */ t("feTurbulence", {
1100
- type: "fractalNoise",
1101
- baseFrequency: c,
1102
- numOctaves: 2,
1103
- seed: "7",
1104
- result: "wave-noise"
1105
- }), /* @__PURE__ */ t("feDisplacementMap", {
1106
- in: "shape-raw",
1107
- in2: "wave-noise",
1108
- scale: s * 2,
1109
- xChannelSelector: "R",
1110
- yChannelSelector: "G",
1111
- result: "shape"
1112
- })] }) : null,
1099
+ u ? /* @__PURE__ */ n(e, { children: [
1100
+ /* @__PURE__ */ t("feTurbulence", {
1101
+ type: "fractalNoise",
1102
+ baseFrequency: c,
1103
+ numOctaves: 2,
1104
+ seed: "7",
1105
+ result: "wave-noise"
1106
+ }),
1107
+ /* @__PURE__ */ t("feDisplacementMap", {
1108
+ in: "shape-raw",
1109
+ in2: "wave-noise",
1110
+ scale: s * 2,
1111
+ xChannelSelector: "R",
1112
+ yChannelSelector: "G",
1113
+ result: "shape-displaced"
1114
+ }),
1115
+ /* @__PURE__ */ t("feGaussianBlur", {
1116
+ in: "shape-displaced",
1117
+ stdDeviation: Ne,
1118
+ result: "shape"
1119
+ })
1120
+ ] }) : null,
1113
1121
  o !== null || a.some((e) => e.inset || e.spread !== 0) ? /* @__PURE__ */ t("feColorMatrix", {
1114
1122
  in: "shape",
1115
1123
  type: "matrix",
1116
1124
  values: Me,
1117
1125
  result: "bin"
1118
1126
  }) : null,
1119
- a.map((e, n) => e.inset ? /* @__PURE__ */ t(Pe, {
1127
+ a.map((e, n) => e.inset ? /* @__PURE__ */ t(Fe, {
1120
1128
  index: n,
1121
1129
  shadow: e
1122
- }, n) : /* @__PURE__ */ t(Fe, {
1130
+ }, n) : /* @__PURE__ */ t(Ie, {
1123
1131
  index: n,
1124
1132
  shadow: e
1125
1133
  }, n)),
1126
- o ? /* @__PURE__ */ t(Ie, { stroke: o }) : null,
1134
+ o ? /* @__PURE__ */ t(Le, { stroke: o }) : null,
1127
1135
  a.length > 0 || o ? /* @__PURE__ */ n("feMerge", { children: [
1128
1136
  a.map((e, t) => e.inset ? -1 : t).filter((e) => e >= 0).reverse().map((e) => /* @__PURE__ */ t("feMergeNode", { in: `shadow-${e}` }, e)),
1129
1137
  /* @__PURE__ */ t("feMergeNode", { in: "shape" }),
@@ -1133,8 +1141,17 @@ function Le({ blur: r, contrast: i, shadows: a, stroke: o, waviness: s = Ne.wavi
1133
1141
  ] });
1134
1142
  }
1135
1143
  //#endregion
1144
+ //#region src/liquidGooeyWaviness.ts
1145
+ var ze = .3;
1146
+ function Be(e, t, n = ze) {
1147
+ let r = Math.max(0, Number.isFinite(e) ? e : 0);
1148
+ if (n === !1) return r;
1149
+ let i = Math.max(0, Number.isFinite(n) ? n : ze), a = Math.max(0, Number.isFinite(t) ? t : 0);
1150
+ return a > 0 ? Math.min(r, a * i) : r;
1151
+ }
1152
+ //#endregion
1136
1153
  //#region src/liquidGooeyGeometry.ts
1137
- function Re(e, t) {
1154
+ function Ve(e, t) {
1138
1155
  let n = 0, r = 0, i = e;
1139
1156
  for (; i && i !== t && t.contains(i);) n += i.offsetLeft, r += i.offsetTop, i = i.offsetParent;
1140
1157
  return {
@@ -1142,7 +1159,7 @@ function Re(e, t) {
1142
1159
  y: r
1143
1160
  };
1144
1161
  }
1145
- function ze(e, t, n) {
1162
+ function He(e, t, n) {
1146
1163
  let r = getComputedStyle(e), i = (e) => {
1147
1164
  let r = e.split(" ")[0] ?? "";
1148
1165
  return r.endsWith("%") ? (parseFloat(r) || 0) / 100 * Math.min(t, n) : parseFloat(r) || 0;
@@ -1154,7 +1171,7 @@ function ze(e, t, n) {
1154
1171
  i(r.borderBottomLeftRadius)
1155
1172
  ];
1156
1173
  }
1157
- function Be(e) {
1174
+ function Ue(e) {
1158
1175
  return typeof e == "number" ? [
1159
1176
  e,
1160
1177
  e,
@@ -1162,13 +1179,13 @@ function Be(e) {
1162
1179
  e
1163
1180
  ] : e;
1164
1181
  }
1165
- function Ve(e, t, n, r, i) {
1182
+ function We(e, t, n, r, i) {
1166
1183
  let [a, o, s, c] = i.map((e) => Math.max(0, e)), l = Math.min(1, n / Math.max(1e-6, a + o), n / Math.max(1e-6, c + s), r / Math.max(1e-6, a + c), r / Math.max(1e-6, o + s));
1167
1184
  return a *= l, o *= l, s *= l, c *= l, `M ${e + a} ${t} H ${e + n - o} A ${o} ${o} 0 0 1 ${e + n} ${t + o} V ${t + r - s} A ${s} ${s} 0 0 1 ${e + n - s} ${t + r} H ${e + c} A ${c} ${c} 0 0 1 ${e} ${t + r - c} V ${t + a} A ${a} ${a} 0 0 1 ${e + a} ${t} Z`;
1168
1185
  }
1169
1186
  //#endregion
1170
1187
  //#region src/liquidGooeyMove.ts
1171
- var He = {
1188
+ var Ge = {
1172
1189
  stiffness: 380,
1173
1190
  damping: 18,
1174
1191
  stretch: .18,
@@ -1198,29 +1215,29 @@ var He = {
1198
1215
  settleSpeed: 1,
1199
1216
  integrationRate: 60
1200
1217
  };
1201
- function Ue(e, t = 0, n = 1) {
1218
+ function Ke(e, t = 0, n = 1) {
1202
1219
  return Math.min(n, Math.max(t, e));
1203
1220
  }
1204
- function We(e, t) {
1221
+ function qe(e, t) {
1205
1222
  return e !== void 0 && Number.isFinite(e) ? e : t;
1206
1223
  }
1207
- function Ge(e) {
1224
+ function Je(e) {
1208
1225
  return /^var\((--[\w-]+)\)$/.exec(e.trim())?.[1] ?? null;
1209
1226
  }
1210
- function Ke(e, t, n) {
1211
- let r = e?.ownerDocument.defaultView, i = Ge(z[t]);
1227
+ function Ye(e, t, n) {
1228
+ let r = e?.ownerDocument.defaultView, i = Je(R[t]);
1212
1229
  if (!r || !i) return n;
1213
1230
  let a = r.getComputedStyle(e).getPropertyValue(i), o = Number.parseFloat(a);
1214
1231
  return Number.isFinite(o) ? o : n;
1215
1232
  }
1216
- function qe(e) {
1217
- let t = (t, n) => Ke(e, t, n);
1233
+ function Xe(e) {
1234
+ let t = (t, n) => Ye(e, t, n);
1218
1235
  return {
1219
- stiffness: Math.max(.001, t("moveStiffness", He.stiffness)),
1220
- damping: Math.max(0, t("moveDamping", He.damping)),
1221
- stretch: Ue(t("moveStretch", He.stretch)),
1222
- tail: Ue(t("moveTail", He.tail)),
1223
- force: Ue(t("moveForce", He.force)),
1236
+ stiffness: Math.max(.001, t("moveStiffness", Ge.stiffness)),
1237
+ damping: Math.max(0, t("moveDamping", Ge.damping)),
1238
+ stretch: Ke(t("moveStretch", Ge.stretch)),
1239
+ tail: Ke(t("moveTail", Ge.tail)),
1240
+ force: Ke(t("moveForce", Ge.force)),
1224
1241
  tailSpringStiffness: Math.max(.001, t("moveTailSpringStiffness", K.tailSpringStiffness)),
1225
1242
  tailSpringDamping: Math.max(0, t("moveTailSpringDamping", K.tailSpringDamping)),
1226
1243
  stretchSpeed: Math.max(0, t("moveStretchSpeed", K.stretchSpeed)),
@@ -1232,10 +1249,10 @@ function qe(e) {
1232
1249
  tailMinRadius: Math.max(0, t("moveTailMinRadius", K.tailMinRadius)),
1233
1250
  tailWobble: Math.max(0, t("moveTailWobble", K.tailWobble)),
1234
1251
  tailPhaseSpeed: Math.max(0, t("moveTailPhaseSpeed", K.tailPhaseSpeed)),
1235
- tailMidpointA: Ue(t("moveTailMidpointA", K.tailMidpointA)),
1236
- tailMidpointB: Ue(t("moveTailMidpointB", K.tailMidpointB)),
1237
- tailMidRadiusA: Ue(t("moveTailMidRadiusA", K.tailMidRadiusA)),
1238
- tailMidRadiusB: Ue(t("moveTailMidRadiusB", K.tailMidRadiusB)),
1252
+ tailMidpointA: Ke(t("moveTailMidpointA", K.tailMidpointA)),
1253
+ tailMidpointB: Ke(t("moveTailMidpointB", K.tailMidpointB)),
1254
+ tailMidRadiusA: Ke(t("moveTailMidRadiusA", K.tailMidRadiusA)),
1255
+ tailMidRadiusB: Ke(t("moveTailMidRadiusB", K.tailMidRadiusB)),
1239
1256
  tailWobblePhase: t("moveTailWobblePhase", K.tailWobblePhase),
1240
1257
  minPerpendicular: Math.max(0, t("moveMinPerpendicular", K.minPerpendicular)),
1241
1258
  lagBase: Math.max(0, t("moveLagBase", K.lagBase)),
@@ -1245,32 +1262,32 @@ function qe(e) {
1245
1262
  integrationRate: Math.max(1, t("moveIntegrationRate", K.integrationRate))
1246
1263
  };
1247
1264
  }
1248
- function Je(e, t) {
1265
+ function Ze(e, t) {
1249
1266
  return {
1250
- vertical: Ue(We(t?.vertical, Ke(e, "bendVertical", .6))),
1251
- horizontal: Ue(We(t?.horizontal, Ke(e, "bendHorizontal", .35))),
1252
- velocityVertical: Math.max(0, Ke(e, "bendVelocityVertical", .05)),
1253
- velocityHorizontal: Math.max(0, Ke(e, "bendVelocityHorizontal", .09)),
1254
- smoothing: Math.max(0, Ke(e, "bendSmoothing", 9)),
1255
- activeThreshold: Math.max(0, Ke(e, "bendActiveThreshold", .5)),
1256
- verticalCap: Math.max(0, Ke(e, "bendVerticalCap", .5)),
1257
- horizontalCap: Math.max(0, Ke(e, "bendHorizontalCap", .9)),
1258
- radiusMin: Math.max(0, Ke(e, "bendRadiusMin", .2)),
1259
- radiusMax: Math.max(0, Ke(e, "bendRadiusMax", 3)),
1260
- leadingCapFactor: Math.max(0, Ke(e, "bendLeadingCapFactor", .8)),
1261
- trailingCapFactor: Math.max(0, Ke(e, "bendTrailingCapFactor", 1.6))
1267
+ vertical: Ke(qe(t?.vertical, Ye(e, "bendVertical", .6))),
1268
+ horizontal: Ke(qe(t?.horizontal, Ye(e, "bendHorizontal", .35))),
1269
+ velocityVertical: Math.max(0, Ye(e, "bendVelocityVertical", .05)),
1270
+ velocityHorizontal: Math.max(0, Ye(e, "bendVelocityHorizontal", .09)),
1271
+ smoothing: Math.max(0, Ye(e, "bendSmoothing", 9)),
1272
+ activeThreshold: Math.max(0, Ye(e, "bendActiveThreshold", .5)),
1273
+ verticalCap: Math.max(0, Ye(e, "bendVerticalCap", .5)),
1274
+ horizontalCap: Math.max(0, Ye(e, "bendHorizontalCap", .9)),
1275
+ radiusMin: Math.max(0, Ye(e, "bendRadiusMin", .2)),
1276
+ radiusMax: Math.max(0, Ye(e, "bendRadiusMax", 3)),
1277
+ leadingCapFactor: Math.max(0, Ye(e, "bendLeadingCapFactor", .8)),
1278
+ trailingCapFactor: Math.max(0, Ye(e, "bendTrailingCapFactor", 1.6))
1262
1279
  };
1263
1280
  }
1264
- function Ye(e, t, n, r, i, a) {
1281
+ function Qe(e, t, n, r, i, a) {
1265
1282
  let o = t + (r * (n - e) - i * t) * a;
1266
1283
  return [e + o * a, o];
1267
1284
  }
1268
- function Xe(e, t, n, r, i, a, o) {
1269
- let s = Math.max(0, We(a, 0)), c = Math.max(1, Math.ceil(s * o)), l = s / c, u = e, d = t;
1270
- for (; c-- > 0;) [u, d] = Ye(u, d, n, r, i, l);
1285
+ function $e(e, t, n, r, i, a, o) {
1286
+ let s = Math.max(0, qe(a, 0)), c = Math.max(1, Math.ceil(s * o)), l = s / c, u = e, d = t;
1287
+ for (; c-- > 0;) [u, d] = Qe(u, d, n, r, i, l);
1271
1288
  return [u, d];
1272
1289
  }
1273
- function Ze(e) {
1290
+ function et(e) {
1274
1291
  return {
1275
1292
  cx: e.cx,
1276
1293
  cy: e.cy,
@@ -1285,31 +1302,31 @@ function Ze(e) {
1285
1302
  tailInitialized: !0
1286
1303
  };
1287
1304
  }
1288
- function Qe(e, t) {
1305
+ function tt(e, t) {
1289
1306
  e.cx = t.cx, e.cy = t.cy, e.vcx = 0, e.vcy = 0, e.tailX = t.cx, e.tailY = t.cy, e.tailVx = 0, e.tailVy = 0, e.tailR = 0, e.tailPhase = 0, e.tailInitialized = !0;
1290
1307
  }
1291
- function $e(e) {
1308
+ function nt(e) {
1292
1309
  return String(Math.round(e * 1e3) / 1e3);
1293
1310
  }
1294
1311
  function q(e) {
1295
1312
  return Math.round(e * 10) / 10;
1296
1313
  }
1297
- function et(e, t, n, r, i) {
1298
- let a = Math.max(.01, We(t.scale, 1));
1299
- [e.cx, e.vcx] = Xe(e.cx, e.vcx, t.cx, i.stiffness, i.damping, r, i.integrationRate), [e.cy, e.vcy] = Xe(e.cy, e.vcy, t.cy, i.stiffness, i.damping, r, i.integrationRate);
1314
+ function rt(e, t, n, r, i) {
1315
+ let a = Math.max(.01, qe(t.scale, 1));
1316
+ [e.cx, e.vcx] = $e(e.cx, e.vcx, t.cx, i.stiffness, i.damping, r, i.integrationRate), [e.cy, e.vcy] = $e(e.cy, e.vcy, t.cy, i.stiffness, i.damping, r, i.integrationRate);
1300
1317
  let o = Math.hypot(e.vcx, e.vcy), s = 0, c = 1, l = 1;
1301
1318
  if (o > i.speedThreshold) {
1302
1319
  let t = Math.min(i.stretch, o * i.stretchSpeed);
1303
1320
  s = Math.round(Math.atan2(e.vcy, e.vcx) * 100) / 100, c = 1 + t, l = 1 / (1 + t * i.stretchSquash);
1304
1321
  }
1305
- e.tailInitialized ||= (e.tailX = e.cx, e.tailY = e.cy, !0), [e.tailX, e.tailVx] = Xe(e.tailX, e.tailVx, e.cx, i.tailSpringStiffness, i.tailSpringDamping, r, i.integrationRate), [e.tailY, e.tailVy] = Xe(e.tailY, e.tailVy, e.cy, i.tailSpringStiffness, i.tailSpringDamping, r, i.integrationRate);
1322
+ e.tailInitialized ||= (e.tailX = e.cx, e.tailY = e.cy, !0), [e.tailX, e.tailVx] = $e(e.tailX, e.tailVx, e.cx, i.tailSpringStiffness, i.tailSpringDamping, r, i.integrationRate), [e.tailY, e.tailVy] = $e(e.tailY, e.tailVy, e.cy, i.tailSpringStiffness, i.tailSpringDamping, r, i.integrationRate);
1306
1323
  let u = Math.max(0, n.w * a), d = Math.max(0, n.h * a), f = o > .001 ? e.vcx / o : 1, p = o > .001 ? e.vcy / o : 0, m = Math.max(i.minPerpendicular, Math.abs(f) * d + Math.abs(p) * u), h = (Math.abs(f) * u + Math.abs(p) * d) / 2, g = m / 2, _ = e.tailX - e.cx, v = e.tailY - e.cy, y = Math.hypot(_, v), b = h + g * (i.lagBase + i.force * i.lagForce);
1307
1324
  y > b && y > 0 && (e.tailX = e.cx + _ / y * b, e.tailY = e.cy + v / y * b);
1308
- let x = Ue((o - i.tailOnsetSpeed) / i.tailOnsetRange), S = g * i.tail * x;
1325
+ let x = Ke((o - i.tailOnsetSpeed) / i.tailOnsetRange), S = g * i.tail * x;
1309
1326
  e.tailR += (S - e.tailR) * Math.min(1, Math.max(0, r) * i.tailRamp);
1310
1327
  let C = e.tailR >= i.tailMinRadius, w = e.cx, T = e.cy, E = e.cx, D = e.cy, O = 0, ee = 0;
1311
1328
  if (C) {
1312
- e.tailPhase += o * Math.max(0, We(r, 0)) * i.tailPhaseSpeed;
1329
+ e.tailPhase += o * Math.max(0, qe(r, 0)) * i.tailPhaseSpeed;
1313
1330
  let t = e.tailR * i.tailWobble, n = -p, a = f, s = Math.sin(e.tailPhase) * t, c = Math.sin(e.tailPhase + i.tailWobblePhase) * -t;
1314
1331
  w = e.cx + _ * i.tailMidpointA + n * s, T = e.cy + v * i.tailMidpointA + a * s, E = e.cx + _ * i.tailMidpointB + n * c, D = e.cy + v * i.tailMidpointB + a * c, O = e.tailR * i.tailMidRadiusA, ee = e.tailR * i.tailMidRadiusB;
1315
1332
  }
@@ -1335,17 +1352,17 @@ function et(e, t, n, r, i) {
1335
1352
  ].join(",") : "hidden"
1336
1353
  };
1337
1354
  return {
1338
- path: Ve(-n.w / 2, -n.h / 2, n.w, n.h, n.r),
1339
- transform: `translate(${$e(e.cx)} ${$e(e.cy)}) ` + (o > i.speedThreshold ? `rotate(${$e(s * 180 / Math.PI)}) scale(${$e(c)} ${$e(l)}) ` : "") + `scale(${$e(a)})`,
1355
+ path: We(-n.w / 2, -n.h / 2, n.w, n.h, n.r),
1356
+ transform: `translate(${nt(e.cx)} ${nt(e.cy)}) ` + (o > i.speedThreshold ? `rotate(${nt(s * 180 / Math.PI)}) scale(${nt(c)} ${nt(l)}) ` : "") + `scale(${nt(a)})`,
1340
1357
  tail: k,
1341
1358
  moving: Math.hypot(e.cx - t.cx, e.cy - t.cy) > i.settleDistance || o > i.settleSpeed || e.tailR >= i.tailMinRadius
1342
1359
  };
1343
1360
  }
1344
- function tt(e, t, n, r, i, a) {
1361
+ function it(e, t, n, r, i, a) {
1345
1362
  let o = Math.min(Math.max(0, n), e / 2, t / 2), s = Math.round(r * 2 * 10) / 10, c = Math.max(o * a.radiusMin, Math.min(o * a.radiusMax, i > 0 ? o - a.leadingCapFactor * i : o + a.trailingCapFactor * -i)), l = Math.max(o * a.radiusMin, Math.min(o * a.radiusMax, i > 0 ? o + a.trailingCapFactor * i : o - a.leadingCapFactor * -i)), u = .5523, d = (e) => Math.round(e * 10) / 10;
1346
1363
  return `M ${d(l)} 0 Q ${d(e / 2)} ${d(s)} ${d(e - c)} 0 C ${d(e - c + u * c)} 0 ${d(e)} ${d(o - u * o)} ${d(e)} ${d(o)} L ${d(e)} ${d(t - o)} C ${d(e)} ${d(t - o + u * o)} ${d(e - c + u * c)} ${d(t)} ${d(e - c)} ${d(t)} Q ${d(e / 2)} ${d(t + r * 2)} ${d(l)} ${d(t)} C ${d(l - u * l)} ${d(t)} 0 ${d(t - o + u * o)} 0 ${d(t - o)} L 0 ${d(o)} C 0 ${d(o - u * o)} ${d(l - u * l)} 0 ${d(l)} 0 Z`;
1347
1364
  }
1348
- function nt(e) {
1365
+ function at(e) {
1349
1366
  return {
1350
1367
  cx: e.cx,
1351
1368
  cy: e.cy,
@@ -1358,20 +1375,20 @@ function nt(e) {
1358
1375
  initialized: !1
1359
1376
  };
1360
1377
  }
1361
- function rt(e, t) {
1378
+ function ot(e, t) {
1362
1379
  e.cx = t.cx, e.cy = t.cy, e.previousCx = t.cx, e.previousCy = t.cy, e.vcx = 0, e.vcy = 0, e.bendY = 0, e.bendX = 0, e.initialized = !0;
1363
1380
  }
1364
- function it(e, t) {
1381
+ function st(e, t) {
1365
1382
  return Math.min(e.w, e.h) * t.verticalCap * 2 * t.vertical;
1366
1383
  }
1367
- function at(e, t, n, r, i) {
1368
- let a = Math.max(1 / 240, We(r, 1 / 60));
1384
+ function ct(e, t, n, r, i) {
1385
+ let a = Math.max(1 / 240, qe(r, 1 / 60));
1369
1386
  e.initialized ||= (e.previousCx = t.cx, e.previousCy = t.cy, !0);
1370
1387
  let o = (t.cx - e.previousCx) / a, s = (t.cy - e.previousCy) / a;
1371
1388
  e.previousCx = t.cx, e.previousCy = t.cy, e.vcx = e.vcx * .7 + o * .3, e.vcy = e.vcy * .7 + s * .3, e.cx = t.cx, e.cy = t.cy;
1372
1389
  let c = Math.min(n.w, n.h), l = c * i.verticalCap, u = Math.max(-l, Math.min(l, e.vcy * i.velocityVertical)) * i.vertical, d = c * i.horizontalCap, f = Math.max(-d, Math.min(d, e.vcx * i.velocityHorizontal)) * i.horizontal;
1373
1390
  e.bendY += (u - e.bendY) * Math.min(1, a * i.smoothing), e.bendX += (f - e.bendX) * Math.min(1, a * i.smoothing);
1374
- let p = Math.abs(e.bendY) > i.activeThreshold || Math.abs(e.bendX) > i.activeThreshold, m = Math.min(...n.r), h = p ? tt(n.w, n.h, m, e.bendY, e.bendX, i) : Ve(-n.w / 2, -n.h / 2, n.w, n.h, n.r), g = p ? `translate(${$e(e.cx - n.w / 2)} ${$e(e.cy - n.h / 2)}) scale(${$e(t.scale)})` : `translate(${$e(e.cx)} ${$e(e.cy)}) scale(${$e(t.scale)})`, _ = Math.round(e.bendX * 10) / 10, v = Math.round(e.bendY * 10) / 10;
1391
+ let p = Math.abs(e.bendY) > i.activeThreshold || Math.abs(e.bendX) > i.activeThreshold, m = Math.min(...n.r), h = p ? it(n.w, n.h, m, e.bendY, e.bendX, i) : We(-n.w / 2, -n.h / 2, n.w, n.h, n.r), g = p ? `translate(${nt(e.cx - n.w / 2)} ${nt(e.cy - n.h / 2)}) scale(${nt(t.scale)})` : `translate(${nt(e.cx)} ${nt(e.cy)}) scale(${nt(t.scale)})`, _ = Math.round(e.bendX * 10) / 10, v = Math.round(e.bendY * 10) / 10;
1375
1392
  return {
1376
1393
  path: h,
1377
1394
  transform: g,
@@ -1383,7 +1400,7 @@ function at(e, t, n, r, i) {
1383
1400
  }
1384
1401
  //#endregion
1385
1402
  //#region src/liquidGooeyEvolve.ts
1386
- var ot = {
1403
+ var lt = {
1387
1404
  massStiffness: 320,
1388
1405
  massDamping: 17,
1389
1406
  sizeStiffness: 170,
@@ -1398,41 +1415,41 @@ var ot = {
1398
1415
  anticipation: 90,
1399
1416
  travel: 32
1400
1417
  };
1401
- function st(e) {
1418
+ function ut(e) {
1402
1419
  return /^var\((--[\w-]+)\)$/.exec(e.trim())?.[1] ?? null;
1403
1420
  }
1404
- function ct(e, t) {
1421
+ function dt(e, t) {
1405
1422
  return e !== void 0 && Number.isFinite(e) ? e : t;
1406
1423
  }
1407
- function lt(e, t = 0, n = 1) {
1424
+ function ft(e, t = 0, n = 1) {
1408
1425
  return Math.min(n, Math.max(t, e));
1409
1426
  }
1410
- function ut(e, t, n) {
1411
- let r = e?.ownerDocument.defaultView, i = st(z[t]);
1427
+ function pt(e, t, n) {
1428
+ let r = e?.ownerDocument.defaultView, i = ut(R[t]);
1412
1429
  if (!r || !i) return n;
1413
1430
  let a = Number.parseFloat(r.getComputedStyle(e).getPropertyValue(i));
1414
1431
  return Number.isFinite(a) ? a : n;
1415
1432
  }
1416
- function dt(e, t, n) {
1417
- let r = e?.ownerDocument.defaultView, i = st(z[t]);
1433
+ function mt(e, t, n) {
1434
+ let r = e?.ownerDocument.defaultView, i = ut(R[t]);
1418
1435
  return !r || !i ? n : r.getComputedStyle(e).getPropertyValue(i).trim() || n;
1419
1436
  }
1420
- function ft(e, t) {
1421
- let n = (t, n) => ut(e, t, n), r = {
1422
- massStiffness: Math.max(.001, n("evolveMassStiffness", ot.massStiffness)),
1423
- massDamping: Math.max(0, n("evolveMassDamping", ot.massDamping)),
1424
- sizeStiffness: Math.max(.001, n("evolveSizeStiffness", ot.sizeStiffness)),
1425
- sizeDamping: Math.max(0, n("evolveSizeDamping", ot.sizeDamping)),
1426
- radiusStiffness: Math.max(.001, n("evolveRadiusStiffness", ot.radiusStiffness)),
1427
- radiusDamping: Math.max(0, n("evolveRadiusDamping", ot.radiusDamping)),
1428
- contentBlur: Math.max(0, n("evolveContentBlur", ot.contentBlur)),
1429
- roundness: lt(n("evolveRoundness", ot.roundness)),
1430
- cornerDuration: Math.max(0, n("evolveCornerDuration", ot.cornerDuration)),
1431
- cornerDelay: Math.max(0, n("evolveCornerDelay", ot.cornerDelay)),
1432
- cornerEase: dt(e, "evolveCornerEase", ot.cornerEase),
1433
- anticipation: Math.max(0, n("evolveAnticipation", ot.anticipation)),
1434
- travel: Math.max(0, n("evolveTravel", ot.travel))
1435
- }, i = Math.max(.25, ct(t?.speed, n("morphSpeed", 1))), a = lt(ct(t?.bounce, n("morphBounce", .5))), o = (e) => Math.max(.12, 1 - 1.1 * lt(e)), s = o(a) / o(.5);
1437
+ function ht(e, t) {
1438
+ let n = (t, n) => pt(e, t, n), r = {
1439
+ massStiffness: Math.max(.001, n("evolveMassStiffness", lt.massStiffness)),
1440
+ massDamping: Math.max(0, n("evolveMassDamping", lt.massDamping)),
1441
+ sizeStiffness: Math.max(.001, n("evolveSizeStiffness", lt.sizeStiffness)),
1442
+ sizeDamping: Math.max(0, n("evolveSizeDamping", lt.sizeDamping)),
1443
+ radiusStiffness: Math.max(.001, n("evolveRadiusStiffness", lt.radiusStiffness)),
1444
+ radiusDamping: Math.max(0, n("evolveRadiusDamping", lt.radiusDamping)),
1445
+ contentBlur: Math.max(0, n("evolveContentBlur", lt.contentBlur)),
1446
+ roundness: ft(n("evolveRoundness", lt.roundness)),
1447
+ cornerDuration: Math.max(0, n("evolveCornerDuration", lt.cornerDuration)),
1448
+ cornerDelay: Math.max(0, n("evolveCornerDelay", lt.cornerDelay)),
1449
+ cornerEase: mt(e, "evolveCornerEase", lt.cornerEase),
1450
+ anticipation: Math.max(0, n("evolveAnticipation", lt.anticipation)),
1451
+ travel: Math.max(0, n("evolveTravel", lt.travel))
1452
+ }, i = Math.max(.25, dt(t?.speed, n("morphSpeed", 1))), a = ft(dt(t?.bounce, n("morphBounce", .5))), o = (e) => Math.max(.12, 1 - 1.1 * ft(e)), s = o(a) / o(.5);
1436
1453
  return {
1437
1454
  massStiffness: r.massStiffness * i * i,
1438
1455
  massDamping: r.massDamping * i * s,
@@ -1440,7 +1457,7 @@ function ft(e, t) {
1440
1457
  sizeDamping: r.sizeDamping * i * s,
1441
1458
  radiusStiffness: r.radiusStiffness * i * i,
1442
1459
  radiusDamping: r.radiusDamping * i,
1443
- contentBlur: Math.max(0, ct(t?.contentBlur, r.contentBlur)),
1460
+ contentBlur: Math.max(0, dt(t?.contentBlur, r.contentBlur)),
1444
1461
  roundness: r.roundness,
1445
1462
  cornerDuration: r.cornerDuration / i,
1446
1463
  cornerDelay: r.cornerDelay,
@@ -1450,14 +1467,14 @@ function ft(e, t) {
1450
1467
  ...t?.advanced ?? {}
1451
1468
  };
1452
1469
  }
1453
- function pt(e, t) {
1454
- return t?.shape === void 0 ? ut(e, "morphShape", 1) >= .5 : t.shape;
1470
+ function gt(e, t) {
1471
+ return t?.shape === void 0 ? pt(e, "morphShape", 1) >= .5 : t.shape;
1455
1472
  }
1456
- function mt(e, t) {
1457
- let n = ft(e, t), r = Math.max(0, ut(e, "contentBlurAreaMultiplier", 3));
1473
+ function _t(e, t) {
1474
+ let n = ht(e, t), r = Math.max(0, pt(e, "contentBlurAreaMultiplier", 3));
1458
1475
  return n.contentBlur * r;
1459
1476
  }
1460
- function ht(e) {
1477
+ function vt(e) {
1461
1478
  return {
1462
1479
  cx: e.cx,
1463
1480
  cy: e.cy,
@@ -1482,7 +1499,7 @@ function ht(e) {
1482
1499
  round01: 0
1483
1500
  };
1484
1501
  }
1485
- function gt(e, t) {
1502
+ function yt(e, t) {
1486
1503
  e.cx = t.cx, e.cy = t.cy, e.w = t.w, e.h = t.h, e.r = t.r, e.vcx = 0, e.vcy = 0, e.vw = 0, e.vh = 0, e.vr = 0, e.motionEnv = 0, e.tPrev = {
1487
1504
  cx: t.cx,
1488
1505
  cy: t.cy
@@ -1491,18 +1508,18 @@ function gt(e, t) {
1491
1508
  h: t.h
1492
1509
  }, e.morphActive = !1, e.round01 = 0;
1493
1510
  }
1494
- function _t(e, t, n, r, i, a) {
1511
+ function bt(e, t, n, r, i, a) {
1495
1512
  let o = t + (r * (n - e) - i * t) * a;
1496
1513
  return [e + o * a, o];
1497
1514
  }
1498
- function vt(e, t, n, r, i, a) {
1499
- let o = Math.max(0, ct(a, 0)), s = Math.max(1, Math.ceil(o * 60)), c = o / s, l = e, u = t;
1500
- for (; s-- > 0;) [l, u] = _t(l, u, n, r, i, c);
1515
+ function xt(e, t, n, r, i, a) {
1516
+ let o = Math.max(0, dt(a, 0)), s = Math.max(1, Math.ceil(o * 60)), c = o / s, l = e, u = t;
1517
+ for (; s-- > 0;) [l, u] = bt(l, u, n, r, i, c);
1501
1518
  return [l, u];
1502
1519
  }
1503
- var yt = /* @__PURE__ */ new Map();
1504
- function bt(e) {
1505
- let t = yt.get(e);
1520
+ var St = /* @__PURE__ */ new Map();
1521
+ function Ct(e) {
1522
+ let t = St.get(e);
1506
1523
  if (t) return t;
1507
1524
  let n = /cubic-bezier\(([^)]+)\)/.exec(e);
1508
1525
  if (n) {
@@ -1518,14 +1535,14 @@ function bt(e) {
1518
1535
  let s = (n + o) / 2;
1519
1536
  return 3 * s * (1 - s) * (1 - s) * r + 3 * s * s * (1 - s) * a + s ** 3;
1520
1537
  };
1521
- } else t = e === "ease-in-out" ? bt("cubic-bezier(0.42, 0, 0.58, 1)") : (e) => lt(e);
1522
- return yt.set(e, t), t;
1538
+ } else t = e === "ease-in-out" ? Ct("cubic-bezier(0.42, 0, 0.58, 1)") : (e) => ft(e);
1539
+ return St.set(e, t), t;
1523
1540
  }
1524
- function xt(e) {
1541
+ function wt(e) {
1525
1542
  return String(Math.round(e * 1e3) / 1e3);
1526
1543
  }
1527
- function St(e, t, n, r, i) {
1528
- let a = Math.max(0, ct(n, 0)), o = t.cx, s = t.cy;
1544
+ function Tt(e, t, n, r, i) {
1545
+ let a = Math.max(0, dt(n, 0)), o = t.cx, s = t.cy;
1529
1546
  e.tPrev ||= {
1530
1547
  cx: o,
1531
1548
  cy: s
@@ -1540,7 +1557,7 @@ function St(e, t, n, r, i) {
1540
1557
  let g = Math.max(0, i.anticipation) / 1e3, _ = g > 0 ? 1 - Math.exp(-a / g) : 1;
1541
1558
  e.lead01 += (+(f > .5) - e.lead01) * _;
1542
1559
  let v = Math.min(Math.max(0, i.travel) * e.lead01, f);
1543
- [e.cx, e.vcx] = vt(e.cx, e.vcx, o + m * v, i.massStiffness, i.massDamping, a), [e.cy, e.vcy] = vt(e.cy, e.vcy, s + h * v, i.massStiffness, i.massDamping, a), [e.w, e.vw] = vt(e.w, e.vw, t.w, i.sizeStiffness, i.sizeDamping, a), [e.h, e.vh] = vt(e.h, e.vh, t.h, i.sizeStiffness, i.sizeDamping, a), [e.r, e.vr] = vt(e.r, e.vr, t.r, i.radiusStiffness, i.radiusDamping, a);
1560
+ [e.cx, e.vcx] = xt(e.cx, e.vcx, o + m * v, i.massStiffness, i.massDamping, a), [e.cy, e.vcy] = xt(e.cy, e.vcy, s + h * v, i.massStiffness, i.massDamping, a), [e.w, e.vw] = xt(e.w, e.vw, t.w, i.sizeStiffness, i.sizeDamping, a), [e.h, e.vh] = xt(e.h, e.vh, t.h, i.sizeStiffness, i.sizeDamping, a), [e.r, e.vr] = xt(e.r, e.vr, t.r, i.radiusStiffness, i.radiusDamping, a);
1544
1561
  let y = e.lastTargetSize;
1545
1562
  (y ? Math.abs(t.w - y.w) + Math.abs(t.h - y.h) : 0) > .5 ? (e.morphActive ||= (e.cornerT0 = r, e.cornerStarted = !0, !0), e.lastTargetMoveT = r) : e.morphActive && r - e.lastTargetMoveT > 150 && r - e.cornerT0 > Math.max(0, i.cornerDelay) + Math.max(1, i.cornerDuration) && (e.morphActive = !1), e.lastTargetSize = {
1546
1563
  w: t.w,
@@ -1548,8 +1565,8 @@ function St(e, t, n, r, i) {
1548
1565
  };
1549
1566
  let b = Math.max(0, i.cornerDelay) + Math.max(1, i.cornerDuration), x = 0;
1550
1567
  if (e.cornerStarted && i.roundness > 0 && r - e.cornerT0 < b) {
1551
- let t = lt((r - e.cornerT0 - Math.max(0, i.cornerDelay)) / Math.max(1, i.cornerDuration));
1552
- x = lt((1 - bt(i.cornerEase)(t)) * i.roundness);
1568
+ let t = ft((r - e.cornerT0 - Math.max(0, i.cornerDelay)) / Math.max(1, i.cornerDuration));
1569
+ x = ft((1 - Ct(i.cornerEase)(t)) * i.roundness);
1553
1570
  }
1554
1571
  let S = a * 8;
1555
1572
  e.round01 += Math.max(-S, Math.min(S, x - e.round01));
@@ -1567,15 +1584,15 @@ function St(e, t, n, r, i) {
1567
1584
  C
1568
1585
  ];
1569
1586
  return {
1570
- path: Ve(-e.w / 2, -e.h / 2, e.w, e.h, ee),
1571
- transform: `translate(${xt(e.cx)} ${xt(e.cy)}) scale(${xt(t.scale)})`,
1587
+ path: We(-e.w / 2, -e.h / 2, e.w, e.h, ee),
1588
+ transform: `translate(${wt(e.cx)} ${wt(e.cy)}) scale(${wt(t.scale)})`,
1572
1589
  contentBlur: T,
1573
1590
  moving: !O
1574
1591
  };
1575
1592
  }
1576
1593
  //#endregion
1577
1594
  //#region src/liquidGooeySpring.ts
1578
- var Ct = {
1595
+ var Et = {
1579
1596
  snappy: {
1580
1597
  stiffness: 480,
1581
1598
  damping: 34,
@@ -1591,16 +1608,16 @@ var Ct = {
1591
1608
  damping: 17,
1592
1609
  mass: 1
1593
1610
  }
1594
- }, wt = 1 / 240;
1595
- function Tt(e) {
1611
+ }, Dt = 1 / 240;
1612
+ function Ot(e) {
1596
1613
  let t = 0, n = 0, r = 0, i = -1, a = 0, o = [0];
1597
1614
  for (; r < 10;) {
1598
1615
  let s = (-e.stiffness * (t - 1) - e.damping * n) / e.mass;
1599
- if (n += s * wt, t += n * wt, r += wt, o.push(t), t > a && (a = t), Math.abs(t - 1) < .001 && Math.abs(n) < .02) {
1616
+ if (n += s * Dt, t += n * Dt, r += Dt, o.push(t), t > a && (a = t), Math.abs(t - 1) < .001 && Math.abs(n) < .02) {
1600
1617
  if (i < 0 && (i = r), r - i >= .064) break;
1601
1618
  } else i = -1;
1602
1619
  }
1603
- let s = i > 0 ? i : r, c = Math.round(Math.min(120, Math.max(24, s * 90))), l = Math.min(o.length - 1, s / wt), u = [];
1620
+ let s = i > 0 ? i : r, c = Math.round(Math.min(120, Math.max(24, s * 90))), l = Math.min(o.length - 1, s / Dt), u = [];
1604
1621
  for (let e = 0; e <= c; e += 1) {
1605
1622
  let t = Math.min(o.length - 1, Math.round(e / c * l));
1606
1623
  u.push(Math.round((o[t] ?? 1) * 1e4) / 1e4);
@@ -1611,13 +1628,13 @@ function Tt(e) {
1611
1628
  overshoots: a > 1.001
1612
1629
  };
1613
1630
  }
1614
- var Et = null;
1615
- function Dt() {
1616
- return Et === null && (Et = typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("transition-timing-function", "linear(0, 1)")), Et;
1631
+ var kt = null;
1632
+ function At() {
1633
+ return kt === null && (kt = typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("transition-timing-function", "linear(0, 1)")), kt;
1617
1634
  }
1618
- var Ot = /* @__PURE__ */ new Map(), kt = /* @__PURE__ */ new Map();
1619
- function At(e) {
1620
- let t = kt.get(e);
1635
+ var jt = /* @__PURE__ */ new Map(), Mt = /* @__PURE__ */ new Map();
1636
+ function Nt(e) {
1637
+ let t = Mt.get(e);
1621
1638
  if (t) return t;
1622
1639
  let n = /^linear\(([^)]+)\)$/.exec(e.trim()), r = /^cubic-bezier\(([^)]+)\)$/.exec(e.trim()), i;
1623
1640
  if (n) {
@@ -1641,10 +1658,10 @@ function At(e) {
1641
1658
  let s = (i + o) / 2;
1642
1659
  return 3 * s * (1 - s) * (1 - s) * t + 3 * s * s * (1 - s) * a + s ** 3;
1643
1660
  };
1644
- } else i = e === "ease" ? At("cubic-bezier(0.25, 0.1, 0.25, 1)") : e === "ease-in" ? At("cubic-bezier(0.42, 0, 1, 1)") : e === "ease-out" ? At("cubic-bezier(0, 0, 0.58, 1)") : e === "ease-in-out" ? At("cubic-bezier(0.42, 0, 0.58, 1)") : (e) => Math.min(1, Math.max(0, e));
1645
- return kt.set(e, i), i;
1661
+ } else i = e === "ease" ? Nt("cubic-bezier(0.25, 0.1, 0.25, 1)") : e === "ease-in" ? Nt("cubic-bezier(0.42, 0, 1, 1)") : e === "ease-out" ? Nt("cubic-bezier(0, 0, 0.58, 1)") : e === "ease-in-out" ? Nt("cubic-bezier(0.42, 0, 0.58, 1)") : (e) => Math.min(1, Math.max(0, e));
1662
+ return Mt.set(e, i), i;
1646
1663
  }
1647
- function jt(e, t = !1) {
1664
+ function Pt(e, t = !1) {
1648
1665
  if (t) return {
1649
1666
  duration: 0,
1650
1667
  easing: "linear"
@@ -1654,58 +1671,58 @@ function jt(e, t = !1) {
1654
1671
  duration: Math.max(0, n.duration),
1655
1672
  easing: n.ease ?? "cubic-bezier(0.22, 1, 0.36, 1)"
1656
1673
  };
1657
- let r = typeof n == "string" ? Ct[n] : {
1674
+ let r = typeof n == "string" ? Et[n] : {
1658
1675
  stiffness: 300,
1659
1676
  damping: 24,
1660
1677
  mass: 1,
1661
1678
  ...n
1662
- }, i = `${r.stiffness}/${r.damping}/${r.mass}/${Dt()}`, a = Ot.get(i);
1679
+ }, i = `${r.stiffness}/${r.damping}/${r.mass}/${At()}`, a = jt.get(i);
1663
1680
  if (!a) {
1664
- let e = Tt(r);
1681
+ let e = Ot(r);
1665
1682
  a = {
1666
1683
  duration: Math.round(e.duration * 1e3),
1667
- easing: Dt() ? `linear(${e.values.join(", ")})` : e.overshoots ? "cubic-bezier(0.34, 1.56, 0.64, 1)" : "cubic-bezier(0.22, 1, 0.36, 1)"
1668
- }, Ot.set(i, a);
1684
+ easing: At() ? `linear(${e.values.join(", ")})` : e.overshoots ? "cubic-bezier(0.34, 1.56, 0.64, 1)" : "cubic-bezier(0.22, 1, 0.36, 1)"
1685
+ }, jt.set(i, a);
1669
1686
  }
1670
1687
  return a;
1671
1688
  }
1672
1689
  //#endregion
1673
1690
  //#region src/liquidGooeyEngine.ts
1674
- function Mt(e, t) {
1691
+ function Ft(e, t) {
1675
1692
  return e !== void 0 && Number.isFinite(e) ? e : t;
1676
1693
  }
1677
- function Nt(e) {
1694
+ function It(e) {
1678
1695
  let t = {
1679
1696
  observe: e.observe ?? !1,
1680
- x: Mt(e.x, 0),
1681
- y: Mt(e.y, 0),
1682
- scale: Math.max(.01, Mt(e.scale, 1))
1697
+ x: Ft(e.x, 0),
1698
+ y: Ft(e.y, 0),
1699
+ scale: Math.max(.01, Ft(e.scale, 1))
1683
1700
  };
1684
- return e.effect !== void 0 && (t.effect = e.effect), e.morph !== void 0 && (t.morph = e.morph), e.bend !== void 0 && (t.bend = e.bend), e.transition !== void 0 && (t.transition = e.transition), e.delay !== void 0 && (t.delay = Math.max(0, Mt(e.delay, 0))), e.radius !== void 0 && (t.radius = e.radius), t;
1701
+ return e.effect !== void 0 && (t.effect = e.effect), e.morph !== void 0 && (t.morph = e.morph), e.bend !== void 0 && (t.bend = e.bend), e.transition !== void 0 && (t.transition = e.transition), e.delay !== void 0 && (t.delay = Math.max(0, Ft(e.delay, 0))), e.radius !== void 0 && (t.radius = e.radius), t;
1685
1702
  }
1686
- function Pt(e) {
1703
+ function Lt(e) {
1687
1704
  return {
1688
1705
  x: e.x,
1689
1706
  y: e.y,
1690
1707
  scale: e.scale
1691
1708
  };
1692
1709
  }
1693
- function Ft(e, t) {
1710
+ function Rt(e, t) {
1694
1711
  return e.x === t.x && e.y === t.y && e.scale === t.scale;
1695
1712
  }
1696
- function It(e, t) {
1697
- return e.effect === t.effect && e.observe === t.observe && JSON.stringify(e.morph) === JSON.stringify(t.morph) && JSON.stringify(e.bend) === JSON.stringify(t.bend) && JSON.stringify(e.transition) === JSON.stringify(t.transition) && e.delay === t.delay && Lt(e.radius) === Lt(t.radius);
1713
+ function zt(e, t) {
1714
+ return e.effect === t.effect && e.observe === t.observe && JSON.stringify(e.morph) === JSON.stringify(t.morph) && JSON.stringify(e.bend) === JSON.stringify(t.bend) && JSON.stringify(e.transition) === JSON.stringify(t.transition) && e.delay === t.delay && Bt(e.radius) === Bt(t.radius);
1698
1715
  }
1699
- function Lt(e) {
1716
+ function Bt(e) {
1700
1717
  return e === void 0 ? "" : JSON.stringify(e);
1701
1718
  }
1702
- function Rt(e, t) {
1719
+ function Vt(e, t) {
1703
1720
  return !!(e && Math.abs(e.x - t.x) < .01 && Math.abs(e.y - t.y) < .01 && Math.abs(e.w - t.w) < .01 && Math.abs(e.h - t.h) < .01 && e.r.every((e, n) => Math.abs(e - (t.r[n] ?? 0)) < .01));
1704
1721
  }
1705
- function zt(e) {
1722
+ function Ht(e) {
1706
1723
  return String(Math.round(e * 1e3) / 1e3);
1707
1724
  }
1708
- var Bt = class {
1725
+ var Ut = class {
1709
1726
  getGroup;
1710
1727
  getFilterArea;
1711
1728
  onModeChange;
@@ -1735,11 +1752,11 @@ var Bt = class {
1735
1752
  }
1736
1753
  register(e) {
1737
1754
  this.revive(), this.unregister(e.id);
1738
- let t = Nt(e.config), n = {
1755
+ let t = It(e.config), n = {
1739
1756
  ...e,
1740
1757
  config: t,
1741
- target: Pt(t),
1742
- current: Pt(t),
1758
+ target: Lt(t),
1759
+ current: Lt(t),
1743
1760
  motion: null,
1744
1761
  lastBox: null,
1745
1762
  lastPaint: null,
@@ -1761,7 +1778,7 @@ var Bt = class {
1761
1778
  update(e, t) {
1762
1779
  let n = this.items.get(e);
1763
1780
  if (!n) return;
1764
- let r = Nt(t), i = Pt(r), a = !Ft(n.target, i), o = !It(n.config, r);
1781
+ let r = It(t), i = Lt(r), a = !Rt(n.target, i), o = !zt(n.config, r);
1765
1782
  if (n.config = r, this.updateFeaturePadding(), !a) {
1766
1783
  o && (n.lastPaint = null, this.isDynamic(n) || this.resetDynamicEntry(n), r.effect === "bend" && this.writeBendVars(n, 0, 0), this.isDynamic(n) && !this.reducedMotion && (this.ensureClaim() ? this.setMode("animated") : (this.snapEntry(n), this.resetDynamicEntry(n), this.setMode("static"))), this.touch(), this.wake());
1767
1784
  return;
@@ -1769,13 +1786,13 @@ var Bt = class {
1769
1786
  let s = this.now();
1770
1787
  if (this.advanceEntry(n, s), n.target = i, this.reducedMotion) this.snapEntry(n), this.resetMoveEntry(n), this.resetDynamicEntry(n), this.setMode("reduced");
1771
1788
  else {
1772
- let e = jt(r.transition), t = e.duration > 0;
1789
+ let e = Pt(r.transition), t = e.duration > 0;
1773
1790
  !(t || this.follow || this.isDynamic(n)) || !this.ensureClaim() ? (this.snapEntry(n), this.resetMoveEntry(n), this.resetDynamicEntry(n), this.setMode("static")) : !t || r.observe ? (n.current = { ...i }, n.motion = null, n.host.style.willChange = "", n.lastPaint = null, this.applyHost(n), this.setMode("animated")) : (n.motion = {
1774
1791
  from: { ...n.current },
1775
1792
  to: { ...i },
1776
1793
  start: s + (r.delay ?? 0),
1777
1794
  duration: e.duration,
1778
- ease: At(e.easing)
1795
+ ease: Nt(e.easing)
1779
1796
  }, n.host.style.willChange = r.observe ? "" : "transform", this.setMode("animated"));
1780
1797
  }
1781
1798
  this.touch(s), this.needsPaint = !0, this.wake();
@@ -1832,7 +1849,7 @@ var Bt = class {
1832
1849
  ensureClaim() {
1833
1850
  if (this.claimed) return !0;
1834
1851
  let e = this.getFilterArea();
1835
- return Number.isFinite(e) && (this.filterArea = Math.max(0, e)), Ae(this.filterArea) ? (this.claimed = !0, this.moveOptions = qe(this.getGroup()), !0) : (this.warnBudgetFallback(), !1);
1852
+ return Number.isFinite(e) && (this.filterArea = Math.max(0, e)), Ae(this.filterArea) ? (this.claimed = !0, this.moveOptions = Xe(this.getGroup()), !0) : (this.warnBudgetFallback(), !1);
1836
1853
  }
1837
1854
  warnBudgetFallback() {
1838
1855
  if (this.budgetWarningEmitted || !0) return;
@@ -1850,7 +1867,7 @@ var Bt = class {
1850
1867
  return e.config.effect === "bend";
1851
1868
  }
1852
1869
  isShape(e) {
1853
- return !this.isBend(e) && e.config.morph !== void 0 && pt(this.getGroup(), e.config.morph);
1870
+ return !this.isBend(e) && e.config.morph !== void 0 && gt(this.getGroup(), e.config.morph);
1854
1871
  }
1855
1872
  isDynamic(e) {
1856
1873
  return this.isBend(e) || this.isShape(e);
@@ -1873,7 +1890,7 @@ var Bt = class {
1873
1890
  let e = 0;
1874
1891
  for (let t of this.items.values()) {
1875
1892
  let n = this.featureBox(t);
1876
- this.isBend(t) ? e = Math.max(e, it(n, Je(this.getGroup(), t.config.bend))) : this.isShape(t) && (e = Math.max(e, mt(this.getGroup(), t.config.morph)));
1893
+ this.isBend(t) ? e = Math.max(e, st(n, Ze(this.getGroup(), t.config.bend))) : this.isShape(t) && (e = Math.max(e, _t(this.getGroup(), t.config.morph)));
1877
1894
  }
1878
1895
  Math.abs(e - this.featurePadding) < .5 || (this.featurePadding = e, this.onFeaturePaddingChange?.(e));
1879
1896
  }
@@ -1886,7 +1903,7 @@ var Bt = class {
1886
1903
  this.clearContentBlur(e);
1887
1904
  return;
1888
1905
  }
1889
- let r = e.baseContentFilter.trim(), i = `${r && r !== "none" ? `${r} ` : ""}blur(${zt(n)}px)`;
1906
+ let r = e.baseContentFilter.trim(), i = `${r && r !== "none" ? `${r} ` : ""}blur(${Ht(n)}px)`;
1890
1907
  e.lastContentFilter !== i && (e.host.style.filter = i, e.lastContentFilter = i, e.contentBlurred = !0);
1891
1908
  }
1892
1909
  clearBendVars(e) {
@@ -1929,7 +1946,7 @@ var Bt = class {
1929
1946
  e.ownTransform && e.host.style.transform === e.ownTransform && e.host.style.removeProperty("transform"), e.ownTransform = "";
1930
1947
  return;
1931
1948
  }
1932
- let t = `translate(${zt(e.current.x)}px, ${zt(e.current.y)}px) scale(${zt(e.current.scale)})`;
1949
+ let t = `translate(${Ht(e.current.x)}px, ${Ht(e.current.y)}px) scale(${Ht(e.current.scale)})`;
1933
1950
  e.ownTransform !== t && (e.ownTransform = t, e.host.style.transform = t);
1934
1951
  }
1935
1952
  createTailElements(e) {
@@ -1965,15 +1982,15 @@ var Bt = class {
1965
1982
  };
1966
1983
  }
1967
1984
  readBox(e, t) {
1968
- let n = e.host.firstElementChild ?? e.host, r = Re(e.host, t), i = e.host.offsetWidth, a = e.host.offsetHeight;
1985
+ let n = e.host.firstElementChild ?? e.host, r = Ve(e.host, t), i = e.host.offsetWidth, a = e.host.offsetHeight;
1969
1986
  if (e.config.observe) {
1970
1987
  let o = n.getBoundingClientRect(), s = t.getBoundingClientRect();
1971
1988
  o.width > 0 || o.height > 0 ? (r = {
1972
1989
  x: o.left - s.left,
1973
1990
  y: o.top - s.top
1974
- }, i = o.width || n.offsetWidth, a = o.height || n.offsetHeight) : (r = Re(n, t), i = n.offsetWidth || e.host.offsetWidth, a = n.offsetHeight || e.host.offsetHeight);
1991
+ }, i = o.width || n.offsetWidth, a = o.height || n.offsetHeight) : (r = Ve(n, t), i = n.offsetWidth || e.host.offsetWidth, a = n.offsetHeight || e.host.offsetHeight);
1975
1992
  }
1976
- let o = e.config.radius === void 0 ? ze(n, i, a) : Be(e.config.radius);
1993
+ let o = e.config.radius === void 0 ? He(n, i, a) : Ue(e.config.radius);
1977
1994
  return {
1978
1995
  x: r.x,
1979
1996
  y: r.y,
@@ -1995,8 +2012,8 @@ var Bt = class {
1995
2012
  }
1996
2013
  paintEvolveEntry(e, t, n, r) {
1997
2014
  let i = this.dynamicTarget(e, t);
1998
- e.evolve ||= ht(i), (this.reducedMotion || !this.claimed && !r) && gt(e.evolve, i);
1999
- let a = ft(this.getGroup(), e.config.morph), o = St(e.evolve, i, this.reducedMotion || !this.claimed && !r ? 0 : n, this.now(), a), s = `${o.path}|${o.transform}`, c = !1;
2015
+ e.evolve ||= vt(i), (this.reducedMotion || !this.claimed && !r) && yt(e.evolve, i);
2016
+ let a = ht(this.getGroup(), e.config.morph), o = Tt(e.evolve, i, this.reducedMotion || !this.claimed && !r ? 0 : n, this.now(), a), s = `${o.path}|${o.transform}`, c = !1;
2000
2017
  return e.lastPaint !== s && (e.lastPaint = s, e.blob.setAttribute("d", o.path), e.blob.setAttribute("transform", o.transform), c = !0), this.hideTail(e), this.writeContentBlur(e, o.contentBlur), {
2001
2018
  changed: c,
2002
2019
  moving: !this.reducedMotion && this.claimed && o.moving
@@ -2004,8 +2021,8 @@ var Bt = class {
2004
2021
  }
2005
2022
  paintBendEntry(e, t, n, r) {
2006
2023
  let i = this.dynamicTarget(e, t);
2007
- e.bendState ||= nt(i), (this.reducedMotion || !this.claimed && !r) && rt(e.bendState, i);
2008
- let a = Je(this.getGroup(), e.config.bend), o = at(e.bendState, i, t, this.reducedMotion || !this.claimed && !r ? 0 : n, a), s = !1;
2024
+ e.bendState ||= at(i), (this.reducedMotion || !this.claimed && !r) && ot(e.bendState, i);
2025
+ let a = Ze(this.getGroup(), e.config.bend), o = ct(e.bendState, i, t, this.reducedMotion || !this.claimed && !r ? 0 : n, a), s = !1;
2009
2026
  return e.lastPaint !== o.fingerprint && (e.lastPaint = o.fingerprint, e.blob.setAttribute("d", o.path), e.blob.setAttribute("transform", o.transform), s = !0), this.hideTail(e), this.clearContentBlur(e), this.writeBendVars(e, o.bendX, o.bendY), {
2010
2027
  changed: s,
2011
2028
  moving: !this.reducedMotion && this.claimed && o.moving
@@ -2013,15 +2030,15 @@ var Bt = class {
2013
2030
  }
2014
2031
  paintFollowEntry(e, t, n, r, i) {
2015
2032
  let a = this.moveTarget(e, t);
2016
- !i && r && !this.reducedMotion && !this.claimed && (this.ensureClaim() ? this.setMode("animated") : (this.resetMoveEntry(e), e.move = Ze(a))), e.move ||= Ze(a), this.reducedMotion && Qe(e.move, a);
2017
- let o = this.moveOptions ??= qe(this.getGroup()), s = et(e.move, a, t, this.reducedMotion ? 0 : n, o), c = `${s.path}|${s.transform}`, l = !1;
2033
+ !i && r && !this.reducedMotion && !this.claimed && (this.ensureClaim() ? this.setMode("animated") : (this.resetMoveEntry(e), e.move = et(a))), e.move ||= et(a), this.reducedMotion && tt(e.move, a);
2034
+ let o = this.moveOptions ??= Xe(this.getGroup()), s = rt(e.move, a, t, this.reducedMotion ? 0 : n, o), c = `${s.path}|${s.transform}`, l = !1;
2018
2035
  return e.lastPaint !== c && (e.lastPaint = c, e.blob.setAttribute("d", s.path), e.blob.setAttribute("transform", s.transform), l = !0), this.paintTail(e, s.tail) && (l = !0), {
2019
2036
  changed: l,
2020
2037
  moving: !this.reducedMotion && s.moving && this.claimed
2021
2038
  };
2022
2039
  }
2023
2040
  paintEntry(e, t) {
2024
- let n = t.x + e.current.x + t.w * (1 - e.current.scale) / 2, r = t.y + e.current.y + t.h * (1 - e.current.scale) / 2, i = `translate(${zt(n)} ${zt(r)}) scale(${zt(e.current.scale)})`, a = Ve(0, 0, t.w, t.h, t.r), o = `${a}|${i}`;
2041
+ let n = t.x + e.current.x + t.w * (1 - e.current.scale) / 2, r = t.y + e.current.y + t.h * (1 - e.current.scale) / 2, i = `translate(${Ht(n)} ${Ht(r)}) scale(${Ht(e.current.scale)})`, a = We(0, 0, t.w, t.h, t.r), o = `${a}|${i}`;
2025
2042
  return e.lastPaint === o ? !1 : (e.lastPaint = o, e.blob.setAttribute("d", a), e.blob.setAttribute("transform", i), !0);
2026
2043
  }
2027
2044
  loop = (e) => {
@@ -2040,7 +2057,7 @@ var Bt = class {
2040
2057
  for (let t of this.items.values()) {
2041
2058
  let n = e.get(t.id);
2042
2059
  if (!n) continue;
2043
- let r = t.lastBox === null, s = !Rt(t.lastBox, n);
2060
+ let r = t.lastBox === null, s = !Vt(t.lastBox, n);
2044
2061
  r && a.add(t.id), s && o.add(t.id), s && (t.lastBox = n, t.lastPaint = null, i = !0);
2045
2062
  }
2046
2063
  this.updateFeaturePadding();
@@ -2108,18 +2125,18 @@ var Bt = class {
2108
2125
  };
2109
2126
  //#endregion
2110
2127
  //#region src/liquidGooeyShadow.ts
2111
- function Vt(e, t) {
2128
+ function Wt(e, t) {
2112
2129
  let n = [], r = 0, i = "";
2113
2130
  for (let a of e) a === "(" ? r += 1 : a === ")" && --r, r === 0 && (t === "," ? a === "," : /\s/.test(a)) ? (i.trim() && n.push(i.trim()), i = "") : i += a;
2114
2131
  return i.trim() && n.push(i.trim()), n;
2115
2132
  }
2116
- var Ht = /^[+-]?(\d+\.?\d*|\.\d+)(px)?$/;
2117
- function Ut(e) {
2133
+ var Gt = /^[+-]?(\d+\.?\d*|\.\d+)(px)?$/;
2134
+ function Kt(e) {
2118
2135
  if (!e || e.trim() === "" || e.trim() === "none") return [];
2119
2136
  let t = [];
2120
- for (let n of Vt(e, ",")) {
2121
- let e = Vt(n, " "), r = e.includes("inset"), i = [], a = [];
2122
- for (let t of e) t !== "inset" && (i.length < 4 && Ht.test(t) ? i.push(parseFloat(t)) : a.push(t));
2137
+ for (let n of Wt(e, ",")) {
2138
+ let e = Wt(n, " "), r = e.includes("inset"), i = [], a = [];
2139
+ for (let t of e) t !== "inset" && (i.length < 4 && Gt.test(t) ? i.push(parseFloat(t)) : a.push(t));
2123
2140
  let [o = 0, s = 0, c = 0, l = 0] = i;
2124
2141
  t.push({
2125
2142
  x: o,
@@ -2132,10 +2149,10 @@ function Ut(e) {
2132
2149
  }
2133
2150
  return t;
2134
2151
  }
2135
- function Wt(e) {
2152
+ function qt(e) {
2136
2153
  if (!e || e.trim() === "" || e.trim() === "none") return null;
2137
- let t = Vt(e, " "), n = 0, r = [];
2138
- for (let e of t) e !== "solid" && (n === 0 && Ht.test(e) ? n = parseFloat(e) : r.push(e));
2154
+ let t = Wt(e, " "), n = 0, r = [];
2155
+ for (let e of t) e !== "solid" && (n === 0 && Gt.test(e) ? n = parseFloat(e) : r.push(e));
2139
2156
  return {
2140
2157
  width: n,
2141
2158
  color: r.join(" ") || "var(--game-ui-stroke, transparent)"
@@ -2143,7 +2160,7 @@ function Wt(e) {
2143
2160
  }
2144
2161
  //#endregion
2145
2162
  //#region src/liquidGooeyImageMelt.tsx
2146
- var Gt = 24, Kt = 500, qt = 16, Jt = 6, Yt = {
2163
+ var Jt = 24, Yt = 500, Xt = 16, Zt = 6, Qt = {
2147
2164
  blur: 7,
2148
2165
  contrast: 40,
2149
2166
  reach: .8,
@@ -2173,51 +2190,51 @@ var Gt = 24, Kt = 500, qt = 16, Jt = 6, Yt = {
2173
2190
  sink: .8,
2174
2191
  seamBlur: 12.8
2175
2192
  };
2176
- function Xt() {
2193
+ function $t() {
2177
2194
  return !1;
2178
2195
  }
2179
- function Zt(e, t = 0, n = 1) {
2196
+ function en(e, t = 0, n = 1) {
2180
2197
  return Math.min(n, Math.max(t, e));
2181
2198
  }
2182
- function Qt(e, t) {
2199
+ function tn(e, t) {
2183
2200
  return e !== void 0 && Number.isFinite(e) ? e : t;
2184
2201
  }
2185
- function $t(e, t, n) {
2202
+ function nn(e, t, n) {
2186
2203
  let r = e?.ownerDocument.defaultView;
2187
2204
  if (!r) return n;
2188
- let i = z[t], a = /^var\((--[\w-]+)\)$/.exec(i)?.[1];
2205
+ let i = R[t], a = /^var\((--[\w-]+)\)$/.exec(i)?.[1];
2189
2206
  if (!a) return n;
2190
2207
  let o = Number.parseFloat(r.getComputedStyle(e).getPropertyValue(a));
2191
2208
  return Number.isFinite(o) ? o : n;
2192
2209
  }
2193
- function en(e, t = {}) {
2194
- let n = (n, r) => Qt(t[n], $t(e, r, Yt[n]));
2210
+ function rn(e, t = {}) {
2211
+ let n = (n, r) => tn(t[n], nn(e, r, Qt[n]));
2195
2212
  return {
2196
2213
  blur: Math.max(0, n("blur", "meltBlur")),
2197
2214
  contrast: Math.max(1, n("contrast", "meltContrast")),
2198
2215
  reach: Math.max(0, n("reach", "meltReach")),
2199
2216
  fade: Math.max(0, n("fade", "meltFade")),
2200
2217
  warp: Math.max(0, n("warp", "meltWarp")),
2201
- mix: Zt(n("mix", "meltMix")),
2218
+ mix: en(n("mix", "meltMix")),
2202
2219
  mixBlur: Math.max(0, n("mixBlur", "meltMixBlur")),
2203
2220
  gravity: Math.max(0, n("gravity", "meltGravity")),
2204
2221
  waviness: Math.max(0, n("waviness", "meltWaviness"))
2205
2222
  };
2206
2223
  }
2207
- function tn(e, t) {
2224
+ function an(e, t) {
2208
2225
  let n = typeof t == "object" && t ? t : {}, r = (t, r, i) => {
2209
2226
  let a = n[t];
2210
- return Qt(typeof a == "number" ? a : void 0, $t(e, r, i));
2211
- }, i = Zt(typeof t == "number" ? t : r("strength", "dissolveStrength", J.strength));
2227
+ return tn(typeof a == "number" ? a : void 0, nn(e, r, i));
2228
+ }, i = en(typeof t == "number" ? t : r("strength", "dissolveStrength", J.strength));
2212
2229
  return {
2213
2230
  blur: Math.max(0, r("blur", "dissolveBlur", J.blur)),
2214
2231
  warp: Math.max(0, r("warp", "dissolveWarp", J.warp)),
2215
2232
  pull: Math.max(0, r("pull", "dissolvePull", J.pull)),
2216
2233
  range: Math.max(1, r("range", "dissolveRange", J.range)),
2217
2234
  zone: Math.max(1, r("zone", "dissolveZone", J.zone)),
2218
- mix: Zt(r("mix", "dissolveMix", J.mix)),
2235
+ mix: en(r("mix", "dissolveMix", J.mix)),
2219
2236
  gravity: Math.max(0, r("gravity", "dissolveGravity", J.gravity)),
2220
- taper: Zt(r("taper", "dissolveTaper", J.taper)),
2237
+ taper: en(r("taper", "dissolveTaper", J.taper)),
2221
2238
  warpFreq: Math.max(.2, r("warpFreq", "dissolveWarpFreq", J.warpFreq)),
2222
2239
  flowSpeed: Math.max(0, r("flowSpeed", "dissolveFlowSpeed", J.flowSpeed)),
2223
2240
  warpStyle: n.warpStyle ?? J.warpStyle,
@@ -2230,13 +2247,13 @@ function tn(e, t) {
2230
2247
  seamBlur: Math.max(0, r("seamBlur", "dissolveSeamBlur", J.seamBlur))
2231
2248
  };
2232
2249
  }
2233
- function nn(e) {
2250
+ function on(e) {
2234
2251
  return e ? e instanceof HTMLImageElement ? e : e.querySelector("img") : null;
2235
2252
  }
2236
- function rn(e) {
2253
+ function sn(e) {
2237
2254
  return e && (e.currentSrc || e.src) || null;
2238
2255
  }
2239
- function an(e) {
2256
+ function cn(e) {
2240
2257
  return {
2241
2258
  maskImage: e.style.getPropertyValue("mask-image"),
2242
2259
  maskPriority: e.style.getPropertyPriority("mask-image"),
@@ -2244,11 +2261,11 @@ function an(e) {
2244
2261
  webkitMaskPriority: e.style.getPropertyPriority("-webkit-mask-image")
2245
2262
  };
2246
2263
  }
2247
- function on(e) {
2264
+ function ln(e) {
2248
2265
  let t = e.image, n = e.previousMask;
2249
2266
  !t || !n || (n.maskImage ? t.style.setProperty("mask-image", n.maskImage, n.maskPriority) : t.style.removeProperty("mask-image"), n.webkitMaskImage ? t.style.setProperty("-webkit-mask-image", n.webkitMaskImage, n.webkitMaskPriority) : t.style.removeProperty("-webkit-mask-image"));
2250
2267
  }
2251
- function sn() {
2268
+ function un() {
2252
2269
  let e = /* @__PURE__ */ new Set(), t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set(), r = 0, i = () => n.forEach((e) => e());
2253
2270
  return {
2254
2271
  registerMelt(t) {
@@ -2266,15 +2283,15 @@ function sn() {
2266
2283
  let n = {
2267
2284
  ...e,
2268
2285
  id: `dissolve-${++r}`,
2269
- previousMask: e.image ? an(e.image) : null
2286
+ previousMask: e.image ? cn(e.image) : null
2270
2287
  };
2271
2288
  return t.add(n), i(), {
2272
2289
  update(e) {
2273
- let t = nn(n.el);
2274
- t !== n.image && (on(n), n.image = t, n.previousMask = t ? an(t) : null), n.opts = tn(n.el, e), i();
2290
+ let t = on(n.el);
2291
+ t !== n.image && (ln(n), n.image = t, n.previousMask = t ? cn(t) : null), n.opts = an(n.el, e), i();
2275
2292
  },
2276
2293
  unregister() {
2277
- on(n), t.delete(n), i();
2294
+ ln(n), t.delete(n), i();
2278
2295
  }
2279
2296
  };
2280
2297
  },
@@ -2285,29 +2302,29 @@ function sn() {
2285
2302
  dissolveEntries: () => [...t]
2286
2303
  };
2287
2304
  }
2288
- function cn(e, t, n) {
2289
- let r = nn(t);
2290
- return !r && Xt() && console.warn("[swimmer-ui] `dissolve` needs an <img> inside the item; text and other DOM content stay unchanged."), e.registerDissolve({
2305
+ function dn(e, t, n) {
2306
+ let r = on(t);
2307
+ return !r && $t() && console.warn("[swimmer-ui] `dissolve` needs an <img> inside the item; text and other DOM content stay unchanged."), e.registerDissolve({
2291
2308
  el: t,
2292
2309
  image: r,
2293
- opts: tn(t, n)
2310
+ opts: an(t, n)
2294
2311
  });
2295
2312
  }
2296
- function ln({ src: e, options: n = {}, registry: r, children: i, forwardedRef: a, className: o, style: s, ...c }) {
2313
+ function fn({ src: e, options: n = {}, registry: r, children: i, forwardedRef: a, className: o, style: s, ...c }) {
2297
2314
  let l = p(null), u = JSON.stringify(n), f = p(!1), m = (e) => {
2298
2315
  l.current = e, typeof a == "function" ? a(e) : a && (a.current = e);
2299
2316
  };
2300
2317
  return d(() => {
2301
- let t = l.current, i = t?.firstElementChild, a = nn(i), o = e ?? rn(a);
2318
+ let t = l.current, i = t?.firstElementChild, a = on(i), o = e ?? sn(a);
2302
2319
  if (!t || !i || !a || !o) {
2303
- Xt() && !f.current && (f.current = !0, console.warn("[swimmer-ui] effect=\"melt\" needs an image: pass melt={{ src }} or put an <img> inside the item."));
2320
+ $t() && !f.current && (f.current = !0, console.warn("[swimmer-ui] effect=\"melt\" needs an image: pass melt={{ src }} or put an <img> inside the item."));
2304
2321
  return;
2305
2322
  }
2306
2323
  return r.registerMelt({
2307
2324
  el: t,
2308
2325
  target: a,
2309
2326
  src: o,
2310
- opts: en(t, n)
2327
+ opts: rn(t, n)
2311
2328
  });
2312
2329
  }, [
2313
2330
  u,
@@ -2321,7 +2338,7 @@ function ln({ src: e, options: n = {}, registry: r, children: i, forwardedRef: a
2321
2338
  children: i
2322
2339
  });
2323
2340
  }
2324
- var un = {
2341
+ var pn = {
2325
2342
  width: 0,
2326
2343
  height: 0,
2327
2344
  melt: null,
@@ -2331,28 +2348,28 @@ function Y(e, t = 2) {
2331
2348
  let n = 10 ** t;
2332
2349
  return Math.round(e * n) / n;
2333
2350
  }
2334
- function dn(e) {
2335
- let t = Zt(e);
2351
+ function mn(e) {
2352
+ let t = en(e);
2336
2353
  return t * t * (3 - 2 * t);
2337
2354
  }
2338
- function fn(e, t) {
2355
+ function hn(e, t) {
2339
2356
  let n = Math.max(t.x - (e.x + e.w), e.x - (t.x + t.w), 0), r = Math.max(t.y - (e.y + e.h), e.y - (t.y + t.h), 0);
2340
2357
  return Math.hypot(n, r);
2341
2358
  }
2342
- function pn(e, t) {
2359
+ function gn(e, t) {
2343
2360
  return {
2344
2361
  x: e.x + e.w < t.x ? (e.x + e.w + t.x) / 2 : t.x + t.w < e.x ? (t.x + t.w + e.x) / 2 : (Math.max(e.x, t.x) + Math.min(e.x + e.w, t.x + t.w)) / 2,
2345
2362
  y: e.y + e.h < t.y ? (e.y + e.h + t.y) / 2 : t.y + t.h < e.y ? (t.y + t.h + e.y) / 2 : (Math.max(e.y, t.y) + Math.min(e.y + e.h, t.y + t.h)) / 2
2346
2363
  };
2347
2364
  }
2348
- function mn(e, t, n) {
2365
+ function _n(e, t, n) {
2349
2366
  let r = e.ownerDocument.defaultView?.getComputedStyle(e).borderTopLeftRadius ?? "";
2350
2367
  return Math.max(0, Math.min(Number.parseFloat(r) || 0, t / 2, n / 2));
2351
2368
  }
2352
- function hn(e) {
2369
+ function vn(e) {
2353
2370
  return e.getBoundingClientRect();
2354
2371
  }
2355
- function gn(e, t) {
2372
+ function yn(e, t) {
2356
2373
  let n = e.getBoundingClientRect();
2357
2374
  return {
2358
2375
  x: n.left - t.left,
@@ -2361,21 +2378,21 @@ function gn(e, t) {
2361
2378
  h: n.height
2362
2379
  };
2363
2380
  }
2364
- function _n(e, t) {
2365
- let n = gn(e, t);
2381
+ function bn(e, t) {
2382
+ let n = yn(e, t);
2366
2383
  return {
2367
2384
  ...n,
2368
- r: mn(e, n.w, n.h)
2385
+ r: _n(e, n.w, n.h)
2369
2386
  };
2370
2387
  }
2371
- function vn(e) {
2388
+ function xn(e) {
2372
2389
  return `${Y(e.x)}:${Y(e.y)}:${Y(e.w)}:${Y(e.h)}`;
2373
2390
  }
2374
- function yn(e, t, n) {
2375
- let r = Math.max(1, e.offsetWidth || e.getBoundingClientRect().width), i = Math.max(1, e.offsetHeight || e.getBoundingClientRect().height), a = t ? Math.max(Gt, t.blur * 3, t.fade * 2, t.warp + t.waviness, t.mixBlur * 2, t.gravity * .5) : 0, o = n ? Math.max(Gt, n.blur * 3, n.warp + n.zone, n.gravity * .5, n.seamBlur * 3) : 0, s = Math.ceil(Math.max(a, o, Gt));
2391
+ function Sn(e, t, n) {
2392
+ let r = Math.max(1, e.offsetWidth || e.getBoundingClientRect().width), i = Math.max(1, e.offsetHeight || e.getBoundingClientRect().height), a = t ? Math.max(Jt, t.blur * 3, t.fade * 2, t.warp + t.waviness, t.mixBlur * 2, t.gravity * .5) : 0, o = n ? Math.max(Jt, n.blur * 3, n.warp + n.zone, n.gravity * .5, n.seamBlur * 3) : 0, s = Math.ceil(Math.max(a, o, Jt));
2376
2393
  return (r + s * 2) * (i + s * 2);
2377
2394
  }
2378
- function bn(e) {
2395
+ function Cn(e) {
2379
2396
  let t = e[0]?.opts;
2380
2397
  return t ? e.slice(1).reduce((e, t) => ({
2381
2398
  ...e,
@@ -2386,25 +2403,25 @@ function bn(e) {
2386
2403
  seamBlur: Math.max(e.seamBlur, t.opts.seamBlur)
2387
2404
  }), { ...t }) : null;
2388
2405
  }
2389
- function xn(e, t, n, r, i, a, o, s, c) {
2406
+ function wn(e, t, n, r, i, a, o, s, c) {
2390
2407
  let l = Math.atan2(r, n) * 180 / Math.PI, u = Math.max(0, (s - 1) * Math.max(8, 2 * i)), d = Math.min(2.2, (Math.max(0, o) + u) / Math.max(8, 2 * i)) * (.5 + c), f = 1 + d, p = 1 / (1 + d * .35), m = e - n * (i + a), h = t - r * (i + a);
2391
2408
  return `translate(${Y(m)} ${Y(h)}) rotate(${Y(l)}) scale(${Y(f, 3)} ${Y(p, 3)}) rotate(${-Y(l)}) translate(${Y(-m)} ${Y(-h)})`;
2392
2409
  }
2393
- function Sn(e, t, n, r, i, a) {
2410
+ function Tn(e, t, n, r, i, a) {
2394
2411
  let o = t - e.x, s = n - e.y;
2395
2412
  if (Math.hypot(Math.max(e.x - t, t - (e.x + e.w), 0), Math.max(e.y - n, n - (e.y + e.h), 0)) > r + 2) return null;
2396
2413
  let c = Math.min(e.w, e.h) / 2, l = Math.min(Math.max(r, a * .75), c), u = Y(Math.max(0, 1 - Math.min(i, a) * 2.2), 2), d = Y((1 + 2 * u) / 3, 2), f = Math.max(Math.hypot(o, s), Math.hypot(o - e.w, s), Math.hypot(o, s - e.h), Math.hypot(o - e.w, s - e.h)) + 2;
2397
2414
  return `radial-gradient(circle at ${Y(o)}px ${Y(s)}px, rgba(255,255,255,${u}) ${Y(l * .2)}px, rgba(255,255,255,${d}) ${Y(l * .45)}px, #fff ${Y(l * .78)}px, #fff ${Y(f)}px)`;
2398
2415
  }
2399
- function Cn(e) {
2416
+ function En(e) {
2400
2417
  if (e < .002) return "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1";
2401
2418
  let t = Y(1 + 4 * e, 3);
2402
2419
  return `0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ${t} 0 0 0 ${Y(1 - t * (.38 + .12 * e), 3)}`;
2403
2420
  }
2404
- function wn(e) {
2421
+ function Dn(e) {
2405
2422
  return e.replace(/[^a-zA-Z0-9_-]/g, "");
2406
2423
  }
2407
- var Tn = class {
2424
+ var On = class {
2408
2425
  registry;
2409
2426
  getGroup;
2410
2427
  onState;
@@ -2436,7 +2453,7 @@ var Tn = class {
2436
2453
  if (!this.disposed) {
2437
2454
  this.disposed = !0, this.raf && cancelAnimationFrame(this.raf), this.raf = 0, this.awake = !1, this.resizeObserver?.disconnect(), this.mutationObserver?.disconnect(), this.removeListeners.forEach((e) => e()), this.removeListeners.length = 0;
2438
2455
  for (let e of this.registry.entries()) this.setMeltPainted(e, !1);
2439
- for (let e of this.registry.dissolveEntries()) on(e);
2456
+ for (let e of this.registry.dissolveEntries()) ln(e);
2440
2457
  this.releaseClaim(), this.observed.clear();
2441
2458
  }
2442
2459
  }
@@ -2450,7 +2467,7 @@ var Tn = class {
2450
2467
  let t = /* @__PURE__ */ new Set(), n = (e) => {
2451
2468
  e && (t.add(e), this.observed.has(e) || this.resizeObserver?.observe(e));
2452
2469
  };
2453
- for (let e of this.registry.entries()) n(e.el), n(e.target), n(nn(e.target));
2470
+ for (let e of this.registry.entries()) n(e.el), n(e.target), n(on(e.target));
2454
2471
  for (let e of this.registry.dissolveEntries()) n(e.el), n(e.image);
2455
2472
  for (let e of this.observed) t.has(e) || this.resizeObserver?.unobserve(e);
2456
2473
  this.observed.clear(), t.forEach((e) => this.observed.add(e)), !this.mutationObserver && typeof MutationObserver < "u" && (this.mutationObserver = new MutationObserver((e) => {
@@ -2490,8 +2507,8 @@ var Tn = class {
2490
2507
  }
2491
2508
  ensureClaim(e, t, n) {
2492
2509
  if (this.claimed) return !0;
2493
- if (!Ae(yn(e, t, n))) {
2494
- if (!this.budgetWarningEmitted && Xt()) {
2510
+ if (!Ae(Sn(e, t, n))) {
2511
+ if (!this.budgetWarningEmitted && $t()) {
2495
2512
  this.budgetWarningEmitted = !0;
2496
2513
  let e = Oe(), t = e.activeGroups >= e.maxAnimatedGroups ? "the active-group limit is reached" : "the filter-area limit is exceeded";
2497
2514
  console.warn(`LiquidGroup: the Melt/dissolve image filter budget is insufficient (${t}); degrading to crisp imagery for this group.`);
@@ -2504,7 +2521,7 @@ var Tn = class {
2504
2521
  if (this.raf = 0, this.disposed) return;
2505
2522
  let t = this.registry.entries(), n = this.registry.dissolveEntries();
2506
2523
  if (t.length === 0 && n.length === 0) {
2507
- this.awake = !1, this.lastNow = 0, this.lastActivity = 0, this.meltPairKey = "", this.meltProximity = 0, this.lastStateKey && (this.lastStateKey = "", this.onState(un)), this.releaseClaim();
2524
+ this.awake = !1, this.lastNow = 0, this.lastActivity = 0, this.meltPairKey = "", this.meltProximity = 0, this.lastStateKey && (this.lastStateKey = "", this.onState(pn)), this.releaseClaim();
2508
2525
  return;
2509
2526
  }
2510
2527
  let r = this.getGroup();
@@ -2514,23 +2531,23 @@ var Tn = class {
2514
2531
  }
2515
2532
  let i = this.lastNow ? Math.min(.25, Math.max(1 / 240, (e - this.lastNow) / 1e3)) : 1 / 60;
2516
2533
  this.lastNow = e;
2517
- let a = hn(r), o = /* @__PURE__ */ new Map();
2518
- for (let e of r.querySelectorAll(".game-ui-liquid-item")) e.closest(".game-ui-liquid-group") === r && o.set(e, gn(e, a));
2534
+ let a = vn(r), o = /* @__PURE__ */ new Map();
2535
+ for (let e of r.querySelectorAll(".game-ui-liquid-item")) e.closest(".game-ui-liquid-group") === r && o.set(e, yn(e, a));
2519
2536
  let s = t.slice(0, 2), c = s.map((e) => {
2520
- let t = o.get(e.el) ?? gn(e.el, a), n = rn(nn(e.target));
2537
+ let t = o.get(e.el) ?? yn(e.el, a), n = sn(on(e.target));
2521
2538
  return n && (e.src = n), {
2522
2539
  ...t,
2523
- r: mn(e.target, t.w, t.h)
2540
+ r: _n(e.target, t.w, t.h)
2524
2541
  };
2525
2542
  }), l = s.length === 2 && c.every((e) => e.w > 0 && e.h > 0), u = l ? s[0]?.opts ?? null : null, d = l ? `${s[0]?.id}|${s[1]?.id}` : "";
2526
2543
  d !== this.meltPairKey && (this.meltPairKey = d, this.meltProximity = 0);
2527
- let f = l && c[0] && c[1] ? dn(1 - fn(c[0], c[1]) / Math.max(8, u.blur * 2.6)) : 0;
2544
+ let f = l && c[0] && c[1] ? mn(1 - hn(c[0], c[1]) / Math.max(8, u.blur * 2.6)) : 0;
2528
2545
  this.meltProximity += (f - this.meltProximity) * (1 - Math.exp(-14 * i)), Math.abs(this.meltProximity - f) < .004 && (this.meltProximity = f);
2529
- let p = this.computeDissolves(n, o, a, i), m = l, h = p.visuals.length > 0, g = m || h, _ = bn(n);
2546
+ let p = this.computeDissolves(n, o, a, i), m = l, h = p.visuals.length > 0, g = m || h, _ = Cn(n);
2530
2547
  if (g && !this.ensureClaim(r, u, _)) {
2531
2548
  for (let e of t) this.setMeltPainted(e, !1);
2532
- for (let e of n) on(e);
2533
- this.onState(un), this.lastStateKey = "", this.awake = !1, this.lastNow = 0;
2549
+ for (let e of n) ln(e);
2550
+ this.onState(pn), this.lastStateKey = "", this.awake = !1, this.lastNow = 0;
2534
2551
  return;
2535
2552
  }
2536
2553
  if (m) for (let [e, n] of t.entries()) this.setMeltPainted(n, e < 2);
@@ -2547,14 +2564,14 @@ var Tn = class {
2547
2564
  srcA: s[0].src,
2548
2565
  srcB: s[1].src,
2549
2566
  opts: s[0].opts,
2550
- prox: Zt(this.meltProximity)
2567
+ prox: en(this.meltProximity)
2551
2568
  } : null,
2552
2569
  dissolves: p.visuals
2553
2570
  }, y = this.renderStateKey(v), b = y !== this.lastStateKey;
2554
- b && (this.lastStateKey = y, this.onState(v), this.lastActivity = e), b || p.pending || e - this.lastActivity < Kt ? (this.awake = !0, this.raf = requestAnimationFrame(this.loop)) : (this.awake = !1, this.lastNow = 0);
2571
+ b && (this.lastStateKey = y, this.onState(v), this.lastActivity = e), b || p.pending || e - this.lastActivity < Yt ? (this.awake = !0, this.raf = requestAnimationFrame(this.loop)) : (this.awake = !1, this.lastNow = 0);
2555
2572
  };
2556
2573
  renderStateKey(e) {
2557
- let t = e.melt ? `${e.melt.srcA}|${e.melt.srcB}|${vn(e.melt.a)}|${vn(e.melt.b)}|${Y(e.melt.prox, 3)}` : "", n = e.dissolves.map((e) => `${e.id}|${e.src}|${e.neighborSrc ?? ""}|${vn(e.image)}|${Y(e.cx)}|${Y(e.cy)}|${Y(e.d, 2)}|${Y(e.opacity, 3)}|${Y(e.phase, 3)}|${e.mask ?? ""}`).join(";");
2574
+ let t = e.melt ? `${e.melt.srcA}|${e.melt.srcB}|${xn(e.melt.a)}|${xn(e.melt.b)}|${Y(e.melt.prox, 3)}` : "", n = e.dissolves.map((e) => `${e.id}|${e.src}|${e.neighborSrc ?? ""}|${xn(e.image)}|${Y(e.cx)}|${Y(e.cy)}|${Y(e.d, 2)}|${Y(e.opacity, 3)}|${Y(e.phase, 3)}|${e.mask ?? ""}`).join(";");
2558
2575
  return `${e.width}x${e.height}|${t}|${n}`;
2559
2576
  }
2560
2577
  computeDissolves(e, t, n, r) {
@@ -2562,7 +2579,7 @@ var Tn = class {
2562
2579
  for (let s of e) {
2563
2580
  let e = t.get(s.el), c = s.image;
2564
2581
  if (!e || !c) {
2565
- s.image && on(s);
2582
+ s.image && ln(s);
2566
2583
  continue;
2567
2584
  }
2568
2585
  let l = this.motions.get(s.id) ?? {
@@ -2578,7 +2595,7 @@ var Tn = class {
2578
2595
  let u = Infinity, d = null, f = null;
2579
2596
  for (let [t, n] of o) {
2580
2597
  if (t === s.el) continue;
2581
- let r = fn(e, n);
2598
+ let r = hn(e, n);
2582
2599
  r < u && (u = r, d = n, f = t);
2583
2600
  }
2584
2601
  let p = 0, m = 0;
@@ -2588,11 +2605,11 @@ var Tn = class {
2588
2605
  }
2589
2606
  let h = 0;
2590
2607
  if (d && u < s.opts.range && s.opts.active) {
2591
- let e = dn((1 - u / s.opts.range) / .65), t = dn((p - s.opts.sink * .2) / Math.max(.01, s.opts.sink * .8));
2608
+ let e = mn((1 - u / s.opts.range) / .65), t = mn((p - s.opts.sink * .2) / Math.max(.01, s.opts.sink * .8));
2592
2609
  h = e ** 1.25 * s.opts.strength * (1 - t);
2593
2610
  }
2594
- if (h >= l.fade) l.fade += (h - l.fade) * Math.min(1, r * qt), l.release = null;
2595
- else if (h > .02) l.fade += (h - l.fade) * Math.min(1, r * Jt), l.release = null;
2611
+ if (h >= l.fade) l.fade += (h - l.fade) * Math.min(1, r * Xt), l.release = null;
2612
+ else if (h > .02) l.fade += (h - l.fade) * Math.min(1, r * Zt), l.release = null;
2596
2613
  else if (l.fade > .001 || l.release) {
2597
2614
  l.release ||= {
2598
2615
  from: l.fade,
@@ -2602,26 +2619,26 @@ var Tn = class {
2602
2619
  l.fade = l.release.from * (1 - t) ** 2;
2603
2620
  } else l.fade = 0;
2604
2621
  if (l.fade <= .001) {
2605
- l.fade = 0, on(s);
2622
+ l.fade = 0, ln(s);
2606
2623
  continue;
2607
2624
  }
2608
2625
  let g = d ?? l.contact;
2609
2626
  if (!g) continue;
2610
- let _ = pn(e, g);
2627
+ let _ = gn(e, g);
2611
2628
  l.contact = { ...g };
2612
- let v = dn(l.release ? l.release.from * (.55 + .45 * (1 - Math.min(1, l.release.elapsed / Math.max(40, s.opts.fadeMs)))) : l.fade), y = l.release ? Math.min(1, l.release.elapsed / Math.max(40, s.opts.fadeMs)) : 0;
2613
- l.opacity = l.release ? (1 - y) ** 2 : l.opacity + (1 - l.opacity) * Math.min(1, r * qt);
2629
+ let v = mn(l.release ? l.release.from * (.55 + .45 * (1 - Math.min(1, l.release.elapsed / Math.max(40, s.opts.fadeMs)))) : l.fade), y = l.release ? Math.min(1, l.release.elapsed / Math.max(40, s.opts.fadeMs)) : 0;
2630
+ l.opacity = l.release ? (1 - y) ** 2 : l.opacity + (1 - l.opacity) * Math.min(1, r * Xt);
2614
2631
  let b = Math.min(Math.min(e.w, e.h) * .9, s.opts.zone * (.7 + .6 * v)), x = l.previous, S = x ? Math.hypot(e.x - x.x, e.y - x.y) / Math.max(.001, r) : 0;
2615
2632
  l.previous = {
2616
2633
  x: e.x,
2617
2634
  y: e.y
2618
2635
  }, l.phase += Math.min(r, 1 / 24) * s.opts.flowSpeed * .12 * Math.min(1, S / 40);
2619
- let C = (g.x + g.w / 2 - _.x) / Math.max(.001, Math.hypot(g.x + g.w / 2 - _.x, g.y + g.h / 2 - _.y)), w = (g.y + g.h / 2 - _.y) / Math.max(.001, Math.hypot(g.x + g.w / 2 - _.x, g.y + g.h / 2 - _.y)), T = 1 + Math.min(1.8, u / Math.max(8, 2 * b)), E = _n(c, n), D = d && u < Math.max(10, s.opts.blur * 2.5) ? dn(1 - u / Math.max(10, s.opts.blur * 2.5)) : l.fade, O = Sn(E, _.x, _.y, b, l.fade, Math.max(D, m * .75));
2620
- O ? (c.style.setProperty("mask-image", O), c.style.setProperty("-webkit-mask-image", O)) : on(s);
2636
+ let C = (g.x + g.w / 2 - _.x) / Math.max(.001, Math.hypot(g.x + g.w / 2 - _.x, g.y + g.h / 2 - _.y)), w = (g.y + g.h / 2 - _.y) / Math.max(.001, Math.hypot(g.x + g.w / 2 - _.x, g.y + g.h / 2 - _.y)), T = 1 + Math.min(1.8, u / Math.max(8, 2 * b)), E = bn(c, n), D = d && u < Math.max(10, s.opts.blur * 2.5) ? mn(1 - u / Math.max(10, s.opts.blur * 2.5)) : l.fade, O = Tn(E, _.x, _.y, b, l.fade, Math.max(D, m * .75));
2637
+ O ? (c.style.setProperty("mask-image", O), c.style.setProperty("-webkit-mask-image", O)) : ln(s);
2621
2638
  let ee = Math.atan2(w, C) * 180 / Math.PI, k = {
2622
2639
  id: s.id,
2623
- src: rn(c) ?? c.src,
2624
- neighborSrc: f ? rn(nn(f)) : null,
2640
+ src: sn(c) ?? c.src,
2641
+ neighborSrc: f ? sn(on(f)) : null,
2625
2642
  image: E,
2626
2643
  cx: _.x,
2627
2644
  cy: _.y,
@@ -2646,8 +2663,8 @@ var Tn = class {
2646
2663
  };
2647
2664
  }
2648
2665
  };
2649
- function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox: d }) {
2650
- let f = `lgm-${wn(u())}`, { blur: p, contrast: m, reach: h, fade: g, warp: _, mix: v, mixBlur: y, gravity: b, waviness: x } = s, S = {
2666
+ function kn({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox: d }) {
2667
+ let f = `lgm-${Dn(u())}`, { blur: p, contrast: m, reach: h, fade: g, warp: _, mix: v, mixBlur: y, gravity: b, waviness: x } = s, S = {
2651
2668
  x: r.x + r.w / 2,
2652
2669
  y: r.y + r.h / 2
2653
2670
  }, C = {
@@ -2656,7 +2673,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2656
2673
  }, w = Math.hypot(r.w, r.h) / 2 * h * d, T = Math.hypot(i.w, i.h) / 2 * h * d, E = {
2657
2674
  x: (S.x + C.x) / 2,
2658
2675
  y: (S.y + C.y) / 2
2659
- }, D = C.x - S.x, O = C.y - S.y, ee = Math.max(.001, Math.hypot(D, O)), k = -O / ee, te = D / ee, ne = Math.max(0, (r.w + i.w) / 2 - Math.abs(D)), re = Math.max(0, (r.h + i.h) / 2 - Math.abs(O)), A = .5 * (ne * Math.abs(k) + re * Math.abs(te)) * d, j = Math.round(Math.atan2(te, k) * 180 / Math.PI), ie = Math.round(v * d * 100) / 100, ae = Math.round((2 + (p - 2) * d) * 10) / 10, oe = Math.round(_ * d * 10) / 10, M = Math.round(ae * 2.5 * 10) / 10, se = Math.round((.4 + (2 + p * .8) * d) * 10) / 10, ce = `translate(${r.x}, ${r.y})`, le = `translate(${i.x}, ${i.y})`;
2676
+ }, D = C.x - S.x, O = C.y - S.y, ee = Math.max(.001, Math.hypot(D, O)), k = -O / ee, A = D / ee, te = Math.max(0, (r.w + i.w) / 2 - Math.abs(D)), j = Math.max(0, (r.h + i.h) / 2 - Math.abs(O)), M = .5 * (te * Math.abs(k) + j * Math.abs(A)) * d, N = Math.round(Math.atan2(A, k) * 180 / Math.PI), ne = Math.round(v * d * 100) / 100, re = Math.round((2 + (p - 2) * d) * 10) / 10, ie = Math.round(_ * d * 10) / 10, ae = Math.round(re * 2.5 * 10) / 10, oe = Math.round((.4 + (2 + p * .8) * d) * 10) / 10, se = `translate(${r.x}, ${r.y})`, ce = `translate(${i.x}, ${i.y})`;
2660
2677
  return /* @__PURE__ */ n("svg", {
2661
2678
  "aria-hidden": "true",
2662
2679
  focusable: "false",
@@ -2706,7 +2723,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2706
2723
  children: [
2707
2724
  /* @__PURE__ */ t("feGaussianBlur", {
2708
2725
  in: "SourceGraphic",
2709
- stdDeviation: ae,
2726
+ stdDeviation: re,
2710
2727
  result: "b"
2711
2728
  }),
2712
2729
  /* @__PURE__ */ t("feColorMatrix", {
@@ -2717,7 +2734,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2717
2734
  }),
2718
2735
  /* @__PURE__ */ t("feGaussianBlur", {
2719
2736
  in: "SourceGraphic",
2720
- stdDeviation: M,
2737
+ stdDeviation: ae,
2721
2738
  result: "bc"
2722
2739
  }),
2723
2740
  /* @__PURE__ */ t("feComposite", {
@@ -2736,7 +2753,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2736
2753
  /* @__PURE__ */ t("feDisplacementMap", {
2737
2754
  in: "mix",
2738
2755
  in2: "wn",
2739
- scale: oe,
2756
+ scale: ie,
2740
2757
  xChannelSelector: "R",
2741
2758
  yChannelSelector: "G",
2742
2759
  result: "warped"
@@ -2773,7 +2790,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2773
2790
  height: "220%",
2774
2791
  children: /* @__PURE__ */ t("feGaussianBlur", { stdDeviation: g })
2775
2792
  }),
2776
- ie > .01 ? /* @__PURE__ */ n(e, { children: [/* @__PURE__ */ n("filter", {
2793
+ ne > .01 ? /* @__PURE__ */ n(e, { children: [/* @__PURE__ */ n("filter", {
2777
2794
  id: `${f}-marble`,
2778
2795
  x: "-25%",
2779
2796
  y: "-25%",
@@ -2796,7 +2813,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2796
2813
  /* @__PURE__ */ t("feDisplacementMap", {
2797
2814
  in: "c",
2798
2815
  in2: "n1",
2799
- scale: ie * 90,
2816
+ scale: ne * 90,
2800
2817
  xChannelSelector: "R",
2801
2818
  yChannelSelector: "G",
2802
2819
  result: "d1"
@@ -2811,7 +2828,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2811
2828
  /* @__PURE__ */ t("feDisplacementMap", {
2812
2829
  in: "d1",
2813
2830
  in2: "n2",
2814
- scale: ie * 50,
2831
+ scale: ne * 50,
2815
2832
  xChannelSelector: "R",
2816
2833
  yChannelSelector: "G",
2817
2834
  result: "d2"
@@ -2835,7 +2852,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2835
2852
  }),
2836
2853
  /* @__PURE__ */ t("feGaussianBlur", {
2837
2854
  in: "SourceGraphic",
2838
- stdDeviation: ae,
2855
+ stdDeviation: re,
2839
2856
  result: "mb"
2840
2857
  }),
2841
2858
  /* @__PURE__ */ t("feColorMatrix", {
@@ -2854,7 +2871,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2854
2871
  /* @__PURE__ */ t("feDisplacementMap", {
2855
2872
  in: "mg",
2856
2873
  in2: "mwn",
2857
- scale: oe,
2874
+ scale: ie,
2858
2875
  xChannelSelector: "R",
2859
2876
  yChannelSelector: "G",
2860
2877
  result: "mshape"
@@ -2877,9 +2894,9 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2877
2894
  children: /* @__PURE__ */ t("ellipse", {
2878
2895
  cx: E.x,
2879
2896
  cy: E.y,
2880
- rx: (w + T) / 2 + A,
2897
+ rx: (w + T) / 2 + M,
2881
2898
  ry: (w + T) / 2 * b,
2882
- transform: `rotate(${j}, ${E.x}, ${E.y})`,
2899
+ transform: `rotate(${N}, ${E.x}, ${E.y})`,
2883
2900
  fill: "#fff"
2884
2901
  })
2885
2902
  })
@@ -2890,7 +2907,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2890
2907
  y: "-40%",
2891
2908
  width: "180%",
2892
2909
  height: "180%",
2893
- children: /* @__PURE__ */ t("feGaussianBlur", { stdDeviation: se })
2910
+ children: /* @__PURE__ */ t("feGaussianBlur", { stdDeviation: oe })
2894
2911
  }),
2895
2912
  /* @__PURE__ */ n("mask", {
2896
2913
  id: `${f}-ma`,
@@ -2902,7 +2919,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2902
2919
  children: [/* @__PURE__ */ t("g", {
2903
2920
  filter: `url(#${f}-edge)`,
2904
2921
  children: /* @__PURE__ */ t("g", {
2905
- transform: ce,
2922
+ transform: se,
2906
2923
  children: /* @__PURE__ */ t("rect", {
2907
2924
  width: r.w,
2908
2925
  height: r.h,
@@ -2915,9 +2932,9 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2915
2932
  children: /* @__PURE__ */ t("ellipse", {
2916
2933
  cx: E.x,
2917
2934
  cy: E.y,
2918
- rx: T + A,
2935
+ rx: T + M,
2919
2936
  ry: T,
2920
- transform: `rotate(${j}, ${E.x}, ${E.y})`,
2937
+ transform: `rotate(${N}, ${E.x}, ${E.y})`,
2921
2938
  fill: "#000"
2922
2939
  })
2923
2940
  })]
@@ -2932,7 +2949,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2932
2949
  children: [/* @__PURE__ */ t("g", {
2933
2950
  filter: `url(#${f}-edge)`,
2934
2951
  children: /* @__PURE__ */ t("g", {
2935
- transform: le,
2952
+ transform: ce,
2936
2953
  children: /* @__PURE__ */ t("rect", {
2937
2954
  width: i.w,
2938
2955
  height: i.h,
@@ -2945,9 +2962,9 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2945
2962
  children: /* @__PURE__ */ t("ellipse", {
2946
2963
  cx: E.x,
2947
2964
  cy: E.y,
2948
- rx: w + A,
2965
+ rx: w + M,
2949
2966
  ry: w,
2950
- transform: `rotate(${j}, ${E.x}, ${E.y})`,
2967
+ transform: `rotate(${N}, ${E.x}, ${E.y})`,
2951
2968
  fill: "#000"
2952
2969
  })
2953
2970
  })]
@@ -2956,7 +2973,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2956
2973
  /* @__PURE__ */ n("g", {
2957
2974
  filter: `url(#${f}-goo)`,
2958
2975
  children: [/* @__PURE__ */ t("g", {
2959
- transform: ce,
2976
+ transform: se,
2960
2977
  children: /* @__PURE__ */ t("rect", {
2961
2978
  width: r.w,
2962
2979
  height: r.h,
@@ -2964,7 +2981,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2964
2981
  fill: `url(#${f}-pa)`
2965
2982
  })
2966
2983
  }), /* @__PURE__ */ t("g", {
2967
- transform: le,
2984
+ transform: ce,
2968
2985
  children: /* @__PURE__ */ t("rect", {
2969
2986
  width: i.w,
2970
2987
  height: i.h,
@@ -2973,12 +2990,12 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2973
2990
  })
2974
2991
  })]
2975
2992
  }),
2976
- ie > .01 ? /* @__PURE__ */ t("g", {
2993
+ ne > .01 ? /* @__PURE__ */ t("g", {
2977
2994
  mask: `url(#${f}-marblemask)`,
2978
2995
  children: /* @__PURE__ */ n("g", {
2979
2996
  filter: `url(#${f}-marble)`,
2980
2997
  children: [/* @__PURE__ */ t("g", {
2981
- transform: ce,
2998
+ transform: se,
2982
2999
  children: /* @__PURE__ */ t("rect", {
2983
3000
  width: r.w,
2984
3001
  height: r.h,
@@ -2986,7 +3003,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2986
3003
  fill: `url(#${f}-pa)`
2987
3004
  })
2988
3005
  }), /* @__PURE__ */ t("g", {
2989
- transform: le,
3006
+ transform: ce,
2990
3007
  children: /* @__PURE__ */ t("rect", {
2991
3008
  width: i.w,
2992
3009
  height: i.h,
@@ -2999,7 +3016,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2999
3016
  /* @__PURE__ */ t("g", {
3000
3017
  mask: `url(#${f}-ma)`,
3001
3018
  children: /* @__PURE__ */ t("g", {
3002
- transform: ce,
3019
+ transform: se,
3003
3020
  children: /* @__PURE__ */ t("rect", {
3004
3021
  width: r.w,
3005
3022
  height: r.h,
@@ -3011,7 +3028,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
3011
3028
  /* @__PURE__ */ t("g", {
3012
3029
  mask: `url(#${f}-mb)`,
3013
3030
  children: /* @__PURE__ */ t("g", {
3014
- transform: le,
3031
+ transform: ce,
3015
3032
  children: /* @__PURE__ */ t("rect", {
3016
3033
  width: i.w,
3017
3034
  height: i.h,
@@ -3023,10 +3040,10 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
3023
3040
  ]
3024
3041
  });
3025
3042
  }
3026
- function Dn({ visuals: r }) {
3027
- let i = `lgd-${wn(u())}`;
3043
+ function An({ visuals: r }) {
3044
+ let i = `lgd-${Dn(u())}`;
3028
3045
  return /* @__PURE__ */ t(e, { children: r.map((e) => {
3029
- let r = `${i}-${wn(e.id)}`, a = `${r}-pattern`, o = `${r}-mask`, s = r + "-neighbor", c = e.image, l = e.elongation > 1.001 ? `translate(${Y(e.cx)} ${Y(e.cy)}) rotate(${Y(e.angle)}) scale(${Y(e.elongation, 3)} 1) rotate(${-Y(e.angle)}) translate(${Y(-e.cx)} ${Y(-e.cy)})` : void 0, u = e.d * e.elongation + e.options.blur * 2.5 + e.options.warp + e.options.gravity * .5 + 8, d = Math.min(.3, Math.max(.01, e.options.warpFreq / (e.options.zone * 1.1))), f = xn(e.cx, e.cy, e.gravityX, e.gravityY, e.d, e.options.pull * e.structure, e.options.gravity * e.structure, e.elongation, e.options.taper);
3046
+ let r = `${i}-${Dn(e.id)}`, a = `${r}-pattern`, o = `${r}-mask`, s = r + "-neighbor", c = e.image, l = e.elongation > 1.001 ? `translate(${Y(e.cx)} ${Y(e.cy)}) rotate(${Y(e.angle)}) scale(${Y(e.elongation, 3)} 1) rotate(${-Y(e.angle)}) translate(${Y(-e.cx)} ${Y(-e.cy)})` : void 0, u = e.d * e.elongation + e.options.blur * 2.5 + e.options.warp + e.options.gravity * .5 + 8, d = Math.min(.3, Math.max(.01, e.options.warpFreq / (e.options.zone * 1.1))), f = wn(e.cx, e.cy, e.gravityX, e.gravityY, e.d, e.options.pull * e.structure, e.options.gravity * e.structure, e.elongation, e.options.taper);
3030
3047
  return /* @__PURE__ */ n("g", {
3031
3048
  "data-liquid-gooey-dissolve": "",
3032
3049
  children: [
@@ -3158,7 +3175,7 @@ function Dn({ visuals: r }) {
3158
3175
  /* @__PURE__ */ t("feColorMatrix", {
3159
3176
  in: "erosion-noise",
3160
3177
  type: "matrix",
3161
- values: Cn(c),
3178
+ values: En(c),
3162
3179
  result: "erosion"
3163
3180
  }),
3164
3181
  /* @__PURE__ */ t("feComposite", {
@@ -3230,10 +3247,10 @@ function Dn({ visuals: r }) {
3230
3247
  }, e.id);
3231
3248
  }) });
3232
3249
  }
3233
- function On({ registry: e, getGroup: r }) {
3234
- let [i, a] = m(un);
3250
+ function jn({ registry: e, getGroup: r }) {
3251
+ let [i, a] = m(pn);
3235
3252
  return d(() => {
3236
- let t = new Tn({
3253
+ let t = new On({
3237
3254
  registry: e,
3238
3255
  getGroup: r,
3239
3256
  onState: a
@@ -3255,42 +3272,42 @@ function On({ registry: e, getGroup: r }) {
3255
3272
  overflow: "visible",
3256
3273
  pointerEvents: "none"
3257
3274
  },
3258
- children: [i.melt ? /* @__PURE__ */ t(En, {
3275
+ children: [i.melt ? /* @__PURE__ */ t(kn, {
3259
3276
  ...i.melt,
3260
3277
  width: i.width,
3261
3278
  height: i.height
3262
- }) : null, i.dissolves.length > 0 ? /* @__PURE__ */ t(Dn, { visuals: i.dissolves }) : null]
3279
+ }) : null, i.dissolves.length > 0 ? /* @__PURE__ */ t(An, { visuals: i.dissolves }) : null]
3263
3280
  });
3264
3281
  }
3265
3282
  //#endregion
3266
3283
  //#region src/LiquidGroup.tsx
3267
- var kn = i(null);
3268
- function An() {
3269
- let e = c(kn);
3284
+ var Mn = i(null);
3285
+ function Nn() {
3286
+ let e = c(Mn);
3270
3287
  if (!e) throw Error("<LiquidGroup.Item> must be rendered inside <LiquidGroup>.");
3271
3288
  return e;
3272
3289
  }
3273
- function jn(e) {
3290
+ function Pn(e) {
3274
3291
  return e.replace(/[^a-zA-Z0-9_-]/g, "");
3275
3292
  }
3276
- function Mn(e, t) {
3293
+ function Fn(e, t) {
3277
3294
  return Number.isFinite(e) ? e : t;
3278
3295
  }
3279
- function Nn(e, t) {
3296
+ function In(e, t) {
3280
3297
  if (!e) return e;
3281
3298
  let n = /^var\((--[\w-]+)\)$/.exec(e.trim());
3282
3299
  if (!n || !t) return e;
3283
3300
  let r = t.ownerDocument.defaultView;
3284
3301
  return r && r.getComputedStyle(t).getPropertyValue(n[1] ?? "").trim() || e;
3285
3302
  }
3286
- function Pn(e, t, n) {
3287
- let r = Nn(e, t), i = Number.parseFloat(r ?? "");
3303
+ function Ln(e, t, n) {
3304
+ let r = In(e, t), i = Number.parseFloat(r ?? "");
3288
3305
  return Number.isFinite(i) ? i : n;
3289
3306
  }
3290
- function Fn(...e) {
3307
+ function Rn(...e) {
3291
3308
  return e.filter(Boolean).join(" ") || void 0;
3292
3309
  }
3293
- function In(e) {
3310
+ function zn(e) {
3294
3311
  let t = { ...e };
3295
3312
  for (let e of [
3296
3313
  "children",
@@ -3309,139 +3326,140 @@ function In(e) {
3309
3326
  ]) delete t[e];
3310
3327
  return t;
3311
3328
  }
3312
- function Ln() {
3329
+ function Bn() {
3313
3330
  return typeof window > "u" || typeof window.matchMedia != "function" ? null : window.matchMedia("(prefers-reduced-motion: reduce)");
3314
3331
  }
3315
- function Rn() {
3316
- let [e, t] = m(() => Ln()?.matches ?? !1);
3332
+ function Vn() {
3333
+ let [e, t] = m(() => Bn()?.matches ?? !1);
3317
3334
  return l(() => {
3318
- let e = Ln();
3335
+ let e = Bn();
3319
3336
  if (!e) return;
3320
3337
  let n = (e) => t(e.matches);
3321
3338
  return t(e.matches), e.addEventListener("change", n), () => e.removeEventListener("change", n);
3322
3339
  }, []), e;
3323
3340
  }
3324
- function zn(e) {
3341
+ function Hn(e) {
3325
3342
  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);
3326
3343
  }
3327
- var Bn = 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) {
3328
- let C = p(null), [w, T] = m(null), [E, D] = m({
3344
+ var Un = 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, wavinessClamp: _, motion: v = "auto", className: y, style: b, children: x, ...S }, C) {
3345
+ let w = p(null), [T, E] = m(null), [D, O] = m({
3329
3346
  w: 0,
3330
3347
  h: 0
3331
- }), [O, ee] = m({
3332
- waviness: Ne.waviness,
3333
- wavinessFreq: Ne.wavinessFreq
3334
- }), [k, te] = m(0), ne = p(0), re = Rn(), A = _ === "reduced" || re, [j, ie] = m(A ? "reduced" : "static"), ae = Math.max(0, Mn(e, 6)), oe = Math.max(1, Mn(r, 18)), M = Math.max(0, Mn(a, 24)), se = Math.max(0, Mn(h ?? O.waviness, Ne.waviness)), ce = Math.max(0, Mn(g ?? O.wavinessFreq, Ne.wavinessFreq)), le = Nn(o, C.current), ue = Nn(c, C.current), de = f(() => Ut(le), [le]), N = f(() => Wt(ue), [ue]), fe = Math.ceil(ae * 3 + M + zn(de) + (N ? N.width : 0) + se), pe = p(fe);
3335
- pe.current = fe;
3336
- let P = Math.ceil(fe + k), me = p(P);
3337
- me.current = P;
3338
- let he = `liquid-gooey-${jn(u())}`, F = s((e) => {
3339
- C.current = e, typeof S == "function" ? S(e) : S && (S.current = e);
3340
- }, [S]), ge = s((e) => T(e), []);
3348
+ }), [ee, k] = m({
3349
+ waviness: Pe.waviness,
3350
+ wavinessFreq: Pe.wavinessFreq
3351
+ }), [A, te] = m(0), j = p(0), M = Vn(), N = v === "reduced" || M, [ne, re] = m(N ? "reduced" : "static"), ie = Math.max(0, Fn(e, 6)), ae = Math.max(1, Fn(r, 18)), oe = Math.max(0, Fn(a, 24)), se = Math.max(0, Fn(h ?? ee.waviness, Pe.waviness)), ce = _ !== !1 && Math.max(0, Fn(_ ?? .3, ze)), le = Be(se, D.w > 0 && D.h > 0 ? Math.min(D.w, D.h) : 0, ce), ue = Math.max(0, Fn(g ?? ee.wavinessFreq, Pe.wavinessFreq)), P = In(o, w.current), de = In(c, w.current), fe = f(() => Kt(P), [P]), pe = f(() => qt(de), [de]), me = Math.ceil(ie * 3 + oe + Hn(fe) + (pe ? pe.width : 0) + le + (le > 0 ? Math.ceil(Ne * 3) : 0)), he = p(me);
3352
+ he.current = me;
3353
+ let F = Math.ceil(me + A), ge = p(F);
3354
+ ge.current = F;
3355
+ let _e = `liquid-gooey-${Pn(u())}`, I = s((e) => {
3356
+ w.current = e, typeof C == "function" ? C(e) : C && (C.current = e);
3357
+ }, [C]), L = s((e) => E(e), []);
3341
3358
  d(() => {
3342
- let e = C.current;
3359
+ let e = w.current;
3343
3360
  if (!e) return;
3344
3361
  let t = {
3345
- waviness: Math.max(0, h === void 0 ? Pn(z.waviness, e, Ne.waviness) : Mn(h, Ne.waviness)),
3346
- wavinessFreq: Math.max(0, g === void 0 ? Pn(z.wavinessFreq, e, Ne.wavinessFreq) : Mn(g, Ne.wavinessFreq))
3362
+ waviness: Math.max(0, h === void 0 ? Ln(R.waviness, e, Pe.waviness) : Fn(h, Pe.waviness)),
3363
+ wavinessFreq: Math.max(0, g === void 0 ? Ln(R.wavinessFreq, e, Pe.wavinessFreq) : Fn(g, Pe.wavinessFreq))
3347
3364
  };
3348
- ee((e) => e.waviness === t.waviness && e.wavinessFreq === t.wavinessFreq ? e : t);
3365
+ k((e) => e.waviness === t.waviness && e.wavinessFreq === t.wavinessFreq ? e : t);
3349
3366
  }, [h, g]);
3350
- let I = f(() => new Bt({
3351
- getGroup: () => C.current,
3367
+ let z = f(() => new Ut({
3368
+ getGroup: () => w.current,
3352
3369
  getFilterArea: () => {
3353
- let e = C.current;
3354
- return e ? (e.offsetWidth + (pe.current + ne.current) * 2) * (e.offsetHeight + (pe.current + ne.current) * 2) : 0;
3370
+ let e = w.current;
3371
+ return e ? (e.offsetWidth + (he.current + j.current) * 2) * (e.offsetHeight + (he.current + j.current) * 2) : 0;
3355
3372
  },
3356
- onModeChange: ie,
3373
+ onModeChange: re,
3357
3374
  onFeaturePaddingChange: (e) => {
3358
- ne.current = e, te((t) => Math.abs(t - e) < .5 ? t : e);
3375
+ j.current = e, te((t) => Math.abs(t - e) < .5 ? t : e);
3359
3376
  },
3360
- follow: _ === "follow"
3361
- }), [_]), L = f(() => sn(), []);
3377
+ follow: v === "follow"
3378
+ }), [v]), B = f(() => un(), []);
3362
3379
  d(() => {
3363
- let e = C.current;
3380
+ let e = w.current;
3364
3381
  if (!e) return;
3365
3382
  let t = () => {
3366
3383
  let t = {
3367
3384
  w: e.offsetWidth,
3368
3385
  h: e.offsetHeight
3369
3386
  };
3370
- D((e) => e.w === t.w && e.h === t.h ? e : t), I.setFilterArea((t.w + me.current * 2) * (t.h + me.current * 2));
3387
+ O((e) => e.w === t.w && e.h === t.h ? e : t), z.setFilterArea((t.w + ge.current * 2) * (t.h + ge.current * 2));
3371
3388
  };
3372
3389
  if (t(), typeof ResizeObserver > "u") return;
3373
3390
  let n = new ResizeObserver(t);
3374
3391
  return n.observe(e), () => n.disconnect();
3375
- }, [I, P]), l(() => {
3376
- I.setReducedMotion(A);
3377
- }, [I, A]), l(() => () => I.dispose(), [I]);
3378
- let R = Math.max(1, E.w), B = Math.max(1, E.h), V = Fn("game-ui-liquid-group", v);
3392
+ }, [z, F]), l(() => {
3393
+ z.setReducedMotion(N);
3394
+ }, [z, N]), l(() => () => z.dispose(), [z]);
3395
+ let V = Math.max(1, D.w), ve = Math.max(1, D.h), H = Rn("game-ui-liquid-group", y);
3379
3396
  return /* @__PURE__ */ n("div", {
3380
- ...x,
3381
- ref: F,
3382
- className: V,
3383
- "data-liquid-filter-area": Math.round((E.w + P * 2) * (E.h + P * 2)),
3397
+ ...S,
3398
+ ref: I,
3399
+ className: H,
3400
+ "data-liquid-filter-area": Math.round((D.w + F * 2) * (D.h + F * 2)),
3384
3401
  "data-liquid-filter-budget": we,
3385
- "data-liquid-feature-padding": Math.round(k * 10) / 10,
3386
- "data-liquid-motion": j,
3387
- style: y,
3402
+ "data-liquid-feature-padding": Math.round(A * 10) / 10,
3403
+ "data-liquid-motion": ne,
3404
+ "data-liquid-waviness": Math.round(le * 100) / 100,
3405
+ style: b,
3388
3406
  children: [
3389
3407
  /* @__PURE__ */ n("svg", {
3390
3408
  "aria-hidden": "true",
3391
3409
  className: "game-ui-liquid-silhouette",
3392
3410
  "data-liquid-gooey-silhouette": "",
3393
3411
  focusable: "false",
3394
- viewBox: `0 0 ${R} ${B}`,
3412
+ viewBox: `0 0 ${V} ${ve}`,
3395
3413
  children: [/* @__PURE__ */ t("defs", { children: /* @__PURE__ */ t("filter", {
3396
3414
  colorInterpolationFilters: "sRGB",
3397
3415
  filterUnits: "userSpaceOnUse",
3398
- height: B + P * 2,
3399
- id: he,
3400
- width: R + P * 2,
3401
- x: -P,
3402
- y: -P,
3403
- children: /* @__PURE__ */ t(Le, {
3404
- blur: ae,
3405
- contrast: oe,
3406
- shadows: de,
3407
- stroke: N,
3408
- waviness: se,
3409
- wavinessFreq: ce
3416
+ height: ve + F * 2,
3417
+ id: _e,
3418
+ width: V + F * 2,
3419
+ x: -F,
3420
+ y: -F,
3421
+ children: /* @__PURE__ */ t(Re, {
3422
+ blur: ie,
3423
+ contrast: ae,
3424
+ shadows: fe,
3425
+ stroke: pe,
3426
+ waviness: le,
3427
+ wavinessFreq: ue
3410
3428
  })
3411
3429
  }) }), /* @__PURE__ */ t("g", {
3412
- ref: ge,
3430
+ ref: L,
3413
3431
  fill: i,
3414
- filter: `url(#${he})`
3432
+ filter: `url(#${_e})`
3415
3433
  })]
3416
3434
  }),
3417
- /* @__PURE__ */ t(On, {
3418
- registry: L,
3419
- getGroup: () => C.current
3435
+ /* @__PURE__ */ t(jn, {
3436
+ registry: B,
3437
+ getGroup: () => w.current
3420
3438
  }),
3421
- /* @__PURE__ */ t(kn.Provider, {
3439
+ /* @__PURE__ */ t(Mn.Provider, {
3422
3440
  value: {
3423
- portal: w,
3424
- engine: I,
3425
- follow: _ === "follow",
3426
- imageMelt: L
3441
+ portal: T,
3442
+ engine: z,
3443
+ follow: v === "follow",
3444
+ imageMelt: B
3427
3445
  },
3428
3446
  children: /* @__PURE__ */ t("div", {
3429
3447
  className: "game-ui-liquid-content",
3430
- children: b
3448
+ children: x
3431
3449
  })
3432
3450
  })
3433
3451
  ]
3434
3452
  });
3435
- }), Vn = a(function({ effect: r, melt: i, dissolve: a, x: o = 0, y: c = 0, scale: m = 1, transition: g, delay: _, radius: v, morph: y, bend: b, observe: x, className: S, style: C, children: w, ...T }, E) {
3436
- let { portal: D, engine: O, follow: ee, imageMelt: k } = An(), te = `liquid-item-${jn(u())}`, ne = p(null), re = p(null), A = p(null), j = p(null), ie = JSON.stringify(a ?? null), ae = a !== void 0 && a !== !1, oe = f(() => {
3437
- let e = r === "morph" || r === "bend" ? r : void 0, t = e === "bend", n = r === "bend" || ee && y === void 0 && r !== "morph" || ae && y === void 0 && r !== "morph" ? void 0 : y ?? {}, i = {
3453
+ }), Wn = a(function({ effect: r, melt: i, dissolve: a, x: o = 0, y: c = 0, scale: m = 1, transition: g, delay: _, radius: v, morph: y, bend: b, observe: x, className: S, style: C, children: w, ...T }, E) {
3454
+ let { portal: D, engine: O, follow: ee, imageMelt: k } = Nn(), A = `liquid-item-${Pn(u())}`, te = p(null), j = p(null), M = p(null), N = p(null), ne = JSON.stringify(a ?? null), re = a !== void 0 && a !== !1, ie = f(() => {
3455
+ let e = r === "morph" || r === "bend" ? r : void 0, t = e === "bend", n = r === "bend" || ee && y === void 0 && r !== "morph" || re && y === void 0 && r !== "morph" ? void 0 : y ?? {}, i = {
3438
3456
  ...e === void 0 ? {} : { effect: e },
3439
3457
  ...n === void 0 ? {} : { morph: n },
3440
3458
  ...b === void 0 ? {} : { bend: b },
3441
3459
  ...x === void 0 && !t ? {} : { observe: t || x },
3442
- x: Mn(o, 0),
3443
- y: Mn(c, 0),
3444
- scale: Mn(m, 1)
3460
+ x: Fn(o, 0),
3461
+ y: Fn(c, 0),
3462
+ scale: Fn(m, 1)
3445
3463
  };
3446
3464
  return g !== void 0 && (i.transition = g), _ !== void 0 && (i.delay = _), v !== void 0 && (i.radius = v), i;
3447
3465
  }, [
@@ -3449,7 +3467,7 @@ var Bn = a(function({ blur: e = 6, contrast: r = 18, fill: i = "var(--game-ui-su
3449
3467
  _,
3450
3468
  r,
3451
3469
  ee,
3452
- ae,
3470
+ re,
3453
3471
  y,
3454
3472
  x,
3455
3473
  v,
@@ -3458,66 +3476,66 @@ var Bn = a(function({ blur: e = 6, contrast: r = 18, fill: i = "var(--game-ui-su
3458
3476
  o,
3459
3477
  c
3460
3478
  ]);
3461
- A.current === null && (A.current = oe);
3462
- let M = s((e) => {
3463
- ne.current = e, typeof E == "function" ? E(e) : E && (E.current = e);
3479
+ M.current === null && (M.current = ie);
3480
+ let ae = s((e) => {
3481
+ te.current = e, typeof E == "function" ? E(e) : E && (E.current = e);
3464
3482
  }, [E]);
3465
3483
  return d(() => {
3466
- let e = ne.current, t = re.current;
3467
- if (!(!D || !e || !t || !A.current)) return O.register({
3468
- id: te,
3484
+ let e = te.current, t = j.current;
3485
+ if (!(!D || !e || !t || !M.current)) return O.register({
3486
+ id: A,
3469
3487
  host: e,
3470
3488
  blob: t,
3471
- config: A.current
3489
+ config: M.current
3472
3490
  });
3473
3491
  }, [
3474
3492
  O,
3475
- te,
3493
+ A,
3476
3494
  D
3477
3495
  ]), d(() => {
3478
- O.update(te, oe);
3496
+ O.update(A, ie);
3479
3497
  }, [
3480
- oe,
3498
+ ie,
3481
3499
  O,
3482
- te
3500
+ A
3483
3501
  ]), d(() => () => {
3484
- j.current?.unregister(), j.current = null;
3502
+ N.current?.unregister(), N.current = null;
3485
3503
  }, [k]), d(() => {
3486
3504
  if (r === "move" || a === void 0 || a === !1) {
3487
- j.current?.unregister(), j.current = null;
3505
+ N.current?.unregister(), N.current = null;
3488
3506
  return;
3489
3507
  }
3490
- let e = ne.current;
3508
+ let e = te.current;
3491
3509
  if (e) {
3492
- if (j.current) {
3493
- j.current.update(a);
3510
+ if (N.current) {
3511
+ N.current.update(a);
3494
3512
  return;
3495
3513
  }
3496
- j.current = cn(k, e, a);
3514
+ N.current = dn(k, e, a);
3497
3515
  }
3498
3516
  }, [
3499
- ie,
3517
+ ne,
3500
3518
  r,
3501
3519
  k
3502
- ]), l(() => {}, [r, ae]), d(() => {}, []), /* @__PURE__ */ n(e, { children: [/* @__PURE__ */ t("div", {
3520
+ ]), l(() => {}, [r, re]), d(() => {}, []), /* @__PURE__ */ n(e, { children: [/* @__PURE__ */ t("div", {
3503
3521
  ...T,
3504
- ref: M,
3505
- className: Fn("game-ui-liquid-item", S),
3522
+ ref: ae,
3523
+ className: Rn("game-ui-liquid-item", S),
3506
3524
  style: C,
3507
3525
  children: w
3508
3526
  }), D ? h(/* @__PURE__ */ t("path", {
3509
- ref: re,
3527
+ ref: j,
3510
3528
  d: "",
3511
3529
  "data-liquid-gooey-blob": ""
3512
3530
  }), D) : null] });
3513
- }), Hn = a(function(e, n) {
3514
- let { imageMelt: r } = An();
3515
- if (e.effect !== "melt") return /* @__PURE__ */ t(Vn, {
3531
+ }), Gn = a(function(e, n) {
3532
+ let { imageMelt: r } = Nn();
3533
+ if (e.effect !== "melt") return /* @__PURE__ */ t(Wn, {
3516
3534
  ...e,
3517
3535
  ref: n
3518
3536
  });
3519
- let i = In(e), a = e.children, o = { ...e.melt ?? {} }, s = o.src;
3520
- return delete o.src, /* @__PURE__ */ t(ln, {
3537
+ let i = zn(e), a = e.children, o = { ...e.melt ?? {} }, s = o.src;
3538
+ return delete o.src, /* @__PURE__ */ t(fn, {
3521
3539
  ...i,
3522
3540
  registry: r,
3523
3541
  children: a,
@@ -3525,10 +3543,10 @@ var Bn = a(function({ blur: e = 6, contrast: r = 18, fill: i = "var(--game-ui-su
3525
3543
  ...s === void 0 ? {} : { src: s },
3526
3544
  ...n === void 0 ? {} : { forwardedRef: n }
3527
3545
  });
3528
- }), Un = Object.assign(Bn, { Item: Hn });
3546
+ }), Kn = Object.assign(Un, { Item: Gn });
3529
3547
  //#endregion
3530
3548
  //#region src/GameCallout.tsx
3531
- function Wn({ heading: e, children: r, tone: i = "info", className: a, ...o }) {
3549
+ function qn({ heading: e, children: r, tone: i = "info", className: a, ...o }) {
3532
3550
  return /* @__PURE__ */ n("div", {
3533
3551
  className: [
3534
3552
  "game-ui-callout",
@@ -3549,7 +3567,7 @@ function Wn({ heading: e, children: r, tone: i = "info", className: a, ...o }) {
3549
3567
  }
3550
3568
  //#endregion
3551
3569
  //#region src/GameDialog.tsx
3552
- function Gn({ children: e, className: r, title: i }) {
3570
+ function Jn({ children: e, className: r, title: i }) {
3553
3571
  let a = u();
3554
3572
  return /* @__PURE__ */ n("section", {
3555
3573
  "aria-labelledby": a,
@@ -3567,7 +3585,7 @@ function Gn({ children: e, className: r, title: i }) {
3567
3585
  }
3568
3586
  //#endregion
3569
3587
  //#region src/GameHistoryPanel.tsx
3570
- function Kn({ entries: e, label: r }) {
3588
+ function Yn({ entries: e, label: r }) {
3571
3589
  return /* @__PURE__ */ t("section", {
3572
3590
  "aria-label": r,
3573
3591
  className: "game-ui-history",
@@ -3583,7 +3601,7 @@ function Kn({ entries: e, label: r }) {
3583
3601
  }
3584
3602
  //#endregion
3585
3603
  //#region src/GameHudActions.tsx
3586
- function qn({ children: e, className: n, label: r, ...i }) {
3604
+ function Xn({ children: e, className: n, label: r, ...i }) {
3587
3605
  return /* @__PURE__ */ t("nav", {
3588
3606
  "aria-label": r,
3589
3607
  className: ["game-ui-hud-actions", n].filter(Boolean).join(" "),
@@ -3603,7 +3621,7 @@ function X({ children: e, className: r, title: i, tone: a = "default", ...o }) {
3603
3621
  children: [i ? /* @__PURE__ */ t("h3", { children: i }) : null, e]
3604
3622
  });
3605
3623
  }
3606
- function Jn({ children: e, className: n, label: r, type: i = "button", ...a }) {
3624
+ function Zn({ children: e, className: n, label: r, type: i = "button", ...a }) {
3607
3625
  return /* @__PURE__ */ t("button", {
3608
3626
  "aria-label": r,
3609
3627
  className: ["game-ui-icon-button", n].filter(Boolean).join(" "),
@@ -3612,7 +3630,7 @@ function Jn({ children: e, className: n, label: r, type: i = "button", ...a }) {
3612
3630
  children: e
3613
3631
  });
3614
3632
  }
3615
- function Yn({ children: e, label: i }) {
3633
+ function Qn({ children: e, label: i }) {
3616
3634
  let a = u();
3617
3635
  return /* @__PURE__ */ n("span", {
3618
3636
  className: "game-ui-tooltip",
@@ -3623,7 +3641,7 @@ function Yn({ children: e, label: i }) {
3623
3641
  })]
3624
3642
  });
3625
3643
  }
3626
- function Xn({ activeId: e, id: n, onSelect: r, tabs: i }) {
3644
+ function $n({ activeId: e, id: n, onSelect: r, tabs: i }) {
3627
3645
  let a = u(), o = n ?? a;
3628
3646
  return /* @__PURE__ */ t("div", {
3629
3647
  className: "game-ui-tabs",
@@ -3663,10 +3681,10 @@ function Xn({ activeId: e, id: n, onSelect: r, tabs: i }) {
3663
3681
  }, n.id))
3664
3682
  });
3665
3683
  }
3666
- function Zn(e, t) {
3684
+ function er(e, t) {
3667
3685
  return e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height;
3668
3686
  }
3669
- function Qn({ activeId: e, label: r, onSelect: i, options: a }) {
3687
+ function tr({ activeId: e, label: r, onSelect: i, options: a }) {
3670
3688
  let o = p(null), s = p([]), [c, l] = m({
3671
3689
  x: 0,
3672
3690
  y: 0,
@@ -3683,7 +3701,7 @@ function Qn({ activeId: e, label: r, onSelect: i, options: a }) {
3683
3701
  width: r.width,
3684
3702
  height: r.height
3685
3703
  };
3686
- l((e) => Zn(e, i) ? e : i);
3704
+ l((e) => er(e, i) ? e : i);
3687
3705
  };
3688
3706
  if (n(), typeof ResizeObserver > "u") return;
3689
3707
  let r = new ResizeObserver(n);
@@ -3698,7 +3716,7 @@ function Qn({ activeId: e, label: r, onSelect: i, options: a }) {
3698
3716
  className: "game-ui-segmented",
3699
3717
  role: "group",
3700
3718
  children: [
3701
- /* @__PURE__ */ t(Un, {
3719
+ /* @__PURE__ */ t(Kn, {
3702
3720
  "aria-hidden": "true",
3703
3721
  className: "game-ui-segmented-surface",
3704
3722
  fill: "var(--game-ui-surface-raised)",
@@ -3709,7 +3727,7 @@ function Qn({ activeId: e, label: r, onSelect: i, options: a }) {
3709
3727
  pointerEvents: "none",
3710
3728
  position: "absolute"
3711
3729
  },
3712
- children: /* @__PURE__ */ t(Un.Item, {
3730
+ children: /* @__PURE__ */ t(Kn.Item, {
3713
3731
  style: {
3714
3732
  borderRadius: "var(--game-ui-radius-control)",
3715
3733
  inset: 0,
@@ -3718,7 +3736,7 @@ function Qn({ activeId: e, label: r, onSelect: i, options: a }) {
3718
3736
  children: null
3719
3737
  })
3720
3738
  }),
3721
- c.width > 0 && c.height > 0 ? /* @__PURE__ */ t(Un, {
3739
+ c.width > 0 && c.height > 0 ? /* @__PURE__ */ t(Kn, {
3722
3740
  "aria-hidden": "true",
3723
3741
  className: "game-ui-segmented-follow",
3724
3742
  fill: "var(--game-ui-secondary)",
@@ -3729,7 +3747,7 @@ function Qn({ activeId: e, label: r, onSelect: i, options: a }) {
3729
3747
  pointerEvents: "none",
3730
3748
  position: "absolute"
3731
3749
  },
3732
- children: /* @__PURE__ */ t(Un.Item, {
3750
+ children: /* @__PURE__ */ t(Kn.Item, {
3733
3751
  "aria-hidden": "true",
3734
3752
  style: {
3735
3753
  borderRadius: "var(--game-ui-radius-control)",
@@ -3758,7 +3776,7 @@ function Qn({ activeId: e, label: r, onSelect: i, options: a }) {
3758
3776
  ]
3759
3777
  });
3760
3778
  }
3761
- function $n({ label: e, max: r, min: i, onChange: a, value: o }) {
3779
+ function nr({ label: e, max: r, min: i, onChange: a, value: o }) {
3762
3780
  return /* @__PURE__ */ n("label", {
3763
3781
  className: "game-ui-slider",
3764
3782
  children: [/* @__PURE__ */ t("span", { children: e }), /* @__PURE__ */ t("input", {
@@ -3772,7 +3790,7 @@ function $n({ label: e, max: r, min: i, onChange: a, value: o }) {
3772
3790
  })]
3773
3791
  });
3774
3792
  }
3775
- function er({ checked: e, disabled: r, label: i, onClick: a }) {
3793
+ function rr({ checked: e, disabled: r, label: i, onClick: a }) {
3776
3794
  return /* @__PURE__ */ n("button", {
3777
3795
  "aria-checked": e,
3778
3796
  className: "game-ui-toggle",
@@ -3786,7 +3804,7 @@ function er({ checked: e, disabled: r, label: i, onClick: a }) {
3786
3804
  })]
3787
3805
  });
3788
3806
  }
3789
- function tr({ items: e, label: n, onSelect: r }) {
3807
+ function ir({ items: e, label: n, onSelect: r }) {
3790
3808
  return /* @__PURE__ */ t("div", {
3791
3809
  "aria-label": n,
3792
3810
  className: "game-ui-radial-menu",
@@ -3801,7 +3819,7 @@ function tr({ items: e, label: n, onSelect: r }) {
3801
3819
  }, e.id))
3802
3820
  });
3803
3821
  }
3804
- function nr({ children: e, tone: n = "info" }) {
3822
+ function ar({ children: e, tone: n = "info" }) {
3805
3823
  return /* @__PURE__ */ t("div", {
3806
3824
  className: "game-ui-toast",
3807
3825
  "data-toast-tone": n,
@@ -3809,7 +3827,7 @@ function nr({ children: e, tone: n = "info" }) {
3809
3827
  children: e
3810
3828
  });
3811
3829
  }
3812
- function rr({ actionLabel: e, children: r, title: i }) {
3830
+ function or({ actionLabel: e, children: r, title: i }) {
3813
3831
  return /* @__PURE__ */ n("section", {
3814
3832
  "aria-label": i,
3815
3833
  className: "game-ui-prompt",
@@ -3821,7 +3839,7 @@ function rr({ actionLabel: e, children: r, title: i }) {
3821
3839
  }
3822
3840
  //#endregion
3823
3841
  //#region src/clay/assets.ts
3824
- var ir = "/assets/game/ui/clay/phase03-clay-kit", Z = (e) => `${ir}/${e}`, ar = {
3842
+ var sr = "/assets/game/ui/clay/phase03-clay-kit", Z = (e) => `${sr}/${e}`, cr = {
3825
3843
  ai: { line: Z("icons/function/brain-v1.png") },
3826
3844
  alert: {
3827
3845
  game: Z("components/common/alert-v1.png"),
@@ -3911,20 +3929,20 @@ var ir = "/assets/game/ui/clay/phase03-clay-kit", Z = (e) => `${ir}/${e}`, ar =
3911
3929
  game: Z("icons/common/target-v1.png"),
3912
3930
  line: Z("icons/function/target-v1.png")
3913
3931
  }
3914
- }, or = Object.keys(ar), sr = ir;
3915
- function cr(e) {
3916
- let t = sr;
3932
+ }, lr = Object.keys(cr), ur = sr;
3933
+ function dr(e) {
3934
+ let t = ur;
3917
3935
  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;
3918
3936
  }
3919
- function lr(e, t) {
3920
- let n = ar[e];
3921
- return cr(t === "line" ? n.line ?? n.game ?? "" : n.game ?? n.line ?? "");
3937
+ function fr(e, t) {
3938
+ let n = cr[e];
3939
+ return dr(t === "line" ? n.line ?? n.game ?? "" : n.game ?? n.line ?? "");
3922
3940
  }
3923
- function ur(e) {
3924
- let t = ar[e], n = [];
3941
+ function pr(e) {
3942
+ let t = cr[e], n = [];
3925
3943
  return t.game && n.push("game"), t.line && n.push("line"), n;
3926
3944
  }
3927
- var dr = {
3945
+ var mr = {
3928
3946
  anvil: Z("icons/common/anvil-v1.png"),
3929
3947
  arrow: Z("icons/common/arrow-v1.png"),
3930
3948
  bomb: Z("icons/common/bomb-v1.png"),
@@ -3951,7 +3969,7 @@ var dr = {
3951
3969
  swordB: Z("icons/common/sword-b-v1.png"),
3952
3970
  talaria: Z("icons/common/talaria-v1.png"),
3953
3971
  treasure: Z("icons/common/treasure-v1.png")
3954
- }, fr = Object.keys(dr), pr = {
3972
+ }, hr = Object.keys(mr), gr = {
3955
3973
  buttons: {
3956
3974
  primary: Z("buttons/button-brown-large-v2.png"),
3957
3975
  blue: Z("buttons/button-blue-large-v2.png"),
@@ -3972,7 +3990,7 @@ var dr = {
3972
3990
  tabSelected: Z("components/common/tab-s-v1.png"),
3973
3991
  tabNormal: Z("components/common/tab-n-v1.png")
3974
3992
  },
3975
- icons: Object.fromEntries(or.map((e) => [e, lr(e)])),
3993
+ icons: Object.fromEntries(lr.map((e) => [e, fr(e)])),
3976
3994
  catalog: {
3977
3995
  manifest: "/assets/game/ui/clay/asset-manifest.json",
3978
3996
  sourceCatalog: Z("catalog/phase03-clay-ui-catalog.json"),
@@ -3980,7 +3998,7 @@ var dr = {
3980
3998
  contactSheetComponents: Z("catalog/component-candidates-contact-sheet-v1.png"),
3981
3999
  contactSheetFunction: Z("catalog/function-icons-contact-sheet-v1.png")
3982
4000
  }
3983
- }, mr = {
4001
+ }, _r = {
3984
4002
  ai: "AI",
3985
4003
  alert: "!",
3986
4004
  card: "▣",
@@ -4016,72 +4034,72 @@ var dr = {
4016
4034
  timer: "◷",
4017
4035
  trophy: "★",
4018
4036
  vote: "⌾"
4019
- }, hr = {
4020
- ai: L.berry,
4021
- alert: L.red,
4022
- card: L.honey,
4023
- chat: L.sky,
4024
- check: L.green,
4025
- close: L.red,
4026
- coin: L.honey,
4027
- compass: L.teal,
4028
- copy: L.wood,
4029
- crown: L.honey,
4030
- energy: L.orange,
4031
- gem: L.sky,
4032
- gift: L.red,
4033
- globe: L.teal,
4034
- history: L.inkMuted,
4035
- redo: L.wood,
4036
- undo: L.wood,
4037
- home: L.wood,
4038
- hourglass: L.orange,
4039
- laurel: L.green,
4040
- lock: L.ink,
4041
- lucky: L.green,
4042
- mail: L.sky,
4043
- medal: L.honey,
4044
- mission: L.berry,
4045
- mobile: L.sky,
4046
- portal: L.teal,
4047
- scroll: L.berry,
4048
- settings: L.inkMuted,
4049
- shirt: L.sky,
4050
- shop: L.inkMuted,
4051
- smile: L.honey,
4052
- timer: L.orange,
4053
- trophy: L.honey,
4054
- vote: L.red
4037
+ }, vr = {
4038
+ ai: I.berry,
4039
+ alert: I.red,
4040
+ card: I.honey,
4041
+ chat: I.sky,
4042
+ check: I.green,
4043
+ close: I.red,
4044
+ coin: I.honey,
4045
+ compass: I.teal,
4046
+ copy: I.wood,
4047
+ crown: I.honey,
4048
+ energy: I.orange,
4049
+ gem: I.sky,
4050
+ gift: I.red,
4051
+ globe: I.teal,
4052
+ history: I.inkMuted,
4053
+ redo: I.wood,
4054
+ undo: I.wood,
4055
+ home: I.wood,
4056
+ hourglass: I.orange,
4057
+ laurel: I.green,
4058
+ lock: I.ink,
4059
+ lucky: I.green,
4060
+ mail: I.sky,
4061
+ medal: I.honey,
4062
+ mission: I.berry,
4063
+ mobile: I.sky,
4064
+ portal: I.teal,
4065
+ scroll: I.berry,
4066
+ settings: I.inkMuted,
4067
+ shirt: I.sky,
4068
+ shop: I.inkMuted,
4069
+ smile: I.honey,
4070
+ timer: I.orange,
4071
+ trophy: I.honey,
4072
+ vote: I.red
4055
4073
  };
4056
- function gr(e) {
4057
- let t = mr[e], n = hr[e], r = L.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>`;
4074
+ function yr(e) {
4075
+ let t = _r[e], n = vr[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>`;
4058
4076
  return `data:image/svg+xml,${encodeURIComponent(i)}`;
4059
4077
  }
4060
- var _r = "inline";
4061
- function vr(e) {
4062
- _r = e;
4078
+ var br = "inline";
4079
+ function xr(e) {
4080
+ br = e;
4063
4081
  }
4064
- function yr() {
4065
- return _r;
4082
+ function Sr() {
4083
+ return br;
4066
4084
  }
4067
- function br(e) {
4068
- sr = e.replace(/\/+$/, "");
4085
+ function Cr(e) {
4086
+ ur = e.replace(/\/+$/, "");
4069
4087
  }
4070
- function xr() {
4071
- return sr;
4088
+ function wr() {
4089
+ return ur;
4072
4090
  }
4073
- var Sr = !1;
4074
- function Cr() {
4075
- Sr || (Sr = !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."));
4091
+ var Tr = !1;
4092
+ function Er() {
4093
+ Tr || (Tr = !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."));
4076
4094
  }
4077
- function wr() {
4078
- Sr = !0;
4095
+ function Dr() {
4096
+ Tr = !0;
4079
4097
  }
4080
- function Tr(e, t = {}) {
4081
- return t.inline ?? _r === "inline" ? (Cr(), gr(e)) : lr(e, t.style);
4098
+ function Or(e, t = {}) {
4099
+ return t.inline ?? br === "inline" ? (Er(), yr(e)) : fr(e, t.style);
4082
4100
  }
4083
- function Er(e, t) {
4084
- return lr(e, t);
4101
+ function kr(e, t) {
4102
+ return fr(e, t);
4085
4103
  }
4086
4104
  //#endregion
4087
4105
  //#region src/ClayComponents.tsx
@@ -4093,7 +4111,7 @@ function Q({ children: e, className: n, tone: r = "neutral" }) {
4093
4111
  });
4094
4112
  }
4095
4113
  function $({ className: e, icon: n, label: r, size: i = "md", style: a, useSourceAsset: o = !1 }) {
4096
- let s = ["game-ui-asset-icon", e].filter(Boolean).join(" "), c = r ? { "aria-label": r } : { "aria-hidden": !0 }, l = Tr(n, {
4114
+ let s = ["game-ui-asset-icon", e].filter(Boolean).join(" "), c = r ? { "aria-label": r } : { "aria-hidden": !0 }, l = Or(n, {
4097
4115
  ...a ? { style: a } : {},
4098
4116
  ...o ? { inline: !1 } : {}
4099
4117
  });
@@ -4108,7 +4126,7 @@ function $({ className: e, icon: n, label: r, size: i = "md", style: a, useSourc
4108
4126
  })
4109
4127
  });
4110
4128
  }
4111
- function Dr({ actions: e, className: r, items: i, label: a }) {
4129
+ function Ar({ actions: e, className: r, items: i, label: a }) {
4112
4130
  return /* @__PURE__ */ n("section", {
4113
4131
  "aria-label": a,
4114
4132
  className: ["game-ui-hud", r].filter(Boolean).join(" "),
@@ -4131,7 +4149,7 @@ function Dr({ actions: e, className: r, items: i, label: a }) {
4131
4149
  }) : null]
4132
4150
  });
4133
4151
  }
4134
- function Or({ cards: e, className: r, label: i }) {
4152
+ function jr({ cards: e, className: r, label: i }) {
4135
4153
  let a = ["game-ui-card-fan", r].filter(Boolean).join(" "), o = (e.length - 1) / 2;
4136
4154
  return /* @__PURE__ */ t("div", {
4137
4155
  "aria-label": i,
@@ -4154,7 +4172,7 @@ function Or({ cards: e, className: r, label: i }) {
4154
4172
  }, e.id))
4155
4173
  });
4156
4174
  }
4157
- function kr({ badge: e, className: r, icon: i, kicker: a, selected: o = !1, summary: s, title: c, tone: l = "daily", type: u = "button", ...d }) {
4175
+ function Mr({ badge: e, className: r, icon: i, kicker: a, selected: o = !1, summary: s, title: c, tone: l = "daily", type: u = "button", ...d }) {
4158
4176
  return /* @__PURE__ */ n("button", {
4159
4177
  "aria-pressed": o,
4160
4178
  className: ["game-ui-stage-tile", r].filter(Boolean).join(" "),
@@ -4181,15 +4199,15 @@ function kr({ badge: e, className: r, icon: i, kicker: a, selected: o = !1, summ
4181
4199
  ]
4182
4200
  });
4183
4201
  }
4184
- function Ar() {
4202
+ function Nr() {
4185
4203
  return typeof window > "u" ? !1 : (window.matchMedia?.("(pointer: coarse), (max-width: 899px)").matches ?? window.innerWidth < 900) && window.innerHeight > window.innerWidth;
4186
4204
  }
4187
- function jr({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a = "Rotate manually if this browser blocks automatic landscape lock.", preview: o = !1, title: s }) {
4188
- let [c, u] = m(o || Ar), [d, f] = m("");
4205
+ function Pr({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a = "Rotate manually if this browser blocks automatic landscape lock.", preview: o = !1, title: s }) {
4206
+ let [c, u] = m(o || Nr), [d, f] = m("");
4189
4207
  if (l(() => {
4190
4208
  if (o) return;
4191
4209
  let e = () => {
4192
- let e = Ar();
4210
+ let e = Nr();
4193
4211
  u(e), e || f("");
4194
4212
  };
4195
4213
  return e(), window.addEventListener("resize", e), window.addEventListener("orientationchange", e), () => {
@@ -4199,7 +4217,7 @@ function jr({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a =
4199
4217
  let p = async () => {
4200
4218
  if (f(""), !o) try {
4201
4219
  let e = document.documentElement;
4202
- !document.fullscreenElement && e.requestFullscreen && await e.requestFullscreen(), await screen.orientation.lock?.("landscape-primary"), u(Ar());
4220
+ !document.fullscreenElement && e.requestFullscreen && await e.requestFullscreen(), await screen.orientation.lock?.("landscape-primary"), u(Nr());
4203
4221
  } catch {
4204
4222
  f(a);
4205
4223
  }
@@ -4230,7 +4248,7 @@ function jr({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a =
4230
4248
  })
4231
4249
  });
4232
4250
  }
4233
- function Mr({ className: e, currentLabel: r, label: i, options: a, value: o, defaultValue: s, onSelect: c }) {
4251
+ function Fr({ className: e, currentLabel: r, label: i, options: a, value: o, defaultValue: s, onSelect: c }) {
4234
4252
  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) => {
4235
4253
  o === void 0 && p(e), c?.(e), d(!1);
4236
4254
  };
@@ -4262,34 +4280,34 @@ function Mr({ className: e, currentLabel: r, label: i, options: a, value: o, def
4262
4280
  }) : null]
4263
4281
  });
4264
4282
  }
4265
- function Nr({ label: e, tone: r = "loading" }) {
4283
+ function Ir({ label: e, tone: r = "loading" }) {
4266
4284
  return /* @__PURE__ */ n("div", {
4267
4285
  className: "game-ui-loading-state",
4268
4286
  "data-loading-tone": r,
4269
4287
  role: r === "error" ? "alert" : "status",
4270
4288
  children: [/* @__PURE__ */ t("img", {
4271
4289
  alt: "",
4272
- src: Tr(r === "error" ? "alert" : "timer")
4290
+ src: Or(r === "error" ? "alert" : "timer")
4273
4291
  }), /* @__PURE__ */ t("span", { children: e })]
4274
4292
  });
4275
4293
  }
4276
- function Pr() {
4277
- return pr.catalog;
4294
+ function Lr() {
4295
+ return gr.catalog;
4278
4296
  }
4279
4297
  //#endregion
4280
4298
  //#region src/FirstSessionGameShell.tsx
4281
- function Fr({ fallback: e, slot: n }) {
4299
+ function Rr({ fallback: e, slot: n }) {
4282
4300
  return n ?? /* @__PURE__ */ t($, {
4283
4301
  icon: e,
4284
4302
  size: "sm"
4285
4303
  });
4286
4304
  }
4287
- function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, iconSlots: o, labels: s, onHistory: c, onSettings: l, onWardrobe: u, playerName: d }) {
4305
+ function zr({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, iconSlots: o, labels: s, onHistory: c, onSettings: l, onWardrobe: u, playerName: d }) {
4288
4306
  let f = ["swimmer-first-session-shell", i].filter(Boolean).join(" "), p = e ? `${r} 🔋` : s.guest ?? "guest";
4289
4307
  return /* @__PURE__ */ n("section", {
4290
4308
  "aria-label": s.shell,
4291
4309
  className: f,
4292
- children: [/* @__PURE__ */ t(Dr, {
4310
+ children: [/* @__PURE__ */ t(Ar, {
4293
4311
  className: "swimmer-first-session-hud",
4294
4312
  items: [
4295
4313
  {
@@ -4321,7 +4339,7 @@ function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
4321
4339
  }
4322
4340
  ],
4323
4341
  label: s.hud,
4324
- actions: /* @__PURE__ */ n(qn, {
4342
+ actions: /* @__PURE__ */ n(Xn, {
4325
4343
  className: "swimmer-first-session-hud-actions",
4326
4344
  label: s.tools,
4327
4345
  children: [
@@ -4329,7 +4347,7 @@ function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
4329
4347
  "aria-label": s.wardrobe,
4330
4348
  onClick: u,
4331
4349
  variant: "secondary",
4332
- children: [/* @__PURE__ */ t(Fr, {
4350
+ children: [/* @__PURE__ */ t(Rr, {
4333
4351
  fallback: "shirt",
4334
4352
  slot: o?.wardrobe
4335
4353
  }), s.wardrobe]
@@ -4338,7 +4356,7 @@ function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
4338
4356
  "aria-label": s.settings,
4339
4357
  onClick: l,
4340
4358
  variant: "secondary",
4341
- children: [/* @__PURE__ */ t(Fr, {
4359
+ children: [/* @__PURE__ */ t(Rr, {
4342
4360
  fallback: "settings",
4343
4361
  slot: o?.settings
4344
4362
  }), s.settings]
@@ -4347,7 +4365,7 @@ function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
4347
4365
  "aria-label": s.history,
4348
4366
  onClick: c,
4349
4367
  variant: "secondary",
4350
- children: [/* @__PURE__ */ t(Fr, {
4368
+ children: [/* @__PURE__ */ t(Rr, {
4351
4369
  fallback: "history",
4352
4370
  slot: o?.history
4353
4371
  }), s.history]
@@ -4372,7 +4390,7 @@ function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
4372
4390
  }),
4373
4391
  /* @__PURE__ */ n("label", {
4374
4392
  className: "swimmer-first-session-input",
4375
- children: [/* @__PURE__ */ t(Fr, {
4393
+ children: [/* @__PURE__ */ t(Rr, {
4376
4394
  fallback: "chat",
4377
4395
  slot: o?.input
4378
4396
  }), /* @__PURE__ */ t("span", { children: s.input })]
@@ -4380,7 +4398,7 @@ function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
4380
4398
  /* @__PURE__ */ n("button", {
4381
4399
  className: "swimmer-first-session-emote",
4382
4400
  type: "button",
4383
- children: [/* @__PURE__ */ t(Fr, {
4401
+ children: [/* @__PURE__ */ t(Rr, {
4384
4402
  fallback: "smile",
4385
4403
  slot: o?.emote
4386
4404
  }), s.emote]
@@ -4389,7 +4407,7 @@ function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
4389
4407
  })]
4390
4408
  });
4391
4409
  }
4392
- function Lr({ labels: e, onDismiss: r, open: i }) {
4410
+ function Br({ labels: e, onDismiss: r, open: i }) {
4393
4411
  return i ? /* @__PURE__ */ n("aside", {
4394
4412
  "aria-labelledby": "swimmer-first-session-onboarding-title",
4395
4413
  "aria-modal": "true",
@@ -4437,7 +4455,7 @@ function Lr({ labels: e, onDismiss: r, open: i }) {
4437
4455
  }
4438
4456
  //#endregion
4439
4457
  //#region src/GameForms.tsx
4440
- var Rr = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
4458
+ var Vr = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
4441
4459
  return /* @__PURE__ */ t("input", {
4442
4460
  className: ["game-ui-input", e].filter(Boolean).join(" "),
4443
4461
  "data-invalid": n ? "true" : void 0,
@@ -4445,7 +4463,7 @@ var Rr = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
4445
4463
  type: r,
4446
4464
  ...i
4447
4465
  });
4448
- }), zr = a(function({ className: e, invalid: n, rows: r = 3, ...i }, a) {
4466
+ }), Hr = a(function({ className: e, invalid: n, rows: r = 3, ...i }, a) {
4449
4467
  return /* @__PURE__ */ t("textarea", {
4450
4468
  className: [
4451
4469
  "game-ui-input",
@@ -4458,7 +4476,7 @@ var Rr = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
4458
4476
  ...i
4459
4477
  });
4460
4478
  });
4461
- function Br({ children: e, className: r, error: i, hint: a, label: o, required: s }) {
4479
+ function Ur({ children: e, className: r, error: i, hint: a, label: o, required: s }) {
4462
4480
  return /* @__PURE__ */ n("label", {
4463
4481
  className: ["game-ui-field", r].filter(Boolean).join(" "),
4464
4482
  "data-invalid": i ? "true" : void 0,
@@ -4484,7 +4502,7 @@ function Br({ children: e, className: r, error: i, hint: a, label: o, required:
4484
4502
  ]
4485
4503
  });
4486
4504
  }
4487
- function Vr({ className: e, label: r, ...i }) {
4505
+ function Wr({ className: e, label: r, ...i }) {
4488
4506
  return /* @__PURE__ */ n("label", {
4489
4507
  className: ["game-ui-checkbox", e].filter(Boolean).join(" "),
4490
4508
  children: [
@@ -4506,11 +4524,11 @@ function Vr({ className: e, label: r, ...i }) {
4506
4524
  }
4507
4525
  //#endregion
4508
4526
  //#region src/GameDisplay.tsx
4509
- function Hr(e) {
4527
+ function Gr(e) {
4510
4528
  let t = e.trim().split(/\s+/).filter(Boolean);
4511
4529
  return t.length === 0 ? "?" : t.slice(0, 2).map((e) => e[0] ?? "").join("").toUpperCase();
4512
4530
  }
4513
- function Ur({ className: r, name: i, size: a = "md", src: o, status: s = "none" }) {
4531
+ function Kr({ className: r, name: i, size: a = "md", src: o, status: s = "none" }) {
4514
4532
  return /* @__PURE__ */ n("span", {
4515
4533
  className: ["game-ui-avatar", r].filter(Boolean).join(" "),
4516
4534
  "data-avatar-size": a,
@@ -4521,7 +4539,7 @@ function Ur({ className: r, name: i, size: a = "md", src: o, status: s = "none"
4521
4539
  }) : /* @__PURE__ */ n(e, { children: [/* @__PURE__ */ t("span", {
4522
4540
  "aria-hidden": "true",
4523
4541
  className: "game-ui-avatar-initials",
4524
- children: Hr(i)
4542
+ children: Gr(i)
4525
4543
  }), /* @__PURE__ */ t("span", {
4526
4544
  className: "game-ui-sr-only",
4527
4545
  children: i
@@ -4531,7 +4549,7 @@ function Ur({ className: r, name: i, size: a = "md", src: o, status: s = "none"
4531
4549
  })]
4532
4550
  });
4533
4551
  }
4534
- function Wr({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o = "accent", value: s, valueLabel: c }) {
4552
+ function qr({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o = "accent", value: s, valueLabel: c }) {
4535
4553
  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 = {
4536
4554
  accent: "var(--game-ui-accent)",
4537
4555
  danger: "var(--game-ui-danger)",
@@ -4549,7 +4567,7 @@ function Wr({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o =
4549
4567
  "aria-valuetext": f ? c : void 0,
4550
4568
  className: "game-ui-progress-track",
4551
4569
  role: "progressbar",
4552
- children: /* @__PURE__ */ t(Un, {
4570
+ children: /* @__PURE__ */ t(Kn, {
4553
4571
  "aria-hidden": "true",
4554
4572
  className: "game-ui-progress-liquid",
4555
4573
  fill: p,
@@ -4560,7 +4578,7 @@ function Wr({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o =
4560
4578
  pointerEvents: "none",
4561
4579
  position: "absolute"
4562
4580
  },
4563
- children: /* @__PURE__ */ t(Un.Item, {
4581
+ children: /* @__PURE__ */ t(Kn.Item, {
4564
4582
  "aria-hidden": "true",
4565
4583
  className: "game-ui-progress-fill",
4566
4584
  style: {
@@ -4583,7 +4601,7 @@ function Wr({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o =
4583
4601
  }) : null]
4584
4602
  });
4585
4603
  }
4586
- function Gr({ action: e, className: r, description: i, icon: a, title: o }) {
4604
+ function Jr({ action: e, className: r, description: i, icon: a, title: o }) {
4587
4605
  return /* @__PURE__ */ n("div", {
4588
4606
  className: ["game-ui-empty-state", r].filter(Boolean).join(" "),
4589
4607
  children: [
@@ -4608,7 +4626,7 @@ function Gr({ action: e, className: r, description: i, icon: a, title: o }) {
4608
4626
  }
4609
4627
  //#endregion
4610
4628
  //#region src/GameSurfacePack.tsx
4611
- function Kr({ assetLibrary: e, bottomBar: r, children: i, className: a, density: o = "comfortable", hud: s, layout: c = "auto", movementPad: l, overlay: u, sidePanel: d, title: f }) {
4629
+ function Yr({ assetLibrary: e, bottomBar: r, children: i, className: a, density: o = "comfortable", hud: s, layout: c = "auto", movementPad: l, overlay: u, sidePanel: d, title: f }) {
4612
4630
  return /* @__PURE__ */ n("section", {
4613
4631
  "aria-label": f,
4614
4632
  className: ["game-ui-shell", a].filter(Boolean).join(" "),
@@ -4646,8 +4664,8 @@ function Kr({ assetLibrary: e, bottomBar: r, children: i, className: a, density:
4646
4664
  ]
4647
4665
  });
4648
4666
  }
4649
- var qr = Kr;
4650
- function Jr({ className: e, density: r = "comfortable", facts: i, label: a, variant: o = "facts" }) {
4667
+ var Xr = Yr;
4668
+ function Zr({ className: e, density: r = "comfortable", facts: i, label: a, variant: o = "facts" }) {
4651
4669
  return /* @__PURE__ */ t("section", {
4652
4670
  "aria-label": a,
4653
4671
  className: ["game-ui-fact-list", e].filter(Boolean).join(" "),
@@ -4676,9 +4694,9 @@ function Jr({ className: e, density: r = "comfortable", facts: i, label: a, vari
4676
4694
  }, e.id))
4677
4695
  });
4678
4696
  }
4679
- var Yr = Jr;
4680
- function Xr({ actions: r, className: i, density: a = "comfortable", iconLabelMode: o = "hidden", label: s, style: c = "button" }) {
4681
- return /* @__PURE__ */ n(qn, {
4697
+ var Qr = Zr;
4698
+ function $r({ actions: r, className: i, density: a = "comfortable", iconLabelMode: o = "hidden", label: s, style: c = "button" }) {
4699
+ return /* @__PURE__ */ n(Xn, {
4682
4700
  className: ["game-ui-action-grid", i].filter(Boolean).join(" "),
4683
4701
  "data-icon-label-mode": c === "icon" ? o : void 0,
4684
4702
  label: s,
@@ -4703,7 +4721,7 @@ function Xr({ actions: r, className: i, density: a = "comfortable", iconLabelMod
4703
4721
  }) : null,
4704
4722
  r.shortcut ? /* @__PURE__ */ t("kbd", { children: r.shortcut }) : null
4705
4723
  ] }), l = () => r.onAction?.(r.id);
4706
- return c === "icon" ? /* @__PURE__ */ t(Jn, {
4724
+ return c === "icon" ? /* @__PURE__ */ t(Zn, {
4707
4725
  "aria-pressed": r.selected,
4708
4726
  className: "game-ui-action-grid-button",
4709
4727
  disabled: r.disabled,
@@ -4721,7 +4739,7 @@ function Xr({ actions: r, className: i, density: a = "comfortable", iconLabelMod
4721
4739
  })]
4722
4740
  });
4723
4741
  }
4724
- var Zr = [
4742
+ var ei = [
4725
4743
  {
4726
4744
  direction: "forward",
4727
4745
  label: "Move forward",
@@ -4746,7 +4764,7 @@ var Zr = [
4746
4764
  shortcut: "S / ↓",
4747
4765
  symbol: "↓"
4748
4766
  }
4749
- ], Qr = {
4767
+ ], ti = {
4750
4768
  ArrowUp: "forward",
4751
4769
  w: "forward",
4752
4770
  W: "forward",
@@ -4761,7 +4779,7 @@ var Zr = [
4761
4779
  S: "backward",
4762
4780
  " ": "reset"
4763
4781
  };
4764
- function $r({ actions: e = Zr, className: r, density: i = "comfortable", disabled: a = !1, helpText: o, label: s, layout: c = "dpad", onMove: l }) {
4782
+ function ni({ actions: e = ei, className: r, density: i = "comfortable", disabled: a = !1, helpText: o, label: s, layout: c = "dpad", onMove: l }) {
4765
4783
  let u = ["game-ui-movement-pad", r].filter(Boolean).join(" "), d = (e) => {
4766
4784
  a || l?.(e);
4767
4785
  };
@@ -4771,7 +4789,7 @@ function $r({ actions: e = Zr, className: r, density: i = "comfortable", disable
4771
4789
  "data-density": i,
4772
4790
  "data-layout": c,
4773
4791
  onKeyDown: (t) => {
4774
- let n = Qr[t.key];
4792
+ let n = ti[t.key];
4775
4793
  if (!n) return;
4776
4794
  let r = e.find((e) => e.direction === n);
4777
4795
  !r || r.disabled || a || (t.preventDefault(), d(n));
@@ -4779,7 +4797,7 @@ function $r({ actions: e = Zr, className: r, density: i = "comfortable", disable
4779
4797
  tabIndex: 0,
4780
4798
  children: [/* @__PURE__ */ t("div", {
4781
4799
  className: "game-ui-movement-pad-grid",
4782
- children: e.map((e) => /* @__PURE__ */ n(Jn, {
4800
+ children: e.map((e) => /* @__PURE__ */ n(Zn, {
4783
4801
  className: "game-ui-movement-button",
4784
4802
  "data-direction": e.direction,
4785
4803
  disabled: a || e.disabled,
@@ -4797,15 +4815,15 @@ function $r({ actions: e = Zr, className: r, density: i = "comfortable", disable
4797
4815
  }), o ? /* @__PURE__ */ t("p", { children: o }) : null]
4798
4816
  });
4799
4817
  }
4800
- var ei = {
4818
+ var ri = {
4801
4819
  generated: "Generated",
4802
4820
  imported: "Imported",
4803
4821
  starter: "Starter"
4804
- }, ti = {
4822
+ }, ii = {
4805
4823
  generated: "ai",
4806
4824
  imported: "warning",
4807
4825
  starter: "neutral"
4808
- }, ni = {
4826
+ }, ai = {
4809
4827
  error: "danger",
4810
4828
  generating: "ai",
4811
4829
  missing: "danger",
@@ -4813,8 +4831,8 @@ var ei = {
4813
4831
  ready: "neutral",
4814
4832
  selected: "success"
4815
4833
  };
4816
- function ri({ 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 }) {
4817
- let { "aria-label": S, ...C } = x, w = ["game-ui-asset-card", a].filter(Boolean).join(" "), T = m ?? ei[p], E = g ?? h;
4834
+ function oi({ 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 }) {
4835
+ let { "aria-label": S, ...C } = x, w = ["game-ui-asset-card", a].filter(Boolean).join(" "), T = m ?? ri[p], E = g ?? h;
4818
4836
  return /* @__PURE__ */ n("button", {
4819
4837
  "aria-label": S ?? y,
4820
4838
  "aria-pressed": f,
@@ -4845,11 +4863,11 @@ function ri({ assetId: e, badges: r = [], cardLayout: i = "list", className: a,
4845
4863
  className: "game-ui-asset-card-badges",
4846
4864
  children: [
4847
4865
  /* @__PURE__ */ t(Q, {
4848
- tone: ti[p],
4866
+ tone: ii[p],
4849
4867
  children: T
4850
4868
  }),
4851
4869
  /* @__PURE__ */ t(Q, {
4852
- tone: ni[h],
4870
+ tone: ai[h],
4853
4871
  children: E
4854
4872
  }),
4855
4873
  r.map((e) => /* @__PURE__ */ t(Q, {
@@ -4868,7 +4886,7 @@ function ri({ assetId: e, badges: r = [], cardLayout: i = "list", className: a,
4868
4886
  })]
4869
4887
  });
4870
4888
  }
4871
- function ii({ 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 }) {
4889
+ function si({ 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 }) {
4872
4890
  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) => {
4873
4891
  e[t.source] += 1;
4874
4892
  }), e), {
@@ -4893,15 +4911,15 @@ function ii({ cardLayout: e = "auto", className: r, density: i = "comfortable",
4893
4911
  "aria-label": "Asset source counts",
4894
4912
  className: "game-ui-asset-library-counts",
4895
4913
  children: Object.entries(g).map(([e, t]) => /* @__PURE__ */ n(Q, {
4896
- tone: ti[e],
4914
+ tone: ii[e],
4897
4915
  children: [
4898
- ei[e],
4916
+ ri[e],
4899
4917
  " ",
4900
4918
  t
4901
4919
  ]
4902
4920
  }, e))
4903
4921
  }),
4904
- h === 0 ? /* @__PURE__ */ t(Gr, {
4922
+ h === 0 ? /* @__PURE__ */ t(Jr, {
4905
4923
  action: a,
4906
4924
  description: o,
4907
4925
  icon: "gem",
@@ -4913,13 +4931,13 @@ function ii({ cardLayout: e = "auto", className: r, density: i = "comfortable",
4913
4931
  className: "game-ui-asset-library-group",
4914
4932
  "data-asset-source": r.source,
4915
4933
  children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t("strong", { children: r.label }), r.source ? /* @__PURE__ */ t(Q, {
4916
- tone: ti[r.source],
4917
- children: ei[r.source]
4934
+ tone: ii[r.source],
4935
+ children: ri[r.source]
4918
4936
  }) : null] }), /* @__PURE__ */ t("div", {
4919
4937
  className: "game-ui-asset-library-grid",
4920
4938
  children: r.assets.map((n) => {
4921
4939
  let r = e === "auto" ? n.cardLayout : e;
4922
- return /* @__PURE__ */ t(ri, {
4940
+ return /* @__PURE__ */ t(oi, {
4923
4941
  ...n,
4924
4942
  ...r ? { cardLayout: r } : {},
4925
4943
  ...u ? { onSelect: u } : {},
@@ -4933,7 +4951,7 @@ function ii({ cardLayout: e = "auto", className: r, density: i = "comfortable",
4933
4951
  })
4934
4952
  });
4935
4953
  }
4936
- function ai({ 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 }) {
4954
+ function ci({ 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 }) {
4937
4955
  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;
4938
4956
  return /* @__PURE__ */ t(X, {
4939
4957
  className: h,
@@ -4942,7 +4960,7 @@ function ai({ actions: e = [], capacityLabel: r = "Objects", className: i, densi
4942
4960
  children: /* @__PURE__ */ n("div", {
4943
4961
  "data-density": a,
4944
4962
  children: [
4945
- /* @__PURE__ */ t(Jr, {
4963
+ /* @__PURE__ */ t(Zr, {
4946
4964
  density: a,
4947
4965
  facts: [{
4948
4966
  icon: "gem",
@@ -4958,19 +4976,19 @@ function ai({ actions: e = [], capacityLabel: r = "Objects", className: i, densi
4958
4976
  }],
4959
4977
  label: `${m} facts`
4960
4978
  }),
4961
- g ? /* @__PURE__ */ t(Wr, {
4979
+ g ? /* @__PURE__ */ t(qr, {
4962
4980
  label: r,
4963
4981
  max: o,
4964
4982
  showValue: !0,
4965
4983
  tone: _ >= o ? "warning" : "success",
4966
4984
  value: _
4967
4985
  }) : null,
4968
- e.length > 0 ? /* @__PURE__ */ t(Xr, {
4986
+ e.length > 0 ? /* @__PURE__ */ t($r, {
4969
4987
  actions: e,
4970
4988
  density: a,
4971
4989
  label: `${m} actions`
4972
4990
  }) : null,
4973
- s.length > 0 ? /* @__PURE__ */ t(Xr, {
4991
+ s.length > 0 ? /* @__PURE__ */ t($r, {
4974
4992
  actions: s,
4975
4993
  density: a,
4976
4994
  label: `${m} object actions`,
@@ -4980,7 +4998,7 @@ function ai({ actions: e = [], capacityLabel: r = "Objects", className: i, densi
4980
4998
  })
4981
4999
  });
4982
5000
  }
4983
- var oi = ai, si = {
5001
+ var li = ci, ui = {
4984
5002
  build: "home",
4985
5003
  flatten: "card",
4986
5004
  inspect: "compass",
@@ -4990,7 +5008,7 @@ var oi = ai, si = {
4990
5008
  raise: "energy",
4991
5009
  smooth: "lucky",
4992
5010
  terrain: "portal"
4993
- }, ci = {
5011
+ }, di = {
4994
5012
  error: "danger",
4995
5013
  locked: "warning",
4996
5014
  missing: "danger",
@@ -4998,10 +5016,10 @@ var oi = ai, si = {
4998
5016
  ready: "neutral",
4999
5017
  selected: "success"
5000
5018
  };
5001
- function li(e, t, n, r) {
5019
+ function fi(e, t, n, r) {
5002
5020
  let i = {
5003
5021
  disabled: !!(r || e.disabled),
5004
- icon: e.icon ?? si[e.id] ?? "gem",
5022
+ icon: e.icon ?? ui[e.id] ?? "gem",
5005
5023
  id: e.id,
5006
5024
  label: e.label,
5007
5025
  selected: e.id === t,
@@ -5009,21 +5027,21 @@ function li(e, t, n, r) {
5009
5027
  };
5010
5028
  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;
5011
5029
  }
5012
- function ui(e, t, n) {
5030
+ function pi(e, t, n) {
5013
5031
  return Number.isNaN(e) ? t : Math.min(n, Math.max(t, e));
5014
5032
  }
5015
- function di(e) {
5033
+ function mi(e) {
5016
5034
  return e;
5017
5035
  }
5018
- function fi(e, t) {
5036
+ function hi(e, t) {
5019
5037
  return e === "auto" ? t === "mobile" || t === "small-mobile" ? "caption" : "hidden" : e;
5020
5038
  }
5021
- function pi({ activeModeId: e, className: r, disabled: i = !1, label: a, modes: o, onModeChange: s, variant: c = "desktop", "data-testid": l }) {
5039
+ function gi({ activeModeId: e, className: r, disabled: i = !1, label: a, modes: o, onModeChange: s, variant: c = "desktop", "data-testid": l }) {
5022
5040
  return /* @__PURE__ */ n("section", {
5023
5041
  "aria-label": a,
5024
5042
  className: ["game-ui-terrain-mode-control", r].filter(Boolean).join(" "),
5025
5043
  "data-ui-hook": "terrain-mode-control",
5026
- "data-variant": di(c),
5044
+ "data-variant": mi(c),
5027
5045
  "data-testid": l,
5028
5046
  children: [/* @__PURE__ */ t("span", {
5029
5047
  className: "game-ui-sr-only",
@@ -5045,7 +5063,7 @@ function pi({ activeModeId: e, className: r, disabled: i = !1, label: a, modes:
5045
5063
  type: "button",
5046
5064
  children: [
5047
5065
  /* @__PURE__ */ t($, {
5048
- icon: r.icon ?? si[r.id] ?? "portal",
5066
+ icon: r.icon ?? ui[r.id] ?? "portal",
5049
5067
  size: c === "small-mobile" ? "sm" : "md",
5050
5068
  style: "line"
5051
5069
  }),
@@ -5060,8 +5078,8 @@ function pi({ activeModeId: e, className: r, disabled: i = !1, label: a, modes:
5060
5078
  })]
5061
5079
  });
5062
5080
  }
5063
- function mi({ 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 }) {
5064
- let d = ["game-ui-terrain-tool-strip", n].filter(Boolean).join(" "), f = fi(r, l);
5081
+ function _i({ 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 }) {
5082
+ let d = ["game-ui-terrain-tool-strip", n].filter(Boolean).join(" "), f = hi(r, l);
5065
5083
  return /* @__PURE__ */ t("section", {
5066
5084
  "aria-label": o,
5067
5085
  className: d,
@@ -5070,8 +5088,8 @@ function mi({ activeToolId: e, className: n, compactLabelMode: r = "auto", densi
5070
5088
  "data-ui-hook": "terrain-tool-strip",
5071
5089
  "data-variant": l,
5072
5090
  "data-testid": u,
5073
- children: /* @__PURE__ */ t(Xr, {
5074
- actions: c.map((t) => li(t, e, s, a)),
5091
+ children: /* @__PURE__ */ t($r, {
5092
+ actions: c.map((t) => fi(t, e, s, a)),
5075
5093
  density: i,
5076
5094
  iconLabelMode: f,
5077
5095
  label: o,
@@ -5079,18 +5097,18 @@ function mi({ activeToolId: e, className: n, compactLabelMode: r = "auto", densi
5079
5097
  })
5080
5098
  });
5081
5099
  }
5082
- function hi({ className: e, labels: r = {}, onRadiusChange: i, onStrengthChange: a, state: o, variant: s = "desktop", "data-testid": c }) {
5083
- 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 = ui(o.radius, u, d), _ = ui(o.strength, p, m), v = !!o.disabled, y = (e) => {
5084
- i?.(ui(Number(e.currentTarget.value), u, d));
5100
+ function vi({ className: e, labels: r = {}, onRadiusChange: i, onStrengthChange: a, state: o, variant: s = "desktop", "data-testid": c }) {
5101
+ 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 = pi(o.radius, u, d), _ = pi(o.strength, p, m), v = !!o.disabled, y = (e) => {
5102
+ i?.(pi(Number(e.currentTarget.value), u, d));
5085
5103
  }, b = (e) => {
5086
- a?.(ui(Number(e.currentTarget.value), p, m));
5104
+ a?.(pi(Number(e.currentTarget.value), p, m));
5087
5105
  };
5088
5106
  return /* @__PURE__ */ n("section", {
5089
5107
  className: l,
5090
5108
  "data-ui-hook": "brush-controls",
5091
5109
  "data-variant": s,
5092
5110
  "data-testid": c,
5093
- children: [/* @__PURE__ */ t(Br, {
5111
+ children: [/* @__PURE__ */ t(Ur, {
5094
5112
  ...r.radiusHint ? { hint: r.radiusHint } : {},
5095
5113
  label: r.radius ?? "Brush radius",
5096
5114
  children: /* @__PURE__ */ n("div", {
@@ -5120,7 +5138,7 @@ function hi({ className: e, labels: r = {}, onRadiusChange: i, onStrengthChange:
5120
5138
  value: g
5121
5139
  })]
5122
5140
  })
5123
- }), /* @__PURE__ */ t(Br, {
5141
+ }), /* @__PURE__ */ t(Ur, {
5124
5142
  ...r.strengthHint ? { hint: r.strengthHint } : {},
5125
5143
  label: r.strength ?? "Brush strength",
5126
5144
  children: /* @__PURE__ */ n("div", {
@@ -5153,7 +5171,7 @@ function hi({ className: e, labels: r = {}, onRadiusChange: i, onStrengthChange:
5153
5171
  })]
5154
5172
  });
5155
5173
  }
5156
- function gi({ activeMaterialId: e, className: r, disabled: i = !1, label: a, materials: o, onMaterialChange: s, variant: c = "desktop", "data-testid": l }) {
5174
+ function yi({ activeMaterialId: e, className: r, disabled: i = !1, label: a, materials: o, onMaterialChange: s, variant: c = "desktop", "data-testid": l }) {
5157
5175
  return /* @__PURE__ */ t("section", {
5158
5176
  "aria-label": a,
5159
5177
  className: ["game-ui-material-swatches", r].filter(Boolean).join(" "),
@@ -5196,14 +5214,14 @@ function gi({ activeMaterialId: e, className: r, disabled: i = !1, label: a, mat
5196
5214
  })
5197
5215
  });
5198
5216
  }
5199
- function _i({ 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 }) {
5217
+ function bi({ 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 }) {
5200
5218
  return /* @__PURE__ */ t("section", {
5201
5219
  "aria-label": a,
5202
5220
  className: ["game-ui-undo-redo-actions", r].filter(Boolean).join(" "),
5203
5221
  "data-ui-hook": "undo-redo-actions",
5204
5222
  "data-variant": u,
5205
5223
  "data-testid": d,
5206
- children: /* @__PURE__ */ t(Xr, {
5224
+ children: /* @__PURE__ */ t($r, {
5207
5225
  actions: [{
5208
5226
  disabled: i || !n,
5209
5227
  icon: "undo",
@@ -5229,7 +5247,7 @@ function _i({ canRedo: e = !1, canUndo: n = !1, className: r, disabled: i = !1,
5229
5247
  })
5230
5248
  });
5231
5249
  }
5232
- function vi({ 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 }) {
5250
+ function xi({ 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 }) {
5233
5251
  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";
5234
5252
  return /* @__PURE__ */ t(X, {
5235
5253
  className: h,
@@ -5259,7 +5277,7 @@ function vi({ activeCategoryId: e, categories: r, className: i, density: a = "co
5259
5277
  type: "button",
5260
5278
  children: [
5261
5279
  /* @__PURE__ */ t($, {
5262
- icon: e.icon ?? si[e.id] ?? "home",
5280
+ icon: e.icon ?? ui[e.id] ?? "home",
5263
5281
  size: "sm",
5264
5282
  style: "line"
5265
5283
  }),
@@ -5268,7 +5286,7 @@ function vi({ activeCategoryId: e, categories: r, className: i, density: a = "co
5268
5286
  ]
5269
5287
  }, e.id);
5270
5288
  })
5271
- }), v.length === 0 || !_ ? /* @__PURE__ */ t(Gr, {
5289
+ }), v.length === 0 || !_ ? /* @__PURE__ */ t(Jr, {
5272
5290
  description: o,
5273
5291
  icon: "home",
5274
5292
  title: s
@@ -5306,7 +5324,7 @@ function vi({ activeCategoryId: e, categories: r, className: i, density: a = "co
5306
5324
  /* @__PURE__ */ n("span", {
5307
5325
  className: "game-ui-build-item-badges",
5308
5326
  children: [/* @__PURE__ */ t(Q, {
5309
- tone: ci[i],
5327
+ tone: di[i],
5310
5328
  children: i
5311
5329
  }), e.badges?.map((e) => /* @__PURE__ */ t(Q, {
5312
5330
  tone: e.tone ?? "neutral",
@@ -5324,7 +5342,7 @@ function vi({ activeCategoryId: e, categories: r, className: i, density: a = "co
5324
5342
  })
5325
5343
  });
5326
5344
  }
5327
- function yi({ 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 }) {
5345
+ function Si({ 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 }) {
5328
5346
  let g = ["game-ui-compact-game-drawer", r].filter(Boolean).join(" "), _ = u ?? `${d.toLowerCase().replace(/[^a-z0-9]+/g, "-") || "tools"}-drawer-panel`;
5329
5347
  return /* @__PURE__ */ n("aside", {
5330
5348
  "aria-label": s,
@@ -5359,7 +5377,7 @@ function yi({ children: e, className: r, closeIcon: i = "close", closeLabel: a =
5359
5377
  })]
5360
5378
  });
5361
5379
  }
5362
- function bi({ status: e }) {
5380
+ function Ci({ status: e }) {
5363
5381
  if (!e) return null;
5364
5382
  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;
5365
5383
  return /* @__PURE__ */ n("div", {
@@ -5372,7 +5390,7 @@ function bi({ status: e }) {
5372
5390
  children: e.label
5373
5391
  }),
5374
5392
  e.description ? /* @__PURE__ */ t("p", { children: e.description }) : null,
5375
- r ? /* @__PURE__ */ t(Wr, {
5393
+ r ? /* @__PURE__ */ t(qr, {
5376
5394
  label: e.progressLabel ?? e.label,
5377
5395
  max: a,
5378
5396
  showValue: !0,
@@ -5382,15 +5400,15 @@ function bi({ status: e }) {
5382
5400
  ]
5383
5401
  });
5384
5402
  }
5385
- function xi({ 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" }) {
5403
+ function wi({ 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" }) {
5386
5404
  return /* @__PURE__ */ n("div", {
5387
5405
  className: "game-ui-terrain-build-toolbox-body",
5388
5406
  "data-active-mode": i,
5389
5407
  "data-active-tool": a,
5390
5408
  "data-variant": E,
5391
5409
  children: [
5392
- /* @__PURE__ */ t(bi, { status: S }),
5393
- /* @__PURE__ */ t(pi, {
5410
+ /* @__PURE__ */ t(Ci, { status: S }),
5411
+ /* @__PURE__ */ t(gi, {
5394
5412
  activeModeId: i,
5395
5413
  disabled: l,
5396
5414
  label: "Tool mode",
@@ -5401,7 +5419,7 @@ function xi({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
5401
5419
  /* @__PURE__ */ n("div", {
5402
5420
  className: "game-ui-terrain-build-main-grid",
5403
5421
  children: [
5404
- /* @__PURE__ */ t(mi, {
5422
+ /* @__PURE__ */ t(_i, {
5405
5423
  activeToolId: a,
5406
5424
  compactLabelMode: C,
5407
5425
  density: c,
@@ -5411,7 +5429,7 @@ function xi({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
5411
5429
  tools: w,
5412
5430
  variant: E
5413
5431
  }),
5414
- /* @__PURE__ */ t(_i, {
5432
+ /* @__PURE__ */ t(bi, {
5415
5433
  canRedo: T?.canRedo,
5416
5434
  canUndo: T?.canUndo,
5417
5435
  disabled: l,
@@ -5422,7 +5440,7 @@ function xi({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
5422
5440
  undoLabel: T?.undoLabel,
5423
5441
  variant: E
5424
5442
  }),
5425
- /* @__PURE__ */ t(hi, {
5443
+ /* @__PURE__ */ t(vi, {
5426
5444
  onRadiusChange: f,
5427
5445
  onStrengthChange: p,
5428
5446
  state: {
@@ -5431,7 +5449,7 @@ function xi({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
5431
5449
  },
5432
5450
  variant: E
5433
5451
  }),
5434
- u.length > 0 ? /* @__PURE__ */ t(gi, {
5452
+ u.length > 0 ? /* @__PURE__ */ t(yi, {
5435
5453
  activeMaterialId: r,
5436
5454
  disabled: l,
5437
5455
  label: "Terrain materials",
@@ -5441,7 +5459,7 @@ function xi({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
5441
5459
  }) : null
5442
5460
  ]
5443
5461
  }),
5444
- s.length > 0 ? /* @__PURE__ */ t(vi, {
5462
+ s.length > 0 ? /* @__PURE__ */ t(xi, {
5445
5463
  activeCategoryId: e,
5446
5464
  categories: s,
5447
5465
  density: c,
@@ -5455,12 +5473,12 @@ function xi({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
5455
5473
  ]
5456
5474
  });
5457
5475
  }
5458
- function Si({ className: e, drawerOpen: n = !1, drawerTitle: r = "Terrain and build tools", label: i, onDrawerOpenChange: a, title: o, variant: s = "desktop", "data-testid": c, ...l }) {
5459
- let u = ["game-ui-terrain-build-toolbox", e].filter(Boolean).join(" "), d = /* @__PURE__ */ t(xi, {
5476
+ function Ti({ className: e, drawerOpen: n = !1, drawerTitle: r = "Terrain and build tools", label: i, onDrawerOpenChange: a, title: o, variant: s = "desktop", "data-testid": c, ...l }) {
5477
+ let u = ["game-ui-terrain-build-toolbox", e].filter(Boolean).join(" "), d = /* @__PURE__ */ t(wi, {
5460
5478
  ...l,
5461
5479
  variant: s
5462
5480
  });
5463
- return s === "mobile" || s === "small-mobile" ? /* @__PURE__ */ t(yi, {
5481
+ return s === "mobile" || s === "small-mobile" ? /* @__PURE__ */ t(Si, {
5464
5482
  className: u,
5465
5483
  label: i,
5466
5484
  onOpenChange: a,
@@ -5485,7 +5503,7 @@ function Si({ className: e, drawerOpen: n = !1, drawerTitle: r = "Terrain and bu
5485
5503
  }
5486
5504
  //#endregion
5487
5505
  //#region src/GameContractorTools.tsx
5488
- var Ci = {
5506
+ var Ei = {
5489
5507
  accepted: "success",
5490
5508
  blocked: "danger",
5491
5509
  cancelled: "neutral",
@@ -5494,7 +5512,7 @@ var Ci = {
5494
5512
  queued: "warning",
5495
5513
  readyForReview: "success",
5496
5514
  working: "ai"
5497
- }, wi = {
5515
+ }, Di = {
5498
5516
  accepted: "check",
5499
5517
  blocked: "alert",
5500
5518
  cancelled: "close",
@@ -5503,26 +5521,26 @@ var Ci = {
5503
5521
  queued: "hourglass",
5504
5522
  readyForReview: "vote",
5505
5523
  working: "energy"
5506
- }, Ti = {
5524
+ }, Oi = {
5507
5525
  active: "ai",
5508
5526
  blocked: "danger",
5509
5527
  complete: "success",
5510
5528
  pending: "neutral"
5511
- }, Ei = {
5529
+ }, ki = {
5512
5530
  blocked: "danger",
5513
5531
  done: "success",
5514
5532
  idle: "neutral",
5515
5533
  queued: "warning",
5516
5534
  working: "ai"
5517
- }, Di = {
5535
+ }, Ai = {
5518
5536
  "local-only": "Local only",
5519
5537
  mock: "Mock run",
5520
5538
  "paid-disabled": "Paid provider off"
5521
- }, Oi = {
5539
+ }, ji = {
5522
5540
  "local-only": "success",
5523
5541
  mock: "ai",
5524
5542
  "paid-disabled": "warning"
5525
- }, ki = {
5543
+ }, Mi = {
5526
5544
  accepted: [{
5527
5545
  id: "revert",
5528
5546
  label: "Revert",
@@ -5628,17 +5646,17 @@ var Ci = {
5628
5646
  tone: "danger"
5629
5647
  }]
5630
5648
  };
5631
- function Ai(e, t) {
5649
+ function Ni(e, t) {
5632
5650
  if (t) return t;
5633
5651
  switch (e) {
5634
5652
  case "readyForReview": return "Ready for review";
5635
5653
  default: return e.replace(/([A-Z])/g, " $1").replace(/^./, (e) => e.toUpperCase());
5636
5654
  }
5637
5655
  }
5638
- function ji(e) {
5656
+ function Pi(e) {
5639
5657
  return e === "blocked" || e === "cancelled" ? "danger" : e === "accepted" || e === "readyForReview" ? "success" : e === "queued" || e === "draft" || e === "preview" ? "warning" : "accent";
5640
5658
  }
5641
- function Mi(e) {
5659
+ function Fi(e) {
5642
5660
  switch (e) {
5643
5661
  case "accepted": return 100;
5644
5662
  case "blocked": return 42;
@@ -5650,7 +5668,7 @@ function Mi(e) {
5650
5668
  case "working": return 64;
5651
5669
  }
5652
5670
  }
5653
- function Ni(e, t, n) {
5671
+ function Ii(e, t, n) {
5654
5672
  let r = {
5655
5673
  disabled: !!(n || e.disabled),
5656
5674
  id: e.id,
@@ -5659,14 +5677,14 @@ function Ni(e, t, n) {
5659
5677
  };
5660
5678
  return e.icon && (r.icon = e.icon), e.ariaLabel && (r.ariaLabel = e.ariaLabel), e.meta && (r.meta = e.meta), t && (r.onAction = t), r;
5661
5679
  }
5662
- function Pi(e) {
5680
+ function Li(e) {
5663
5681
  return e === "danger" || e === "warning" ? "alert" : "status";
5664
5682
  }
5665
- function Fi(e) {
5683
+ function Ri(e) {
5666
5684
  return !!(e.before && e.after);
5667
5685
  }
5668
- function Ii({ 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 }) {
5669
- let m = ["game-ui-construction-progress", e].filter(Boolean).join(" "), h = d ?? Mi(s), g = Ai(s, c);
5686
+ function zi({ 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 }) {
5687
+ let m = ["game-ui-construction-progress", e].filter(Boolean).join(" "), h = d ?? Fi(s), g = Ni(s, c);
5670
5688
  return /* @__PURE__ */ n("section", {
5671
5689
  "aria-label": r,
5672
5690
  className: m,
@@ -5678,18 +5696,18 @@ function Ii({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
5678
5696
  /* @__PURE__ */ n("header", {
5679
5697
  className: "game-ui-construction-progress-header",
5680
5698
  children: [/* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t($, {
5681
- icon: wi[s],
5699
+ icon: Di[s],
5682
5700
  size: "sm"
5683
5701
  }), /* @__PURE__ */ t("strong", { children: a })] }), o ? /* @__PURE__ */ t(Q, {
5684
- tone: Ci[s],
5702
+ tone: Ei[s],
5685
5703
  children: g
5686
5704
  }) : null]
5687
5705
  }),
5688
- /* @__PURE__ */ t(Wr, {
5706
+ /* @__PURE__ */ t(qr, {
5689
5707
  label: a,
5690
5708
  max: i,
5691
5709
  showValue: !0,
5692
- tone: ji(s),
5710
+ tone: Pi(s),
5693
5711
  value: h
5694
5712
  }),
5695
5713
  l.length > 0 ? /* @__PURE__ */ t("ol", {
@@ -5704,7 +5722,7 @@ function Ii({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
5704
5722
  }),
5705
5723
  /* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t("strong", { children: e.label }), e.caption ? /* @__PURE__ */ t("small", { children: e.caption }) : null] }),
5706
5724
  /* @__PURE__ */ t(Q, {
5707
- tone: Ti[e.status],
5725
+ tone: Oi[e.status],
5708
5726
  children: e.status
5709
5727
  })
5710
5728
  ]
@@ -5716,7 +5734,7 @@ function Ii({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
5716
5734
  children: u.map((e) => /* @__PURE__ */ n("div", {
5717
5735
  className: "game-ui-construction-warning",
5718
5736
  "data-warning-tone": e.tone ?? "warning",
5719
- role: Pi(e.tone),
5737
+ role: Li(e.tone),
5720
5738
  children: [/* @__PURE__ */ t($, {
5721
5739
  icon: e.tone === "danger" || e.tone === "warning" ? "alert" : "check",
5722
5740
  size: "sm"
@@ -5726,8 +5744,8 @@ function Ii({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
5726
5744
  ]
5727
5745
  });
5728
5746
  }
5729
- function Li({ 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 }) {
5730
- let p = ["game-ui-construction-approval-bar", r].filter(Boolean).join(" "), m = e ?? ki[l], h = u.filter((e) => e.tone !== "success").length, g = m.map((e) => Ni(e, s, i));
5747
+ function Bi({ 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 }) {
5748
+ let p = ["game-ui-construction-approval-bar", r].filter(Boolean).join(" "), m = e ?? Mi[l], h = u.filter((e) => e.tone !== "success").length, g = m.map((e) => Ii(e, s, i));
5731
5749
  return /* @__PURE__ */ n("section", {
5732
5750
  "aria-label": a,
5733
5751
  className: p,
@@ -5738,8 +5756,8 @@ function Li({ actions: e, className: r, disabled: i = !1, label: a, localOnlyLab
5738
5756
  children: [/* @__PURE__ */ n("div", {
5739
5757
  className: "game-ui-construction-approval-meta",
5740
5758
  children: [c ? /* @__PURE__ */ t(Q, {
5741
- tone: Oi[c],
5742
- children: Di[c]
5759
+ tone: ji[c],
5760
+ children: Ai[c]
5743
5761
  }) : /* @__PURE__ */ t(Q, {
5744
5762
  tone: "success",
5745
5763
  children: o
@@ -5754,21 +5772,21 @@ function Li({ actions: e, className: r, disabled: i = !1, label: a, localOnlyLab
5754
5772
  tone: "success",
5755
5773
  children: "Validation clear"
5756
5774
  })]
5757
- }), g.length > 0 ? /* @__PURE__ */ t(Xr, {
5775
+ }), g.length > 0 ? /* @__PURE__ */ t($r, {
5758
5776
  actions: g,
5759
5777
  density: d === "small-mobile" ? "dense" : "comfortable",
5760
5778
  label: `${a} actions`
5761
5779
  }) : null]
5762
5780
  });
5763
5781
  }
5764
- function Ri({ 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 }) {
5782
+ function Vi({ 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 }) {
5765
5783
  return /* @__PURE__ */ n("section", {
5766
5784
  "aria-label": o,
5767
5785
  className: ["game-ui-robot-crew-status", e].filter(Boolean).join(" "),
5768
5786
  "data-ui-hook": "robot-crew-status",
5769
5787
  "data-variant": c,
5770
5788
  "data-testid": l,
5771
- children: [s ? /* @__PURE__ */ t("header", { children: /* @__PURE__ */ t("strong", { children: s }) }) : null, r.length === 0 ? /* @__PURE__ */ t(Gr, {
5789
+ children: [s ? /* @__PURE__ */ t("header", { children: /* @__PURE__ */ t("strong", { children: s }) }) : null, r.length === 0 ? /* @__PURE__ */ t(Jr, {
5772
5790
  description: i,
5773
5791
  icon: "ai",
5774
5792
  title: a
@@ -5791,7 +5809,7 @@ function Ri({ className: e, crew: r, emptyDescription: i = "Robot crew members a
5791
5809
  ]
5792
5810
  }),
5793
5811
  /* @__PURE__ */ t(Q, {
5794
- tone: Ei[e.status],
5812
+ tone: ki[e.status],
5795
5813
  children: e.status
5796
5814
  })
5797
5815
  ]
@@ -5799,7 +5817,7 @@ function Ri({ className: e, crew: r, emptyDescription: i = "Robot crew members a
5799
5817
  })]
5800
5818
  });
5801
5819
  }
5802
- function zi({ activeView: e, after: r, before: i, className: a, label: o, onViewChange: s, variant: c = "desktop", "data-testid": l }) {
5820
+ function Hi({ activeView: e, after: r, before: i, className: a, label: o, onViewChange: s, variant: c = "desktop", "data-testid": l }) {
5803
5821
  let u = ["game-ui-before-after-toggle", a].filter(Boolean).join(" "), d = e === "before" ? i : r;
5804
5822
  return /* @__PURE__ */ n("section", {
5805
5823
  "aria-label": o,
@@ -5808,7 +5826,7 @@ function zi({ activeView: e, after: r, before: i, className: a, label: o, onView
5808
5826
  "data-ui-hook": "before-after-toggle",
5809
5827
  "data-variant": c,
5810
5828
  "data-testid": l,
5811
- children: [/* @__PURE__ */ t(Qn, {
5829
+ children: [/* @__PURE__ */ t(tr, {
5812
5830
  activeId: e,
5813
5831
  label: `${o} view`,
5814
5832
  ...s ? { onSelect: (e) => s(e) } : {},
@@ -5835,8 +5853,8 @@ function zi({ activeView: e, after: r, before: i, className: a, label: o, onView
5835
5853
  })]
5836
5854
  });
5837
5855
  }
5838
- function Bi({ 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 }) {
5839
- let f = ["game-ui-construction-job-card", e].filter(Boolean).join(" "), p = Ai(i.status, i.statusLabel), m = u === "mobile" || u === "small-mobile", h = i.facts ?? [];
5856
+ function Ui({ 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 }) {
5857
+ let f = ["game-ui-construction-job-card", e].filter(Boolean).join(" "), p = Ni(i.status, i.statusLabel), m = u === "mobile" || u === "small-mobile", h = i.facts ?? [];
5840
5858
  return /* @__PURE__ */ n("article", {
5841
5859
  className: f,
5842
5860
  "data-density": r,
@@ -5856,19 +5874,19 @@ function Bi({ className: e, density: r = "comfortable", job: i, onAction: a, onS
5856
5874
  onClick: () => o?.(i.id),
5857
5875
  type: "button",
5858
5876
  children: [/* @__PURE__ */ t($, {
5859
- icon: wi[i.status],
5877
+ icon: Di[i.status],
5860
5878
  size: m ? "sm" : "md"
5861
5879
  }), /* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t("strong", { children: i.title }), i.description ? /* @__PURE__ */ t("small", { children: i.description }) : null] })]
5862
5880
  }), /* @__PURE__ */ n("span", {
5863
5881
  className: "game-ui-construction-job-badges",
5864
5882
  children: [
5865
5883
  /* @__PURE__ */ t(Q, {
5866
- tone: Ci[i.status],
5884
+ tone: Ei[i.status],
5867
5885
  children: p
5868
5886
  }),
5869
5887
  i.providerMode ? /* @__PURE__ */ t(Q, {
5870
- tone: Oi[i.providerMode],
5871
- children: Di[i.providerMode]
5888
+ tone: ji[i.providerMode],
5889
+ children: Ai[i.providerMode]
5872
5890
  }) : null,
5873
5891
  i.badges?.map((e) => /* @__PURE__ */ t(Q, {
5874
5892
  tone: e.tone ?? "neutral",
@@ -5886,7 +5904,7 @@ function Bi({ className: e, density: r = "comfortable", job: i, onAction: a, onS
5886
5904
  h.map((e) => /* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t("small", { children: e.label }), /* @__PURE__ */ t("b", { children: e.value })] }, e.id))
5887
5905
  ]
5888
5906
  }),
5889
- /* @__PURE__ */ t(Ii, {
5907
+ /* @__PURE__ */ t(zi, {
5890
5908
  label: `${i.title} progress`,
5891
5909
  progressLabel: i.progressLabel,
5892
5910
  status: i.status,
@@ -5897,19 +5915,19 @@ function Bi({ className: e, density: r = "comfortable", job: i, onAction: a, onS
5897
5915
  max: i.progressMax,
5898
5916
  variant: u
5899
5917
  }),
5900
- l && Fi(i) ? /* @__PURE__ */ t(zi, {
5918
+ l && Ri(i) ? /* @__PURE__ */ t(Hi, {
5901
5919
  activeView: "after",
5902
5920
  after: i.after,
5903
5921
  before: i.before,
5904
5922
  label: `${i.title} preview`,
5905
5923
  variant: u
5906
5924
  }) : null,
5907
- i.crew && i.crew.length > 0 ? /* @__PURE__ */ t(Ri, {
5925
+ i.crew && i.crew.length > 0 ? /* @__PURE__ */ t(Vi, {
5908
5926
  crew: i.crew,
5909
5927
  label: `${i.title} robot crew`,
5910
5928
  variant: u
5911
5929
  }) : null,
5912
- c ? /* @__PURE__ */ t(Li, {
5930
+ c ? /* @__PURE__ */ t(Bi, {
5913
5931
  actions: i.actions,
5914
5932
  label: `${i.title} approval`,
5915
5933
  onAction: (e) => a?.(e, i.id),
@@ -5921,8 +5939,8 @@ function Bi({ className: e, density: r = "comfortable", job: i, onAction: a, onS
5921
5939
  ]
5922
5940
  });
5923
5941
  }
5924
- function Vi({ 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 }) {
5925
- return /* @__PURE__ */ t(yi, {
5942
+ function Wi({ 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 }) {
5943
+ return /* @__PURE__ */ t(Si, {
5926
5944
  className: ["game-ui-compact-job-drawer", n].filter(Boolean).join(" "),
5927
5945
  closeLabel: r,
5928
5946
  disabled: i,
@@ -5938,7 +5956,7 @@ function Vi({ children: e, className: n, closeLabel: r = "Close jobs", disabled:
5938
5956
  children: e ?? /* @__PURE__ */ t("div", {
5939
5957
  className: "game-ui-compact-job-drawer-list",
5940
5958
  tabIndex: 0,
5941
- children: a.map((e) => /* @__PURE__ */ t(Bi, {
5959
+ children: a.map((e) => /* @__PURE__ */ t(Ui, {
5942
5960
  density: "dense",
5943
5961
  job: e,
5944
5962
  onAction: s,
@@ -5950,7 +5968,7 @@ function Vi({ children: e, className: n, closeLabel: r = "Close jobs", disabled:
5950
5968
  })
5951
5969
  });
5952
5970
  }
5953
- function Hi({ 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 }) {
5971
+ function Gi({ 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 }) {
5954
5972
  let y = ["game-ui-contractor-panel", r].filter(Boolean).join(" "), b = c.find((e) => e.id === m) ?? c[0];
5955
5973
  return _ === "mobile" || _ === "small-mobile" ? /* @__PURE__ */ n("section", {
5956
5974
  "aria-label": l,
@@ -5959,7 +5977,7 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
5959
5977
  "data-variant": _,
5960
5978
  "data-testid": v,
5961
5979
  children: [
5962
- /* @__PURE__ */ t(Vi, {
5980
+ /* @__PURE__ */ t(Wi, {
5963
5981
  jobs: c,
5964
5982
  label: `${l} drawer`,
5965
5983
  onAction: u,
@@ -5971,16 +5989,16 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
5971
5989
  triggerLabel: "Contractor",
5972
5990
  variant: _
5973
5991
  }),
5974
- b && !a ? /* @__PURE__ */ t(Bi, {
5992
+ b && !a ? /* @__PURE__ */ t(Ui, {
5975
5993
  density: "dense",
5976
5994
  job: b,
5977
5995
  onAction: u,
5978
5996
  onSelect: p,
5979
5997
  selected: !0,
5980
- showBeforeAfter: Fi(b),
5998
+ showBeforeAfter: Ri(b),
5981
5999
  variant: _
5982
6000
  }) : null,
5983
- b ? null : /* @__PURE__ */ t(Gr, {
6001
+ b ? null : /* @__PURE__ */ t(Jr, {
5984
6002
  description: o,
5985
6003
  icon: "energy",
5986
6004
  title: s
@@ -6001,7 +6019,7 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
6001
6019
  className: "game-ui-contractor-panel-subtitle",
6002
6020
  children: h
6003
6021
  }) : null,
6004
- c.length === 0 ? /* @__PURE__ */ t(Gr, {
6022
+ c.length === 0 ? /* @__PURE__ */ t(Jr, {
6005
6023
  description: o,
6006
6024
  icon: "energy",
6007
6025
  title: s
@@ -6012,7 +6030,7 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
6012
6030
  "aria-label": "Construction job queue",
6013
6031
  className: "game-ui-contractor-job-list",
6014
6032
  tabIndex: 0,
6015
- children: c.map((e) => /* @__PURE__ */ t(Bi, {
6033
+ children: c.map((e) => /* @__PURE__ */ t(Ui, {
6016
6034
  density: i,
6017
6035
  job: e,
6018
6036
  onAction: u,
@@ -6025,7 +6043,7 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
6025
6043
  className: "game-ui-contractor-detail",
6026
6044
  "aria-label": `${b.title} detail`,
6027
6045
  children: [
6028
- /* @__PURE__ */ t(Ii, {
6046
+ /* @__PURE__ */ t(zi, {
6029
6047
  label: `${b.title} progress detail`,
6030
6048
  progressLabel: b.progressLabel,
6031
6049
  status: b.status,
@@ -6036,7 +6054,7 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
6036
6054
  max: b.progressMax,
6037
6055
  variant: _
6038
6056
  }),
6039
- Fi(b) ? /* @__PURE__ */ t(zi, {
6057
+ Ri(b) ? /* @__PURE__ */ t(Hi, {
6040
6058
  activeView: e,
6041
6059
  after: b.after,
6042
6060
  before: b.before,
@@ -6044,13 +6062,13 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
6044
6062
  onViewChange: f,
6045
6063
  variant: _
6046
6064
  }) : null,
6047
- /* @__PURE__ */ t(Ri, {
6065
+ /* @__PURE__ */ t(Vi, {
6048
6066
  crew: b.crew ?? [],
6049
6067
  label: `${b.title} robot crew`,
6050
6068
  title: "Robot crew",
6051
6069
  variant: _
6052
6070
  }),
6053
- /* @__PURE__ */ t(Li, {
6071
+ /* @__PURE__ */ t(Bi, {
6054
6072
  actions: b.actions,
6055
6073
  label: `${b.title} approval`,
6056
6074
  onAction: u ? (e) => u(e, b.id) : void 0,
@@ -6068,16 +6086,16 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
6068
6086
  }
6069
6087
  //#endregion
6070
6088
  //#region src/GamePanelSystem.tsx
6071
- function Ui(...e) {
6089
+ function Ki(...e) {
6072
6090
  return e.filter(Boolean).join(" ");
6073
6091
  }
6074
- var Wi = {
6092
+ var qi = {
6075
6093
  collapse: "Collapse",
6076
6094
  expand: "Expand"
6077
6095
  };
6078
- function Gi({ actions: e, children: r, className: i, defaultOpen: a = !0, labels: o, onOpenChange: s, open: c, title: l, tone: d = "default", ...f }) {
6096
+ function Ji({ actions: e, children: r, className: i, defaultOpen: a = !0, labels: o, onOpenChange: s, open: c, title: l, tone: d = "default", ...f }) {
6079
6097
  let p = u(), [h, g] = m(a), _ = c ?? h, v = {
6080
- ...Wi,
6098
+ ...qi,
6081
6099
  ...o
6082
6100
  }, y = () => {
6083
6101
  let e = !_;
@@ -6085,7 +6103,7 @@ function Gi({ actions: e, children: r, className: i, defaultOpen: a = !0, labels
6085
6103
  };
6086
6104
  return /* @__PURE__ */ n("section", {
6087
6105
  ...f,
6088
- className: Ui("game-ui-collapsible", i),
6106
+ className: Ki("game-ui-collapsible", i),
6089
6107
  "data-open": _,
6090
6108
  "data-panel-tone": d,
6091
6109
  children: [/* @__PURE__ */ n("header", {
@@ -6124,13 +6142,13 @@ function Gi({ actions: e, children: r, className: i, defaultOpen: a = !0, labels
6124
6142
  })]
6125
6143
  });
6126
6144
  }
6127
- var Ki = {
6145
+ var Yi = {
6128
6146
  close: "Close",
6129
6147
  maximize: "Maximize",
6130
6148
  minimize: "Minimize",
6131
6149
  restore: "Restore"
6132
6150
  };
6133
- function qi({ kind: e }) {
6151
+ function Xi({ kind: e }) {
6134
6152
  return /* @__PURE__ */ t("svg", {
6135
6153
  "aria-hidden": "true",
6136
6154
  fill: "none",
@@ -6150,9 +6168,9 @@ function qi({ kind: e }) {
6150
6168
  })
6151
6169
  });
6152
6170
  }
6153
- function Ji({ 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 }) {
6171
+ function Zi({ 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 }) {
6154
6172
  let [g, _] = m(o), v = f ?? g, y = {
6155
- ...Ki,
6173
+ ...Yi,
6156
6174
  ...l
6157
6175
  }, b = (e) => {
6158
6176
  f === void 0 && _(e), d?.(e);
@@ -6160,7 +6178,7 @@ function Ji({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, classNa
6160
6178
  return /* @__PURE__ */ n("section", {
6161
6179
  ...h,
6162
6180
  "aria-label": p,
6163
- className: Ui("game-ui-window", a),
6181
+ className: Ki("game-ui-window", a),
6164
6182
  "data-window-state": v,
6165
6183
  role: "group",
6166
6184
  children: [/* @__PURE__ */ n("header", {
@@ -6183,21 +6201,21 @@ function Ji({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, classNa
6183
6201
  className: "game-ui-icon-button game-ui-window-button",
6184
6202
  onClick: () => b(x ? "normal" : "minimized"),
6185
6203
  type: "button",
6186
- children: /* @__PURE__ */ t(qi, { kind: x ? "restore" : "minimize" })
6204
+ children: /* @__PURE__ */ t(Xi, { kind: x ? "restore" : "minimize" })
6187
6205
  }) : null,
6188
6206
  e ? /* @__PURE__ */ t("button", {
6189
6207
  "aria-label": S ? y.restore : y.maximize,
6190
6208
  className: "game-ui-icon-button game-ui-window-button",
6191
6209
  onClick: () => b(S ? "normal" : "maximized"),
6192
6210
  type: "button",
6193
- children: /* @__PURE__ */ t(qi, { kind: S ? "restore" : "maximize" })
6211
+ children: /* @__PURE__ */ t(Xi, { kind: S ? "restore" : "maximize" })
6194
6212
  }) : null,
6195
6213
  u ? /* @__PURE__ */ t("button", {
6196
6214
  "aria-label": y.close,
6197
6215
  className: "game-ui-icon-button game-ui-window-button",
6198
6216
  onClick: u,
6199
6217
  type: "button",
6200
- children: /* @__PURE__ */ t(qi, { kind: "close" })
6218
+ children: /* @__PURE__ */ t(Xi, { kind: "close" })
6201
6219
  }) : null
6202
6220
  ]
6203
6221
  })
@@ -6217,14 +6235,14 @@ function Ji({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, classNa
6217
6235
  })]
6218
6236
  });
6219
6237
  }
6220
- function Yi({ children: e, className: r, closeLabel: i = "Close", closeOnBackdrop: a = !0, footer: o, onClose: s, open: c, position: d = "center", size: f = "md", title: m }) {
6238
+ function Qi({ children: e, className: r, closeLabel: i = "Close", closeOnBackdrop: a = !0, footer: o, onClose: s, open: c, position: d = "center", size: f = "md", title: m }) {
6221
6239
  let h = p(null), g = u();
6222
6240
  return l(() => {
6223
6241
  let e = h.current;
6224
6242
  e && (c && !e.open && e.showModal(), !c && e.open && e.close());
6225
6243
  }, [c]), /* @__PURE__ */ t("dialog", {
6226
6244
  "aria-labelledby": g,
6227
- className: Ui("game-ui-modal", r),
6245
+ className: Ki("game-ui-modal", r),
6228
6246
  "data-position": d,
6229
6247
  "data-size": f,
6230
6248
  onCancel: (e) => {
@@ -6248,7 +6266,7 @@ function Yi({ children: e, className: r, closeLabel: i = "Close", closeOnBackdro
6248
6266
  className: "game-ui-icon-button game-ui-window-button",
6249
6267
  onClick: s,
6250
6268
  type: "button",
6251
- children: /* @__PURE__ */ t(qi, { kind: "close" })
6269
+ children: /* @__PURE__ */ t(Xi, { kind: "close" })
6252
6270
  })]
6253
6271
  }),
6254
6272
  /* @__PURE__ */ t("div", {
@@ -6265,7 +6283,7 @@ function Yi({ children: e, className: r, closeLabel: i = "Close", closeOnBackdro
6265
6283
  }
6266
6284
  //#endregion
6267
6285
  //#region src/previewStates.ts
6268
- var Xi = [
6286
+ var $i = [
6269
6287
  {
6270
6288
  id: "history-human-long",
6271
6289
  kind: "human",
@@ -6287,23 +6305,23 @@ var Xi = [
6287
6305
  speaker: "Table",
6288
6306
  text: "Three votes are locked. One more read can still change the pact."
6289
6307
  }
6290
- ], Zi = {
6308
+ ], ea = {
6309
+ ...B,
6291
6310
  ...V,
6292
- ..._e,
6293
6311
  ...ve,
6294
6312
  ...H,
6295
6313
  ...U,
6296
6314
  ...W,
6297
6315
  ...ye,
6298
6316
  ...xe,
6299
- ...z
6300
- }, Qi = {
6317
+ ...R
6318
+ }, ta = {
6301
6319
  toneAttr: "data-game-ui-tone",
6302
6320
  toneGlass: "glass",
6303
6321
  densityAttr: "data-game-ui-density",
6304
6322
  densityCompact: "compact",
6305
6323
  scopeClass: "game-ui-overlay-scope"
6306
- }, $i = be, ea = /* @__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("."), ta = {
6324
+ }, na = be, ra = /* @__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("."), ia = {
6307
6325
  en: {
6308
6326
  triggerLabel: "EN",
6309
6327
  langMenuLabel: "Preview language",
@@ -6505,7 +6523,7 @@ var Xi = [
6505
6523
  hint: "Rotate manually if this browser blocks automatic landscape lock."
6506
6524
  },
6507
6525
  historyLabel: "Round history",
6508
- history: Xi
6526
+ history: $i
6509
6527
  },
6510
6528
  "zh-CN": {
6511
6529
  triggerLabel: "中",
@@ -6732,18 +6750,18 @@ var Xi = [
6732
6750
  }
6733
6751
  ]
6734
6752
  }
6735
- }, na = i(ta.en), ra = () => c(na), ia = [
6753
+ }, aa = i(ia.en), oa = () => c(aa), sa = [
6736
6754
  {
6737
6755
  id: "colors",
6738
- tokens: L
6756
+ tokens: I
6739
6757
  },
6740
6758
  {
6741
6759
  id: "semantic",
6742
- tokens: V
6760
+ tokens: B
6743
6761
  },
6744
6762
  {
6745
6763
  id: "typography",
6746
- tokens: _e
6764
+ tokens: V
6747
6765
  },
6748
6766
  {
6749
6767
  id: "spacing",
@@ -6763,15 +6781,15 @@ var Xi = [
6763
6781
  },
6764
6782
  {
6765
6783
  id: "overlayGlass",
6766
- tokens: B
6784
+ tokens: z
6767
6785
  },
6768
6786
  {
6769
6787
  id: "liquidMetal",
6770
- tokens: R
6788
+ tokens: L
6771
6789
  },
6772
6790
  {
6773
6791
  id: "liquidGooey",
6774
- tokens: z
6792
+ tokens: R
6775
6793
  },
6776
6794
  {
6777
6795
  id: "layers",
@@ -6786,7 +6804,7 @@ var Xi = [
6786
6804
  tokens: xe
6787
6805
  }
6788
6806
  ];
6789
- function aa({ id: e, label: r, tokens: i }) {
6807
+ function ca({ id: e, label: r, tokens: i }) {
6790
6808
  return /* @__PURE__ */ n("article", {
6791
6809
  className: "game-ui-token-card",
6792
6810
  children: [/* @__PURE__ */ t("h3", { children: r }), /* @__PURE__ */ t("div", {
@@ -6798,18 +6816,18 @@ function aa({ id: e, label: r, tokens: i }) {
6798
6816
  })]
6799
6817
  });
6800
6818
  }
6801
- function oa() {
6819
+ function la() {
6802
6820
  return /* @__PURE__ */ t("div", {
6803
6821
  "aria-label": "Clay color swatches",
6804
6822
  className: "game-ui-swatch-grid",
6805
- children: Object.entries(L).map(([e, r]) => /* @__PURE__ */ n("figure", {
6823
+ children: Object.entries(I).map(([e, r]) => /* @__PURE__ */ n("figure", {
6806
6824
  className: "game-ui-swatch",
6807
6825
  children: [/* @__PURE__ */ t("span", { style: { background: r } }), /* @__PURE__ */ n("figcaption", { children: [/* @__PURE__ */ t("strong", { children: e }), /* @__PURE__ */ t("code", { children: r })] })]
6808
6826
  }, e))
6809
6827
  });
6810
6828
  }
6811
- function sa() {
6812
- let { type: e } = ra();
6829
+ function ua() {
6830
+ let { type: e } = oa();
6813
6831
  return /* @__PURE__ */ n("div", {
6814
6832
  className: "game-ui-type-scale",
6815
6833
  children: [
@@ -6824,8 +6842,8 @@ function sa() {
6824
6842
  ]
6825
6843
  });
6826
6844
  }
6827
- function ca() {
6828
- let { buttons: e } = ra();
6845
+ function da() {
6846
+ let { buttons: e } = oa();
6829
6847
  return /* @__PURE__ */ n(X, {
6830
6848
  title: e.panelTitle,
6831
6849
  tone: "strong",
@@ -6863,9 +6881,9 @@ function ca() {
6863
6881
  /* @__PURE__ */ n("div", {
6864
6882
  className: "game-ui-component-row",
6865
6883
  children: [
6866
- /* @__PURE__ */ t(Yn, {
6884
+ /* @__PURE__ */ t(Qn, {
6867
6885
  label: e.settingsTip,
6868
- children: /* @__PURE__ */ t(Jn, {
6886
+ children: /* @__PURE__ */ t(Zn, {
6869
6887
  label: e.settingsTip,
6870
6888
  children: /* @__PURE__ */ t($, {
6871
6889
  icon: "settings",
@@ -6873,7 +6891,7 @@ function ca() {
6873
6891
  })
6874
6892
  })
6875
6893
  }),
6876
- /* @__PURE__ */ t(Jn, {
6894
+ /* @__PURE__ */ t(Zn, {
6877
6895
  label: e.copyInvite,
6878
6896
  children: /* @__PURE__ */ t($, {
6879
6897
  icon: "copy",
@@ -6894,7 +6912,7 @@ function ca() {
6894
6912
  })
6895
6913
  ]
6896
6914
  }),
6897
- /* @__PURE__ */ t(Qn, {
6915
+ /* @__PURE__ */ t(tr, {
6898
6916
  activeId: "live",
6899
6917
  label: e.segmentedLabel,
6900
6918
  options: [
@@ -6912,7 +6930,7 @@ function ca() {
6912
6930
  }
6913
6931
  ]
6914
6932
  }),
6915
- /* @__PURE__ */ t(Xn, {
6933
+ /* @__PURE__ */ t($n, {
6916
6934
  activeId: "portal",
6917
6935
  tabs: [
6918
6936
  {
@@ -6929,7 +6947,7 @@ function ca() {
6929
6947
  }
6930
6948
  ]
6931
6949
  }),
6932
- /* @__PURE__ */ t(tr, {
6950
+ /* @__PURE__ */ t(ir, {
6933
6951
  items: [
6934
6952
  {
6935
6953
  id: "wave",
@@ -6946,28 +6964,28 @@ function ca() {
6946
6964
  ],
6947
6965
  label: e.radialLabel
6948
6966
  }),
6949
- /* @__PURE__ */ t($n, {
6967
+ /* @__PURE__ */ t(nr, {
6950
6968
  label: e.sliderLabel,
6951
6969
  max: 100,
6952
6970
  min: 0,
6953
6971
  value: 68
6954
6972
  }),
6955
- /* @__PURE__ */ t(er, {
6973
+ /* @__PURE__ */ t(rr, {
6956
6974
  checked: !0,
6957
6975
  label: e.toggleLabel
6958
6976
  })
6959
6977
  ]
6960
6978
  });
6961
6979
  }
6962
- function la() {
6963
- let { hud: e, tiles: r } = ra();
6980
+ function fa() {
6981
+ let { hud: e, tiles: r } = oa();
6964
6982
  return /* @__PURE__ */ n("div", {
6965
6983
  className: "game-ui-stage-demo",
6966
6984
  children: [/* @__PURE__ */ n("div", {
6967
6985
  "aria-label": "Clay world HUD preview",
6968
6986
  className: "game-ui-stage-world",
6969
6987
  children: [
6970
- /* @__PURE__ */ t(Dr, {
6988
+ /* @__PURE__ */ t(Ar, {
6971
6989
  label: e.label,
6972
6990
  items: [
6973
6991
  {
@@ -6990,15 +7008,15 @@ function la() {
6990
7008
  value: "02:46"
6991
7009
  }
6992
7010
  ],
6993
- actions: /* @__PURE__ */ n(qn, {
7011
+ actions: /* @__PURE__ */ n(Xn, {
6994
7012
  label: e.tools,
6995
- children: [/* @__PURE__ */ t(Jn, {
7013
+ children: [/* @__PURE__ */ t(Zn, {
6996
7014
  label: e.history,
6997
7015
  children: /* @__PURE__ */ t($, {
6998
7016
  icon: "scroll",
6999
7017
  size: "sm"
7000
7018
  })
7001
- }), /* @__PURE__ */ t(Jn, {
7019
+ }), /* @__PURE__ */ t(Zn, {
7002
7020
  label: e.settings,
7003
7021
  children: /* @__PURE__ */ t($, {
7004
7022
  icon: "settings",
@@ -7038,7 +7056,7 @@ function la() {
7038
7056
  }), /* @__PURE__ */ n("div", {
7039
7057
  className: "game-ui-stage-sidecar",
7040
7058
  children: [
7041
- /* @__PURE__ */ t(kr, {
7059
+ /* @__PURE__ */ t(Mr, {
7042
7060
  badge: r.daily.badge,
7043
7061
  icon: "scroll",
7044
7062
  kicker: r.daily.kicker,
@@ -7047,7 +7065,7 @@ function la() {
7047
7065
  title: r.daily.title,
7048
7066
  tone: "daily"
7049
7067
  }),
7050
- /* @__PURE__ */ t(kr, {
7068
+ /* @__PURE__ */ t(Mr, {
7051
7069
  badge: r.portal.badge,
7052
7070
  icon: "portal",
7053
7071
  kicker: r.portal.kicker,
@@ -7055,7 +7073,7 @@ function la() {
7055
7073
  title: r.portal.title,
7056
7074
  tone: "portal"
7057
7075
  }),
7058
- /* @__PURE__ */ t(kr, {
7076
+ /* @__PURE__ */ t(Mr, {
7059
7077
  icon: "energy",
7060
7078
  kicker: r.host.kicker,
7061
7079
  summary: r.host.summary,
@@ -7066,21 +7084,21 @@ function la() {
7066
7084
  })]
7067
7085
  });
7068
7086
  }
7069
- function ua() {
7070
- let { hud: e, buttons: r } = ra(), i = (i) => {
7087
+ function pa() {
7088
+ let { hud: e, buttons: r } = oa(), i = (i) => {
7071
7089
  let a = i === "glass";
7072
7090
  return /* @__PURE__ */ n("div", {
7073
7091
  "aria-label": a ? "Overlay glass HUD" : "Default clay HUD",
7074
7092
  className: [
7075
7093
  "game-ui-stage-world",
7076
7094
  "game-ui-overlay-glass-proof",
7077
- a ? Qi.scopeClass : void 0
7095
+ a ? ta.scopeClass : void 0
7078
7096
  ].filter(Boolean).join(" "),
7079
7097
  ...a ? {
7080
- [Qi.toneAttr]: Qi.toneGlass,
7081
- [Qi.densityAttr]: Qi.densityCompact
7098
+ [ta.toneAttr]: ta.toneGlass,
7099
+ [ta.densityAttr]: ta.densityCompact
7082
7100
  } : {},
7083
- children: [/* @__PURE__ */ t(Dr, {
7101
+ children: [/* @__PURE__ */ t(Ar, {
7084
7102
  label: e.label,
7085
7103
  items: [
7086
7104
  {
@@ -7103,15 +7121,15 @@ function ua() {
7103
7121
  value: "02:46"
7104
7122
  }
7105
7123
  ],
7106
- actions: /* @__PURE__ */ n(qn, {
7124
+ actions: /* @__PURE__ */ n(Xn, {
7107
7125
  label: e.tools,
7108
- children: [/* @__PURE__ */ t(Jn, {
7126
+ children: [/* @__PURE__ */ t(Zn, {
7109
7127
  label: e.history,
7110
7128
  children: /* @__PURE__ */ t($, {
7111
7129
  icon: "scroll",
7112
7130
  size: "sm"
7113
7131
  })
7114
- }), /* @__PURE__ */ t(Jn, {
7132
+ }), /* @__PURE__ */ t(Zn, {
7115
7133
  label: e.settings,
7116
7134
  children: /* @__PURE__ */ t($, {
7117
7135
  icon: "settings",
@@ -7132,7 +7150,7 @@ function ua() {
7132
7150
  tone: "success",
7133
7151
  children: r.readyBadge
7134
7152
  }),
7135
- /* @__PURE__ */ t(Wr, {
7153
+ /* @__PURE__ */ t(qr, {
7136
7154
  label: e.reveal,
7137
7155
  value: 68
7138
7156
  })
@@ -7170,22 +7188,22 @@ function ua() {
7170
7188
  children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t("strong", { children: "Overlay glass + compact" }), /* @__PURE__ */ n("span", {
7171
7189
  className: "game-ui-small-copy",
7172
7190
  children: [
7173
- Qi.toneAttr,
7191
+ ta.toneAttr,
7174
7192
  "=\"",
7175
- Qi.toneGlass,
7193
+ ta.toneGlass,
7176
7194
  "\" ·",
7177
7195
  " ",
7178
- Qi.densityAttr,
7196
+ ta.densityAttr,
7179
7197
  "=\"",
7180
- Qi.densityCompact,
7198
+ ta.densityCompact,
7181
7199
  "\""
7182
7200
  ]
7183
7201
  })] }), i("glass")]
7184
7202
  })]
7185
7203
  });
7186
7204
  }
7187
- function da() {
7188
- let { liquidMetal: e } = ra();
7205
+ function ma() {
7206
+ let { liquidMetal: e } = oa();
7189
7207
  return /* @__PURE__ */ n("div", {
7190
7208
  className: "game-ui-liquid-metal-compare",
7191
7209
  children: [/* @__PURE__ */ t(X, {
@@ -7193,7 +7211,7 @@ function da() {
7193
7211
  tone: "strong",
7194
7212
  children: /* @__PURE__ */ t("div", {
7195
7213
  className: "game-ui-liquid-metal-stage",
7196
- children: /* @__PURE__ */ t(I, {
7214
+ children: /* @__PURE__ */ t(_e, {
7197
7215
  renderer: "css",
7198
7216
  children: e.cta
7199
7217
  })
@@ -7203,7 +7221,7 @@ function da() {
7203
7221
  tone: "strong",
7204
7222
  children: /* @__PURE__ */ t("div", {
7205
7223
  className: "game-ui-liquid-metal-stage",
7206
- children: /* @__PURE__ */ t(I, {
7224
+ children: /* @__PURE__ */ t(_e, {
7207
7225
  renderer: "webgl",
7208
7226
  children: e.cta
7209
7227
  })
@@ -7211,13 +7229,13 @@ function da() {
7211
7229
  })]
7212
7230
  });
7213
7231
  }
7214
- function fa() {
7215
- let { modals: e } = ra();
7232
+ function ha() {
7233
+ let { modals: e } = oa();
7216
7234
  return /* @__PURE__ */ n("div", {
7217
7235
  className: "game-ui-preview-two-up",
7218
- children: [/* @__PURE__ */ n(Gn, {
7236
+ children: [/* @__PURE__ */ n(Jn, {
7219
7237
  title: e.dialogTitle,
7220
- children: [/* @__PURE__ */ t("p", { children: e.dialogBody }), /* @__PURE__ */ n(qn, {
7238
+ children: [/* @__PURE__ */ t("p", { children: e.dialogBody }), /* @__PURE__ */ n(Xn, {
7221
7239
  label: e.actionsLabel,
7222
7240
  children: [/* @__PURE__ */ t(w, {
7223
7241
  variant: "primary",
@@ -7231,16 +7249,16 @@ function fa() {
7231
7249
  title: e.panelTitle,
7232
7250
  tone: "strong",
7233
7251
  children: [
7234
- /* @__PURE__ */ t(nr, {
7252
+ /* @__PURE__ */ t(ar, {
7235
7253
  tone: "success",
7236
7254
  children: e.toastOk
7237
7255
  }),
7238
- /* @__PURE__ */ t(nr, {
7256
+ /* @__PURE__ */ t(ar, {
7239
7257
  tone: "danger",
7240
7258
  children: e.toastErr
7241
7259
  }),
7242
- /* @__PURE__ */ t(Nr, { label: e.loading }),
7243
- /* @__PURE__ */ t(Nr, {
7260
+ /* @__PURE__ */ t(Ir, { label: e.loading }),
7261
+ /* @__PURE__ */ t(Ir, {
7244
7262
  label: e.loadingErr,
7245
7263
  tone: "error"
7246
7264
  })
@@ -7248,14 +7266,14 @@ function fa() {
7248
7266
  })]
7249
7267
  });
7250
7268
  }
7251
- function pa() {
7252
- let { cards: e } = ra();
7269
+ function ga() {
7270
+ let { cards: e } = oa();
7253
7271
  return /* @__PURE__ */ n("div", {
7254
7272
  className: "game-ui-preview-two-up",
7255
7273
  children: [/* @__PURE__ */ t(X, {
7256
7274
  title: e.fanTitle,
7257
7275
  tone: "strong",
7258
- children: /* @__PURE__ */ t(Or, {
7276
+ children: /* @__PURE__ */ t(jr, {
7259
7277
  label: e.fanLabel,
7260
7278
  cards: [
7261
7279
  {
@@ -7287,16 +7305,16 @@ function pa() {
7287
7305
  }), /* @__PURE__ */ n("div", {
7288
7306
  className: "game-ui-asset-path-grid",
7289
7307
  children: [
7290
- /* @__PURE__ */ t("code", { children: pr.catalog.manifest }),
7291
- /* @__PURE__ */ t("code", { children: pr.catalog.sourceCatalog }),
7292
- /* @__PURE__ */ t("code", { children: pr.buttons.primary }),
7293
- /* @__PURE__ */ t("code", { children: pr.icons.trophy })
7308
+ /* @__PURE__ */ t("code", { children: gr.catalog.manifest }),
7309
+ /* @__PURE__ */ t("code", { children: gr.catalog.sourceCatalog }),
7310
+ /* @__PURE__ */ t("code", { children: gr.buttons.primary }),
7311
+ /* @__PURE__ */ t("code", { children: gr.icons.trophy })
7294
7312
  ]
7295
7313
  })]
7296
7314
  })]
7297
7315
  });
7298
7316
  }
7299
- var ma = [
7317
+ var _a = [
7300
7318
  {
7301
7319
  id: "terrain",
7302
7320
  label: "Terrain",
@@ -7312,7 +7330,7 @@ var ma = [
7312
7330
  label: "Place",
7313
7331
  icon: "gem"
7314
7332
  }
7315
- ], ha = [
7333
+ ], va = [
7316
7334
  {
7317
7335
  id: "raise",
7318
7336
  label: "Raise",
@@ -7338,7 +7356,7 @@ var ma = [
7338
7356
  label: "Paint",
7339
7357
  shortcut: "5"
7340
7358
  }
7341
- ], ga = [
7359
+ ], ya = [
7342
7360
  {
7343
7361
  id: "grass",
7344
7362
  label: "Grass",
@@ -7354,7 +7372,7 @@ var ma = [
7354
7372
  label: "Path",
7355
7373
  color: "#b98d5d"
7356
7374
  }
7357
- ], _a = [{
7375
+ ], ba = [{
7358
7376
  id: "foundation",
7359
7377
  label: "Foundation",
7360
7378
  icon: "home",
@@ -7373,10 +7391,10 @@ var ma = [
7373
7391
  status: "ready"
7374
7392
  }]
7375
7393
  }];
7376
- function va() {
7394
+ function xa() {
7377
7395
  return /* @__PURE__ */ n("div", {
7378
7396
  className: "game-ui-preview-two-up",
7379
- children: [/* @__PURE__ */ t(Si, {
7397
+ children: [/* @__PURE__ */ t(Ti, {
7380
7398
  activeBuildCategoryId: "foundation",
7381
7399
  activeMaterialId: "grass",
7382
7400
  activeModeId: "terrain",
@@ -7385,10 +7403,10 @@ function va() {
7385
7403
  radius: 2.75,
7386
7404
  strength: .45
7387
7405
  },
7388
- buildCategories: _a,
7406
+ buildCategories: ba,
7389
7407
  label: "Desktop terrain and build tools",
7390
- materials: ga,
7391
- modes: ma,
7408
+ materials: ya,
7409
+ modes: _a,
7392
7410
  selectedBuildItemId: "floor-2x2",
7393
7411
  status: {
7394
7412
  label: "Ready",
@@ -7399,12 +7417,12 @@ function va() {
7399
7417
  progressValue: 68
7400
7418
  },
7401
7419
  title: "Island tools",
7402
- tools: ha,
7420
+ tools: va,
7403
7421
  undoRedo: {
7404
7422
  canRedo: !1,
7405
7423
  canUndo: !0
7406
7424
  }
7407
- }), /* @__PURE__ */ t(Si, {
7425
+ }), /* @__PURE__ */ t(Ti, {
7408
7426
  activeBuildCategoryId: "foundation",
7409
7427
  activeMaterialId: "path",
7410
7428
  activeModeId: "terrain",
@@ -7413,11 +7431,11 @@ function va() {
7413
7431
  radius: 1.5,
7414
7432
  strength: .3
7415
7433
  },
7416
- buildCategories: _a,
7434
+ buildCategories: ba,
7417
7435
  drawerOpen: !0,
7418
7436
  label: "Small mobile terrain drawer",
7419
- materials: ga,
7420
- modes: ma,
7437
+ materials: ya,
7438
+ modes: _a,
7421
7439
  selectedBuildItemId: "floor-2x2",
7422
7440
  status: {
7423
7441
  label: "Blocked",
@@ -7425,7 +7443,7 @@ function va() {
7425
7443
  description: "This edit would bury a placed object."
7426
7444
  },
7427
7445
  title: "Tools",
7428
- tools: ha,
7446
+ tools: va,
7429
7447
  undoRedo: {
7430
7448
  canRedo: !0,
7431
7449
  canUndo: !0
@@ -7434,7 +7452,7 @@ function va() {
7434
7452
  })]
7435
7453
  });
7436
7454
  }
7437
- function ya({ label: e, mode: r }) {
7455
+ function Sa({ label: e, mode: r }) {
7438
7456
  return /* @__PURE__ */ n("div", {
7439
7457
  className: "game-ui-construction-preview-card",
7440
7458
  "data-preview": r,
@@ -7448,7 +7466,7 @@ function ya({ label: e, mode: r }) {
7448
7466
  ]
7449
7467
  });
7450
7468
  }
7451
- var ba = [
7469
+ var Ca = [
7452
7470
  {
7453
7471
  id: "preview-deck",
7454
7472
  title: "Deck robot crew",
@@ -7509,7 +7527,7 @@ var ba = [
7509
7527
  before: {
7510
7528
  label: "Before",
7511
7529
  caption: "Uneven terrain pad.",
7512
- content: /* @__PURE__ */ t(ya, {
7530
+ content: /* @__PURE__ */ t(Sa, {
7513
7531
  label: "Rough pad",
7514
7532
  mode: "before"
7515
7533
  })
@@ -7517,7 +7535,7 @@ var ba = [
7517
7535
  after: {
7518
7536
  label: "After",
7519
7537
  caption: "Flattened foundation pad with safe clearance.",
7520
- content: /* @__PURE__ */ t(ya, {
7538
+ content: /* @__PURE__ */ t(Sa, {
7521
7539
  label: "Foundation ready",
7522
7540
  mode: "after"
7523
7541
  })
@@ -7546,19 +7564,19 @@ var ba = [
7546
7564
  }]
7547
7565
  }
7548
7566
  ];
7549
- function xa() {
7567
+ function wa() {
7550
7568
  return /* @__PURE__ */ n("div", {
7551
7569
  className: "game-ui-preview-two-up",
7552
- children: [/* @__PURE__ */ t(Hi, {
7553
- jobs: ba,
7570
+ children: [/* @__PURE__ */ t(Gi, {
7571
+ jobs: Ca,
7554
7572
  label: "AI contractor jobs",
7555
7573
  selectedJobId: "review-house-pad",
7556
7574
  subtitle: "Official contractor UI covers drafts, previews, robot work, validation, review, and local-only provider boundaries.",
7557
7575
  title: "AI contractor",
7558
7576
  variant: "desktop"
7559
- }), /* @__PURE__ */ t(Hi, {
7577
+ }), /* @__PURE__ */ t(Gi, {
7560
7578
  drawerOpen: !0,
7561
- jobs: ba,
7579
+ jobs: Ca,
7562
7580
  label: "Small mobile contractor jobs",
7563
7581
  selectedJobId: "blocked-fence",
7564
7582
  title: "Contractor",
@@ -7566,10 +7584,10 @@ function xa() {
7566
7584
  })]
7567
7585
  });
7568
7586
  }
7569
- function Sa() {
7570
- return /* @__PURE__ */ t(Kr, {
7587
+ function Ta() {
7588
+ return /* @__PURE__ */ t(Yr, {
7571
7589
  title: "OwnMySpace island editor preview",
7572
- hud: /* @__PURE__ */ t(Jr, {
7590
+ hud: /* @__PURE__ */ t(Zr, {
7573
7591
  label: "Island facts",
7574
7592
  facts: [
7575
7593
  {
@@ -7593,11 +7611,11 @@ function Sa() {
7593
7611
  }
7594
7612
  ]
7595
7613
  }),
7596
- movementPad: /* @__PURE__ */ t($r, {
7614
+ movementPad: /* @__PURE__ */ t(ni, {
7597
7615
  helpText: "WASD or arrows",
7598
7616
  label: "Move avatar"
7599
7617
  }),
7600
- assetLibrary: /* @__PURE__ */ t(ii, {
7618
+ assetLibrary: /* @__PURE__ */ t(si, {
7601
7619
  label: "Placeable assets",
7602
7620
  title: "Assets",
7603
7621
  subtitle: "Starter, generated, and imported assets stay visibly distinct but share one placement path.",
@@ -7644,7 +7662,7 @@ function Sa() {
7644
7662
  }
7645
7663
  ]
7646
7664
  }),
7647
- bottomBar: /* @__PURE__ */ t(ai, {
7665
+ bottomBar: /* @__PURE__ */ t(ci, {
7648
7666
  title: "Placement",
7649
7667
  selectedTitle: "Manual chair",
7650
7668
  placedObjects: 3,
@@ -7680,7 +7698,7 @@ function Sa() {
7680
7698
  })
7681
7699
  });
7682
7700
  }
7683
- var Ca = [{
7701
+ var Ea = [{
7684
7702
  id: "starter",
7685
7703
  label: "Starter pieces",
7686
7704
  source: "starter",
@@ -7711,7 +7729,7 @@ var Ca = [{
7711
7729
  }
7712
7730
  ]
7713
7731
  }];
7714
- function wa() {
7732
+ function Da() {
7715
7733
  return /* @__PURE__ */ t("div", {
7716
7734
  className: "game-ui-asset-compression-repro",
7717
7735
  "aria-label": "Asset card compression repro",
@@ -7735,9 +7753,9 @@ function wa() {
7735
7753
  className: "game-ui-asset-compression-repro-surface",
7736
7754
  "data-repro-surface": e.id,
7737
7755
  style: { "--repro-width": e.width },
7738
- children: [/* @__PURE__ */ t(Q, { children: e.label }), /* @__PURE__ */ t(ii, {
7756
+ children: [/* @__PURE__ */ t(Q, { children: e.label }), /* @__PURE__ */ t(si, {
7739
7757
  density: "dense",
7740
- groups: Ca,
7758
+ groups: Ea,
7741
7759
  label: `${e.label} assets`,
7742
7760
  selectedAssetId: "asset-repro-chair",
7743
7761
  title: "Build"
@@ -7745,13 +7763,13 @@ function wa() {
7745
7763
  }, e.id))
7746
7764
  });
7747
7765
  }
7748
- function Ta() {
7749
- let { firstSession: e } = ra();
7766
+ function Oa() {
7767
+ let { firstSession: e } = oa();
7750
7768
  return /* @__PURE__ */ n("div", {
7751
7769
  className: "game-ui-first-session-preview",
7752
7770
  children: [/* @__PURE__ */ t("div", {
7753
7771
  className: "game-ui-first-session-world",
7754
- children: /* @__PURE__ */ t(Ir, {
7772
+ children: /* @__PURE__ */ t(zr, {
7755
7773
  authenticated: !0,
7756
7774
  batteryCount: 5,
7757
7775
  dailyStreak: 3,
@@ -7785,7 +7803,7 @@ function Ta() {
7785
7803
  })
7786
7804
  }), /* @__PURE__ */ t("div", {
7787
7805
  className: "game-ui-first-session-modal-slot",
7788
- children: /* @__PURE__ */ t(Lr, {
7806
+ children: /* @__PURE__ */ t(Br, {
7789
7807
  open: !0,
7790
7808
  onDismiss: () => void 0,
7791
7809
  labels: {
@@ -7813,46 +7831,46 @@ function Ta() {
7813
7831
  })]
7814
7832
  });
7815
7833
  }
7816
- function Ea() {
7817
- let { responsive: e } = ra();
7834
+ function ka() {
7835
+ let { responsive: e } = oa();
7818
7836
  return /* @__PURE__ */ n("div", {
7819
7837
  className: "game-ui-proof-frames",
7820
7838
  children: [/* @__PURE__ */ n("article", {
7821
7839
  className: "game-ui-proof-frame is-desktop",
7822
- children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t(Q, { children: e.desktop }), /* @__PURE__ */ t("strong", { children: "1440×900" })] }), /* @__PURE__ */ t(la, {})]
7840
+ children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t(Q, { children: e.desktop }), /* @__PURE__ */ t("strong", { children: "1440×900" })] }), /* @__PURE__ */ t(fa, {})]
7823
7841
  }), /* @__PURE__ */ n("article", {
7824
7842
  className: "game-ui-proof-frame is-mobile-landscape",
7825
- children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t(Q, { children: e.mobileLandscape }), /* @__PURE__ */ t("strong", { children: "844×390" })] }), /* @__PURE__ */ t(la, {})]
7843
+ children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t(Q, { children: e.mobileLandscape }), /* @__PURE__ */ t("strong", { children: "844×390" })] }), /* @__PURE__ */ t(fa, {})]
7826
7844
  })]
7827
7845
  });
7828
7846
  }
7829
- function Da() {
7830
- let { forms: e } = ra();
7847
+ function Aa() {
7848
+ let { forms: e } = oa();
7831
7849
  return /* @__PURE__ */ n("div", {
7832
7850
  className: "game-ui-preview-two-up",
7833
7851
  children: [/* @__PURE__ */ n(X, {
7834
7852
  title: e.formsTitle,
7835
7853
  tone: "strong",
7836
7854
  children: [
7837
- /* @__PURE__ */ t(Br, {
7855
+ /* @__PURE__ */ t(Ur, {
7838
7856
  hint: e.roomCodeHint,
7839
7857
  label: e.roomCodeLabel,
7840
- children: /* @__PURE__ */ t(Rr, { placeholder: e.roomCodePlaceholder })
7858
+ children: /* @__PURE__ */ t(Vr, { placeholder: e.roomCodePlaceholder })
7841
7859
  }),
7842
- /* @__PURE__ */ t(Br, {
7860
+ /* @__PURE__ */ t(Ur, {
7843
7861
  label: e.nameLabel,
7844
7862
  required: !0,
7845
- children: /* @__PURE__ */ t(Rr, { placeholder: e.namePlaceholder })
7863
+ children: /* @__PURE__ */ t(Vr, { placeholder: e.namePlaceholder })
7846
7864
  }),
7847
- /* @__PURE__ */ t(Br, {
7865
+ /* @__PURE__ */ t(Ur, {
7848
7866
  error: e.readError,
7849
7867
  label: e.readLabel,
7850
- children: /* @__PURE__ */ t(zr, {
7868
+ children: /* @__PURE__ */ t(Hr, {
7851
7869
  invalid: !0,
7852
7870
  placeholder: e.readPlaceholder
7853
7871
  })
7854
7872
  }),
7855
- /* @__PURE__ */ t(Vr, {
7873
+ /* @__PURE__ */ t(Wr, {
7856
7874
  defaultChecked: !0,
7857
7875
  label: e.rememberLabel
7858
7876
  })
@@ -7864,38 +7882,38 @@ function Da() {
7864
7882
  /* @__PURE__ */ n("div", {
7865
7883
  className: "game-ui-component-row",
7866
7884
  children: [
7867
- /* @__PURE__ */ t(Ur, {
7885
+ /* @__PURE__ */ t(Kr, {
7868
7886
  name: "Mika Ono",
7869
7887
  status: "online"
7870
7888
  }),
7871
- /* @__PURE__ */ t(Ur, {
7889
+ /* @__PURE__ */ t(Kr, {
7872
7890
  name: "River",
7873
7891
  size: "lg",
7874
7892
  status: "busy"
7875
7893
  }),
7876
- /* @__PURE__ */ t(Ur, {
7894
+ /* @__PURE__ */ t(Kr, {
7877
7895
  name: "Noa",
7878
7896
  status: "away"
7879
7897
  }),
7880
- /* @__PURE__ */ t(Ur, {
7898
+ /* @__PURE__ */ t(Kr, {
7881
7899
  name: e.guestName,
7882
7900
  size: "sm"
7883
7901
  })
7884
7902
  ]
7885
7903
  }),
7886
- /* @__PURE__ */ t(Wr, {
7904
+ /* @__PURE__ */ t(qr, {
7887
7905
  label: e.revealLabel,
7888
7906
  showValue: !0,
7889
7907
  value: 64
7890
7908
  }),
7891
- /* @__PURE__ */ t(Wr, {
7909
+ /* @__PURE__ */ t(qr, {
7892
7910
  label: e.batteryLabel,
7893
7911
  max: 20,
7894
7912
  showValue: !0,
7895
7913
  tone: "success",
7896
7914
  value: 14
7897
7915
  }),
7898
- /* @__PURE__ */ t(Gr, {
7916
+ /* @__PURE__ */ t(Jr, {
7899
7917
  action: /* @__PURE__ */ t(w, {
7900
7918
  variant: "primary",
7901
7919
  children: e.emptyCta
@@ -7908,8 +7926,8 @@ function Da() {
7908
7926
  })]
7909
7927
  });
7910
7928
  }
7911
- var Oa = or.filter((e) => ur(e).includes("game")), ka = or.filter((e) => ur(e).includes("line"));
7912
- function Aa({ names: e, style: r }) {
7929
+ var ja = lr.filter((e) => pr(e).includes("game")), Ma = lr.filter((e) => pr(e).includes("line"));
7930
+ function Na({ names: e, style: r }) {
7913
7931
  return /* @__PURE__ */ t("div", {
7914
7932
  className: "game-ui-icon-grid",
7915
7933
  children: e.map((e) => /* @__PURE__ */ n("figure", {
@@ -7922,10 +7940,10 @@ function Aa({ names: e, style: r }) {
7922
7940
  }, `${r}-${e}`))
7923
7941
  });
7924
7942
  }
7925
- function ja() {
7943
+ function Pa() {
7926
7944
  return /* @__PURE__ */ t("div", {
7927
7945
  className: "game-ui-icon-grid",
7928
- children: fr.map((e) => /* @__PURE__ */ n("figure", {
7946
+ children: hr.map((e) => /* @__PURE__ */ n("figure", {
7929
7947
  className: "game-ui-icon-cell",
7930
7948
  children: [/* @__PURE__ */ t("span", {
7931
7949
  className: "game-ui-asset-icon",
@@ -7934,14 +7952,14 @@ function ja() {
7934
7952
  "aria-hidden": !0,
7935
7953
  children: /* @__PURE__ */ t("img", {
7936
7954
  alt: "",
7937
- src: dr[e]
7955
+ src: mr[e]
7938
7956
  })
7939
7957
  }), /* @__PURE__ */ t("figcaption", { children: e })]
7940
7958
  }, `sprite-${e}`))
7941
7959
  });
7942
7960
  }
7943
- function Ma() {
7944
- let { gallery: e } = ra();
7961
+ function Fa() {
7962
+ let { gallery: e } = oa();
7945
7963
  return /* @__PURE__ */ n("div", {
7946
7964
  className: "game-ui-icon-gallery",
7947
7965
  children: [
@@ -7956,8 +7974,8 @@ function Ma() {
7956
7974
  className: "game-ui-small-copy",
7957
7975
  children: e.gameHint
7958
7976
  })]
7959
- }), /* @__PURE__ */ t(Aa, {
7960
- names: Oa,
7977
+ }), /* @__PURE__ */ t(Na, {
7978
+ names: ja,
7961
7979
  style: "game"
7962
7980
  })]
7963
7981
  }),
@@ -7969,8 +7987,8 @@ function Ma() {
7969
7987
  className: "game-ui-small-copy",
7970
7988
  children: e.lineHint
7971
7989
  })]
7972
- }), /* @__PURE__ */ t(Aa, {
7973
- names: ka,
7990
+ }), /* @__PURE__ */ t(Na, {
7991
+ names: Ma,
7974
7992
  style: "line"
7975
7993
  })]
7976
7994
  }),
@@ -7985,16 +8003,16 @@ function Ma() {
7985
8003
  className: "game-ui-small-copy",
7986
8004
  children: e.spriteHint
7987
8005
  })]
7988
- }), /* @__PURE__ */ t(ja, {})]
8006
+ }), /* @__PURE__ */ t(Pa, {})]
7989
8007
  })
7990
8008
  ]
7991
8009
  });
7992
8010
  }
7993
- function Na({ title: e, body: r }) {
7994
- let [i, a] = m("en"), o = ta[i], s = e && i === "en" ? e : o.heroTitle, c = r && i === "en" ? r : o.heroBody;
8011
+ function Ia({ title: e, body: r }) {
8012
+ let [i, a] = m("en"), o = ia[i], s = e && i === "en" ? e : o.heroTitle, c = r && i === "en" ? r : o.heroBody;
7995
8013
  return l(() => (document.documentElement.dataset.gameUiPreview = "clay", () => {
7996
8014
  delete document.documentElement.dataset.gameUiPreview;
7997
- }), []), /* @__PURE__ */ t(na.Provider, {
8015
+ }), []), /* @__PURE__ */ t(aa.Provider, {
7998
8016
  value: o,
7999
8017
  children: /* @__PURE__ */ n("main", {
8000
8018
  "aria-label": "Swimmer UI Kit clay preview",
@@ -8007,7 +8025,7 @@ function Na({ title: e, body: r }) {
8007
8025
  tone: "ai",
8008
8026
  children: "@pieai/swimmer-ui-kit"
8009
8027
  }),
8010
- /* @__PURE__ */ t(Mr, {
8028
+ /* @__PURE__ */ t(Fr, {
8011
8029
  currentLabel: o.triggerLabel,
8012
8030
  label: o.langMenuLabel,
8013
8031
  onSelect: (e) => a(e),
@@ -8034,10 +8052,10 @@ function Na({ title: e, body: r }) {
8034
8052
  id: "game-ui-preview-token-title",
8035
8053
  children: o.sections.tokens
8036
8054
  }),
8037
- /* @__PURE__ */ t(oa, {}),
8055
+ /* @__PURE__ */ t(la, {}),
8038
8056
  /* @__PURE__ */ t("div", {
8039
8057
  className: "game-ui-token-ledger",
8040
- children: ia.map((e) => /* @__PURE__ */ t(aa, {
8058
+ children: sa.map((e) => /* @__PURE__ */ t(ca, {
8041
8059
  id: e.id,
8042
8060
  label: o.tokenGroups[e.id] ?? e.id,
8043
8061
  tokens: e.tokens
@@ -8057,7 +8075,7 @@ function Na({ title: e, body: r }) {
8057
8075
  className: "game-ui-small-copy",
8058
8076
  children: o.iconsIntro
8059
8077
  }),
8060
- /* @__PURE__ */ t(Ma, {})
8078
+ /* @__PURE__ */ t(Fa, {})
8061
8079
  ]
8062
8080
  }),
8063
8081
  /* @__PURE__ */ n("section", {
@@ -8066,7 +8084,7 @@ function Na({ title: e, body: r }) {
8066
8084
  children: [/* @__PURE__ */ t("h2", {
8067
8085
  id: "game-ui-preview-type-title",
8068
8086
  children: o.sections.typography
8069
- }), /* @__PURE__ */ t(sa, {})]
8087
+ }), /* @__PURE__ */ t(ua, {})]
8070
8088
  }),
8071
8089
  /* @__PURE__ */ n("section", {
8072
8090
  "aria-labelledby": "game-ui-preview-components-title",
@@ -8076,11 +8094,11 @@ function Na({ title: e, body: r }) {
8076
8094
  id: "game-ui-preview-components-title",
8077
8095
  children: o.sections.components
8078
8096
  }),
8079
- /* @__PURE__ */ t(ca, {}),
8080
- /* @__PURE__ */ t(la, {}),
8097
+ /* @__PURE__ */ t(da, {}),
8081
8098
  /* @__PURE__ */ t(fa, {}),
8082
- /* @__PURE__ */ t(pa, {}),
8083
- /* @__PURE__ */ t(Kn, {
8099
+ /* @__PURE__ */ t(ha, {}),
8100
+ /* @__PURE__ */ t(ga, {}),
8101
+ /* @__PURE__ */ t(Yn, {
8084
8102
  entries: o.history,
8085
8103
  label: o.historyLabel
8086
8104
  })
@@ -8092,7 +8110,7 @@ function Na({ title: e, body: r }) {
8092
8110
  children: [/* @__PURE__ */ t("h2", {
8093
8111
  id: "game-ui-preview-forms-title",
8094
8112
  children: o.sections.forms
8095
- }), /* @__PURE__ */ t(Da, {})]
8113
+ }), /* @__PURE__ */ t(Aa, {})]
8096
8114
  }),
8097
8115
  /* @__PURE__ */ n("section", {
8098
8116
  "aria-labelledby": "game-ui-preview-overlay-glass-title",
@@ -8106,7 +8124,7 @@ function Na({ title: e, body: r }) {
8106
8124
  className: "game-ui-small-copy",
8107
8125
  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."
8108
8126
  }),
8109
- /* @__PURE__ */ t(ua, {})
8127
+ /* @__PURE__ */ t(pa, {})
8110
8128
  ]
8111
8129
  }),
8112
8130
  /* @__PURE__ */ n("section", {
@@ -8121,7 +8139,7 @@ function Na({ title: e, body: r }) {
8121
8139
  className: "game-ui-small-copy",
8122
8140
  children: o.liquidMetal.body
8123
8141
  }),
8124
- /* @__PURE__ */ t(da, {})
8142
+ /* @__PURE__ */ t(ma, {})
8125
8143
  ]
8126
8144
  }),
8127
8145
  /* @__PURE__ */ n("section", {
@@ -8130,7 +8148,7 @@ function Na({ title: e, body: r }) {
8130
8148
  children: [/* @__PURE__ */ t("h2", {
8131
8149
  id: "game-ui-preview-ownmyspace-title",
8132
8150
  children: "OwnMySpace game surface pack"
8133
- }), /* @__PURE__ */ t(Sa, {})]
8151
+ }), /* @__PURE__ */ t(Ta, {})]
8134
8152
  }),
8135
8153
  /* @__PURE__ */ n("section", {
8136
8154
  "aria-labelledby": "game-ui-preview-terrain-build-title",
@@ -8144,7 +8162,7 @@ function Na({ title: e, body: r }) {
8144
8162
  className: "game-ui-small-copy",
8145
8163
  children: "Official terrain controls cover mode, brush, material, undo/redo, build library, status, progress, and compact mobile drawer surfaces."
8146
8164
  }),
8147
- /* @__PURE__ */ t(va, {})
8165
+ /* @__PURE__ */ t(xa, {})
8148
8166
  ]
8149
8167
  }),
8150
8168
  /* @__PURE__ */ n("section", {
@@ -8159,7 +8177,7 @@ function Na({ title: e, body: r }) {
8159
8177
  className: "game-ui-small-copy",
8160
8178
  children: "Official construction surfaces cover job queue states, before/after review, robot crew status, validation warnings, approval actions, and local-only provider badges."
8161
8179
  }),
8162
- /* @__PURE__ */ t(xa, {})
8180
+ /* @__PURE__ */ t(wa, {})
8163
8181
  ]
8164
8182
  }),
8165
8183
  /* @__PURE__ */ n("section", {
@@ -8174,7 +8192,7 @@ function Na({ title: e, body: r }) {
8174
8192
  className: "game-ui-small-copy",
8175
8193
  children: "Official asset cards must stay visually complete when a game shell uses dense, narrow, or rail-style inventory slots."
8176
8194
  }),
8177
- /* @__PURE__ */ t(wa, {})
8195
+ /* @__PURE__ */ t(Da, {})
8178
8196
  ]
8179
8197
  }),
8180
8198
  /* @__PURE__ */ n("section", {
@@ -8183,7 +8201,7 @@ function Na({ title: e, body: r }) {
8183
8201
  children: [/* @__PURE__ */ t("h2", {
8184
8202
  id: "game-ui-preview-first-session-title",
8185
8203
  children: o.sections.firstSession
8186
- }), /* @__PURE__ */ t(Ta, {})]
8204
+ }), /* @__PURE__ */ t(Oa, {})]
8187
8205
  }),
8188
8206
  /* @__PURE__ */ n("section", {
8189
8207
  "aria-labelledby": "game-ui-preview-orientation-title",
@@ -8191,7 +8209,7 @@ function Na({ title: e, body: r }) {
8191
8209
  children: [/* @__PURE__ */ t("h2", {
8192
8210
  id: "game-ui-preview-orientation-title",
8193
8211
  children: o.sections.orientation
8194
- }), /* @__PURE__ */ t(jr, {
8212
+ }), /* @__PURE__ */ t(Pr, {
8195
8213
  badgeLabel: o.orientation.badge,
8196
8214
  body: o.orientation.body,
8197
8215
  cta: o.orientation.cta,
@@ -8206,11 +8224,11 @@ function Na({ title: e, body: r }) {
8206
8224
  children: [/* @__PURE__ */ t("h2", {
8207
8225
  id: "game-ui-preview-responsive-title",
8208
8226
  children: o.sections.responsive
8209
- }), /* @__PURE__ */ t(Ea, {})]
8227
+ }), /* @__PURE__ */ t(ka, {})]
8210
8228
  })
8211
8229
  ]
8212
8230
  })
8213
8231
  });
8214
8232
  }
8215
8233
  //#endregion
8216
- export { pr as CLAY_ASSETS, ir as CLAY_ASSET_BASE_PATH, xe as CLAY_ASSET_SIZE_TOKENS, L as CLAY_COLOR_TOKENS, U as CLAY_ELEVATION_TOKENS, dr as CLAY_GAME_SPRITES, fr as CLAY_GAME_SPRITE_NAMES, or as CLAY_ICON_NAMES, ar as CLAY_ICON_VARIANTS, ye as CLAY_LAYER_TOKENS, z as CLAY_LIQUID_GOOEY_TOKENS, z as GAME_UI_LIQUID_GOOEY_TOKENS, R as CLAY_LIQUID_METAL_TOKENS, R as GAME_UI_LIQUID_METAL_TOKENS, W as CLAY_MOTION_TOKENS, B as CLAY_OVERLAY_GLASS_TOKENS, B as GAME_UI_OVERLAY_GLASS_TOKENS, H as CLAY_RADIUS_TOKENS, V as CLAY_SEMANTIC_TOKENS, ve as CLAY_SPACE_TOKENS, be as CLAY_TARGET_TOKENS, _e as CLAY_TYPE_TOKENS, Se as CLAY_UI_TOKENS, Ce as DEFAULT_LIQUID_GOOEY_ANIMATION_BUDGET, we as DEFAULT_LIQUID_GOOEY_FILTER_AREA_BUDGET, T as DEFAULT_LIQUID_METAL_CONTEXT_BUDGET, J as DISSOLVE_DEFAULTS, Ir as FirstSessionHud, Lr as FirstSessionOnboarding, Qi as GAME_UI_OVERLAY, Xi as GAME_UI_PREVIEW_MESSAGES, $i as GAME_UI_TARGETS, ea as GAME_UI_THEME_CONTRACT, Zi as GAME_UI_TOKENS, Xr as GameActionGrid, ri as GameAssetCard, $ as GameAssetIcon, ii as GameAssetLibrary, Ur as GameAvatar, Q as GameBadge, zi as GameBeforeAfterToggle, hi as GameBrushControls, vi as GameBuildLibrary, w as GameButton, Wn as GameCallout, Or as GameCardFan, Vr as GameCheckbox, Gi as GameCollapsiblePanel, yi as GameCompactGameDrawer, Vi as GameCompactJobDrawer, Li as GameConstructionApprovalBar, Bi as GameConstructionJobCard, Ii as GameConstructionProgress, Hi as GameContractorPanel, Gn as GameDialog, Gr as GameEmptyState, Jr as GameFactList, Br as GameField, Kn as GameHistoryPanel, Dr as GameHud, qn as GameHudActions, Jn as GameIconButton, Rr as GameInput, Mr as GameLanguageMenu, Nr as GameLoadingState, gi as GameMaterialSwatches, Yi as GameModal, $r as GameMovementPad, oi as GameObjectToolbar, jr as GameOrientationGate, X as GamePanel, ai as GamePlacementToolbar, Wr as GameProgress, rr as GamePrompt, tr as GameRadialMenu, Ri as GameRobotCrewStatus, qr as GameSceneHudLayout, Qn as GameSegmentedControl, Kr as GameShell, $n as GameSlider, kr as GameStageTile, Yr as GameStatList, Xn as GameTabs, Si as GameTerrainBuildToolbox, pi as GameTerrainModeControl, mi as GameTerrainToolStrip, zr as GameTextArea, nr as GameToast, er as GameToggle, Yn as GameTooltip, Na as GameUiPreview, _i as GameUndoRedoActions, Ji as GameWindowPanel, Yt as IMAGE_MELT_DEFAULTS, Un as LiquidGroup, Hn as LiquidItem, I as LiquidMetalButton, wr as acknowledgeClayPlaceholders, xr as getClayAssetBasePath, yr as getClayAssetMode, Pr as getClayCatalogPaths, Tr as getClayIconPath, ur as getClayIconStyles, Er as getClaySourceAssetPath, Oe as getLiquidGooeyBudget, O as getLiquidMetalContextBudget, C as playGameInteractionSound, S as playGameInteractionSoundForContext, tn as resolveDissolveOptions, br as setClayAssetBasePath, vr as setClayAssetMode, ke as setLiquidGooeyBudget, ee as setLiquidMetalContextBudget };
8234
+ export { gr as CLAY_ASSETS, sr as CLAY_ASSET_BASE_PATH, xe as CLAY_ASSET_SIZE_TOKENS, I as CLAY_COLOR_TOKENS, U as CLAY_ELEVATION_TOKENS, mr as CLAY_GAME_SPRITES, hr as CLAY_GAME_SPRITE_NAMES, lr as CLAY_ICON_NAMES, cr as CLAY_ICON_VARIANTS, ye 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, W as CLAY_MOTION_TOKENS, z as CLAY_OVERLAY_GLASS_TOKENS, z as GAME_UI_OVERLAY_GLASS_TOKENS, H as CLAY_RADIUS_TOKENS, B as CLAY_SEMANTIC_TOKENS, ve as CLAY_SPACE_TOKENS, be as CLAY_TARGET_TOKENS, V as CLAY_TYPE_TOKENS, Se as CLAY_UI_TOKENS, Ce as DEFAULT_LIQUID_GOOEY_ANIMATION_BUDGET, we as DEFAULT_LIQUID_GOOEY_FILTER_AREA_BUDGET, T as DEFAULT_LIQUID_METAL_CONTEXT_BUDGET, J as DISSOLVE_DEFAULTS, zr as FirstSessionHud, Br as FirstSessionOnboarding, ta as GAME_UI_OVERLAY, $i as GAME_UI_PREVIEW_MESSAGES, na as GAME_UI_TARGETS, ra as GAME_UI_THEME_CONTRACT, ea as GAME_UI_TOKENS, $r as GameActionGrid, oi as GameAssetCard, $ as GameAssetIcon, si as GameAssetLibrary, Kr as GameAvatar, Q as GameBadge, Hi as GameBeforeAfterToggle, vi as GameBrushControls, xi as GameBuildLibrary, w as GameButton, qn as GameCallout, jr as GameCardFan, Wr as GameCheckbox, Ji as GameCollapsiblePanel, Si as GameCompactGameDrawer, Wi as GameCompactJobDrawer, Bi as GameConstructionApprovalBar, Ui as GameConstructionJobCard, zi as GameConstructionProgress, Gi as GameContractorPanel, Jn as GameDialog, Jr as GameEmptyState, Zr as GameFactList, Ur as GameField, Yn as GameHistoryPanel, Ar as GameHud, Xn as GameHudActions, Zn as GameIconButton, Vr as GameInput, Fr as GameLanguageMenu, Ir as GameLoadingState, yi as GameMaterialSwatches, Qi as GameModal, ni as GameMovementPad, li as GameObjectToolbar, Pr as GameOrientationGate, X as GamePanel, ci as GamePlacementToolbar, qr as GameProgress, or as GamePrompt, ir as GameRadialMenu, Vi as GameRobotCrewStatus, Xr as GameSceneHudLayout, tr as GameSegmentedControl, Yr as GameShell, nr as GameSlider, Mr as GameStageTile, Qr as GameStatList, $n as GameTabs, Ti as GameTerrainBuildToolbox, gi as GameTerrainModeControl, _i as GameTerrainToolStrip, Hr as GameTextArea, ar as GameToast, rr as GameToggle, Qn as GameTooltip, Ia as GameUiPreview, bi as GameUndoRedoActions, Zi as GameWindowPanel, Qt as IMAGE_MELT_DEFAULTS, ze as LIQUID_GOOEY_WAVINESS_MAX_FRACTION, Kn as LiquidGroup, Gn as LiquidItem, _e as LiquidMetalButton, Dr as acknowledgeClayPlaceholders, wr as getClayAssetBasePath, Sr as getClayAssetMode, Lr as getClayCatalogPaths, Or as getClayIconPath, pr as getClayIconStyles, kr as getClaySourceAssetPath, Oe as getLiquidGooeyBudget, O as getLiquidMetalContextBudget, C as playGameInteractionSound, S as playGameInteractionSoundForContext, an as resolveDissolveOptions, Cr as setClayAssetBasePath, xr as setClayAssetMode, ke as setLiquidGooeyBudget, ee as setLiquidMetalContextBudget };