@pieai/swimmer-ui-kit 1.11.0 → 1.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -90,21 +90,21 @@ function O() {
90
90
  used: D
91
91
  };
92
92
  }
93
- function ee(e) {
93
+ function k(e) {
94
94
  E = Number.isFinite(e) ? Math.max(0, Math.floor(e)) : 0;
95
95
  }
96
- function k() {
96
+ function A() {
97
97
  return D >= E ? !1 : (D += 1, !0);
98
98
  }
99
- function te() {
99
+ function j() {
100
100
  D > 0 && --D;
101
101
  }
102
- function ne(e) {
102
+ function ee(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 M = "#version 300 es\nin vec2 position; void main(){ gl_Position = vec4(position,0.,1.); }", N = "#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", P = `${N}
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
+ }`, te = `${N}
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
+ }`, ne = "#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}", re = "#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}", ie = `${N}
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
+ }`, ae = {
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
+ }, oe = Object.keys(ae), se = {
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
+ }, ce = Object.keys(se), le = {
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
+ }, F = {
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 ue(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 de(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 fe(e, t) {
432
432
  let n = (e) => t[e] ?? null;
433
433
  return {
434
434
  f1: (t, r) => e.uniform1f(n(t), r),
@@ -440,7 +440,7 @@ function P(e, t) {
440
440
  i1: (t, r) => e.uniform1i(n(t), r)
441
441
  };
442
442
  }
443
- function me(e, t, n) {
443
+ function pe(e, t, n) {
444
444
  if (typeof e.getContext != "function") return null;
445
445
  let r = null;
446
446
  try {
@@ -456,21 +456,21 @@ function me(e, t, n) {
456
456
  if (!r) return null;
457
457
  let i = r;
458
458
  try {
459
- return ge(i, e, t, n);
459
+ return he(i, e, t, n);
460
460
  } catch {
461
461
  return i.getExtension("WEBGL_lose_context")?.loseContext(), null;
462
462
  }
463
463
  }
464
- function he(e, t, n) {
464
+ function me(e, t, n) {
465
465
  let r = e.createShader(t);
466
466
  if (!r) throw Error("liquid-metal: createShader returned null");
467
467
  if (e.shaderSource(r, n), e.compileShader(r), !e.getShaderParameter(r, e.COMPILE_STATUS)) throw Error(e.getShaderInfoLog(r) ?? "liquid-metal: shader compile failed");
468
468
  return r;
469
469
  }
470
- function F(e, t) {
470
+ function I(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, me(e, e.VERTEX_SHADER, M)), e.attachShader(n, me(e, e.FRAGMENT_SHADER, t)), e.bindAttribLocation(n, 0, "position"), e.linkProgram(n), !e.getProgramParameter(n, e.LINK_STATUS)) throw Error(e.getProgramInfoLog(n) ?? "liquid-metal: program link failed");
474
474
  let r = {}, i = e.getProgramParameter(n, e.ACTIVE_UNIFORMS);
475
475
  for (let t = 0; t < i; t += 1) {
476
476
  let i = e.getActiveUniform(n, t);
@@ -481,8 +481,8 @@ function F(e, t) {
481
481
  u: r
482
482
  };
483
483
  }
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();
484
+ function he(e, t, n, r) {
485
+ let i = I(e, te), a = I(e, P), o = I(e, ne), s = I(e, re), c = I(e, ie), 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,
@@ -508,7 +508,7 @@ function ge(e, t, n, r) {
508
508
  }
509
509
  let m = f(), h = f(), g = f(), _ = f(), v = f(), y = f(), b = 0, x = 0, S = 0, C = 0, w = 0, T = 0, E = 4, D = !0, O = document.createElement("span");
510
510
  O.setAttribute("aria-hidden", "true"), O.style.cssText = "position:absolute;width:0;height:0;overflow:hidden;pointer-events:none;color:var(--game-ui-liquid-metal-accent)", r.appendChild(O);
511
- function ee() {
511
+ function k() {
512
512
  let e = n.getBoundingClientRect(), r = Math.min(window.devicePixelRatio || 1, 2), i = 900 / 516 * Math.max(e.height, 1), a = e.width + i * 2, o = e.height + i * 2;
513
513
  t.style.width = `${a}px`, t.style.height = `${o}px`;
514
514
  let s = Math.max(2, Math.round(a * r)), c = Math.max(2, Math.round(o * r));
@@ -518,10 +518,10 @@ function ge(e, t, n, r) {
518
518
  let d = Math.max(2, Math.ceil(b / E)), f = Math.max(2, Math.ceil(x / E));
519
519
  p(v, d, f), p(y, d, f), D = !1;
520
520
  }
521
- function k(t) {
521
+ function A(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 j = new Float32Array(oe.length), ee = new Float32Array(ce.length), M = 0, N = 0, pe = 0, me = performance.now(), he = [
525
525
  0,
526
526
  1,
527
527
  2
@@ -530,7 +530,7 @@ 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
+ })), ge = /* @__PURE__ */ new Float32Array(12), L = 0, R = 0, z = 0, B = {
534
534
  x: 0,
535
535
  y: 0
536
536
  }, V = {
@@ -542,74 +542,74 @@ function ge(e, t, n, r) {
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 = he[L];
546
+ n && (L = (L + 1) % he.length, n.x = e, n.y = t, n.t = pe, 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
+ N = H.over || H.press || H.focus ? 1 : 0, z = +!!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 se.base = de(e, "--game-ui-liquid-metal-rest", se.base), se.speed = de(e, "--game-ui-liquid-metal-sweep-speed", se.speed), ae.disp = de(e, "--game-ui-liquid-metal-dispersion", ae.disp), le.glow = de(e, "--game-ui-liquid-metal-bloom", le.glow), { accent: ue(getComputedStyle(O).color) };
559
559
  }
560
560
  function Ee(t) {
561
561
  if (Se = 0, Ce || we) return;
562
- let r = (t - he) / 1e3;
563
- he = t;
562
+ let r = (t - me) / 1e3;
563
+ me = t;
564
564
  let l = Math.min(r, 1 / 20);
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);
565
+ be.matches || (pe += l);
566
+ let u = N > M ? 1 - .0012 ** l : 1 - 12e-5 ** l;
567
+ M += (N - M) * u, Math.abs(N - M) < 8e-4 && (M = N);
568
568
  let d = z > R ? 1 - 1e-9 ** l : 1 - .004 ** l;
569
569
  R += (z - R) * d, Math.abs(z - R) < .002 && (R = z);
570
570
  let f = !1;
571
- for (let e = 0; e < ge.length; e += 1) {
572
- let t = ge[e];
573
- t && (t.on && me - t.t > 4 && (t.on = 0), t.on && (f = !0), I[e * 4] = t.x, I[e * 4 + 1] = t.y, I[e * 4 + 2] = t.t, I[e * 4 + 3] = t.on);
571
+ for (let e = 0; e < he.length; e += 1) {
572
+ let t = he[e];
573
+ t && (t.on && pe - t.t > 4 && (t.on = 0), t.on && (f = !0), ge[e * 4] = t.x, ge[e * 4 + 1] = t.y, ge[e * 4 + 2] = t.t, ge[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 - F.ptrLag ** +l, O = (B.x - V.x) * p, P = (B.y - V.y) * p;
576
+ V.x += O, V.y += P;
577
+ let te = Math.min(Math.hypot(O, P) / Math.max(l, .001) / F.ptrVref, 1);
578
+ ve += (te - ve) * (1 - (te > ve ? .001 : .02) ** l);
579
+ let ne = H.over || H.press ? 1 : 0;
580
+ _e += (ne - _e) * (1 - .004 ** l), Math.abs(ne - _e) < .002 && (_e = ne), H.over = n.matches(":hover"), H.focus = n.matches(":focus-visible"), ye(), D && k();
581
+ let re = be.matches && !f && _e < .002 ? `${M}|${R}|${b}|${x}` : null;
582
+ if (re !== null && re === 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 = re;
587
+ let { accent: ie } = Te();
588
+ for (let e = 0; e < j.length; e += 1) {
589
+ let t = oe[e];
590
+ t && (j[e] = ae[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 < ee.length; e += 1) {
593
+ let t = ce[e];
594
+ t && (ee[e] = se[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 ue = Math.max(C, 110), de = Math.max(2.4, ue / 516 * 3.2), I = fe(e, i.u), L = fe(e, a.u), U = fe(e, o.u), W = fe(e, s.u), G = fe(e, c.u);
597
+ e.useProgram(i.p), I.f2("uC", w, T), I.f2("uHalf", S / 2, C / 2), I.f1("uT", pe), I.f1("uHover", M), I.f1("uPress", R), I.fv4("uRip", ge), I.f4("uRipK", F.speed, F.width, F.decay, F.amp), I.f4("uRipK2", F.facet, F.lobes, F.sharp, F.emit), I.f4("uPtr", V.x, V.y, _e, ve), I.f4("uPtrK", F.ptrRad, F.ptrAmp, F.ptrFast, F.ptrRim), I.f3("uAccent", ie[0], ie[1], ie[2]), I.fv1("uP", j), A(m), e.useProgram(a.p), L.f2("uC", w, T), L.f2("uHalf", S / 2, C / 2), L.f1("uT", pe), L.f1("uBw", de), L.f1("uPress", R), L.fv4("uRip", ge), L.f4("uRipK", F.speed, F.width, F.decay, F.amp), L.f4("uRipK2", F.facet, F.lobes, F.sharp, F.emit), L.f4("uPtr", V.x, V.y, _e, ve), L.f4("uPtrK", F.ptrRad, F.ptrAmp, F.ptrFast, F.ptrRim), L.f3("uAccent", ie[0], ie[1], ie[2]), L.fv1("uE", ee), A(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), A(g), e.useProgram(s.p), W.i1("uTex", 0), W.f2("uTexel", 1 / g.w, 1 / g.h);
598
+ let De = le.soften * (ue * .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
- 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);
602
+ for (let n = 0; n < t; n += 1) e.bindTexture(e.TEXTURE_2D, g.tex), W.f2("uDir", 1, 0), A(_), e.bindTexture(e.TEXTURE_2D, _.tex), W.f2("uDir", 0, 1), A(g);
603
603
  }
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;
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), A(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 = le.glowR * (ue / E) / 129;
606
606
  for (let t of [
607
607
  1,
608
608
  2.3,
609
609
  5.2,
610
610
  9
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);
611
+ ].map((e) => e * Oe)) W.f1("uR", t), e.bindTexture(e.TEXTURE_2D, v.tex), W.f2("uDir", 1, 0), A(y), e.bindTexture(e.TEXTURE_2D, y.tex), W.f2("uDir", 0, 1), A(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", pe), G.fv4("uRip", ge), G.f4("uRipK", F.speed, F.width, F.decay, F.amp), G.f4("uRipK2", F.facet, F.lobes, F.sharp, F.emit), G.f3("uAccent", ie[0], ie[1], ie[2]), G.f1("uGlowGain", le.glow), G.f1("uGlowIn", le.glowIn), G.f1("uOccl", le.occl), G.f1("uDim", ae.dim), G.f1("uPunch", le.punch), A(null), Se = requestAnimationFrame(Ee);
613
613
  }
614
614
  let G = (e) => {
615
615
  if (e.pointerType !== "mouse") return;
@@ -639,12 +639,12 @@ function ge(e, t, n, r) {
639
639
  let Fe = new ResizeObserver(() => {
640
640
  D = !0;
641
641
  });
642
- return Fe.observe(r), Fe.observe(n), ee(), Se = requestAnimationFrame(Ee), {
642
+ return Fe.observe(r), Fe.observe(n), k(), Se = requestAnimationFrame(Ee), {
643
643
  pause: () => {
644
644
  Ce = !0, Se && cancelAnimationFrame(Se), Se = 0;
645
645
  },
646
646
  resume: () => {
647
- we || (Ce = !1, he = performance.now(), xe = null, Se ||= requestAnimationFrame(Ee));
647
+ we || (Ce = !1, me = performance.now(), xe = null, Se ||= requestAnimationFrame(Ee));
648
648
  },
649
649
  dispose: () => {
650
650
  we || (we = !0, Ce = !0, Se && cancelAnimationFrame(Se), Se = 0, Fe.disconnect(), n.removeEventListener("pointerenter", G), n.removeEventListener("pointerleave", De), window.removeEventListener("pointermove", Oe), n.removeEventListener("pointerdown", ke), window.removeEventListener("pointerup", Ae), window.removeEventListener("pointercancel", Ae), n.removeEventListener("focus", je), n.removeEventListener("blur", Me), n.removeEventListener("keydown", Ne), n.removeEventListener("keyup", Pe), O.remove(), e.getExtension("WEBGL_lose_context")?.loseContext());
@@ -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 ge({ 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 &&= (j(), !1), c || g("css");
663
663
  }, p = () => {
664
- if (!(c || o) && ne({
664
+ if (!(c || o) && ee({
665
665
  renderer: s,
666
666
  hasWebGL2: typeof WebGL2RenderingContext < "u",
667
667
  prefersReducedMotion: r.matches,
668
668
  isInViewport: i
669
- }) && k()) {
670
- if (a = !0, o = me(n, t, e), !o) {
671
- te(), a = !1;
669
+ }) && A()) {
670
+ if (a = !0, o = pe(n, t, e), !o) {
671
+ j(), a = !1;
672
672
  return;
673
673
  }
674
674
  g("webgl");
@@ -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(z[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,35 +1302,35 @@ 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
- let C = e.tailR >= i.tailMinRadius, w = e.cx, T = e.cy, E = e.cx, D = e.cy, O = 0, ee = 0;
1327
+ let C = e.tailR >= i.tailMinRadius, w = e.cx, T = e.cy, E = e.cx, D = e.cy, O = 0, k = 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
- 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;
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, k = e.tailR * i.tailMidRadiusB;
1315
1332
  }
1316
- let k = {
1333
+ let A = {
1317
1334
  cx: q(e.tailX),
1318
1335
  cy: q(e.tailY),
1319
1336
  radius: C ? q(e.tailR) : 0,
@@ -1322,7 +1339,7 @@ function et(e, t, n, r, i) {
1322
1339
  midARadius: C ? q(O) : 0,
1323
1340
  midBCx: q(E),
1324
1341
  midBCy: q(D),
1325
- midBRadius: C ? q(ee) : 0,
1342
+ midBRadius: C ? q(k) : 0,
1326
1343
  visible: C,
1327
1344
  fingerprint: C ? [
1328
1345
  q(e.tailX),
@@ -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)})`,
1340
- tail: k,
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)})`,
1357
+ tail: A,
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(z[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(z[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));
@@ -1560,22 +1577,22 @@ function St(e, t, n, r, i) {
1560
1577
  }
1561
1578
  let w = Math.min(1, (Math.hypot(e.vcx, e.vcy) + Math.abs(e.vw) + Math.abs(e.vh)) / 420);
1562
1579
  e.motionEnv = Math.max(w, e.motionEnv - a * 1.9);
1563
- let T = e.motionEnv * e.motionEnv * Math.max(0, i.contentBlur), E = e.cornerStarted && r - e.cornerT0 < b + 80 || Math.abs(x - e.round01) > .004 || e.round01 > .004, D = Math.hypot(e.vcx, e.vcy), O = Math.abs(e.cx - o) < .05 && Math.abs(e.cy - s) < .05 && Math.abs(e.w - t.w) < .05 && Math.abs(e.h - t.h) < .05 && Math.abs(e.r - t.r) < .05 && D < 1 && Math.abs(e.vw) + Math.abs(e.vh) + Math.abs(e.vr) < 1 && e.motionEnv < .01 && !E, ee = [
1580
+ let T = e.motionEnv * e.motionEnv * Math.max(0, i.contentBlur), E = e.cornerStarted && r - e.cornerT0 < b + 80 || Math.abs(x - e.round01) > .004 || e.round01 > .004, D = Math.hypot(e.vcx, e.vcy), O = Math.abs(e.cx - o) < .05 && Math.abs(e.cy - s) < .05 && Math.abs(e.w - t.w) < .05 && Math.abs(e.h - t.h) < .05 && Math.abs(e.r - t.r) < .05 && D < 1 && Math.abs(e.vw) + Math.abs(e.vh) + Math.abs(e.vr) < 1 && e.motionEnv < .01 && !E, k = [
1564
1581
  C,
1565
1582
  C,
1566
1583
  C,
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, k),
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,10 +1849,10 @@ 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
- if (this.budgetWarningEmitted || !0) return;
1855
+ if (this.budgetWarningEmitted) return;
1839
1856
  this.budgetWarningEmitted = !0;
1840
1857
  let e = Oe(), t = e.activeGroups >= e.maxAnimatedGroups ? "the active-group limit is reached" : "the filter-area limit is exceeded";
1841
1858
  console.warn(`LiquidGroup: the liquid animation budget is insufficient (${t}); degrading to static rendering for this group.`);
@@ -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,16 +2190,13 @@ var Gt = 24, Kt = 500, qt = 16, Jt = 6, Yt = {
2173
2190
  sink: .8,
2174
2191
  seamBlur: 12.8
2175
2192
  };
2176
- function Xt() {
2177
- return !1;
2178
- }
2179
- function Zt(e, t = 0, n = 1) {
2193
+ function $t(e, t = 0, n = 1) {
2180
2194
  return Math.min(n, Math.max(t, e));
2181
2195
  }
2182
- function Qt(e, t) {
2196
+ function en(e, t) {
2183
2197
  return e !== void 0 && Number.isFinite(e) ? e : t;
2184
2198
  }
2185
- function $t(e, t, n) {
2199
+ function tn(e, t, n) {
2186
2200
  let r = e?.ownerDocument.defaultView;
2187
2201
  if (!r) return n;
2188
2202
  let i = z[t], a = /^var\((--[\w-]+)\)$/.exec(i)?.[1];
@@ -2190,34 +2204,34 @@ function $t(e, t, n) {
2190
2204
  let o = Number.parseFloat(r.getComputedStyle(e).getPropertyValue(a));
2191
2205
  return Number.isFinite(o) ? o : n;
2192
2206
  }
2193
- function en(e, t = {}) {
2194
- let n = (n, r) => Qt(t[n], $t(e, r, Yt[n]));
2207
+ function nn(e, t = {}) {
2208
+ let n = (n, r) => en(t[n], tn(e, r, Qt[n]));
2195
2209
  return {
2196
2210
  blur: Math.max(0, n("blur", "meltBlur")),
2197
2211
  contrast: Math.max(1, n("contrast", "meltContrast")),
2198
2212
  reach: Math.max(0, n("reach", "meltReach")),
2199
2213
  fade: Math.max(0, n("fade", "meltFade")),
2200
2214
  warp: Math.max(0, n("warp", "meltWarp")),
2201
- mix: Zt(n("mix", "meltMix")),
2215
+ mix: $t(n("mix", "meltMix")),
2202
2216
  mixBlur: Math.max(0, n("mixBlur", "meltMixBlur")),
2203
2217
  gravity: Math.max(0, n("gravity", "meltGravity")),
2204
2218
  waviness: Math.max(0, n("waviness", "meltWaviness"))
2205
2219
  };
2206
2220
  }
2207
- function tn(e, t) {
2221
+ function rn(e, t) {
2208
2222
  let n = typeof t == "object" && t ? t : {}, r = (t, r, i) => {
2209
2223
  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));
2224
+ return en(typeof a == "number" ? a : void 0, tn(e, r, i));
2225
+ }, i = $t(typeof t == "number" ? t : r("strength", "dissolveStrength", J.strength));
2212
2226
  return {
2213
2227
  blur: Math.max(0, r("blur", "dissolveBlur", J.blur)),
2214
2228
  warp: Math.max(0, r("warp", "dissolveWarp", J.warp)),
2215
2229
  pull: Math.max(0, r("pull", "dissolvePull", J.pull)),
2216
2230
  range: Math.max(1, r("range", "dissolveRange", J.range)),
2217
2231
  zone: Math.max(1, r("zone", "dissolveZone", J.zone)),
2218
- mix: Zt(r("mix", "dissolveMix", J.mix)),
2232
+ mix: $t(r("mix", "dissolveMix", J.mix)),
2219
2233
  gravity: Math.max(0, r("gravity", "dissolveGravity", J.gravity)),
2220
- taper: Zt(r("taper", "dissolveTaper", J.taper)),
2234
+ taper: $t(r("taper", "dissolveTaper", J.taper)),
2221
2235
  warpFreq: Math.max(.2, r("warpFreq", "dissolveWarpFreq", J.warpFreq)),
2222
2236
  flowSpeed: Math.max(0, r("flowSpeed", "dissolveFlowSpeed", J.flowSpeed)),
2223
2237
  warpStyle: n.warpStyle ?? J.warpStyle,
@@ -2230,13 +2244,13 @@ function tn(e, t) {
2230
2244
  seamBlur: Math.max(0, r("seamBlur", "dissolveSeamBlur", J.seamBlur))
2231
2245
  };
2232
2246
  }
2233
- function nn(e) {
2247
+ function an(e) {
2234
2248
  return e ? e instanceof HTMLImageElement ? e : e.querySelector("img") : null;
2235
2249
  }
2236
- function rn(e) {
2250
+ function on(e) {
2237
2251
  return e && (e.currentSrc || e.src) || null;
2238
2252
  }
2239
- function an(e) {
2253
+ function sn(e) {
2240
2254
  return {
2241
2255
  maskImage: e.style.getPropertyValue("mask-image"),
2242
2256
  maskPriority: e.style.getPropertyPriority("mask-image"),
@@ -2244,11 +2258,11 @@ function an(e) {
2244
2258
  webkitMaskPriority: e.style.getPropertyPriority("-webkit-mask-image")
2245
2259
  };
2246
2260
  }
2247
- function on(e) {
2261
+ function cn(e) {
2248
2262
  let t = e.image, n = e.previousMask;
2249
2263
  !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
2264
  }
2251
- function sn() {
2265
+ function ln() {
2252
2266
  let e = /* @__PURE__ */ new Set(), t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set(), r = 0, i = () => n.forEach((e) => e());
2253
2267
  return {
2254
2268
  registerMelt(t) {
@@ -2266,15 +2280,15 @@ function sn() {
2266
2280
  let n = {
2267
2281
  ...e,
2268
2282
  id: `dissolve-${++r}`,
2269
- previousMask: e.image ? an(e.image) : null
2283
+ previousMask: e.image ? sn(e.image) : null
2270
2284
  };
2271
2285
  return t.add(n), i(), {
2272
2286
  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();
2287
+ let t = an(n.el);
2288
+ t !== n.image && (cn(n), n.image = t, n.previousMask = t ? sn(t) : null), n.opts = rn(n.el, e), i();
2275
2289
  },
2276
2290
  unregister() {
2277
- on(n), t.delete(n), i();
2291
+ cn(n), t.delete(n), i();
2278
2292
  }
2279
2293
  };
2280
2294
  },
@@ -2285,29 +2299,29 @@ function sn() {
2285
2299
  dissolveEntries: () => [...t]
2286
2300
  };
2287
2301
  }
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({
2302
+ function un(e, t, n) {
2303
+ let r = an(t);
2304
+ return r || console.warn("[swimmer-ui] `dissolve` needs an <img> inside the item; text and other DOM content stay unchanged."), e.registerDissolve({
2291
2305
  el: t,
2292
2306
  image: r,
2293
- opts: tn(t, n)
2307
+ opts: rn(t, n)
2294
2308
  });
2295
2309
  }
2296
- function ln({ src: e, options: n = {}, registry: r, children: i, forwardedRef: a, className: o, style: s, ...c }) {
2310
+ function dn({ src: e, options: n = {}, registry: r, children: i, forwardedRef: a, className: o, style: s, ...c }) {
2297
2311
  let l = p(null), u = JSON.stringify(n), f = p(!1), m = (e) => {
2298
2312
  l.current = e, typeof a == "function" ? a(e) : a && (a.current = e);
2299
2313
  };
2300
2314
  return d(() => {
2301
- let t = l.current, i = t?.firstElementChild, a = nn(i), o = e ?? rn(a);
2315
+ let t = l.current, i = t?.firstElementChild, a = an(i), o = e ?? on(a);
2302
2316
  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."));
2317
+ 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
2318
  return;
2305
2319
  }
2306
2320
  return r.registerMelt({
2307
2321
  el: t,
2308
2322
  target: a,
2309
2323
  src: o,
2310
- opts: en(t, n)
2324
+ opts: nn(t, n)
2311
2325
  });
2312
2326
  }, [
2313
2327
  u,
@@ -2321,7 +2335,7 @@ function ln({ src: e, options: n = {}, registry: r, children: i, forwardedRef: a
2321
2335
  children: i
2322
2336
  });
2323
2337
  }
2324
- var un = {
2338
+ var fn = {
2325
2339
  width: 0,
2326
2340
  height: 0,
2327
2341
  melt: null,
@@ -2331,28 +2345,28 @@ function Y(e, t = 2) {
2331
2345
  let n = 10 ** t;
2332
2346
  return Math.round(e * n) / n;
2333
2347
  }
2334
- function dn(e) {
2335
- let t = Zt(e);
2348
+ function pn(e) {
2349
+ let t = $t(e);
2336
2350
  return t * t * (3 - 2 * t);
2337
2351
  }
2338
- function fn(e, t) {
2352
+ function mn(e, t) {
2339
2353
  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
2354
  return Math.hypot(n, r);
2341
2355
  }
2342
- function pn(e, t) {
2356
+ function hn(e, t) {
2343
2357
  return {
2344
2358
  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
2359
  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
2360
  };
2347
2361
  }
2348
- function mn(e, t, n) {
2362
+ function gn(e, t, n) {
2349
2363
  let r = e.ownerDocument.defaultView?.getComputedStyle(e).borderTopLeftRadius ?? "";
2350
2364
  return Math.max(0, Math.min(Number.parseFloat(r) || 0, t / 2, n / 2));
2351
2365
  }
2352
- function hn(e) {
2366
+ function _n(e) {
2353
2367
  return e.getBoundingClientRect();
2354
2368
  }
2355
- function gn(e, t) {
2369
+ function vn(e, t) {
2356
2370
  let n = e.getBoundingClientRect();
2357
2371
  return {
2358
2372
  x: n.left - t.left,
@@ -2361,21 +2375,21 @@ function gn(e, t) {
2361
2375
  h: n.height
2362
2376
  };
2363
2377
  }
2364
- function _n(e, t) {
2365
- let n = gn(e, t);
2378
+ function yn(e, t) {
2379
+ let n = vn(e, t);
2366
2380
  return {
2367
2381
  ...n,
2368
- r: mn(e, n.w, n.h)
2382
+ r: gn(e, n.w, n.h)
2369
2383
  };
2370
2384
  }
2371
- function vn(e) {
2385
+ function bn(e) {
2372
2386
  return `${Y(e.x)}:${Y(e.y)}:${Y(e.w)}:${Y(e.h)}`;
2373
2387
  }
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));
2388
+ function xn(e, t, n) {
2389
+ 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
2390
  return (r + s * 2) * (i + s * 2);
2377
2391
  }
2378
- function bn(e) {
2392
+ function Sn(e) {
2379
2393
  let t = e[0]?.opts;
2380
2394
  return t ? e.slice(1).reduce((e, t) => ({
2381
2395
  ...e,
@@ -2386,25 +2400,25 @@ function bn(e) {
2386
2400
  seamBlur: Math.max(e.seamBlur, t.opts.seamBlur)
2387
2401
  }), { ...t }) : null;
2388
2402
  }
2389
- function xn(e, t, n, r, i, a, o, s, c) {
2403
+ function Cn(e, t, n, r, i, a, o, s, c) {
2390
2404
  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
2405
  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
2406
  }
2393
- function Sn(e, t, n, r, i, a) {
2407
+ function wn(e, t, n, r, i, a) {
2394
2408
  let o = t - e.x, s = n - e.y;
2395
2409
  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
2410
  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
2411
  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
2412
  }
2399
- function Cn(e) {
2413
+ function Tn(e) {
2400
2414
  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
2415
  let t = Y(1 + 4 * e, 3);
2402
2416
  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
2417
  }
2404
- function wn(e) {
2418
+ function En(e) {
2405
2419
  return e.replace(/[^a-zA-Z0-9_-]/g, "");
2406
2420
  }
2407
- var Tn = class {
2421
+ var Dn = class {
2408
2422
  registry;
2409
2423
  getGroup;
2410
2424
  onState;
@@ -2436,7 +2450,7 @@ var Tn = class {
2436
2450
  if (!this.disposed) {
2437
2451
  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
2452
  for (let e of this.registry.entries()) this.setMeltPainted(e, !1);
2439
- for (let e of this.registry.dissolveEntries()) on(e);
2453
+ for (let e of this.registry.dissolveEntries()) cn(e);
2440
2454
  this.releaseClaim(), this.observed.clear();
2441
2455
  }
2442
2456
  }
@@ -2450,7 +2464,7 @@ var Tn = class {
2450
2464
  let t = /* @__PURE__ */ new Set(), n = (e) => {
2451
2465
  e && (t.add(e), this.observed.has(e) || this.resizeObserver?.observe(e));
2452
2466
  };
2453
- for (let e of this.registry.entries()) n(e.el), n(e.target), n(nn(e.target));
2467
+ for (let e of this.registry.entries()) n(e.el), n(e.target), n(an(e.target));
2454
2468
  for (let e of this.registry.dissolveEntries()) n(e.el), n(e.image);
2455
2469
  for (let e of this.observed) t.has(e) || this.resizeObserver?.unobserve(e);
2456
2470
  this.observed.clear(), t.forEach((e) => this.observed.add(e)), !this.mutationObserver && typeof MutationObserver < "u" && (this.mutationObserver = new MutationObserver((e) => {
@@ -2490,8 +2504,8 @@ var Tn = class {
2490
2504
  }
2491
2505
  ensureClaim(e, t, n) {
2492
2506
  if (this.claimed) return !0;
2493
- if (!Ae(yn(e, t, n))) {
2494
- if (!this.budgetWarningEmitted && Xt()) {
2507
+ if (!Ae(xn(e, t, n))) {
2508
+ if (!this.budgetWarningEmitted) {
2495
2509
  this.budgetWarningEmitted = !0;
2496
2510
  let e = Oe(), t = e.activeGroups >= e.maxAnimatedGroups ? "the active-group limit is reached" : "the filter-area limit is exceeded";
2497
2511
  console.warn(`LiquidGroup: the Melt/dissolve image filter budget is insufficient (${t}); degrading to crisp imagery for this group.`);
@@ -2504,7 +2518,7 @@ var Tn = class {
2504
2518
  if (this.raf = 0, this.disposed) return;
2505
2519
  let t = this.registry.entries(), n = this.registry.dissolveEntries();
2506
2520
  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();
2521
+ this.awake = !1, this.lastNow = 0, this.lastActivity = 0, this.meltPairKey = "", this.meltProximity = 0, this.lastStateKey && (this.lastStateKey = "", this.onState(fn)), this.releaseClaim();
2508
2522
  return;
2509
2523
  }
2510
2524
  let r = this.getGroup();
@@ -2514,23 +2528,23 @@ var Tn = class {
2514
2528
  }
2515
2529
  let i = this.lastNow ? Math.min(.25, Math.max(1 / 240, (e - this.lastNow) / 1e3)) : 1 / 60;
2516
2530
  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));
2531
+ let a = _n(r), o = /* @__PURE__ */ new Map();
2532
+ for (let e of r.querySelectorAll(".game-ui-liquid-item")) e.closest(".game-ui-liquid-group") === r && o.set(e, vn(e, a));
2519
2533
  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));
2534
+ let t = o.get(e.el) ?? vn(e.el, a), n = on(an(e.target));
2521
2535
  return n && (e.src = n), {
2522
2536
  ...t,
2523
- r: mn(e.target, t.w, t.h)
2537
+ r: gn(e.target, t.w, t.h)
2524
2538
  };
2525
2539
  }), 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
2540
  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;
2541
+ let f = l && c[0] && c[1] ? pn(1 - mn(c[0], c[1]) / Math.max(8, u.blur * 2.6)) : 0;
2528
2542
  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);
2543
+ let p = this.computeDissolves(n, o, a, i), m = l, h = p.visuals.length > 0, g = m || h, _ = Sn(n);
2530
2544
  if (g && !this.ensureClaim(r, u, _)) {
2531
2545
  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;
2546
+ for (let e of n) cn(e);
2547
+ this.onState(fn), this.lastStateKey = "", this.awake = !1, this.lastNow = 0;
2534
2548
  return;
2535
2549
  }
2536
2550
  if (m) for (let [e, n] of t.entries()) this.setMeltPainted(n, e < 2);
@@ -2547,14 +2561,14 @@ var Tn = class {
2547
2561
  srcA: s[0].src,
2548
2562
  srcB: s[1].src,
2549
2563
  opts: s[0].opts,
2550
- prox: Zt(this.meltProximity)
2564
+ prox: $t(this.meltProximity)
2551
2565
  } : null,
2552
2566
  dissolves: p.visuals
2553
2567
  }, 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);
2568
+ 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
2569
  };
2556
2570
  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(";");
2571
+ let t = e.melt ? `${e.melt.srcA}|${e.melt.srcB}|${bn(e.melt.a)}|${bn(e.melt.b)}|${Y(e.melt.prox, 3)}` : "", n = e.dissolves.map((e) => `${e.id}|${e.src}|${e.neighborSrc ?? ""}|${bn(e.image)}|${Y(e.cx)}|${Y(e.cy)}|${Y(e.d, 2)}|${Y(e.opacity, 3)}|${Y(e.phase, 3)}|${e.mask ?? ""}`).join(";");
2558
2572
  return `${e.width}x${e.height}|${t}|${n}`;
2559
2573
  }
2560
2574
  computeDissolves(e, t, n, r) {
@@ -2562,7 +2576,7 @@ var Tn = class {
2562
2576
  for (let s of e) {
2563
2577
  let e = t.get(s.el), c = s.image;
2564
2578
  if (!e || !c) {
2565
- s.image && on(s);
2579
+ s.image && cn(s);
2566
2580
  continue;
2567
2581
  }
2568
2582
  let l = this.motions.get(s.id) ?? {
@@ -2578,7 +2592,7 @@ var Tn = class {
2578
2592
  let u = Infinity, d = null, f = null;
2579
2593
  for (let [t, n] of o) {
2580
2594
  if (t === s.el) continue;
2581
- let r = fn(e, n);
2595
+ let r = mn(e, n);
2582
2596
  r < u && (u = r, d = n, f = t);
2583
2597
  }
2584
2598
  let p = 0, m = 0;
@@ -2588,11 +2602,11 @@ var Tn = class {
2588
2602
  }
2589
2603
  let h = 0;
2590
2604
  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));
2605
+ let e = pn((1 - u / s.opts.range) / .65), t = pn((p - s.opts.sink * .2) / Math.max(.01, s.opts.sink * .8));
2592
2606
  h = e ** 1.25 * s.opts.strength * (1 - t);
2593
2607
  }
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;
2608
+ if (h >= l.fade) l.fade += (h - l.fade) * Math.min(1, r * Xt), l.release = null;
2609
+ else if (h > .02) l.fade += (h - l.fade) * Math.min(1, r * Zt), l.release = null;
2596
2610
  else if (l.fade > .001 || l.release) {
2597
2611
  l.release ||= {
2598
2612
  from: l.fade,
@@ -2602,26 +2616,26 @@ var Tn = class {
2602
2616
  l.fade = l.release.from * (1 - t) ** 2;
2603
2617
  } else l.fade = 0;
2604
2618
  if (l.fade <= .001) {
2605
- l.fade = 0, on(s);
2619
+ l.fade = 0, cn(s);
2606
2620
  continue;
2607
2621
  }
2608
2622
  let g = d ?? l.contact;
2609
2623
  if (!g) continue;
2610
- let _ = pn(e, g);
2624
+ let _ = hn(e, g);
2611
2625
  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);
2626
+ let v = pn(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;
2627
+ l.opacity = l.release ? (1 - y) ** 2 : l.opacity + (1 - l.opacity) * Math.min(1, r * Xt);
2614
2628
  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
2629
  l.previous = {
2616
2630
  x: e.x,
2617
2631
  y: e.y
2618
2632
  }, 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);
2621
- let ee = Math.atan2(w, C) * 180 / Math.PI, k = {
2633
+ 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 = yn(c, n), D = d && u < Math.max(10, s.opts.blur * 2.5) ? pn(1 - u / Math.max(10, s.opts.blur * 2.5)) : l.fade, O = wn(E, _.x, _.y, b, l.fade, Math.max(D, m * .75));
2634
+ O ? (c.style.setProperty("mask-image", O), c.style.setProperty("-webkit-mask-image", O)) : cn(s);
2635
+ let k = Math.atan2(w, C) * 180 / Math.PI, A = {
2622
2636
  id: s.id,
2623
- src: rn(c) ?? c.src,
2624
- neighborSrc: f ? rn(nn(f)) : null,
2637
+ src: on(c) ?? c.src,
2638
+ neighborSrc: f ? on(an(f)) : null,
2625
2639
  image: E,
2626
2640
  cx: _.x,
2627
2641
  cy: _.y,
@@ -2629,7 +2643,7 @@ var Tn = class {
2629
2643
  opacity: l.opacity,
2630
2644
  phase: l.phase,
2631
2645
  structure: v,
2632
- angle: ee,
2646
+ angle: k,
2633
2647
  gravityX: C,
2634
2648
  gravityY: w,
2635
2649
  elongation: T,
@@ -2638,7 +2652,7 @@ var Tn = class {
2638
2652
  options: s.opts,
2639
2653
  mask: O
2640
2654
  };
2641
- i.push(k), a = a || !!l.release || Math.abs(h - l.fade) > .004 || l.previous === null;
2655
+ i.push(A), a = a || !!l.release || Math.abs(h - l.fade) > .004 || l.previous === null;
2642
2656
  }
2643
2657
  return {
2644
2658
  visuals: i,
@@ -2646,8 +2660,8 @@ var Tn = class {
2646
2660
  };
2647
2661
  }
2648
2662
  };
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 = {
2663
+ function On({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox: d }) {
2664
+ let f = `lgm-${En(u())}`, { blur: p, contrast: m, reach: h, fade: g, warp: _, mix: v, mixBlur: y, gravity: b, waviness: x } = s, S = {
2651
2665
  x: r.x + r.w / 2,
2652
2666
  y: r.y + r.h / 2
2653
2667
  }, C = {
@@ -2656,7 +2670,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2656
2670
  }, w = Math.hypot(r.w, r.h) / 2 * h * d, T = Math.hypot(i.w, i.h) / 2 * h * d, E = {
2657
2671
  x: (S.x + C.x) / 2,
2658
2672
  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})`;
2673
+ }, D = C.x - S.x, O = C.y - S.y, k = Math.max(.001, Math.hypot(D, O)), A = -O / k, j = D / k, ee = Math.max(0, (r.w + i.w) / 2 - Math.abs(D)), M = Math.max(0, (r.h + i.h) / 2 - Math.abs(O)), N = .5 * (ee * Math.abs(A) + M * Math.abs(j)) * d, P = Math.round(Math.atan2(j, A) * 180 / Math.PI), te = Math.round(v * d * 100) / 100, ne = Math.round((2 + (p - 2) * d) * 10) / 10, re = Math.round(_ * d * 10) / 10, ie = Math.round(ne * 2.5 * 10) / 10, ae = Math.round((.4 + (2 + p * .8) * d) * 10) / 10, oe = `translate(${r.x}, ${r.y})`, se = `translate(${i.x}, ${i.y})`;
2660
2674
  return /* @__PURE__ */ n("svg", {
2661
2675
  "aria-hidden": "true",
2662
2676
  focusable: "false",
@@ -2706,7 +2720,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2706
2720
  children: [
2707
2721
  /* @__PURE__ */ t("feGaussianBlur", {
2708
2722
  in: "SourceGraphic",
2709
- stdDeviation: ae,
2723
+ stdDeviation: ne,
2710
2724
  result: "b"
2711
2725
  }),
2712
2726
  /* @__PURE__ */ t("feColorMatrix", {
@@ -2717,7 +2731,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2717
2731
  }),
2718
2732
  /* @__PURE__ */ t("feGaussianBlur", {
2719
2733
  in: "SourceGraphic",
2720
- stdDeviation: M,
2734
+ stdDeviation: ie,
2721
2735
  result: "bc"
2722
2736
  }),
2723
2737
  /* @__PURE__ */ t("feComposite", {
@@ -2736,7 +2750,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2736
2750
  /* @__PURE__ */ t("feDisplacementMap", {
2737
2751
  in: "mix",
2738
2752
  in2: "wn",
2739
- scale: oe,
2753
+ scale: re,
2740
2754
  xChannelSelector: "R",
2741
2755
  yChannelSelector: "G",
2742
2756
  result: "warped"
@@ -2773,7 +2787,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2773
2787
  height: "220%",
2774
2788
  children: /* @__PURE__ */ t("feGaussianBlur", { stdDeviation: g })
2775
2789
  }),
2776
- ie > .01 ? /* @__PURE__ */ n(e, { children: [/* @__PURE__ */ n("filter", {
2790
+ te > .01 ? /* @__PURE__ */ n(e, { children: [/* @__PURE__ */ n("filter", {
2777
2791
  id: `${f}-marble`,
2778
2792
  x: "-25%",
2779
2793
  y: "-25%",
@@ -2796,7 +2810,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2796
2810
  /* @__PURE__ */ t("feDisplacementMap", {
2797
2811
  in: "c",
2798
2812
  in2: "n1",
2799
- scale: ie * 90,
2813
+ scale: te * 90,
2800
2814
  xChannelSelector: "R",
2801
2815
  yChannelSelector: "G",
2802
2816
  result: "d1"
@@ -2811,7 +2825,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2811
2825
  /* @__PURE__ */ t("feDisplacementMap", {
2812
2826
  in: "d1",
2813
2827
  in2: "n2",
2814
- scale: ie * 50,
2828
+ scale: te * 50,
2815
2829
  xChannelSelector: "R",
2816
2830
  yChannelSelector: "G",
2817
2831
  result: "d2"
@@ -2835,7 +2849,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2835
2849
  }),
2836
2850
  /* @__PURE__ */ t("feGaussianBlur", {
2837
2851
  in: "SourceGraphic",
2838
- stdDeviation: ae,
2852
+ stdDeviation: ne,
2839
2853
  result: "mb"
2840
2854
  }),
2841
2855
  /* @__PURE__ */ t("feColorMatrix", {
@@ -2854,7 +2868,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2854
2868
  /* @__PURE__ */ t("feDisplacementMap", {
2855
2869
  in: "mg",
2856
2870
  in2: "mwn",
2857
- scale: oe,
2871
+ scale: re,
2858
2872
  xChannelSelector: "R",
2859
2873
  yChannelSelector: "G",
2860
2874
  result: "mshape"
@@ -2877,9 +2891,9 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2877
2891
  children: /* @__PURE__ */ t("ellipse", {
2878
2892
  cx: E.x,
2879
2893
  cy: E.y,
2880
- rx: (w + T) / 2 + A,
2894
+ rx: (w + T) / 2 + N,
2881
2895
  ry: (w + T) / 2 * b,
2882
- transform: `rotate(${j}, ${E.x}, ${E.y})`,
2896
+ transform: `rotate(${P}, ${E.x}, ${E.y})`,
2883
2897
  fill: "#fff"
2884
2898
  })
2885
2899
  })
@@ -2890,7 +2904,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2890
2904
  y: "-40%",
2891
2905
  width: "180%",
2892
2906
  height: "180%",
2893
- children: /* @__PURE__ */ t("feGaussianBlur", { stdDeviation: se })
2907
+ children: /* @__PURE__ */ t("feGaussianBlur", { stdDeviation: ae })
2894
2908
  }),
2895
2909
  /* @__PURE__ */ n("mask", {
2896
2910
  id: `${f}-ma`,
@@ -2902,7 +2916,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2902
2916
  children: [/* @__PURE__ */ t("g", {
2903
2917
  filter: `url(#${f}-edge)`,
2904
2918
  children: /* @__PURE__ */ t("g", {
2905
- transform: ce,
2919
+ transform: oe,
2906
2920
  children: /* @__PURE__ */ t("rect", {
2907
2921
  width: r.w,
2908
2922
  height: r.h,
@@ -2915,9 +2929,9 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2915
2929
  children: /* @__PURE__ */ t("ellipse", {
2916
2930
  cx: E.x,
2917
2931
  cy: E.y,
2918
- rx: T + A,
2932
+ rx: T + N,
2919
2933
  ry: T,
2920
- transform: `rotate(${j}, ${E.x}, ${E.y})`,
2934
+ transform: `rotate(${P}, ${E.x}, ${E.y})`,
2921
2935
  fill: "#000"
2922
2936
  })
2923
2937
  })]
@@ -2932,7 +2946,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2932
2946
  children: [/* @__PURE__ */ t("g", {
2933
2947
  filter: `url(#${f}-edge)`,
2934
2948
  children: /* @__PURE__ */ t("g", {
2935
- transform: le,
2949
+ transform: se,
2936
2950
  children: /* @__PURE__ */ t("rect", {
2937
2951
  width: i.w,
2938
2952
  height: i.h,
@@ -2945,9 +2959,9 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2945
2959
  children: /* @__PURE__ */ t("ellipse", {
2946
2960
  cx: E.x,
2947
2961
  cy: E.y,
2948
- rx: w + A,
2962
+ rx: w + N,
2949
2963
  ry: w,
2950
- transform: `rotate(${j}, ${E.x}, ${E.y})`,
2964
+ transform: `rotate(${P}, ${E.x}, ${E.y})`,
2951
2965
  fill: "#000"
2952
2966
  })
2953
2967
  })]
@@ -2956,7 +2970,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2956
2970
  /* @__PURE__ */ n("g", {
2957
2971
  filter: `url(#${f}-goo)`,
2958
2972
  children: [/* @__PURE__ */ t("g", {
2959
- transform: ce,
2973
+ transform: oe,
2960
2974
  children: /* @__PURE__ */ t("rect", {
2961
2975
  width: r.w,
2962
2976
  height: r.h,
@@ -2964,7 +2978,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2964
2978
  fill: `url(#${f}-pa)`
2965
2979
  })
2966
2980
  }), /* @__PURE__ */ t("g", {
2967
- transform: le,
2981
+ transform: se,
2968
2982
  children: /* @__PURE__ */ t("rect", {
2969
2983
  width: i.w,
2970
2984
  height: i.h,
@@ -2973,12 +2987,12 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2973
2987
  })
2974
2988
  })]
2975
2989
  }),
2976
- ie > .01 ? /* @__PURE__ */ t("g", {
2990
+ te > .01 ? /* @__PURE__ */ t("g", {
2977
2991
  mask: `url(#${f}-marblemask)`,
2978
2992
  children: /* @__PURE__ */ n("g", {
2979
2993
  filter: `url(#${f}-marble)`,
2980
2994
  children: [/* @__PURE__ */ t("g", {
2981
- transform: ce,
2995
+ transform: oe,
2982
2996
  children: /* @__PURE__ */ t("rect", {
2983
2997
  width: r.w,
2984
2998
  height: r.h,
@@ -2986,7 +3000,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2986
3000
  fill: `url(#${f}-pa)`
2987
3001
  })
2988
3002
  }), /* @__PURE__ */ t("g", {
2989
- transform: le,
3003
+ transform: se,
2990
3004
  children: /* @__PURE__ */ t("rect", {
2991
3005
  width: i.w,
2992
3006
  height: i.h,
@@ -2999,7 +3013,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
2999
3013
  /* @__PURE__ */ t("g", {
3000
3014
  mask: `url(#${f}-ma)`,
3001
3015
  children: /* @__PURE__ */ t("g", {
3002
- transform: ce,
3016
+ transform: oe,
3003
3017
  children: /* @__PURE__ */ t("rect", {
3004
3018
  width: r.w,
3005
3019
  height: r.h,
@@ -3011,7 +3025,7 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
3011
3025
  /* @__PURE__ */ t("g", {
3012
3026
  mask: `url(#${f}-mb)`,
3013
3027
  children: /* @__PURE__ */ t("g", {
3014
- transform: le,
3028
+ transform: se,
3015
3029
  children: /* @__PURE__ */ t("rect", {
3016
3030
  width: i.w,
3017
3031
  height: i.h,
@@ -3023,10 +3037,10 @@ function En({ a: r, b: i, srcA: a, srcB: o, opts: s, width: c, height: l, prox:
3023
3037
  ]
3024
3038
  });
3025
3039
  }
3026
- function Dn({ visuals: r }) {
3027
- let i = `lgd-${wn(u())}`;
3040
+ function kn({ visuals: r }) {
3041
+ let i = `lgd-${En(u())}`;
3028
3042
  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);
3043
+ let r = `${i}-${En(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 = Cn(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
3044
  return /* @__PURE__ */ n("g", {
3031
3045
  "data-liquid-gooey-dissolve": "",
3032
3046
  children: [
@@ -3158,7 +3172,7 @@ function Dn({ visuals: r }) {
3158
3172
  /* @__PURE__ */ t("feColorMatrix", {
3159
3173
  in: "erosion-noise",
3160
3174
  type: "matrix",
3161
- values: Cn(c),
3175
+ values: Tn(c),
3162
3176
  result: "erosion"
3163
3177
  }),
3164
3178
  /* @__PURE__ */ t("feComposite", {
@@ -3230,10 +3244,10 @@ function Dn({ visuals: r }) {
3230
3244
  }, e.id);
3231
3245
  }) });
3232
3246
  }
3233
- function On({ registry: e, getGroup: r }) {
3234
- let [i, a] = m(un);
3247
+ function An({ registry: e, getGroup: r }) {
3248
+ let [i, a] = m(fn);
3235
3249
  return d(() => {
3236
- let t = new Tn({
3250
+ let t = new Dn({
3237
3251
  registry: e,
3238
3252
  getGroup: r,
3239
3253
  onState: a
@@ -3255,42 +3269,42 @@ function On({ registry: e, getGroup: r }) {
3255
3269
  overflow: "visible",
3256
3270
  pointerEvents: "none"
3257
3271
  },
3258
- children: [i.melt ? /* @__PURE__ */ t(En, {
3272
+ children: [i.melt ? /* @__PURE__ */ t(On, {
3259
3273
  ...i.melt,
3260
3274
  width: i.width,
3261
3275
  height: i.height
3262
- }) : null, i.dissolves.length > 0 ? /* @__PURE__ */ t(Dn, { visuals: i.dissolves }) : null]
3276
+ }) : null, i.dissolves.length > 0 ? /* @__PURE__ */ t(kn, { visuals: i.dissolves }) : null]
3263
3277
  });
3264
3278
  }
3265
3279
  //#endregion
3266
3280
  //#region src/LiquidGroup.tsx
3267
- var kn = i(null);
3268
- function An() {
3269
- let e = c(kn);
3281
+ var jn = i(null);
3282
+ function Mn() {
3283
+ let e = c(jn);
3270
3284
  if (!e) throw Error("<LiquidGroup.Item> must be rendered inside <LiquidGroup>.");
3271
3285
  return e;
3272
3286
  }
3273
- function jn(e) {
3287
+ function Nn(e) {
3274
3288
  return e.replace(/[^a-zA-Z0-9_-]/g, "");
3275
3289
  }
3276
- function Mn(e, t) {
3290
+ function Pn(e, t) {
3277
3291
  return Number.isFinite(e) ? e : t;
3278
3292
  }
3279
- function Nn(e, t) {
3293
+ function Fn(e, t) {
3280
3294
  if (!e) return e;
3281
3295
  let n = /^var\((--[\w-]+)\)$/.exec(e.trim());
3282
3296
  if (!n || !t) return e;
3283
3297
  let r = t.ownerDocument.defaultView;
3284
3298
  return r && r.getComputedStyle(t).getPropertyValue(n[1] ?? "").trim() || e;
3285
3299
  }
3286
- function Pn(e, t, n) {
3287
- let r = Nn(e, t), i = Number.parseFloat(r ?? "");
3300
+ function In(e, t, n) {
3301
+ let r = Fn(e, t), i = Number.parseFloat(r ?? "");
3288
3302
  return Number.isFinite(i) ? i : n;
3289
3303
  }
3290
- function Fn(...e) {
3304
+ function Ln(...e) {
3291
3305
  return e.filter(Boolean).join(" ") || void 0;
3292
3306
  }
3293
- function In(e) {
3307
+ function Rn(e) {
3294
3308
  let t = { ...e };
3295
3309
  for (let e of [
3296
3310
  "children",
@@ -3309,147 +3323,148 @@ function In(e) {
3309
3323
  ]) delete t[e];
3310
3324
  return t;
3311
3325
  }
3312
- function Ln() {
3326
+ function zn() {
3313
3327
  return typeof window > "u" || typeof window.matchMedia != "function" ? null : window.matchMedia("(prefers-reduced-motion: reduce)");
3314
3328
  }
3315
- function Rn() {
3316
- let [e, t] = m(() => Ln()?.matches ?? !1);
3329
+ function Bn() {
3330
+ let [e, t] = m(() => zn()?.matches ?? !1);
3317
3331
  return l(() => {
3318
- let e = Ln();
3332
+ let e = zn();
3319
3333
  if (!e) return;
3320
3334
  let n = (e) => t(e.matches);
3321
3335
  return t(e.matches), e.addEventListener("change", n), () => e.removeEventListener("change", n);
3322
3336
  }, []), e;
3323
3337
  }
3324
- function zn(e) {
3338
+ function Vn(e) {
3325
3339
  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
3340
  }
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({
3341
+ var Hn = 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) {
3342
+ let w = p(null), [T, E] = m(null), [D, O] = m({
3329
3343
  w: 0,
3330
3344
  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), []);
3345
+ }), [k, A] = m({
3346
+ waviness: Pe.waviness,
3347
+ wavinessFreq: Pe.wavinessFreq
3348
+ }), [j, ee] = m(0), M = p(0), N = Bn(), P = v === "reduced" || N, [te, ne] = m(P ? "reduced" : "static"), re = Math.max(0, Pn(e, 6)), ie = Math.max(1, Pn(r, 18)), ae = Math.max(0, Pn(a, 24)), oe = Math.max(0, Pn(h ?? k.waviness, Pe.waviness)), se = _ !== !1 && Math.max(0, Pn(_ ?? .3, ze)), ce = Be(oe, D.w > 0 && D.h > 0 ? Math.min(D.w, D.h) : 0, se), le = Math.max(0, Pn(g ?? k.wavinessFreq, Pe.wavinessFreq)), F = Fn(o, w.current), ue = Fn(c, w.current), de = f(() => Kt(F), [F]), fe = f(() => qt(ue), [ue]), pe = Math.ceil(re * 3 + ae + Vn(de) + (fe ? fe.width : 0) + ce + (ce > 0 ? Math.ceil(Ne * 3) : 0)), me = p(pe);
3349
+ me.current = pe;
3350
+ let I = Math.ceil(pe + j), he = p(I);
3351
+ he.current = I;
3352
+ let ge = `liquid-gooey-${Nn(u())}`, L = s((e) => {
3353
+ w.current = e, typeof C == "function" ? C(e) : C && (C.current = e);
3354
+ }, [C]), R = s((e) => E(e), []);
3341
3355
  d(() => {
3342
- let e = C.current;
3356
+ let e = w.current;
3343
3357
  if (!e) return;
3344
3358
  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))
3359
+ waviness: Math.max(0, h === void 0 ? In(z.waviness, e, Pe.waviness) : Pn(h, Pe.waviness)),
3360
+ wavinessFreq: Math.max(0, g === void 0 ? In(z.wavinessFreq, e, Pe.wavinessFreq) : Pn(g, Pe.wavinessFreq))
3347
3361
  };
3348
- ee((e) => e.waviness === t.waviness && e.wavinessFreq === t.wavinessFreq ? e : t);
3362
+ A((e) => e.waviness === t.waviness && e.wavinessFreq === t.wavinessFreq ? e : t);
3349
3363
  }, [h, g]);
3350
- let I = f(() => new Bt({
3351
- getGroup: () => C.current,
3364
+ let B = f(() => new Ut({
3365
+ getGroup: () => w.current,
3352
3366
  getFilterArea: () => {
3353
- let e = C.current;
3354
- return e ? (e.offsetWidth + (pe.current + ne.current) * 2) * (e.offsetHeight + (pe.current + ne.current) * 2) : 0;
3367
+ let e = w.current;
3368
+ return e ? (e.offsetWidth + (me.current + M.current) * 2) * (e.offsetHeight + (me.current + M.current) * 2) : 0;
3355
3369
  },
3356
- onModeChange: ie,
3370
+ onModeChange: ne,
3357
3371
  onFeaturePaddingChange: (e) => {
3358
- ne.current = e, te((t) => Math.abs(t - e) < .5 ? t : e);
3372
+ M.current = e, ee((t) => Math.abs(t - e) < .5 ? t : e);
3359
3373
  },
3360
- follow: _ === "follow"
3361
- }), [_]), L = f(() => sn(), []);
3374
+ follow: v === "follow"
3375
+ }), [v]), V = f(() => ln(), []);
3362
3376
  d(() => {
3363
- let e = C.current;
3377
+ let e = w.current;
3364
3378
  if (!e) return;
3365
3379
  let t = () => {
3366
3380
  let t = {
3367
3381
  w: e.offsetWidth,
3368
3382
  h: e.offsetHeight
3369
3383
  };
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));
3384
+ O((e) => e.w === t.w && e.h === t.h ? e : t), B.setFilterArea((t.w + he.current * 2) * (t.h + he.current * 2));
3371
3385
  };
3372
3386
  if (t(), typeof ResizeObserver > "u") return;
3373
3387
  let n = new ResizeObserver(t);
3374
3388
  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);
3389
+ }, [B, I]), l(() => {
3390
+ B.setReducedMotion(P);
3391
+ }, [B, P]), l(() => () => B.dispose(), [B]);
3392
+ let _e = Math.max(1, D.w), ve = Math.max(1, D.h), H = Ln("game-ui-liquid-group", y);
3379
3393
  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)),
3394
+ ...S,
3395
+ ref: L,
3396
+ className: H,
3397
+ "data-liquid-filter-area": Math.round((D.w + I * 2) * (D.h + I * 2)),
3384
3398
  "data-liquid-filter-budget": we,
3385
- "data-liquid-feature-padding": Math.round(k * 10) / 10,
3386
- "data-liquid-motion": j,
3387
- style: y,
3399
+ "data-liquid-feature-padding": Math.round(j * 10) / 10,
3400
+ "data-liquid-motion": te,
3401
+ "data-liquid-waviness": Math.round(ce * 100) / 100,
3402
+ style: b,
3388
3403
  children: [
3389
3404
  /* @__PURE__ */ n("svg", {
3390
3405
  "aria-hidden": "true",
3391
3406
  className: "game-ui-liquid-silhouette",
3392
3407
  "data-liquid-gooey-silhouette": "",
3393
3408
  focusable: "false",
3394
- viewBox: `0 0 ${R} ${B}`,
3409
+ viewBox: `0 0 ${_e} ${ve}`,
3395
3410
  children: [/* @__PURE__ */ t("defs", { children: /* @__PURE__ */ t("filter", {
3396
3411
  colorInterpolationFilters: "sRGB",
3397
3412
  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,
3413
+ height: ve + I * 2,
3414
+ id: ge,
3415
+ width: _e + I * 2,
3416
+ x: -I,
3417
+ y: -I,
3418
+ children: /* @__PURE__ */ t(Re, {
3419
+ blur: re,
3420
+ contrast: ie,
3406
3421
  shadows: de,
3407
- stroke: N,
3408
- waviness: se,
3409
- wavinessFreq: ce
3422
+ stroke: fe,
3423
+ waviness: ce,
3424
+ wavinessFreq: le
3410
3425
  })
3411
3426
  }) }), /* @__PURE__ */ t("g", {
3412
- ref: ge,
3427
+ ref: R,
3413
3428
  fill: i,
3414
- filter: `url(#${he})`
3429
+ filter: `url(#${ge})`
3415
3430
  })]
3416
3431
  }),
3417
- /* @__PURE__ */ t(On, {
3418
- registry: L,
3419
- getGroup: () => C.current
3432
+ /* @__PURE__ */ t(An, {
3433
+ registry: V,
3434
+ getGroup: () => w.current
3420
3435
  }),
3421
- /* @__PURE__ */ t(kn.Provider, {
3436
+ /* @__PURE__ */ t(jn.Provider, {
3422
3437
  value: {
3423
- portal: w,
3424
- engine: I,
3425
- follow: _ === "follow",
3426
- imageMelt: L
3438
+ portal: T,
3439
+ engine: B,
3440
+ follow: v === "follow",
3441
+ imageMelt: V
3427
3442
  },
3428
3443
  children: /* @__PURE__ */ t("div", {
3429
3444
  className: "game-ui-liquid-content",
3430
- children: b
3445
+ children: x
3431
3446
  })
3432
3447
  })
3433
3448
  ]
3434
3449
  });
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 = {
3450
+ }), Un = 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) {
3451
+ let { portal: D, engine: O, follow: k, imageMelt: A } = Mn(), j = `liquid-item-${Nn(u())}`, ee = p(null), M = p(null), N = p(null), P = p(null), te = JSON.stringify(a ?? null), ne = a !== void 0 && a !== !1, re = f(() => {
3452
+ let e = r === "morph" || r === "bend" ? r : void 0, t = e === "bend", n = r === "bend" || k && y === void 0 && r !== "morph" || ne && y === void 0 && r !== "morph" ? void 0 : y ?? {}, i = {
3438
3453
  ...e === void 0 ? {} : { effect: e },
3439
3454
  ...n === void 0 ? {} : { morph: n },
3440
3455
  ...b === void 0 ? {} : { bend: b },
3441
3456
  ...x === void 0 && !t ? {} : { observe: t || x },
3442
- x: Mn(o, 0),
3443
- y: Mn(c, 0),
3444
- scale: Mn(m, 1)
3457
+ x: Pn(o, 0),
3458
+ y: Pn(c, 0),
3459
+ scale: Pn(m, 1)
3445
3460
  };
3446
3461
  return g !== void 0 && (i.transition = g), _ !== void 0 && (i.delay = _), v !== void 0 && (i.radius = v), i;
3447
3462
  }, [
3448
3463
  b,
3449
3464
  _,
3450
3465
  r,
3451
- ee,
3452
- ae,
3466
+ k,
3467
+ ne,
3453
3468
  y,
3454
3469
  x,
3455
3470
  v,
@@ -3458,66 +3473,66 @@ var Bn = a(function({ blur: e = 6, contrast: r = 18, fill: i = "var(--game-ui-su
3458
3473
  o,
3459
3474
  c
3460
3475
  ]);
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);
3476
+ N.current === null && (N.current = re);
3477
+ let ie = s((e) => {
3478
+ ee.current = e, typeof E == "function" ? E(e) : E && (E.current = e);
3464
3479
  }, [E]);
3465
3480
  return d(() => {
3466
- let e = ne.current, t = re.current;
3467
- if (!(!D || !e || !t || !A.current)) return O.register({
3468
- id: te,
3481
+ let e = ee.current, t = M.current;
3482
+ if (!(!D || !e || !t || !N.current)) return O.register({
3483
+ id: j,
3469
3484
  host: e,
3470
3485
  blob: t,
3471
- config: A.current
3486
+ config: N.current
3472
3487
  });
3473
3488
  }, [
3474
3489
  O,
3475
- te,
3490
+ j,
3476
3491
  D
3477
3492
  ]), d(() => {
3478
- O.update(te, oe);
3493
+ O.update(j, re);
3479
3494
  }, [
3480
- oe,
3495
+ re,
3481
3496
  O,
3482
- te
3497
+ j
3483
3498
  ]), d(() => () => {
3484
- j.current?.unregister(), j.current = null;
3485
- }, [k]), d(() => {
3499
+ P.current?.unregister(), P.current = null;
3500
+ }, [A]), d(() => {
3486
3501
  if (r === "move" || a === void 0 || a === !1) {
3487
- j.current?.unregister(), j.current = null;
3502
+ P.current?.unregister(), P.current = null;
3488
3503
  return;
3489
3504
  }
3490
- let e = ne.current;
3505
+ let e = ee.current;
3491
3506
  if (e) {
3492
- if (j.current) {
3493
- j.current.update(a);
3507
+ if (P.current) {
3508
+ P.current.update(a);
3494
3509
  return;
3495
3510
  }
3496
- j.current = cn(k, e, a);
3511
+ P.current = un(A, e, a);
3497
3512
  }
3498
3513
  }, [
3499
- ie,
3514
+ te,
3500
3515
  r,
3501
- k
3502
- ]), l(() => {}, [r, ae]), d(() => {}, []), /* @__PURE__ */ n(e, { children: [/* @__PURE__ */ t("div", {
3516
+ A
3517
+ ]), l(() => {}, [r, ne]), d(() => {}, []), /* @__PURE__ */ n(e, { children: [/* @__PURE__ */ t("div", {
3503
3518
  ...T,
3504
- ref: M,
3505
- className: Fn("game-ui-liquid-item", S),
3519
+ ref: ie,
3520
+ className: Ln("game-ui-liquid-item", S),
3506
3521
  style: C,
3507
3522
  children: w
3508
3523
  }), D ? h(/* @__PURE__ */ t("path", {
3509
- ref: re,
3524
+ ref: M,
3510
3525
  d: "",
3511
3526
  "data-liquid-gooey-blob": ""
3512
3527
  }), D) : null] });
3513
- }), Hn = a(function(e, n) {
3514
- let { imageMelt: r } = An();
3515
- if (e.effect !== "melt") return /* @__PURE__ */ t(Vn, {
3528
+ }), Wn = a(function(e, n) {
3529
+ let { imageMelt: r } = Mn();
3530
+ if (e.effect !== "melt") return /* @__PURE__ */ t(Un, {
3516
3531
  ...e,
3517
3532
  ref: n
3518
3533
  });
3519
- let i = In(e), a = e.children, o = { ...e.melt ?? {} }, s = o.src;
3520
- return delete o.src, /* @__PURE__ */ t(ln, {
3534
+ let i = Rn(e), a = e.children, o = { ...e.melt ?? {} }, s = o.src;
3535
+ return delete o.src, /* @__PURE__ */ t(dn, {
3521
3536
  ...i,
3522
3537
  registry: r,
3523
3538
  children: a,
@@ -3525,10 +3540,10 @@ var Bn = a(function({ blur: e = 6, contrast: r = 18, fill: i = "var(--game-ui-su
3525
3540
  ...s === void 0 ? {} : { src: s },
3526
3541
  ...n === void 0 ? {} : { forwardedRef: n }
3527
3542
  });
3528
- }), Un = Object.assign(Bn, { Item: Hn });
3543
+ }), Gn = Object.assign(Hn, { Item: Wn });
3529
3544
  //#endregion
3530
3545
  //#region src/GameCallout.tsx
3531
- function Wn({ heading: e, children: r, tone: i = "info", className: a, ...o }) {
3546
+ function Kn({ heading: e, children: r, tone: i = "info", className: a, ...o }) {
3532
3547
  return /* @__PURE__ */ n("div", {
3533
3548
  className: [
3534
3549
  "game-ui-callout",
@@ -3549,7 +3564,7 @@ function Wn({ heading: e, children: r, tone: i = "info", className: a, ...o }) {
3549
3564
  }
3550
3565
  //#endregion
3551
3566
  //#region src/GameDialog.tsx
3552
- function Gn({ children: e, className: r, title: i }) {
3567
+ function qn({ children: e, className: r, title: i }) {
3553
3568
  let a = u();
3554
3569
  return /* @__PURE__ */ n("section", {
3555
3570
  "aria-labelledby": a,
@@ -3567,7 +3582,7 @@ function Gn({ children: e, className: r, title: i }) {
3567
3582
  }
3568
3583
  //#endregion
3569
3584
  //#region src/GameHistoryPanel.tsx
3570
- function Kn({ entries: e, label: r }) {
3585
+ function Jn({ entries: e, label: r }) {
3571
3586
  return /* @__PURE__ */ t("section", {
3572
3587
  "aria-label": r,
3573
3588
  className: "game-ui-history",
@@ -3583,7 +3598,7 @@ function Kn({ entries: e, label: r }) {
3583
3598
  }
3584
3599
  //#endregion
3585
3600
  //#region src/GameHudActions.tsx
3586
- function qn({ children: e, className: n, label: r, ...i }) {
3601
+ function Yn({ children: e, className: n, label: r, ...i }) {
3587
3602
  return /* @__PURE__ */ t("nav", {
3588
3603
  "aria-label": r,
3589
3604
  className: ["game-ui-hud-actions", n].filter(Boolean).join(" "),
@@ -3603,7 +3618,7 @@ function X({ children: e, className: r, title: i, tone: a = "default", ...o }) {
3603
3618
  children: [i ? /* @__PURE__ */ t("h3", { children: i }) : null, e]
3604
3619
  });
3605
3620
  }
3606
- function Jn({ children: e, className: n, label: r, type: i = "button", ...a }) {
3621
+ function Xn({ children: e, className: n, label: r, type: i = "button", ...a }) {
3607
3622
  return /* @__PURE__ */ t("button", {
3608
3623
  "aria-label": r,
3609
3624
  className: ["game-ui-icon-button", n].filter(Boolean).join(" "),
@@ -3612,7 +3627,7 @@ function Jn({ children: e, className: n, label: r, type: i = "button", ...a }) {
3612
3627
  children: e
3613
3628
  });
3614
3629
  }
3615
- function Yn({ children: e, label: i }) {
3630
+ function Zn({ children: e, label: i }) {
3616
3631
  let a = u();
3617
3632
  return /* @__PURE__ */ n("span", {
3618
3633
  className: "game-ui-tooltip",
@@ -3623,7 +3638,7 @@ function Yn({ children: e, label: i }) {
3623
3638
  })]
3624
3639
  });
3625
3640
  }
3626
- function Xn({ activeId: e, id: n, onSelect: r, tabs: i }) {
3641
+ function Qn({ activeId: e, id: n, onSelect: r, tabs: i }) {
3627
3642
  let a = u(), o = n ?? a;
3628
3643
  return /* @__PURE__ */ t("div", {
3629
3644
  className: "game-ui-tabs",
@@ -3663,10 +3678,10 @@ function Xn({ activeId: e, id: n, onSelect: r, tabs: i }) {
3663
3678
  }, n.id))
3664
3679
  });
3665
3680
  }
3666
- function Zn(e, t) {
3681
+ function $n(e, t) {
3667
3682
  return e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height;
3668
3683
  }
3669
- function Qn({ activeId: e, label: r, onSelect: i, options: a }) {
3684
+ function er({ activeId: e, label: r, onSelect: i, options: a }) {
3670
3685
  let o = p(null), s = p([]), [c, l] = m({
3671
3686
  x: 0,
3672
3687
  y: 0,
@@ -3683,7 +3698,7 @@ function Qn({ activeId: e, label: r, onSelect: i, options: a }) {
3683
3698
  width: r.width,
3684
3699
  height: r.height
3685
3700
  };
3686
- l((e) => Zn(e, i) ? e : i);
3701
+ l((e) => $n(e, i) ? e : i);
3687
3702
  };
3688
3703
  if (n(), typeof ResizeObserver > "u") return;
3689
3704
  let r = new ResizeObserver(n);
@@ -3698,7 +3713,7 @@ function Qn({ activeId: e, label: r, onSelect: i, options: a }) {
3698
3713
  className: "game-ui-segmented",
3699
3714
  role: "group",
3700
3715
  children: [
3701
- /* @__PURE__ */ t(Un, {
3716
+ /* @__PURE__ */ t(Gn, {
3702
3717
  "aria-hidden": "true",
3703
3718
  className: "game-ui-segmented-surface",
3704
3719
  fill: "var(--game-ui-surface-raised)",
@@ -3709,7 +3724,7 @@ function Qn({ activeId: e, label: r, onSelect: i, options: a }) {
3709
3724
  pointerEvents: "none",
3710
3725
  position: "absolute"
3711
3726
  },
3712
- children: /* @__PURE__ */ t(Un.Item, {
3727
+ children: /* @__PURE__ */ t(Gn.Item, {
3713
3728
  style: {
3714
3729
  borderRadius: "var(--game-ui-radius-control)",
3715
3730
  inset: 0,
@@ -3718,7 +3733,7 @@ function Qn({ activeId: e, label: r, onSelect: i, options: a }) {
3718
3733
  children: null
3719
3734
  })
3720
3735
  }),
3721
- c.width > 0 && c.height > 0 ? /* @__PURE__ */ t(Un, {
3736
+ c.width > 0 && c.height > 0 ? /* @__PURE__ */ t(Gn, {
3722
3737
  "aria-hidden": "true",
3723
3738
  className: "game-ui-segmented-follow",
3724
3739
  fill: "var(--game-ui-secondary)",
@@ -3729,7 +3744,7 @@ function Qn({ activeId: e, label: r, onSelect: i, options: a }) {
3729
3744
  pointerEvents: "none",
3730
3745
  position: "absolute"
3731
3746
  },
3732
- children: /* @__PURE__ */ t(Un.Item, {
3747
+ children: /* @__PURE__ */ t(Gn.Item, {
3733
3748
  "aria-hidden": "true",
3734
3749
  style: {
3735
3750
  borderRadius: "var(--game-ui-radius-control)",
@@ -3758,7 +3773,7 @@ function Qn({ activeId: e, label: r, onSelect: i, options: a }) {
3758
3773
  ]
3759
3774
  });
3760
3775
  }
3761
- function $n({ label: e, max: r, min: i, onChange: a, value: o }) {
3776
+ function tr({ label: e, max: r, min: i, onChange: a, value: o }) {
3762
3777
  return /* @__PURE__ */ n("label", {
3763
3778
  className: "game-ui-slider",
3764
3779
  children: [/* @__PURE__ */ t("span", { children: e }), /* @__PURE__ */ t("input", {
@@ -3772,7 +3787,7 @@ function $n({ label: e, max: r, min: i, onChange: a, value: o }) {
3772
3787
  })]
3773
3788
  });
3774
3789
  }
3775
- function er({ checked: e, disabled: r, label: i, onClick: a }) {
3790
+ function nr({ checked: e, disabled: r, label: i, onClick: a }) {
3776
3791
  return /* @__PURE__ */ n("button", {
3777
3792
  "aria-checked": e,
3778
3793
  className: "game-ui-toggle",
@@ -3786,7 +3801,7 @@ function er({ checked: e, disabled: r, label: i, onClick: a }) {
3786
3801
  })]
3787
3802
  });
3788
3803
  }
3789
- function tr({ items: e, label: n, onSelect: r }) {
3804
+ function rr({ items: e, label: n, onSelect: r }) {
3790
3805
  return /* @__PURE__ */ t("div", {
3791
3806
  "aria-label": n,
3792
3807
  className: "game-ui-radial-menu",
@@ -3801,7 +3816,7 @@ function tr({ items: e, label: n, onSelect: r }) {
3801
3816
  }, e.id))
3802
3817
  });
3803
3818
  }
3804
- function nr({ children: e, tone: n = "info" }) {
3819
+ function ir({ children: e, tone: n = "info" }) {
3805
3820
  return /* @__PURE__ */ t("div", {
3806
3821
  className: "game-ui-toast",
3807
3822
  "data-toast-tone": n,
@@ -3809,7 +3824,7 @@ function nr({ children: e, tone: n = "info" }) {
3809
3824
  children: e
3810
3825
  });
3811
3826
  }
3812
- function rr({ actionLabel: e, children: r, title: i }) {
3827
+ function ar({ actionLabel: e, children: r, title: i }) {
3813
3828
  return /* @__PURE__ */ n("section", {
3814
3829
  "aria-label": i,
3815
3830
  className: "game-ui-prompt",
@@ -3821,7 +3836,7 @@ function rr({ actionLabel: e, children: r, title: i }) {
3821
3836
  }
3822
3837
  //#endregion
3823
3838
  //#region src/clay/assets.ts
3824
- var ir = "/assets/game/ui/clay/phase03-clay-kit", Z = (e) => `${ir}/${e}`, ar = {
3839
+ var or = "/assets/game/ui/clay/phase03-clay-kit", Z = (e) => `${or}/${e}`, sr = {
3825
3840
  ai: { line: Z("icons/function/brain-v1.png") },
3826
3841
  alert: {
3827
3842
  game: Z("components/common/alert-v1.png"),
@@ -3911,20 +3926,20 @@ var ir = "/assets/game/ui/clay/phase03-clay-kit", Z = (e) => `${ir}/${e}`, ar =
3911
3926
  game: Z("icons/common/target-v1.png"),
3912
3927
  line: Z("icons/function/target-v1.png")
3913
3928
  }
3914
- }, or = Object.keys(ar), sr = ir;
3915
- function cr(e) {
3916
- let t = sr;
3929
+ }, cr = Object.keys(sr), lr = or;
3930
+ function ur(e) {
3931
+ let t = lr;
3917
3932
  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
3933
  }
3919
- function lr(e, t) {
3920
- let n = ar[e];
3921
- return cr(t === "line" ? n.line ?? n.game ?? "" : n.game ?? n.line ?? "");
3934
+ function dr(e, t) {
3935
+ let n = sr[e];
3936
+ return ur(t === "line" ? n.line ?? n.game ?? "" : n.game ?? n.line ?? "");
3922
3937
  }
3923
- function ur(e) {
3924
- let t = ar[e], n = [];
3938
+ function fr(e) {
3939
+ let t = sr[e], n = [];
3925
3940
  return t.game && n.push("game"), t.line && n.push("line"), n;
3926
3941
  }
3927
- var dr = {
3942
+ var pr = {
3928
3943
  anvil: Z("icons/common/anvil-v1.png"),
3929
3944
  arrow: Z("icons/common/arrow-v1.png"),
3930
3945
  bomb: Z("icons/common/bomb-v1.png"),
@@ -3951,7 +3966,7 @@ var dr = {
3951
3966
  swordB: Z("icons/common/sword-b-v1.png"),
3952
3967
  talaria: Z("icons/common/talaria-v1.png"),
3953
3968
  treasure: Z("icons/common/treasure-v1.png")
3954
- }, fr = Object.keys(dr), pr = {
3969
+ }, mr = Object.keys(pr), hr = {
3955
3970
  buttons: {
3956
3971
  primary: Z("buttons/button-brown-large-v2.png"),
3957
3972
  blue: Z("buttons/button-blue-large-v2.png"),
@@ -3972,7 +3987,7 @@ var dr = {
3972
3987
  tabSelected: Z("components/common/tab-s-v1.png"),
3973
3988
  tabNormal: Z("components/common/tab-n-v1.png")
3974
3989
  },
3975
- icons: Object.fromEntries(or.map((e) => [e, lr(e)])),
3990
+ icons: Object.fromEntries(cr.map((e) => [e, dr(e)])),
3976
3991
  catalog: {
3977
3992
  manifest: "/assets/game/ui/clay/asset-manifest.json",
3978
3993
  sourceCatalog: Z("catalog/phase03-clay-ui-catalog.json"),
@@ -3980,7 +3995,7 @@ var dr = {
3980
3995
  contactSheetComponents: Z("catalog/component-candidates-contact-sheet-v1.png"),
3981
3996
  contactSheetFunction: Z("catalog/function-icons-contact-sheet-v1.png")
3982
3997
  }
3983
- }, mr = {
3998
+ }, gr = {
3984
3999
  ai: "AI",
3985
4000
  alert: "!",
3986
4001
  card: "▣",
@@ -4016,7 +4031,7 @@ var dr = {
4016
4031
  timer: "◷",
4017
4032
  trophy: "★",
4018
4033
  vote: "⌾"
4019
- }, hr = {
4034
+ }, _r = {
4020
4035
  ai: L.berry,
4021
4036
  alert: L.red,
4022
4037
  card: L.honey,
@@ -4053,35 +4068,35 @@ var dr = {
4053
4068
  trophy: L.honey,
4054
4069
  vote: L.red
4055
4070
  };
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>`;
4058
- return `data:image/svg+xml,${encodeURIComponent(i)}`;
4059
- }
4060
- var _r = "inline";
4061
4071
  function vr(e) {
4062
- _r = e;
4063
- }
4064
- function yr() {
4065
- return _r;
4072
+ let t = gr[e], n = _r[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>`;
4073
+ return `data:image/svg+xml,${encodeURIComponent(i)}`;
4066
4074
  }
4075
+ var yr = "inline";
4067
4076
  function br(e) {
4068
- sr = e.replace(/\/+$/, "");
4077
+ yr = e;
4069
4078
  }
4070
4079
  function xr() {
4071
- return sr;
4080
+ return yr;
4081
+ }
4082
+ function Sr(e) {
4083
+ lr = e.replace(/\/+$/, "");
4072
4084
  }
4073
- var Sr = !1;
4074
4085
  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."));
4086
+ return lr;
4087
+ }
4088
+ var wr = !1;
4089
+ function Tr() {
4090
+ wr || (wr = !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
4091
  }
4077
- function wr() {
4078
- Sr = !0;
4092
+ function Er() {
4093
+ wr = !0;
4079
4094
  }
4080
- function Tr(e, t = {}) {
4081
- return t.inline ?? _r === "inline" ? (Cr(), gr(e)) : lr(e, t.style);
4095
+ function Dr(e, t = {}) {
4096
+ return t.inline ?? yr === "inline" ? (Tr(), vr(e)) : dr(e, t.style);
4082
4097
  }
4083
- function Er(e, t) {
4084
- return lr(e, t);
4098
+ function Or(e, t) {
4099
+ return dr(e, t);
4085
4100
  }
4086
4101
  //#endregion
4087
4102
  //#region src/ClayComponents.tsx
@@ -4093,7 +4108,7 @@ function Q({ children: e, className: n, tone: r = "neutral" }) {
4093
4108
  });
4094
4109
  }
4095
4110
  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, {
4111
+ let s = ["game-ui-asset-icon", e].filter(Boolean).join(" "), c = r ? { "aria-label": r } : { "aria-hidden": !0 }, l = Dr(n, {
4097
4112
  ...a ? { style: a } : {},
4098
4113
  ...o ? { inline: !1 } : {}
4099
4114
  });
@@ -4108,7 +4123,7 @@ function $({ className: e, icon: n, label: r, size: i = "md", style: a, useSourc
4108
4123
  })
4109
4124
  });
4110
4125
  }
4111
- function Dr({ actions: e, className: r, items: i, label: a }) {
4126
+ function kr({ actions: e, className: r, items: i, label: a }) {
4112
4127
  return /* @__PURE__ */ n("section", {
4113
4128
  "aria-label": a,
4114
4129
  className: ["game-ui-hud", r].filter(Boolean).join(" "),
@@ -4131,7 +4146,7 @@ function Dr({ actions: e, className: r, items: i, label: a }) {
4131
4146
  }) : null]
4132
4147
  });
4133
4148
  }
4134
- function Or({ cards: e, className: r, label: i }) {
4149
+ function Ar({ cards: e, className: r, label: i }) {
4135
4150
  let a = ["game-ui-card-fan", r].filter(Boolean).join(" "), o = (e.length - 1) / 2;
4136
4151
  return /* @__PURE__ */ t("div", {
4137
4152
  "aria-label": i,
@@ -4154,7 +4169,7 @@ function Or({ cards: e, className: r, label: i }) {
4154
4169
  }, e.id))
4155
4170
  });
4156
4171
  }
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 }) {
4172
+ function jr({ badge: e, className: r, icon: i, kicker: a, selected: o = !1, summary: s, title: c, tone: l = "daily", type: u = "button", ...d }) {
4158
4173
  return /* @__PURE__ */ n("button", {
4159
4174
  "aria-pressed": o,
4160
4175
  className: ["game-ui-stage-tile", r].filter(Boolean).join(" "),
@@ -4181,15 +4196,15 @@ function kr({ badge: e, className: r, icon: i, kicker: a, selected: o = !1, summ
4181
4196
  ]
4182
4197
  });
4183
4198
  }
4184
- function Ar() {
4199
+ function Mr() {
4185
4200
  return typeof window > "u" ? !1 : (window.matchMedia?.("(pointer: coarse), (max-width: 899px)").matches ?? window.innerWidth < 900) && window.innerHeight > window.innerWidth;
4186
4201
  }
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("");
4202
+ function Nr({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a = "Rotate manually if this browser blocks automatic landscape lock.", preview: o = !1, title: s }) {
4203
+ let [c, u] = m(o || Mr), [d, f] = m("");
4189
4204
  if (l(() => {
4190
4205
  if (o) return;
4191
4206
  let e = () => {
4192
- let e = Ar();
4207
+ let e = Mr();
4193
4208
  u(e), e || f("");
4194
4209
  };
4195
4210
  return e(), window.addEventListener("resize", e), window.addEventListener("orientationchange", e), () => {
@@ -4199,7 +4214,7 @@ function jr({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a =
4199
4214
  let p = async () => {
4200
4215
  if (f(""), !o) try {
4201
4216
  let e = document.documentElement;
4202
- !document.fullscreenElement && e.requestFullscreen && await e.requestFullscreen(), await screen.orientation.lock?.("landscape-primary"), u(Ar());
4217
+ !document.fullscreenElement && e.requestFullscreen && await e.requestFullscreen(), await screen.orientation.lock?.("landscape-primary"), u(Mr());
4203
4218
  } catch {
4204
4219
  f(a);
4205
4220
  }
@@ -4230,7 +4245,7 @@ function jr({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a =
4230
4245
  })
4231
4246
  });
4232
4247
  }
4233
- function Mr({ className: e, currentLabel: r, label: i, options: a, value: o, defaultValue: s, onSelect: c }) {
4248
+ function Pr({ className: e, currentLabel: r, label: i, options: a, value: o, defaultValue: s, onSelect: c }) {
4234
4249
  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
4250
  o === void 0 && p(e), c?.(e), d(!1);
4236
4251
  };
@@ -4262,34 +4277,34 @@ function Mr({ className: e, currentLabel: r, label: i, options: a, value: o, def
4262
4277
  }) : null]
4263
4278
  });
4264
4279
  }
4265
- function Nr({ label: e, tone: r = "loading" }) {
4280
+ function Fr({ label: e, tone: r = "loading" }) {
4266
4281
  return /* @__PURE__ */ n("div", {
4267
4282
  className: "game-ui-loading-state",
4268
4283
  "data-loading-tone": r,
4269
4284
  role: r === "error" ? "alert" : "status",
4270
4285
  children: [/* @__PURE__ */ t("img", {
4271
4286
  alt: "",
4272
- src: Tr(r === "error" ? "alert" : "timer")
4287
+ src: Dr(r === "error" ? "alert" : "timer")
4273
4288
  }), /* @__PURE__ */ t("span", { children: e })]
4274
4289
  });
4275
4290
  }
4276
- function Pr() {
4277
- return pr.catalog;
4291
+ function Ir() {
4292
+ return hr.catalog;
4278
4293
  }
4279
4294
  //#endregion
4280
4295
  //#region src/FirstSessionGameShell.tsx
4281
- function Fr({ fallback: e, slot: n }) {
4296
+ function Lr({ fallback: e, slot: n }) {
4282
4297
  return n ?? /* @__PURE__ */ t($, {
4283
4298
  icon: e,
4284
4299
  size: "sm"
4285
4300
  });
4286
4301
  }
4287
- function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, iconSlots: o, labels: s, onHistory: c, onSettings: l, onWardrobe: u, playerName: d }) {
4302
+ function Rr({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, iconSlots: o, labels: s, onHistory: c, onSettings: l, onWardrobe: u, playerName: d }) {
4288
4303
  let f = ["swimmer-first-session-shell", i].filter(Boolean).join(" "), p = e ? `${r} 🔋` : s.guest ?? "guest";
4289
4304
  return /* @__PURE__ */ n("section", {
4290
4305
  "aria-label": s.shell,
4291
4306
  className: f,
4292
- children: [/* @__PURE__ */ t(Dr, {
4307
+ children: [/* @__PURE__ */ t(kr, {
4293
4308
  className: "swimmer-first-session-hud",
4294
4309
  items: [
4295
4310
  {
@@ -4321,7 +4336,7 @@ function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
4321
4336
  }
4322
4337
  ],
4323
4338
  label: s.hud,
4324
- actions: /* @__PURE__ */ n(qn, {
4339
+ actions: /* @__PURE__ */ n(Yn, {
4325
4340
  className: "swimmer-first-session-hud-actions",
4326
4341
  label: s.tools,
4327
4342
  children: [
@@ -4329,7 +4344,7 @@ function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
4329
4344
  "aria-label": s.wardrobe,
4330
4345
  onClick: u,
4331
4346
  variant: "secondary",
4332
- children: [/* @__PURE__ */ t(Fr, {
4347
+ children: [/* @__PURE__ */ t(Lr, {
4333
4348
  fallback: "shirt",
4334
4349
  slot: o?.wardrobe
4335
4350
  }), s.wardrobe]
@@ -4338,7 +4353,7 @@ function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
4338
4353
  "aria-label": s.settings,
4339
4354
  onClick: l,
4340
4355
  variant: "secondary",
4341
- children: [/* @__PURE__ */ t(Fr, {
4356
+ children: [/* @__PURE__ */ t(Lr, {
4342
4357
  fallback: "settings",
4343
4358
  slot: o?.settings
4344
4359
  }), s.settings]
@@ -4347,7 +4362,7 @@ function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
4347
4362
  "aria-label": s.history,
4348
4363
  onClick: c,
4349
4364
  variant: "secondary",
4350
- children: [/* @__PURE__ */ t(Fr, {
4365
+ children: [/* @__PURE__ */ t(Lr, {
4351
4366
  fallback: "history",
4352
4367
  slot: o?.history
4353
4368
  }), s.history]
@@ -4372,7 +4387,7 @@ function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
4372
4387
  }),
4373
4388
  /* @__PURE__ */ n("label", {
4374
4389
  className: "swimmer-first-session-input",
4375
- children: [/* @__PURE__ */ t(Fr, {
4390
+ children: [/* @__PURE__ */ t(Lr, {
4376
4391
  fallback: "chat",
4377
4392
  slot: o?.input
4378
4393
  }), /* @__PURE__ */ t("span", { children: s.input })]
@@ -4380,7 +4395,7 @@ function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
4380
4395
  /* @__PURE__ */ n("button", {
4381
4396
  className: "swimmer-first-session-emote",
4382
4397
  type: "button",
4383
- children: [/* @__PURE__ */ t(Fr, {
4398
+ children: [/* @__PURE__ */ t(Lr, {
4384
4399
  fallback: "smile",
4385
4400
  slot: o?.emote
4386
4401
  }), s.emote]
@@ -4389,7 +4404,7 @@ function Ir({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
4389
4404
  })]
4390
4405
  });
4391
4406
  }
4392
- function Lr({ labels: e, onDismiss: r, open: i }) {
4407
+ function zr({ labels: e, onDismiss: r, open: i }) {
4393
4408
  return i ? /* @__PURE__ */ n("aside", {
4394
4409
  "aria-labelledby": "swimmer-first-session-onboarding-title",
4395
4410
  "aria-modal": "true",
@@ -4437,7 +4452,7 @@ function Lr({ labels: e, onDismiss: r, open: i }) {
4437
4452
  }
4438
4453
  //#endregion
4439
4454
  //#region src/GameForms.tsx
4440
- var Rr = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
4455
+ var Br = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
4441
4456
  return /* @__PURE__ */ t("input", {
4442
4457
  className: ["game-ui-input", e].filter(Boolean).join(" "),
4443
4458
  "data-invalid": n ? "true" : void 0,
@@ -4445,7 +4460,7 @@ var Rr = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
4445
4460
  type: r,
4446
4461
  ...i
4447
4462
  });
4448
- }), zr = a(function({ className: e, invalid: n, rows: r = 3, ...i }, a) {
4463
+ }), Vr = a(function({ className: e, invalid: n, rows: r = 3, ...i }, a) {
4449
4464
  return /* @__PURE__ */ t("textarea", {
4450
4465
  className: [
4451
4466
  "game-ui-input",
@@ -4458,7 +4473,7 @@ var Rr = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
4458
4473
  ...i
4459
4474
  });
4460
4475
  });
4461
- function Br({ children: e, className: r, error: i, hint: a, label: o, required: s }) {
4476
+ function Hr({ children: e, className: r, error: i, hint: a, label: o, required: s }) {
4462
4477
  return /* @__PURE__ */ n("label", {
4463
4478
  className: ["game-ui-field", r].filter(Boolean).join(" "),
4464
4479
  "data-invalid": i ? "true" : void 0,
@@ -4484,7 +4499,7 @@ function Br({ children: e, className: r, error: i, hint: a, label: o, required:
4484
4499
  ]
4485
4500
  });
4486
4501
  }
4487
- function Vr({ className: e, label: r, ...i }) {
4502
+ function Ur({ className: e, label: r, ...i }) {
4488
4503
  return /* @__PURE__ */ n("label", {
4489
4504
  className: ["game-ui-checkbox", e].filter(Boolean).join(" "),
4490
4505
  children: [
@@ -4506,11 +4521,11 @@ function Vr({ className: e, label: r, ...i }) {
4506
4521
  }
4507
4522
  //#endregion
4508
4523
  //#region src/GameDisplay.tsx
4509
- function Hr(e) {
4524
+ function Wr(e) {
4510
4525
  let t = e.trim().split(/\s+/).filter(Boolean);
4511
4526
  return t.length === 0 ? "?" : t.slice(0, 2).map((e) => e[0] ?? "").join("").toUpperCase();
4512
4527
  }
4513
- function Ur({ className: r, name: i, size: a = "md", src: o, status: s = "none" }) {
4528
+ function Gr({ className: r, name: i, size: a = "md", src: o, status: s = "none" }) {
4514
4529
  return /* @__PURE__ */ n("span", {
4515
4530
  className: ["game-ui-avatar", r].filter(Boolean).join(" "),
4516
4531
  "data-avatar-size": a,
@@ -4521,7 +4536,7 @@ function Ur({ className: r, name: i, size: a = "md", src: o, status: s = "none"
4521
4536
  }) : /* @__PURE__ */ n(e, { children: [/* @__PURE__ */ t("span", {
4522
4537
  "aria-hidden": "true",
4523
4538
  className: "game-ui-avatar-initials",
4524
- children: Hr(i)
4539
+ children: Wr(i)
4525
4540
  }), /* @__PURE__ */ t("span", {
4526
4541
  className: "game-ui-sr-only",
4527
4542
  children: i
@@ -4531,7 +4546,7 @@ function Ur({ className: r, name: i, size: a = "md", src: o, status: s = "none"
4531
4546
  })]
4532
4547
  });
4533
4548
  }
4534
- function Wr({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o = "accent", value: s, valueLabel: c }) {
4549
+ function Kr({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o = "accent", value: s, valueLabel: c }) {
4535
4550
  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
4551
  accent: "var(--game-ui-accent)",
4537
4552
  danger: "var(--game-ui-danger)",
@@ -4549,7 +4564,7 @@ function Wr({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o =
4549
4564
  "aria-valuetext": f ? c : void 0,
4550
4565
  className: "game-ui-progress-track",
4551
4566
  role: "progressbar",
4552
- children: /* @__PURE__ */ t(Un, {
4567
+ children: /* @__PURE__ */ t(Gn, {
4553
4568
  "aria-hidden": "true",
4554
4569
  className: "game-ui-progress-liquid",
4555
4570
  fill: p,
@@ -4560,7 +4575,7 @@ function Wr({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o =
4560
4575
  pointerEvents: "none",
4561
4576
  position: "absolute"
4562
4577
  },
4563
- children: /* @__PURE__ */ t(Un.Item, {
4578
+ children: /* @__PURE__ */ t(Gn.Item, {
4564
4579
  "aria-hidden": "true",
4565
4580
  className: "game-ui-progress-fill",
4566
4581
  style: {
@@ -4583,7 +4598,7 @@ function Wr({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o =
4583
4598
  }) : null]
4584
4599
  });
4585
4600
  }
4586
- function Gr({ action: e, className: r, description: i, icon: a, title: o }) {
4601
+ function qr({ action: e, className: r, description: i, icon: a, title: o }) {
4587
4602
  return /* @__PURE__ */ n("div", {
4588
4603
  className: ["game-ui-empty-state", r].filter(Boolean).join(" "),
4589
4604
  children: [
@@ -4608,7 +4623,7 @@ function Gr({ action: e, className: r, description: i, icon: a, title: o }) {
4608
4623
  }
4609
4624
  //#endregion
4610
4625
  //#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 }) {
4626
+ function Jr({ 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
4627
  return /* @__PURE__ */ n("section", {
4613
4628
  "aria-label": f,
4614
4629
  className: ["game-ui-shell", a].filter(Boolean).join(" "),
@@ -4646,8 +4661,8 @@ function Kr({ assetLibrary: e, bottomBar: r, children: i, className: a, density:
4646
4661
  ]
4647
4662
  });
4648
4663
  }
4649
- var qr = Kr;
4650
- function Jr({ className: e, density: r = "comfortable", facts: i, label: a, variant: o = "facts" }) {
4664
+ var Yr = Jr;
4665
+ function Xr({ className: e, density: r = "comfortable", facts: i, label: a, variant: o = "facts" }) {
4651
4666
  return /* @__PURE__ */ t("section", {
4652
4667
  "aria-label": a,
4653
4668
  className: ["game-ui-fact-list", e].filter(Boolean).join(" "),
@@ -4676,9 +4691,9 @@ function Jr({ className: e, density: r = "comfortable", facts: i, label: a, vari
4676
4691
  }, e.id))
4677
4692
  });
4678
4693
  }
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, {
4694
+ var Zr = Xr;
4695
+ function Qr({ actions: r, className: i, density: a = "comfortable", iconLabelMode: o = "hidden", label: s, style: c = "button" }) {
4696
+ return /* @__PURE__ */ n(Yn, {
4682
4697
  className: ["game-ui-action-grid", i].filter(Boolean).join(" "),
4683
4698
  "data-icon-label-mode": c === "icon" ? o : void 0,
4684
4699
  label: s,
@@ -4703,7 +4718,7 @@ function Xr({ actions: r, className: i, density: a = "comfortable", iconLabelMod
4703
4718
  }) : null,
4704
4719
  r.shortcut ? /* @__PURE__ */ t("kbd", { children: r.shortcut }) : null
4705
4720
  ] }), l = () => r.onAction?.(r.id);
4706
- return c === "icon" ? /* @__PURE__ */ t(Jn, {
4721
+ return c === "icon" ? /* @__PURE__ */ t(Xn, {
4707
4722
  "aria-pressed": r.selected,
4708
4723
  className: "game-ui-action-grid-button",
4709
4724
  disabled: r.disabled,
@@ -4721,7 +4736,7 @@ function Xr({ actions: r, className: i, density: a = "comfortable", iconLabelMod
4721
4736
  })]
4722
4737
  });
4723
4738
  }
4724
- var Zr = [
4739
+ var $r = [
4725
4740
  {
4726
4741
  direction: "forward",
4727
4742
  label: "Move forward",
@@ -4746,7 +4761,7 @@ var Zr = [
4746
4761
  shortcut: "S / ↓",
4747
4762
  symbol: "↓"
4748
4763
  }
4749
- ], Qr = {
4764
+ ], ei = {
4750
4765
  ArrowUp: "forward",
4751
4766
  w: "forward",
4752
4767
  W: "forward",
@@ -4761,7 +4776,7 @@ var Zr = [
4761
4776
  S: "backward",
4762
4777
  " ": "reset"
4763
4778
  };
4764
- function $r({ actions: e = Zr, className: r, density: i = "comfortable", disabled: a = !1, helpText: o, label: s, layout: c = "dpad", onMove: l }) {
4779
+ function ti({ actions: e = $r, className: r, density: i = "comfortable", disabled: a = !1, helpText: o, label: s, layout: c = "dpad", onMove: l }) {
4765
4780
  let u = ["game-ui-movement-pad", r].filter(Boolean).join(" "), d = (e) => {
4766
4781
  a || l?.(e);
4767
4782
  };
@@ -4771,7 +4786,7 @@ function $r({ actions: e = Zr, className: r, density: i = "comfortable", disable
4771
4786
  "data-density": i,
4772
4787
  "data-layout": c,
4773
4788
  onKeyDown: (t) => {
4774
- let n = Qr[t.key];
4789
+ let n = ei[t.key];
4775
4790
  if (!n) return;
4776
4791
  let r = e.find((e) => e.direction === n);
4777
4792
  !r || r.disabled || a || (t.preventDefault(), d(n));
@@ -4779,7 +4794,7 @@ function $r({ actions: e = Zr, className: r, density: i = "comfortable", disable
4779
4794
  tabIndex: 0,
4780
4795
  children: [/* @__PURE__ */ t("div", {
4781
4796
  className: "game-ui-movement-pad-grid",
4782
- children: e.map((e) => /* @__PURE__ */ n(Jn, {
4797
+ children: e.map((e) => /* @__PURE__ */ n(Xn, {
4783
4798
  className: "game-ui-movement-button",
4784
4799
  "data-direction": e.direction,
4785
4800
  disabled: a || e.disabled,
@@ -4797,15 +4812,15 @@ function $r({ actions: e = Zr, className: r, density: i = "comfortable", disable
4797
4812
  }), o ? /* @__PURE__ */ t("p", { children: o }) : null]
4798
4813
  });
4799
4814
  }
4800
- var ei = {
4815
+ var ni = {
4801
4816
  generated: "Generated",
4802
4817
  imported: "Imported",
4803
4818
  starter: "Starter"
4804
- }, ti = {
4819
+ }, ri = {
4805
4820
  generated: "ai",
4806
4821
  imported: "warning",
4807
4822
  starter: "neutral"
4808
- }, ni = {
4823
+ }, ii = {
4809
4824
  error: "danger",
4810
4825
  generating: "ai",
4811
4826
  missing: "danger",
@@ -4813,8 +4828,8 @@ var ei = {
4813
4828
  ready: "neutral",
4814
4829
  selected: "success"
4815
4830
  };
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;
4831
+ function ai({ 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 }) {
4832
+ let { "aria-label": S, ...C } = x, w = ["game-ui-asset-card", a].filter(Boolean).join(" "), T = m ?? ni[p], E = g ?? h;
4818
4833
  return /* @__PURE__ */ n("button", {
4819
4834
  "aria-label": S ?? y,
4820
4835
  "aria-pressed": f,
@@ -4845,11 +4860,11 @@ function ri({ assetId: e, badges: r = [], cardLayout: i = "list", className: a,
4845
4860
  className: "game-ui-asset-card-badges",
4846
4861
  children: [
4847
4862
  /* @__PURE__ */ t(Q, {
4848
- tone: ti[p],
4863
+ tone: ri[p],
4849
4864
  children: T
4850
4865
  }),
4851
4866
  /* @__PURE__ */ t(Q, {
4852
- tone: ni[h],
4867
+ tone: ii[h],
4853
4868
  children: E
4854
4869
  }),
4855
4870
  r.map((e) => /* @__PURE__ */ t(Q, {
@@ -4868,7 +4883,7 @@ function ri({ assetId: e, badges: r = [], cardLayout: i = "list", className: a,
4868
4883
  })]
4869
4884
  });
4870
4885
  }
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 }) {
4886
+ function oi({ 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
4887
  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
4888
  e[t.source] += 1;
4874
4889
  }), e), {
@@ -4893,15 +4908,15 @@ function ii({ cardLayout: e = "auto", className: r, density: i = "comfortable",
4893
4908
  "aria-label": "Asset source counts",
4894
4909
  className: "game-ui-asset-library-counts",
4895
4910
  children: Object.entries(g).map(([e, t]) => /* @__PURE__ */ n(Q, {
4896
- tone: ti[e],
4911
+ tone: ri[e],
4897
4912
  children: [
4898
- ei[e],
4913
+ ni[e],
4899
4914
  " ",
4900
4915
  t
4901
4916
  ]
4902
4917
  }, e))
4903
4918
  }),
4904
- h === 0 ? /* @__PURE__ */ t(Gr, {
4919
+ h === 0 ? /* @__PURE__ */ t(qr, {
4905
4920
  action: a,
4906
4921
  description: o,
4907
4922
  icon: "gem",
@@ -4913,13 +4928,13 @@ function ii({ cardLayout: e = "auto", className: r, density: i = "comfortable",
4913
4928
  className: "game-ui-asset-library-group",
4914
4929
  "data-asset-source": r.source,
4915
4930
  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]
4931
+ tone: ri[r.source],
4932
+ children: ni[r.source]
4918
4933
  }) : null] }), /* @__PURE__ */ t("div", {
4919
4934
  className: "game-ui-asset-library-grid",
4920
4935
  children: r.assets.map((n) => {
4921
4936
  let r = e === "auto" ? n.cardLayout : e;
4922
- return /* @__PURE__ */ t(ri, {
4937
+ return /* @__PURE__ */ t(ai, {
4923
4938
  ...n,
4924
4939
  ...r ? { cardLayout: r } : {},
4925
4940
  ...u ? { onSelect: u } : {},
@@ -4933,7 +4948,7 @@ function ii({ cardLayout: e = "auto", className: r, density: i = "comfortable",
4933
4948
  })
4934
4949
  });
4935
4950
  }
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 }) {
4951
+ function si({ 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
4952
  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
4953
  return /* @__PURE__ */ t(X, {
4939
4954
  className: h,
@@ -4942,7 +4957,7 @@ function ai({ actions: e = [], capacityLabel: r = "Objects", className: i, densi
4942
4957
  children: /* @__PURE__ */ n("div", {
4943
4958
  "data-density": a,
4944
4959
  children: [
4945
- /* @__PURE__ */ t(Jr, {
4960
+ /* @__PURE__ */ t(Xr, {
4946
4961
  density: a,
4947
4962
  facts: [{
4948
4963
  icon: "gem",
@@ -4958,19 +4973,19 @@ function ai({ actions: e = [], capacityLabel: r = "Objects", className: i, densi
4958
4973
  }],
4959
4974
  label: `${m} facts`
4960
4975
  }),
4961
- g ? /* @__PURE__ */ t(Wr, {
4976
+ g ? /* @__PURE__ */ t(Kr, {
4962
4977
  label: r,
4963
4978
  max: o,
4964
4979
  showValue: !0,
4965
4980
  tone: _ >= o ? "warning" : "success",
4966
4981
  value: _
4967
4982
  }) : null,
4968
- e.length > 0 ? /* @__PURE__ */ t(Xr, {
4983
+ e.length > 0 ? /* @__PURE__ */ t(Qr, {
4969
4984
  actions: e,
4970
4985
  density: a,
4971
4986
  label: `${m} actions`
4972
4987
  }) : null,
4973
- s.length > 0 ? /* @__PURE__ */ t(Xr, {
4988
+ s.length > 0 ? /* @__PURE__ */ t(Qr, {
4974
4989
  actions: s,
4975
4990
  density: a,
4976
4991
  label: `${m} object actions`,
@@ -4980,7 +4995,7 @@ function ai({ actions: e = [], capacityLabel: r = "Objects", className: i, densi
4980
4995
  })
4981
4996
  });
4982
4997
  }
4983
- var oi = ai, si = {
4998
+ var ci = si, li = {
4984
4999
  build: "home",
4985
5000
  flatten: "card",
4986
5001
  inspect: "compass",
@@ -4990,7 +5005,7 @@ var oi = ai, si = {
4990
5005
  raise: "energy",
4991
5006
  smooth: "lucky",
4992
5007
  terrain: "portal"
4993
- }, ci = {
5008
+ }, ui = {
4994
5009
  error: "danger",
4995
5010
  locked: "warning",
4996
5011
  missing: "danger",
@@ -4998,10 +5013,10 @@ var oi = ai, si = {
4998
5013
  ready: "neutral",
4999
5014
  selected: "success"
5000
5015
  };
5001
- function li(e, t, n, r) {
5016
+ function di(e, t, n, r) {
5002
5017
  let i = {
5003
5018
  disabled: !!(r || e.disabled),
5004
- icon: e.icon ?? si[e.id] ?? "gem",
5019
+ icon: e.icon ?? li[e.id] ?? "gem",
5005
5020
  id: e.id,
5006
5021
  label: e.label,
5007
5022
  selected: e.id === t,
@@ -5009,21 +5024,21 @@ function li(e, t, n, r) {
5009
5024
  };
5010
5025
  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
5026
  }
5012
- function ui(e, t, n) {
5027
+ function fi(e, t, n) {
5013
5028
  return Number.isNaN(e) ? t : Math.min(n, Math.max(t, e));
5014
5029
  }
5015
- function di(e) {
5030
+ function pi(e) {
5016
5031
  return e;
5017
5032
  }
5018
- function fi(e, t) {
5033
+ function mi(e, t) {
5019
5034
  return e === "auto" ? t === "mobile" || t === "small-mobile" ? "caption" : "hidden" : e;
5020
5035
  }
5021
- function pi({ activeModeId: e, className: r, disabled: i = !1, label: a, modes: o, onModeChange: s, variant: c = "desktop", "data-testid": l }) {
5036
+ function hi({ activeModeId: e, className: r, disabled: i = !1, label: a, modes: o, onModeChange: s, variant: c = "desktop", "data-testid": l }) {
5022
5037
  return /* @__PURE__ */ n("section", {
5023
5038
  "aria-label": a,
5024
5039
  className: ["game-ui-terrain-mode-control", r].filter(Boolean).join(" "),
5025
5040
  "data-ui-hook": "terrain-mode-control",
5026
- "data-variant": di(c),
5041
+ "data-variant": pi(c),
5027
5042
  "data-testid": l,
5028
5043
  children: [/* @__PURE__ */ t("span", {
5029
5044
  className: "game-ui-sr-only",
@@ -5045,7 +5060,7 @@ function pi({ activeModeId: e, className: r, disabled: i = !1, label: a, modes:
5045
5060
  type: "button",
5046
5061
  children: [
5047
5062
  /* @__PURE__ */ t($, {
5048
- icon: r.icon ?? si[r.id] ?? "portal",
5063
+ icon: r.icon ?? li[r.id] ?? "portal",
5049
5064
  size: c === "small-mobile" ? "sm" : "md",
5050
5065
  style: "line"
5051
5066
  }),
@@ -5060,8 +5075,8 @@ function pi({ activeModeId: e, className: r, disabled: i = !1, label: a, modes:
5060
5075
  })]
5061
5076
  });
5062
5077
  }
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);
5078
+ function gi({ 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 }) {
5079
+ let d = ["game-ui-terrain-tool-strip", n].filter(Boolean).join(" "), f = mi(r, l);
5065
5080
  return /* @__PURE__ */ t("section", {
5066
5081
  "aria-label": o,
5067
5082
  className: d,
@@ -5070,8 +5085,8 @@ function mi({ activeToolId: e, className: n, compactLabelMode: r = "auto", densi
5070
5085
  "data-ui-hook": "terrain-tool-strip",
5071
5086
  "data-variant": l,
5072
5087
  "data-testid": u,
5073
- children: /* @__PURE__ */ t(Xr, {
5074
- actions: c.map((t) => li(t, e, s, a)),
5088
+ children: /* @__PURE__ */ t(Qr, {
5089
+ actions: c.map((t) => di(t, e, s, a)),
5075
5090
  density: i,
5076
5091
  iconLabelMode: f,
5077
5092
  label: o,
@@ -5079,18 +5094,18 @@ function mi({ activeToolId: e, className: n, compactLabelMode: r = "auto", densi
5079
5094
  })
5080
5095
  });
5081
5096
  }
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));
5097
+ function _i({ className: e, labels: r = {}, onRadiusChange: i, onStrengthChange: a, state: o, variant: s = "desktop", "data-testid": c }) {
5098
+ 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 = fi(o.radius, u, d), _ = fi(o.strength, p, m), v = !!o.disabled, y = (e) => {
5099
+ i?.(fi(Number(e.currentTarget.value), u, d));
5085
5100
  }, b = (e) => {
5086
- a?.(ui(Number(e.currentTarget.value), p, m));
5101
+ a?.(fi(Number(e.currentTarget.value), p, m));
5087
5102
  };
5088
5103
  return /* @__PURE__ */ n("section", {
5089
5104
  className: l,
5090
5105
  "data-ui-hook": "brush-controls",
5091
5106
  "data-variant": s,
5092
5107
  "data-testid": c,
5093
- children: [/* @__PURE__ */ t(Br, {
5108
+ children: [/* @__PURE__ */ t(Hr, {
5094
5109
  ...r.radiusHint ? { hint: r.radiusHint } : {},
5095
5110
  label: r.radius ?? "Brush radius",
5096
5111
  children: /* @__PURE__ */ n("div", {
@@ -5120,7 +5135,7 @@ function hi({ className: e, labels: r = {}, onRadiusChange: i, onStrengthChange:
5120
5135
  value: g
5121
5136
  })]
5122
5137
  })
5123
- }), /* @__PURE__ */ t(Br, {
5138
+ }), /* @__PURE__ */ t(Hr, {
5124
5139
  ...r.strengthHint ? { hint: r.strengthHint } : {},
5125
5140
  label: r.strength ?? "Brush strength",
5126
5141
  children: /* @__PURE__ */ n("div", {
@@ -5153,7 +5168,7 @@ function hi({ className: e, labels: r = {}, onRadiusChange: i, onStrengthChange:
5153
5168
  })]
5154
5169
  });
5155
5170
  }
5156
- function gi({ activeMaterialId: e, className: r, disabled: i = !1, label: a, materials: o, onMaterialChange: s, variant: c = "desktop", "data-testid": l }) {
5171
+ function vi({ activeMaterialId: e, className: r, disabled: i = !1, label: a, materials: o, onMaterialChange: s, variant: c = "desktop", "data-testid": l }) {
5157
5172
  return /* @__PURE__ */ t("section", {
5158
5173
  "aria-label": a,
5159
5174
  className: ["game-ui-material-swatches", r].filter(Boolean).join(" "),
@@ -5196,14 +5211,14 @@ function gi({ activeMaterialId: e, className: r, disabled: i = !1, label: a, mat
5196
5211
  })
5197
5212
  });
5198
5213
  }
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 }) {
5214
+ function yi({ 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
5215
  return /* @__PURE__ */ t("section", {
5201
5216
  "aria-label": a,
5202
5217
  className: ["game-ui-undo-redo-actions", r].filter(Boolean).join(" "),
5203
5218
  "data-ui-hook": "undo-redo-actions",
5204
5219
  "data-variant": u,
5205
5220
  "data-testid": d,
5206
- children: /* @__PURE__ */ t(Xr, {
5221
+ children: /* @__PURE__ */ t(Qr, {
5207
5222
  actions: [{
5208
5223
  disabled: i || !n,
5209
5224
  icon: "undo",
@@ -5229,7 +5244,7 @@ function _i({ canRedo: e = !1, canUndo: n = !1, className: r, disabled: i = !1,
5229
5244
  })
5230
5245
  });
5231
5246
  }
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 }) {
5247
+ function bi({ 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
5248
  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
5249
  return /* @__PURE__ */ t(X, {
5235
5250
  className: h,
@@ -5259,7 +5274,7 @@ function vi({ activeCategoryId: e, categories: r, className: i, density: a = "co
5259
5274
  type: "button",
5260
5275
  children: [
5261
5276
  /* @__PURE__ */ t($, {
5262
- icon: e.icon ?? si[e.id] ?? "home",
5277
+ icon: e.icon ?? li[e.id] ?? "home",
5263
5278
  size: "sm",
5264
5279
  style: "line"
5265
5280
  }),
@@ -5268,7 +5283,7 @@ function vi({ activeCategoryId: e, categories: r, className: i, density: a = "co
5268
5283
  ]
5269
5284
  }, e.id);
5270
5285
  })
5271
- }), v.length === 0 || !_ ? /* @__PURE__ */ t(Gr, {
5286
+ }), v.length === 0 || !_ ? /* @__PURE__ */ t(qr, {
5272
5287
  description: o,
5273
5288
  icon: "home",
5274
5289
  title: s
@@ -5306,7 +5321,7 @@ function vi({ activeCategoryId: e, categories: r, className: i, density: a = "co
5306
5321
  /* @__PURE__ */ n("span", {
5307
5322
  className: "game-ui-build-item-badges",
5308
5323
  children: [/* @__PURE__ */ t(Q, {
5309
- tone: ci[i],
5324
+ tone: ui[i],
5310
5325
  children: i
5311
5326
  }), e.badges?.map((e) => /* @__PURE__ */ t(Q, {
5312
5327
  tone: e.tone ?? "neutral",
@@ -5324,7 +5339,7 @@ function vi({ activeCategoryId: e, categories: r, className: i, density: a = "co
5324
5339
  })
5325
5340
  });
5326
5341
  }
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 }) {
5342
+ function xi({ 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
5343
  let g = ["game-ui-compact-game-drawer", r].filter(Boolean).join(" "), _ = u ?? `${d.toLowerCase().replace(/[^a-z0-9]+/g, "-") || "tools"}-drawer-panel`;
5329
5344
  return /* @__PURE__ */ n("aside", {
5330
5345
  "aria-label": s,
@@ -5359,7 +5374,7 @@ function yi({ children: e, className: r, closeIcon: i = "close", closeLabel: a =
5359
5374
  })]
5360
5375
  });
5361
5376
  }
5362
- function bi({ status: e }) {
5377
+ function Si({ status: e }) {
5363
5378
  if (!e) return null;
5364
5379
  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
5380
  return /* @__PURE__ */ n("div", {
@@ -5372,7 +5387,7 @@ function bi({ status: e }) {
5372
5387
  children: e.label
5373
5388
  }),
5374
5389
  e.description ? /* @__PURE__ */ t("p", { children: e.description }) : null,
5375
- r ? /* @__PURE__ */ t(Wr, {
5390
+ r ? /* @__PURE__ */ t(Kr, {
5376
5391
  label: e.progressLabel ?? e.label,
5377
5392
  max: a,
5378
5393
  showValue: !0,
@@ -5382,15 +5397,15 @@ function bi({ status: e }) {
5382
5397
  ]
5383
5398
  });
5384
5399
  }
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" }) {
5400
+ function Ci({ 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
5401
  return /* @__PURE__ */ n("div", {
5387
5402
  className: "game-ui-terrain-build-toolbox-body",
5388
5403
  "data-active-mode": i,
5389
5404
  "data-active-tool": a,
5390
5405
  "data-variant": E,
5391
5406
  children: [
5392
- /* @__PURE__ */ t(bi, { status: S }),
5393
- /* @__PURE__ */ t(pi, {
5407
+ /* @__PURE__ */ t(Si, { status: S }),
5408
+ /* @__PURE__ */ t(hi, {
5394
5409
  activeModeId: i,
5395
5410
  disabled: l,
5396
5411
  label: "Tool mode",
@@ -5401,7 +5416,7 @@ function xi({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
5401
5416
  /* @__PURE__ */ n("div", {
5402
5417
  className: "game-ui-terrain-build-main-grid",
5403
5418
  children: [
5404
- /* @__PURE__ */ t(mi, {
5419
+ /* @__PURE__ */ t(gi, {
5405
5420
  activeToolId: a,
5406
5421
  compactLabelMode: C,
5407
5422
  density: c,
@@ -5411,7 +5426,7 @@ function xi({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
5411
5426
  tools: w,
5412
5427
  variant: E
5413
5428
  }),
5414
- /* @__PURE__ */ t(_i, {
5429
+ /* @__PURE__ */ t(yi, {
5415
5430
  canRedo: T?.canRedo,
5416
5431
  canUndo: T?.canUndo,
5417
5432
  disabled: l,
@@ -5422,7 +5437,7 @@ function xi({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
5422
5437
  undoLabel: T?.undoLabel,
5423
5438
  variant: E
5424
5439
  }),
5425
- /* @__PURE__ */ t(hi, {
5440
+ /* @__PURE__ */ t(_i, {
5426
5441
  onRadiusChange: f,
5427
5442
  onStrengthChange: p,
5428
5443
  state: {
@@ -5431,7 +5446,7 @@ function xi({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
5431
5446
  },
5432
5447
  variant: E
5433
5448
  }),
5434
- u.length > 0 ? /* @__PURE__ */ t(gi, {
5449
+ u.length > 0 ? /* @__PURE__ */ t(vi, {
5435
5450
  activeMaterialId: r,
5436
5451
  disabled: l,
5437
5452
  label: "Terrain materials",
@@ -5441,7 +5456,7 @@ function xi({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
5441
5456
  }) : null
5442
5457
  ]
5443
5458
  }),
5444
- s.length > 0 ? /* @__PURE__ */ t(vi, {
5459
+ s.length > 0 ? /* @__PURE__ */ t(bi, {
5445
5460
  activeCategoryId: e,
5446
5461
  categories: s,
5447
5462
  density: c,
@@ -5455,12 +5470,12 @@ function xi({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
5455
5470
  ]
5456
5471
  });
5457
5472
  }
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, {
5473
+ function wi({ className: e, drawerOpen: n = !1, drawerTitle: r = "Terrain and build tools", label: i, onDrawerOpenChange: a, title: o, variant: s = "desktop", "data-testid": c, ...l }) {
5474
+ let u = ["game-ui-terrain-build-toolbox", e].filter(Boolean).join(" "), d = /* @__PURE__ */ t(Ci, {
5460
5475
  ...l,
5461
5476
  variant: s
5462
5477
  });
5463
- return s === "mobile" || s === "small-mobile" ? /* @__PURE__ */ t(yi, {
5478
+ return s === "mobile" || s === "small-mobile" ? /* @__PURE__ */ t(xi, {
5464
5479
  className: u,
5465
5480
  label: i,
5466
5481
  onOpenChange: a,
@@ -5485,7 +5500,7 @@ function Si({ className: e, drawerOpen: n = !1, drawerTitle: r = "Terrain and bu
5485
5500
  }
5486
5501
  //#endregion
5487
5502
  //#region src/GameContractorTools.tsx
5488
- var Ci = {
5503
+ var Ti = {
5489
5504
  accepted: "success",
5490
5505
  blocked: "danger",
5491
5506
  cancelled: "neutral",
@@ -5494,7 +5509,7 @@ var Ci = {
5494
5509
  queued: "warning",
5495
5510
  readyForReview: "success",
5496
5511
  working: "ai"
5497
- }, wi = {
5512
+ }, Ei = {
5498
5513
  accepted: "check",
5499
5514
  blocked: "alert",
5500
5515
  cancelled: "close",
@@ -5503,26 +5518,26 @@ var Ci = {
5503
5518
  queued: "hourglass",
5504
5519
  readyForReview: "vote",
5505
5520
  working: "energy"
5506
- }, Ti = {
5521
+ }, Di = {
5507
5522
  active: "ai",
5508
5523
  blocked: "danger",
5509
5524
  complete: "success",
5510
5525
  pending: "neutral"
5511
- }, Ei = {
5526
+ }, Oi = {
5512
5527
  blocked: "danger",
5513
5528
  done: "success",
5514
5529
  idle: "neutral",
5515
5530
  queued: "warning",
5516
5531
  working: "ai"
5517
- }, Di = {
5532
+ }, ki = {
5518
5533
  "local-only": "Local only",
5519
5534
  mock: "Mock run",
5520
5535
  "paid-disabled": "Paid provider off"
5521
- }, Oi = {
5536
+ }, Ai = {
5522
5537
  "local-only": "success",
5523
5538
  mock: "ai",
5524
5539
  "paid-disabled": "warning"
5525
- }, ki = {
5540
+ }, ji = {
5526
5541
  accepted: [{
5527
5542
  id: "revert",
5528
5543
  label: "Revert",
@@ -5628,17 +5643,17 @@ var Ci = {
5628
5643
  tone: "danger"
5629
5644
  }]
5630
5645
  };
5631
- function Ai(e, t) {
5646
+ function Mi(e, t) {
5632
5647
  if (t) return t;
5633
5648
  switch (e) {
5634
5649
  case "readyForReview": return "Ready for review";
5635
5650
  default: return e.replace(/([A-Z])/g, " $1").replace(/^./, (e) => e.toUpperCase());
5636
5651
  }
5637
5652
  }
5638
- function ji(e) {
5653
+ function Ni(e) {
5639
5654
  return e === "blocked" || e === "cancelled" ? "danger" : e === "accepted" || e === "readyForReview" ? "success" : e === "queued" || e === "draft" || e === "preview" ? "warning" : "accent";
5640
5655
  }
5641
- function Mi(e) {
5656
+ function Pi(e) {
5642
5657
  switch (e) {
5643
5658
  case "accepted": return 100;
5644
5659
  case "blocked": return 42;
@@ -5650,7 +5665,7 @@ function Mi(e) {
5650
5665
  case "working": return 64;
5651
5666
  }
5652
5667
  }
5653
- function Ni(e, t, n) {
5668
+ function Fi(e, t, n) {
5654
5669
  let r = {
5655
5670
  disabled: !!(n || e.disabled),
5656
5671
  id: e.id,
@@ -5659,14 +5674,14 @@ function Ni(e, t, n) {
5659
5674
  };
5660
5675
  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
5676
  }
5662
- function Pi(e) {
5677
+ function Ii(e) {
5663
5678
  return e === "danger" || e === "warning" ? "alert" : "status";
5664
5679
  }
5665
- function Fi(e) {
5680
+ function Li(e) {
5666
5681
  return !!(e.before && e.after);
5667
5682
  }
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);
5683
+ function Ri({ 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 }) {
5684
+ let m = ["game-ui-construction-progress", e].filter(Boolean).join(" "), h = d ?? Pi(s), g = Mi(s, c);
5670
5685
  return /* @__PURE__ */ n("section", {
5671
5686
  "aria-label": r,
5672
5687
  className: m,
@@ -5678,18 +5693,18 @@ function Ii({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
5678
5693
  /* @__PURE__ */ n("header", {
5679
5694
  className: "game-ui-construction-progress-header",
5680
5695
  children: [/* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t($, {
5681
- icon: wi[s],
5696
+ icon: Ei[s],
5682
5697
  size: "sm"
5683
5698
  }), /* @__PURE__ */ t("strong", { children: a })] }), o ? /* @__PURE__ */ t(Q, {
5684
- tone: Ci[s],
5699
+ tone: Ti[s],
5685
5700
  children: g
5686
5701
  }) : null]
5687
5702
  }),
5688
- /* @__PURE__ */ t(Wr, {
5703
+ /* @__PURE__ */ t(Kr, {
5689
5704
  label: a,
5690
5705
  max: i,
5691
5706
  showValue: !0,
5692
- tone: ji(s),
5707
+ tone: Ni(s),
5693
5708
  value: h
5694
5709
  }),
5695
5710
  l.length > 0 ? /* @__PURE__ */ t("ol", {
@@ -5704,7 +5719,7 @@ function Ii({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
5704
5719
  }),
5705
5720
  /* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t("strong", { children: e.label }), e.caption ? /* @__PURE__ */ t("small", { children: e.caption }) : null] }),
5706
5721
  /* @__PURE__ */ t(Q, {
5707
- tone: Ti[e.status],
5722
+ tone: Di[e.status],
5708
5723
  children: e.status
5709
5724
  })
5710
5725
  ]
@@ -5716,7 +5731,7 @@ function Ii({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
5716
5731
  children: u.map((e) => /* @__PURE__ */ n("div", {
5717
5732
  className: "game-ui-construction-warning",
5718
5733
  "data-warning-tone": e.tone ?? "warning",
5719
- role: Pi(e.tone),
5734
+ role: Ii(e.tone),
5720
5735
  children: [/* @__PURE__ */ t($, {
5721
5736
  icon: e.tone === "danger" || e.tone === "warning" ? "alert" : "check",
5722
5737
  size: "sm"
@@ -5726,8 +5741,8 @@ function Ii({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
5726
5741
  ]
5727
5742
  });
5728
5743
  }
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));
5744
+ function zi({ 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 }) {
5745
+ let p = ["game-ui-construction-approval-bar", r].filter(Boolean).join(" "), m = e ?? ji[l], h = u.filter((e) => e.tone !== "success").length, g = m.map((e) => Fi(e, s, i));
5731
5746
  return /* @__PURE__ */ n("section", {
5732
5747
  "aria-label": a,
5733
5748
  className: p,
@@ -5738,8 +5753,8 @@ function Li({ actions: e, className: r, disabled: i = !1, label: a, localOnlyLab
5738
5753
  children: [/* @__PURE__ */ n("div", {
5739
5754
  className: "game-ui-construction-approval-meta",
5740
5755
  children: [c ? /* @__PURE__ */ t(Q, {
5741
- tone: Oi[c],
5742
- children: Di[c]
5756
+ tone: Ai[c],
5757
+ children: ki[c]
5743
5758
  }) : /* @__PURE__ */ t(Q, {
5744
5759
  tone: "success",
5745
5760
  children: o
@@ -5754,21 +5769,21 @@ function Li({ actions: e, className: r, disabled: i = !1, label: a, localOnlyLab
5754
5769
  tone: "success",
5755
5770
  children: "Validation clear"
5756
5771
  })]
5757
- }), g.length > 0 ? /* @__PURE__ */ t(Xr, {
5772
+ }), g.length > 0 ? /* @__PURE__ */ t(Qr, {
5758
5773
  actions: g,
5759
5774
  density: d === "small-mobile" ? "dense" : "comfortable",
5760
5775
  label: `${a} actions`
5761
5776
  }) : null]
5762
5777
  });
5763
5778
  }
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 }) {
5779
+ function Bi({ 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
5780
  return /* @__PURE__ */ n("section", {
5766
5781
  "aria-label": o,
5767
5782
  className: ["game-ui-robot-crew-status", e].filter(Boolean).join(" "),
5768
5783
  "data-ui-hook": "robot-crew-status",
5769
5784
  "data-variant": c,
5770
5785
  "data-testid": l,
5771
- children: [s ? /* @__PURE__ */ t("header", { children: /* @__PURE__ */ t("strong", { children: s }) }) : null, r.length === 0 ? /* @__PURE__ */ t(Gr, {
5786
+ children: [s ? /* @__PURE__ */ t("header", { children: /* @__PURE__ */ t("strong", { children: s }) }) : null, r.length === 0 ? /* @__PURE__ */ t(qr, {
5772
5787
  description: i,
5773
5788
  icon: "ai",
5774
5789
  title: a
@@ -5791,7 +5806,7 @@ function Ri({ className: e, crew: r, emptyDescription: i = "Robot crew members a
5791
5806
  ]
5792
5807
  }),
5793
5808
  /* @__PURE__ */ t(Q, {
5794
- tone: Ei[e.status],
5809
+ tone: Oi[e.status],
5795
5810
  children: e.status
5796
5811
  })
5797
5812
  ]
@@ -5799,7 +5814,7 @@ function Ri({ className: e, crew: r, emptyDescription: i = "Robot crew members a
5799
5814
  })]
5800
5815
  });
5801
5816
  }
5802
- function zi({ activeView: e, after: r, before: i, className: a, label: o, onViewChange: s, variant: c = "desktop", "data-testid": l }) {
5817
+ function Vi({ activeView: e, after: r, before: i, className: a, label: o, onViewChange: s, variant: c = "desktop", "data-testid": l }) {
5803
5818
  let u = ["game-ui-before-after-toggle", a].filter(Boolean).join(" "), d = e === "before" ? i : r;
5804
5819
  return /* @__PURE__ */ n("section", {
5805
5820
  "aria-label": o,
@@ -5808,7 +5823,7 @@ function zi({ activeView: e, after: r, before: i, className: a, label: o, onView
5808
5823
  "data-ui-hook": "before-after-toggle",
5809
5824
  "data-variant": c,
5810
5825
  "data-testid": l,
5811
- children: [/* @__PURE__ */ t(Qn, {
5826
+ children: [/* @__PURE__ */ t(er, {
5812
5827
  activeId: e,
5813
5828
  label: `${o} view`,
5814
5829
  ...s ? { onSelect: (e) => s(e) } : {},
@@ -5835,8 +5850,8 @@ function zi({ activeView: e, after: r, before: i, className: a, label: o, onView
5835
5850
  })]
5836
5851
  });
5837
5852
  }
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 ?? [];
5853
+ function Hi({ 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 }) {
5854
+ let f = ["game-ui-construction-job-card", e].filter(Boolean).join(" "), p = Mi(i.status, i.statusLabel), m = u === "mobile" || u === "small-mobile", h = i.facts ?? [];
5840
5855
  return /* @__PURE__ */ n("article", {
5841
5856
  className: f,
5842
5857
  "data-density": r,
@@ -5856,19 +5871,19 @@ function Bi({ className: e, density: r = "comfortable", job: i, onAction: a, onS
5856
5871
  onClick: () => o?.(i.id),
5857
5872
  type: "button",
5858
5873
  children: [/* @__PURE__ */ t($, {
5859
- icon: wi[i.status],
5874
+ icon: Ei[i.status],
5860
5875
  size: m ? "sm" : "md"
5861
5876
  }), /* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t("strong", { children: i.title }), i.description ? /* @__PURE__ */ t("small", { children: i.description }) : null] })]
5862
5877
  }), /* @__PURE__ */ n("span", {
5863
5878
  className: "game-ui-construction-job-badges",
5864
5879
  children: [
5865
5880
  /* @__PURE__ */ t(Q, {
5866
- tone: Ci[i.status],
5881
+ tone: Ti[i.status],
5867
5882
  children: p
5868
5883
  }),
5869
5884
  i.providerMode ? /* @__PURE__ */ t(Q, {
5870
- tone: Oi[i.providerMode],
5871
- children: Di[i.providerMode]
5885
+ tone: Ai[i.providerMode],
5886
+ children: ki[i.providerMode]
5872
5887
  }) : null,
5873
5888
  i.badges?.map((e) => /* @__PURE__ */ t(Q, {
5874
5889
  tone: e.tone ?? "neutral",
@@ -5886,7 +5901,7 @@ function Bi({ className: e, density: r = "comfortable", job: i, onAction: a, onS
5886
5901
  h.map((e) => /* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t("small", { children: e.label }), /* @__PURE__ */ t("b", { children: e.value })] }, e.id))
5887
5902
  ]
5888
5903
  }),
5889
- /* @__PURE__ */ t(Ii, {
5904
+ /* @__PURE__ */ t(Ri, {
5890
5905
  label: `${i.title} progress`,
5891
5906
  progressLabel: i.progressLabel,
5892
5907
  status: i.status,
@@ -5897,19 +5912,19 @@ function Bi({ className: e, density: r = "comfortable", job: i, onAction: a, onS
5897
5912
  max: i.progressMax,
5898
5913
  variant: u
5899
5914
  }),
5900
- l && Fi(i) ? /* @__PURE__ */ t(zi, {
5915
+ l && Li(i) ? /* @__PURE__ */ t(Vi, {
5901
5916
  activeView: "after",
5902
5917
  after: i.after,
5903
5918
  before: i.before,
5904
5919
  label: `${i.title} preview`,
5905
5920
  variant: u
5906
5921
  }) : null,
5907
- i.crew && i.crew.length > 0 ? /* @__PURE__ */ t(Ri, {
5922
+ i.crew && i.crew.length > 0 ? /* @__PURE__ */ t(Bi, {
5908
5923
  crew: i.crew,
5909
5924
  label: `${i.title} robot crew`,
5910
5925
  variant: u
5911
5926
  }) : null,
5912
- c ? /* @__PURE__ */ t(Li, {
5927
+ c ? /* @__PURE__ */ t(zi, {
5913
5928
  actions: i.actions,
5914
5929
  label: `${i.title} approval`,
5915
5930
  onAction: (e) => a?.(e, i.id),
@@ -5921,8 +5936,8 @@ function Bi({ className: e, density: r = "comfortable", job: i, onAction: a, onS
5921
5936
  ]
5922
5937
  });
5923
5938
  }
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, {
5939
+ function Ui({ 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 }) {
5940
+ return /* @__PURE__ */ t(xi, {
5926
5941
  className: ["game-ui-compact-job-drawer", n].filter(Boolean).join(" "),
5927
5942
  closeLabel: r,
5928
5943
  disabled: i,
@@ -5938,7 +5953,7 @@ function Vi({ children: e, className: n, closeLabel: r = "Close jobs", disabled:
5938
5953
  children: e ?? /* @__PURE__ */ t("div", {
5939
5954
  className: "game-ui-compact-job-drawer-list",
5940
5955
  tabIndex: 0,
5941
- children: a.map((e) => /* @__PURE__ */ t(Bi, {
5956
+ children: a.map((e) => /* @__PURE__ */ t(Hi, {
5942
5957
  density: "dense",
5943
5958
  job: e,
5944
5959
  onAction: s,
@@ -5950,7 +5965,7 @@ function Vi({ children: e, className: n, closeLabel: r = "Close jobs", disabled:
5950
5965
  })
5951
5966
  });
5952
5967
  }
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 }) {
5968
+ function Wi({ 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
5969
  let y = ["game-ui-contractor-panel", r].filter(Boolean).join(" "), b = c.find((e) => e.id === m) ?? c[0];
5955
5970
  return _ === "mobile" || _ === "small-mobile" ? /* @__PURE__ */ n("section", {
5956
5971
  "aria-label": l,
@@ -5959,7 +5974,7 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
5959
5974
  "data-variant": _,
5960
5975
  "data-testid": v,
5961
5976
  children: [
5962
- /* @__PURE__ */ t(Vi, {
5977
+ /* @__PURE__ */ t(Ui, {
5963
5978
  jobs: c,
5964
5979
  label: `${l} drawer`,
5965
5980
  onAction: u,
@@ -5971,16 +5986,16 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
5971
5986
  triggerLabel: "Contractor",
5972
5987
  variant: _
5973
5988
  }),
5974
- b && !a ? /* @__PURE__ */ t(Bi, {
5989
+ b && !a ? /* @__PURE__ */ t(Hi, {
5975
5990
  density: "dense",
5976
5991
  job: b,
5977
5992
  onAction: u,
5978
5993
  onSelect: p,
5979
5994
  selected: !0,
5980
- showBeforeAfter: Fi(b),
5995
+ showBeforeAfter: Li(b),
5981
5996
  variant: _
5982
5997
  }) : null,
5983
- b ? null : /* @__PURE__ */ t(Gr, {
5998
+ b ? null : /* @__PURE__ */ t(qr, {
5984
5999
  description: o,
5985
6000
  icon: "energy",
5986
6001
  title: s
@@ -6001,7 +6016,7 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
6001
6016
  className: "game-ui-contractor-panel-subtitle",
6002
6017
  children: h
6003
6018
  }) : null,
6004
- c.length === 0 ? /* @__PURE__ */ t(Gr, {
6019
+ c.length === 0 ? /* @__PURE__ */ t(qr, {
6005
6020
  description: o,
6006
6021
  icon: "energy",
6007
6022
  title: s
@@ -6012,7 +6027,7 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
6012
6027
  "aria-label": "Construction job queue",
6013
6028
  className: "game-ui-contractor-job-list",
6014
6029
  tabIndex: 0,
6015
- children: c.map((e) => /* @__PURE__ */ t(Bi, {
6030
+ children: c.map((e) => /* @__PURE__ */ t(Hi, {
6016
6031
  density: i,
6017
6032
  job: e,
6018
6033
  onAction: u,
@@ -6025,7 +6040,7 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
6025
6040
  className: "game-ui-contractor-detail",
6026
6041
  "aria-label": `${b.title} detail`,
6027
6042
  children: [
6028
- /* @__PURE__ */ t(Ii, {
6043
+ /* @__PURE__ */ t(Ri, {
6029
6044
  label: `${b.title} progress detail`,
6030
6045
  progressLabel: b.progressLabel,
6031
6046
  status: b.status,
@@ -6036,7 +6051,7 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
6036
6051
  max: b.progressMax,
6037
6052
  variant: _
6038
6053
  }),
6039
- Fi(b) ? /* @__PURE__ */ t(zi, {
6054
+ Li(b) ? /* @__PURE__ */ t(Vi, {
6040
6055
  activeView: e,
6041
6056
  after: b.after,
6042
6057
  before: b.before,
@@ -6044,13 +6059,13 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
6044
6059
  onViewChange: f,
6045
6060
  variant: _
6046
6061
  }) : null,
6047
- /* @__PURE__ */ t(Ri, {
6062
+ /* @__PURE__ */ t(Bi, {
6048
6063
  crew: b.crew ?? [],
6049
6064
  label: `${b.title} robot crew`,
6050
6065
  title: "Robot crew",
6051
6066
  variant: _
6052
6067
  }),
6053
- /* @__PURE__ */ t(Li, {
6068
+ /* @__PURE__ */ t(zi, {
6054
6069
  actions: b.actions,
6055
6070
  label: `${b.title} approval`,
6056
6071
  onAction: u ? (e) => u(e, b.id) : void 0,
@@ -6068,16 +6083,16 @@ function Hi({ activePreviewView: e = "after", className: r, density: i = "comfor
6068
6083
  }
6069
6084
  //#endregion
6070
6085
  //#region src/GamePanelSystem.tsx
6071
- function Ui(...e) {
6086
+ function Gi(...e) {
6072
6087
  return e.filter(Boolean).join(" ");
6073
6088
  }
6074
- var Wi = {
6089
+ var Ki = {
6075
6090
  collapse: "Collapse",
6076
6091
  expand: "Expand"
6077
6092
  };
6078
- function Gi({ actions: e, children: r, className: i, defaultOpen: a = !0, labels: o, onOpenChange: s, open: c, title: l, tone: d = "default", ...f }) {
6093
+ function qi({ actions: e, children: r, className: i, defaultOpen: a = !0, labels: o, onOpenChange: s, open: c, title: l, tone: d = "default", ...f }) {
6079
6094
  let p = u(), [h, g] = m(a), _ = c ?? h, v = {
6080
- ...Wi,
6095
+ ...Ki,
6081
6096
  ...o
6082
6097
  }, y = () => {
6083
6098
  let e = !_;
@@ -6085,7 +6100,7 @@ function Gi({ actions: e, children: r, className: i, defaultOpen: a = !0, labels
6085
6100
  };
6086
6101
  return /* @__PURE__ */ n("section", {
6087
6102
  ...f,
6088
- className: Ui("game-ui-collapsible", i),
6103
+ className: Gi("game-ui-collapsible", i),
6089
6104
  "data-open": _,
6090
6105
  "data-panel-tone": d,
6091
6106
  children: [/* @__PURE__ */ n("header", {
@@ -6124,13 +6139,13 @@ function Gi({ actions: e, children: r, className: i, defaultOpen: a = !0, labels
6124
6139
  })]
6125
6140
  });
6126
6141
  }
6127
- var Ki = {
6142
+ var Ji = {
6128
6143
  close: "Close",
6129
6144
  maximize: "Maximize",
6130
6145
  minimize: "Minimize",
6131
6146
  restore: "Restore"
6132
6147
  };
6133
- function qi({ kind: e }) {
6148
+ function Yi({ kind: e }) {
6134
6149
  return /* @__PURE__ */ t("svg", {
6135
6150
  "aria-hidden": "true",
6136
6151
  fill: "none",
@@ -6150,9 +6165,9 @@ function qi({ kind: e }) {
6150
6165
  })
6151
6166
  });
6152
6167
  }
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 }) {
6168
+ function Xi({ 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
6169
  let [g, _] = m(o), v = f ?? g, y = {
6155
- ...Ki,
6170
+ ...Ji,
6156
6171
  ...l
6157
6172
  }, b = (e) => {
6158
6173
  f === void 0 && _(e), d?.(e);
@@ -6160,7 +6175,7 @@ function Ji({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, classNa
6160
6175
  return /* @__PURE__ */ n("section", {
6161
6176
  ...h,
6162
6177
  "aria-label": p,
6163
- className: Ui("game-ui-window", a),
6178
+ className: Gi("game-ui-window", a),
6164
6179
  "data-window-state": v,
6165
6180
  role: "group",
6166
6181
  children: [/* @__PURE__ */ n("header", {
@@ -6183,21 +6198,21 @@ function Ji({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, classNa
6183
6198
  className: "game-ui-icon-button game-ui-window-button",
6184
6199
  onClick: () => b(x ? "normal" : "minimized"),
6185
6200
  type: "button",
6186
- children: /* @__PURE__ */ t(qi, { kind: x ? "restore" : "minimize" })
6201
+ children: /* @__PURE__ */ t(Yi, { kind: x ? "restore" : "minimize" })
6187
6202
  }) : null,
6188
6203
  e ? /* @__PURE__ */ t("button", {
6189
6204
  "aria-label": S ? y.restore : y.maximize,
6190
6205
  className: "game-ui-icon-button game-ui-window-button",
6191
6206
  onClick: () => b(S ? "normal" : "maximized"),
6192
6207
  type: "button",
6193
- children: /* @__PURE__ */ t(qi, { kind: S ? "restore" : "maximize" })
6208
+ children: /* @__PURE__ */ t(Yi, { kind: S ? "restore" : "maximize" })
6194
6209
  }) : null,
6195
6210
  u ? /* @__PURE__ */ t("button", {
6196
6211
  "aria-label": y.close,
6197
6212
  className: "game-ui-icon-button game-ui-window-button",
6198
6213
  onClick: u,
6199
6214
  type: "button",
6200
- children: /* @__PURE__ */ t(qi, { kind: "close" })
6215
+ children: /* @__PURE__ */ t(Yi, { kind: "close" })
6201
6216
  }) : null
6202
6217
  ]
6203
6218
  })
@@ -6217,14 +6232,14 @@ function Ji({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, classNa
6217
6232
  })]
6218
6233
  });
6219
6234
  }
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 }) {
6235
+ function Zi({ 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
6236
  let h = p(null), g = u();
6222
6237
  return l(() => {
6223
6238
  let e = h.current;
6224
6239
  e && (c && !e.open && e.showModal(), !c && e.open && e.close());
6225
6240
  }, [c]), /* @__PURE__ */ t("dialog", {
6226
6241
  "aria-labelledby": g,
6227
- className: Ui("game-ui-modal", r),
6242
+ className: Gi("game-ui-modal", r),
6228
6243
  "data-position": d,
6229
6244
  "data-size": f,
6230
6245
  onCancel: (e) => {
@@ -6248,7 +6263,7 @@ function Yi({ children: e, className: r, closeLabel: i = "Close", closeOnBackdro
6248
6263
  className: "game-ui-icon-button game-ui-window-button",
6249
6264
  onClick: s,
6250
6265
  type: "button",
6251
- children: /* @__PURE__ */ t(qi, { kind: "close" })
6266
+ children: /* @__PURE__ */ t(Yi, { kind: "close" })
6252
6267
  })]
6253
6268
  }),
6254
6269
  /* @__PURE__ */ t("div", {
@@ -6265,7 +6280,7 @@ function Yi({ children: e, className: r, closeLabel: i = "Close", closeOnBackdro
6265
6280
  }
6266
6281
  //#endregion
6267
6282
  //#region src/previewStates.ts
6268
- var Xi = [
6283
+ var Qi = [
6269
6284
  {
6270
6285
  id: "history-human-long",
6271
6286
  kind: "human",
@@ -6287,7 +6302,7 @@ var Xi = [
6287
6302
  speaker: "Table",
6288
6303
  text: "Three votes are locked. One more read can still change the pact."
6289
6304
  }
6290
- ], Zi = {
6305
+ ], $i = {
6291
6306
  ...V,
6292
6307
  ..._e,
6293
6308
  ...ve,
@@ -6297,13 +6312,13 @@ var Xi = [
6297
6312
  ...ye,
6298
6313
  ...xe,
6299
6314
  ...z
6300
- }, Qi = {
6315
+ }, ea = {
6301
6316
  toneAttr: "data-game-ui-tone",
6302
6317
  toneGlass: "glass",
6303
6318
  densityAttr: "data-game-ui-density",
6304
6319
  densityCompact: "compact",
6305
6320
  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 = {
6321
+ }, ta = be, na = /* @__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("."), ra = {
6307
6322
  en: {
6308
6323
  triggerLabel: "EN",
6309
6324
  langMenuLabel: "Preview language",
@@ -6505,7 +6520,7 @@ var Xi = [
6505
6520
  hint: "Rotate manually if this browser blocks automatic landscape lock."
6506
6521
  },
6507
6522
  historyLabel: "Round history",
6508
- history: Xi
6523
+ history: Qi
6509
6524
  },
6510
6525
  "zh-CN": {
6511
6526
  triggerLabel: "中",
@@ -6732,7 +6747,7 @@ var Xi = [
6732
6747
  }
6733
6748
  ]
6734
6749
  }
6735
- }, na = i(ta.en), ra = () => c(na), ia = [
6750
+ }, ia = i(ra.en), aa = () => c(ia), oa = [
6736
6751
  {
6737
6752
  id: "colors",
6738
6753
  tokens: L
@@ -6786,7 +6801,7 @@ var Xi = [
6786
6801
  tokens: xe
6787
6802
  }
6788
6803
  ];
6789
- function aa({ id: e, label: r, tokens: i }) {
6804
+ function sa({ id: e, label: r, tokens: i }) {
6790
6805
  return /* @__PURE__ */ n("article", {
6791
6806
  className: "game-ui-token-card",
6792
6807
  children: [/* @__PURE__ */ t("h3", { children: r }), /* @__PURE__ */ t("div", {
@@ -6798,7 +6813,7 @@ function aa({ id: e, label: r, tokens: i }) {
6798
6813
  })]
6799
6814
  });
6800
6815
  }
6801
- function oa() {
6816
+ function ca() {
6802
6817
  return /* @__PURE__ */ t("div", {
6803
6818
  "aria-label": "Clay color swatches",
6804
6819
  className: "game-ui-swatch-grid",
@@ -6808,8 +6823,8 @@ function oa() {
6808
6823
  }, e))
6809
6824
  });
6810
6825
  }
6811
- function sa() {
6812
- let { type: e } = ra();
6826
+ function la() {
6827
+ let { type: e } = aa();
6813
6828
  return /* @__PURE__ */ n("div", {
6814
6829
  className: "game-ui-type-scale",
6815
6830
  children: [
@@ -6824,8 +6839,8 @@ function sa() {
6824
6839
  ]
6825
6840
  });
6826
6841
  }
6827
- function ca() {
6828
- let { buttons: e } = ra();
6842
+ function ua() {
6843
+ let { buttons: e } = aa();
6829
6844
  return /* @__PURE__ */ n(X, {
6830
6845
  title: e.panelTitle,
6831
6846
  tone: "strong",
@@ -6863,9 +6878,9 @@ function ca() {
6863
6878
  /* @__PURE__ */ n("div", {
6864
6879
  className: "game-ui-component-row",
6865
6880
  children: [
6866
- /* @__PURE__ */ t(Yn, {
6881
+ /* @__PURE__ */ t(Zn, {
6867
6882
  label: e.settingsTip,
6868
- children: /* @__PURE__ */ t(Jn, {
6883
+ children: /* @__PURE__ */ t(Xn, {
6869
6884
  label: e.settingsTip,
6870
6885
  children: /* @__PURE__ */ t($, {
6871
6886
  icon: "settings",
@@ -6873,7 +6888,7 @@ function ca() {
6873
6888
  })
6874
6889
  })
6875
6890
  }),
6876
- /* @__PURE__ */ t(Jn, {
6891
+ /* @__PURE__ */ t(Xn, {
6877
6892
  label: e.copyInvite,
6878
6893
  children: /* @__PURE__ */ t($, {
6879
6894
  icon: "copy",
@@ -6894,7 +6909,7 @@ function ca() {
6894
6909
  })
6895
6910
  ]
6896
6911
  }),
6897
- /* @__PURE__ */ t(Qn, {
6912
+ /* @__PURE__ */ t(er, {
6898
6913
  activeId: "live",
6899
6914
  label: e.segmentedLabel,
6900
6915
  options: [
@@ -6912,7 +6927,7 @@ function ca() {
6912
6927
  }
6913
6928
  ]
6914
6929
  }),
6915
- /* @__PURE__ */ t(Xn, {
6930
+ /* @__PURE__ */ t(Qn, {
6916
6931
  activeId: "portal",
6917
6932
  tabs: [
6918
6933
  {
@@ -6929,7 +6944,7 @@ function ca() {
6929
6944
  }
6930
6945
  ]
6931
6946
  }),
6932
- /* @__PURE__ */ t(tr, {
6947
+ /* @__PURE__ */ t(rr, {
6933
6948
  items: [
6934
6949
  {
6935
6950
  id: "wave",
@@ -6946,28 +6961,28 @@ function ca() {
6946
6961
  ],
6947
6962
  label: e.radialLabel
6948
6963
  }),
6949
- /* @__PURE__ */ t($n, {
6964
+ /* @__PURE__ */ t(tr, {
6950
6965
  label: e.sliderLabel,
6951
6966
  max: 100,
6952
6967
  min: 0,
6953
6968
  value: 68
6954
6969
  }),
6955
- /* @__PURE__ */ t(er, {
6970
+ /* @__PURE__ */ t(nr, {
6956
6971
  checked: !0,
6957
6972
  label: e.toggleLabel
6958
6973
  })
6959
6974
  ]
6960
6975
  });
6961
6976
  }
6962
- function la() {
6963
- let { hud: e, tiles: r } = ra();
6977
+ function da() {
6978
+ let { hud: e, tiles: r } = aa();
6964
6979
  return /* @__PURE__ */ n("div", {
6965
6980
  className: "game-ui-stage-demo",
6966
6981
  children: [/* @__PURE__ */ n("div", {
6967
6982
  "aria-label": "Clay world HUD preview",
6968
6983
  className: "game-ui-stage-world",
6969
6984
  children: [
6970
- /* @__PURE__ */ t(Dr, {
6985
+ /* @__PURE__ */ t(kr, {
6971
6986
  label: e.label,
6972
6987
  items: [
6973
6988
  {
@@ -6990,15 +7005,15 @@ function la() {
6990
7005
  value: "02:46"
6991
7006
  }
6992
7007
  ],
6993
- actions: /* @__PURE__ */ n(qn, {
7008
+ actions: /* @__PURE__ */ n(Yn, {
6994
7009
  label: e.tools,
6995
- children: [/* @__PURE__ */ t(Jn, {
7010
+ children: [/* @__PURE__ */ t(Xn, {
6996
7011
  label: e.history,
6997
7012
  children: /* @__PURE__ */ t($, {
6998
7013
  icon: "scroll",
6999
7014
  size: "sm"
7000
7015
  })
7001
- }), /* @__PURE__ */ t(Jn, {
7016
+ }), /* @__PURE__ */ t(Xn, {
7002
7017
  label: e.settings,
7003
7018
  children: /* @__PURE__ */ t($, {
7004
7019
  icon: "settings",
@@ -7038,7 +7053,7 @@ function la() {
7038
7053
  }), /* @__PURE__ */ n("div", {
7039
7054
  className: "game-ui-stage-sidecar",
7040
7055
  children: [
7041
- /* @__PURE__ */ t(kr, {
7056
+ /* @__PURE__ */ t(jr, {
7042
7057
  badge: r.daily.badge,
7043
7058
  icon: "scroll",
7044
7059
  kicker: r.daily.kicker,
@@ -7047,7 +7062,7 @@ function la() {
7047
7062
  title: r.daily.title,
7048
7063
  tone: "daily"
7049
7064
  }),
7050
- /* @__PURE__ */ t(kr, {
7065
+ /* @__PURE__ */ t(jr, {
7051
7066
  badge: r.portal.badge,
7052
7067
  icon: "portal",
7053
7068
  kicker: r.portal.kicker,
@@ -7055,7 +7070,7 @@ function la() {
7055
7070
  title: r.portal.title,
7056
7071
  tone: "portal"
7057
7072
  }),
7058
- /* @__PURE__ */ t(kr, {
7073
+ /* @__PURE__ */ t(jr, {
7059
7074
  icon: "energy",
7060
7075
  kicker: r.host.kicker,
7061
7076
  summary: r.host.summary,
@@ -7066,21 +7081,21 @@ function la() {
7066
7081
  })]
7067
7082
  });
7068
7083
  }
7069
- function ua() {
7070
- let { hud: e, buttons: r } = ra(), i = (i) => {
7084
+ function fa() {
7085
+ let { hud: e, buttons: r } = aa(), i = (i) => {
7071
7086
  let a = i === "glass";
7072
7087
  return /* @__PURE__ */ n("div", {
7073
7088
  "aria-label": a ? "Overlay glass HUD" : "Default clay HUD",
7074
7089
  className: [
7075
7090
  "game-ui-stage-world",
7076
7091
  "game-ui-overlay-glass-proof",
7077
- a ? Qi.scopeClass : void 0
7092
+ a ? ea.scopeClass : void 0
7078
7093
  ].filter(Boolean).join(" "),
7079
7094
  ...a ? {
7080
- [Qi.toneAttr]: Qi.toneGlass,
7081
- [Qi.densityAttr]: Qi.densityCompact
7095
+ [ea.toneAttr]: ea.toneGlass,
7096
+ [ea.densityAttr]: ea.densityCompact
7082
7097
  } : {},
7083
- children: [/* @__PURE__ */ t(Dr, {
7098
+ children: [/* @__PURE__ */ t(kr, {
7084
7099
  label: e.label,
7085
7100
  items: [
7086
7101
  {
@@ -7103,15 +7118,15 @@ function ua() {
7103
7118
  value: "02:46"
7104
7119
  }
7105
7120
  ],
7106
- actions: /* @__PURE__ */ n(qn, {
7121
+ actions: /* @__PURE__ */ n(Yn, {
7107
7122
  label: e.tools,
7108
- children: [/* @__PURE__ */ t(Jn, {
7123
+ children: [/* @__PURE__ */ t(Xn, {
7109
7124
  label: e.history,
7110
7125
  children: /* @__PURE__ */ t($, {
7111
7126
  icon: "scroll",
7112
7127
  size: "sm"
7113
7128
  })
7114
- }), /* @__PURE__ */ t(Jn, {
7129
+ }), /* @__PURE__ */ t(Xn, {
7115
7130
  label: e.settings,
7116
7131
  children: /* @__PURE__ */ t($, {
7117
7132
  icon: "settings",
@@ -7132,7 +7147,7 @@ function ua() {
7132
7147
  tone: "success",
7133
7148
  children: r.readyBadge
7134
7149
  }),
7135
- /* @__PURE__ */ t(Wr, {
7150
+ /* @__PURE__ */ t(Kr, {
7136
7151
  label: e.reveal,
7137
7152
  value: 68
7138
7153
  })
@@ -7170,22 +7185,22 @@ function ua() {
7170
7185
  children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t("strong", { children: "Overlay glass + compact" }), /* @__PURE__ */ n("span", {
7171
7186
  className: "game-ui-small-copy",
7172
7187
  children: [
7173
- Qi.toneAttr,
7188
+ ea.toneAttr,
7174
7189
  "=\"",
7175
- Qi.toneGlass,
7190
+ ea.toneGlass,
7176
7191
  "\" ·",
7177
7192
  " ",
7178
- Qi.densityAttr,
7193
+ ea.densityAttr,
7179
7194
  "=\"",
7180
- Qi.densityCompact,
7195
+ ea.densityCompact,
7181
7196
  "\""
7182
7197
  ]
7183
7198
  })] }), i("glass")]
7184
7199
  })]
7185
7200
  });
7186
7201
  }
7187
- function da() {
7188
- let { liquidMetal: e } = ra();
7202
+ function pa() {
7203
+ let { liquidMetal: e } = aa();
7189
7204
  return /* @__PURE__ */ n("div", {
7190
7205
  className: "game-ui-liquid-metal-compare",
7191
7206
  children: [/* @__PURE__ */ t(X, {
@@ -7193,7 +7208,7 @@ function da() {
7193
7208
  tone: "strong",
7194
7209
  children: /* @__PURE__ */ t("div", {
7195
7210
  className: "game-ui-liquid-metal-stage",
7196
- children: /* @__PURE__ */ t(I, {
7211
+ children: /* @__PURE__ */ t(ge, {
7197
7212
  renderer: "css",
7198
7213
  children: e.cta
7199
7214
  })
@@ -7203,7 +7218,7 @@ function da() {
7203
7218
  tone: "strong",
7204
7219
  children: /* @__PURE__ */ t("div", {
7205
7220
  className: "game-ui-liquid-metal-stage",
7206
- children: /* @__PURE__ */ t(I, {
7221
+ children: /* @__PURE__ */ t(ge, {
7207
7222
  renderer: "webgl",
7208
7223
  children: e.cta
7209
7224
  })
@@ -7211,13 +7226,13 @@ function da() {
7211
7226
  })]
7212
7227
  });
7213
7228
  }
7214
- function fa() {
7215
- let { modals: e } = ra();
7229
+ function ma() {
7230
+ let { modals: e } = aa();
7216
7231
  return /* @__PURE__ */ n("div", {
7217
7232
  className: "game-ui-preview-two-up",
7218
- children: [/* @__PURE__ */ n(Gn, {
7233
+ children: [/* @__PURE__ */ n(qn, {
7219
7234
  title: e.dialogTitle,
7220
- children: [/* @__PURE__ */ t("p", { children: e.dialogBody }), /* @__PURE__ */ n(qn, {
7235
+ children: [/* @__PURE__ */ t("p", { children: e.dialogBody }), /* @__PURE__ */ n(Yn, {
7221
7236
  label: e.actionsLabel,
7222
7237
  children: [/* @__PURE__ */ t(w, {
7223
7238
  variant: "primary",
@@ -7231,16 +7246,16 @@ function fa() {
7231
7246
  title: e.panelTitle,
7232
7247
  tone: "strong",
7233
7248
  children: [
7234
- /* @__PURE__ */ t(nr, {
7249
+ /* @__PURE__ */ t(ir, {
7235
7250
  tone: "success",
7236
7251
  children: e.toastOk
7237
7252
  }),
7238
- /* @__PURE__ */ t(nr, {
7253
+ /* @__PURE__ */ t(ir, {
7239
7254
  tone: "danger",
7240
7255
  children: e.toastErr
7241
7256
  }),
7242
- /* @__PURE__ */ t(Nr, { label: e.loading }),
7243
- /* @__PURE__ */ t(Nr, {
7257
+ /* @__PURE__ */ t(Fr, { label: e.loading }),
7258
+ /* @__PURE__ */ t(Fr, {
7244
7259
  label: e.loadingErr,
7245
7260
  tone: "error"
7246
7261
  })
@@ -7248,14 +7263,14 @@ function fa() {
7248
7263
  })]
7249
7264
  });
7250
7265
  }
7251
- function pa() {
7252
- let { cards: e } = ra();
7266
+ function ha() {
7267
+ let { cards: e } = aa();
7253
7268
  return /* @__PURE__ */ n("div", {
7254
7269
  className: "game-ui-preview-two-up",
7255
7270
  children: [/* @__PURE__ */ t(X, {
7256
7271
  title: e.fanTitle,
7257
7272
  tone: "strong",
7258
- children: /* @__PURE__ */ t(Or, {
7273
+ children: /* @__PURE__ */ t(Ar, {
7259
7274
  label: e.fanLabel,
7260
7275
  cards: [
7261
7276
  {
@@ -7287,16 +7302,16 @@ function pa() {
7287
7302
  }), /* @__PURE__ */ n("div", {
7288
7303
  className: "game-ui-asset-path-grid",
7289
7304
  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 })
7305
+ /* @__PURE__ */ t("code", { children: hr.catalog.manifest }),
7306
+ /* @__PURE__ */ t("code", { children: hr.catalog.sourceCatalog }),
7307
+ /* @__PURE__ */ t("code", { children: hr.buttons.primary }),
7308
+ /* @__PURE__ */ t("code", { children: hr.icons.trophy })
7294
7309
  ]
7295
7310
  })]
7296
7311
  })]
7297
7312
  });
7298
7313
  }
7299
- var ma = [
7314
+ var ga = [
7300
7315
  {
7301
7316
  id: "terrain",
7302
7317
  label: "Terrain",
@@ -7312,7 +7327,7 @@ var ma = [
7312
7327
  label: "Place",
7313
7328
  icon: "gem"
7314
7329
  }
7315
- ], ha = [
7330
+ ], _a = [
7316
7331
  {
7317
7332
  id: "raise",
7318
7333
  label: "Raise",
@@ -7338,7 +7353,7 @@ var ma = [
7338
7353
  label: "Paint",
7339
7354
  shortcut: "5"
7340
7355
  }
7341
- ], ga = [
7356
+ ], va = [
7342
7357
  {
7343
7358
  id: "grass",
7344
7359
  label: "Grass",
@@ -7354,7 +7369,7 @@ var ma = [
7354
7369
  label: "Path",
7355
7370
  color: "#b98d5d"
7356
7371
  }
7357
- ], _a = [{
7372
+ ], ya = [{
7358
7373
  id: "foundation",
7359
7374
  label: "Foundation",
7360
7375
  icon: "home",
@@ -7373,10 +7388,10 @@ var ma = [
7373
7388
  status: "ready"
7374
7389
  }]
7375
7390
  }];
7376
- function va() {
7391
+ function ba() {
7377
7392
  return /* @__PURE__ */ n("div", {
7378
7393
  className: "game-ui-preview-two-up",
7379
- children: [/* @__PURE__ */ t(Si, {
7394
+ children: [/* @__PURE__ */ t(wi, {
7380
7395
  activeBuildCategoryId: "foundation",
7381
7396
  activeMaterialId: "grass",
7382
7397
  activeModeId: "terrain",
@@ -7385,10 +7400,10 @@ function va() {
7385
7400
  radius: 2.75,
7386
7401
  strength: .45
7387
7402
  },
7388
- buildCategories: _a,
7403
+ buildCategories: ya,
7389
7404
  label: "Desktop terrain and build tools",
7390
- materials: ga,
7391
- modes: ma,
7405
+ materials: va,
7406
+ modes: ga,
7392
7407
  selectedBuildItemId: "floor-2x2",
7393
7408
  status: {
7394
7409
  label: "Ready",
@@ -7399,12 +7414,12 @@ function va() {
7399
7414
  progressValue: 68
7400
7415
  },
7401
7416
  title: "Island tools",
7402
- tools: ha,
7417
+ tools: _a,
7403
7418
  undoRedo: {
7404
7419
  canRedo: !1,
7405
7420
  canUndo: !0
7406
7421
  }
7407
- }), /* @__PURE__ */ t(Si, {
7422
+ }), /* @__PURE__ */ t(wi, {
7408
7423
  activeBuildCategoryId: "foundation",
7409
7424
  activeMaterialId: "path",
7410
7425
  activeModeId: "terrain",
@@ -7413,11 +7428,11 @@ function va() {
7413
7428
  radius: 1.5,
7414
7429
  strength: .3
7415
7430
  },
7416
- buildCategories: _a,
7431
+ buildCategories: ya,
7417
7432
  drawerOpen: !0,
7418
7433
  label: "Small mobile terrain drawer",
7419
- materials: ga,
7420
- modes: ma,
7434
+ materials: va,
7435
+ modes: ga,
7421
7436
  selectedBuildItemId: "floor-2x2",
7422
7437
  status: {
7423
7438
  label: "Blocked",
@@ -7425,7 +7440,7 @@ function va() {
7425
7440
  description: "This edit would bury a placed object."
7426
7441
  },
7427
7442
  title: "Tools",
7428
- tools: ha,
7443
+ tools: _a,
7429
7444
  undoRedo: {
7430
7445
  canRedo: !0,
7431
7446
  canUndo: !0
@@ -7434,7 +7449,7 @@ function va() {
7434
7449
  })]
7435
7450
  });
7436
7451
  }
7437
- function ya({ label: e, mode: r }) {
7452
+ function xa({ label: e, mode: r }) {
7438
7453
  return /* @__PURE__ */ n("div", {
7439
7454
  className: "game-ui-construction-preview-card",
7440
7455
  "data-preview": r,
@@ -7448,7 +7463,7 @@ function ya({ label: e, mode: r }) {
7448
7463
  ]
7449
7464
  });
7450
7465
  }
7451
- var ba = [
7466
+ var Sa = [
7452
7467
  {
7453
7468
  id: "preview-deck",
7454
7469
  title: "Deck robot crew",
@@ -7509,7 +7524,7 @@ var ba = [
7509
7524
  before: {
7510
7525
  label: "Before",
7511
7526
  caption: "Uneven terrain pad.",
7512
- content: /* @__PURE__ */ t(ya, {
7527
+ content: /* @__PURE__ */ t(xa, {
7513
7528
  label: "Rough pad",
7514
7529
  mode: "before"
7515
7530
  })
@@ -7517,7 +7532,7 @@ var ba = [
7517
7532
  after: {
7518
7533
  label: "After",
7519
7534
  caption: "Flattened foundation pad with safe clearance.",
7520
- content: /* @__PURE__ */ t(ya, {
7535
+ content: /* @__PURE__ */ t(xa, {
7521
7536
  label: "Foundation ready",
7522
7537
  mode: "after"
7523
7538
  })
@@ -7546,19 +7561,19 @@ var ba = [
7546
7561
  }]
7547
7562
  }
7548
7563
  ];
7549
- function xa() {
7564
+ function Ca() {
7550
7565
  return /* @__PURE__ */ n("div", {
7551
7566
  className: "game-ui-preview-two-up",
7552
- children: [/* @__PURE__ */ t(Hi, {
7553
- jobs: ba,
7567
+ children: [/* @__PURE__ */ t(Wi, {
7568
+ jobs: Sa,
7554
7569
  label: "AI contractor jobs",
7555
7570
  selectedJobId: "review-house-pad",
7556
7571
  subtitle: "Official contractor UI covers drafts, previews, robot work, validation, review, and local-only provider boundaries.",
7557
7572
  title: "AI contractor",
7558
7573
  variant: "desktop"
7559
- }), /* @__PURE__ */ t(Hi, {
7574
+ }), /* @__PURE__ */ t(Wi, {
7560
7575
  drawerOpen: !0,
7561
- jobs: ba,
7576
+ jobs: Sa,
7562
7577
  label: "Small mobile contractor jobs",
7563
7578
  selectedJobId: "blocked-fence",
7564
7579
  title: "Contractor",
@@ -7566,10 +7581,10 @@ function xa() {
7566
7581
  })]
7567
7582
  });
7568
7583
  }
7569
- function Sa() {
7570
- return /* @__PURE__ */ t(Kr, {
7584
+ function wa() {
7585
+ return /* @__PURE__ */ t(Jr, {
7571
7586
  title: "OwnMySpace island editor preview",
7572
- hud: /* @__PURE__ */ t(Jr, {
7587
+ hud: /* @__PURE__ */ t(Xr, {
7573
7588
  label: "Island facts",
7574
7589
  facts: [
7575
7590
  {
@@ -7593,11 +7608,11 @@ function Sa() {
7593
7608
  }
7594
7609
  ]
7595
7610
  }),
7596
- movementPad: /* @__PURE__ */ t($r, {
7611
+ movementPad: /* @__PURE__ */ t(ti, {
7597
7612
  helpText: "WASD or arrows",
7598
7613
  label: "Move avatar"
7599
7614
  }),
7600
- assetLibrary: /* @__PURE__ */ t(ii, {
7615
+ assetLibrary: /* @__PURE__ */ t(oi, {
7601
7616
  label: "Placeable assets",
7602
7617
  title: "Assets",
7603
7618
  subtitle: "Starter, generated, and imported assets stay visibly distinct but share one placement path.",
@@ -7644,7 +7659,7 @@ function Sa() {
7644
7659
  }
7645
7660
  ]
7646
7661
  }),
7647
- bottomBar: /* @__PURE__ */ t(ai, {
7662
+ bottomBar: /* @__PURE__ */ t(si, {
7648
7663
  title: "Placement",
7649
7664
  selectedTitle: "Manual chair",
7650
7665
  placedObjects: 3,
@@ -7680,7 +7695,7 @@ function Sa() {
7680
7695
  })
7681
7696
  });
7682
7697
  }
7683
- var Ca = [{
7698
+ var Ta = [{
7684
7699
  id: "starter",
7685
7700
  label: "Starter pieces",
7686
7701
  source: "starter",
@@ -7711,7 +7726,7 @@ var Ca = [{
7711
7726
  }
7712
7727
  ]
7713
7728
  }];
7714
- function wa() {
7729
+ function Ea() {
7715
7730
  return /* @__PURE__ */ t("div", {
7716
7731
  className: "game-ui-asset-compression-repro",
7717
7732
  "aria-label": "Asset card compression repro",
@@ -7735,9 +7750,9 @@ function wa() {
7735
7750
  className: "game-ui-asset-compression-repro-surface",
7736
7751
  "data-repro-surface": e.id,
7737
7752
  style: { "--repro-width": e.width },
7738
- children: [/* @__PURE__ */ t(Q, { children: e.label }), /* @__PURE__ */ t(ii, {
7753
+ children: [/* @__PURE__ */ t(Q, { children: e.label }), /* @__PURE__ */ t(oi, {
7739
7754
  density: "dense",
7740
- groups: Ca,
7755
+ groups: Ta,
7741
7756
  label: `${e.label} assets`,
7742
7757
  selectedAssetId: "asset-repro-chair",
7743
7758
  title: "Build"
@@ -7745,13 +7760,13 @@ function wa() {
7745
7760
  }, e.id))
7746
7761
  });
7747
7762
  }
7748
- function Ta() {
7749
- let { firstSession: e } = ra();
7763
+ function Da() {
7764
+ let { firstSession: e } = aa();
7750
7765
  return /* @__PURE__ */ n("div", {
7751
7766
  className: "game-ui-first-session-preview",
7752
7767
  children: [/* @__PURE__ */ t("div", {
7753
7768
  className: "game-ui-first-session-world",
7754
- children: /* @__PURE__ */ t(Ir, {
7769
+ children: /* @__PURE__ */ t(Rr, {
7755
7770
  authenticated: !0,
7756
7771
  batteryCount: 5,
7757
7772
  dailyStreak: 3,
@@ -7785,7 +7800,7 @@ function Ta() {
7785
7800
  })
7786
7801
  }), /* @__PURE__ */ t("div", {
7787
7802
  className: "game-ui-first-session-modal-slot",
7788
- children: /* @__PURE__ */ t(Lr, {
7803
+ children: /* @__PURE__ */ t(zr, {
7789
7804
  open: !0,
7790
7805
  onDismiss: () => void 0,
7791
7806
  labels: {
@@ -7813,46 +7828,46 @@ function Ta() {
7813
7828
  })]
7814
7829
  });
7815
7830
  }
7816
- function Ea() {
7817
- let { responsive: e } = ra();
7831
+ function Oa() {
7832
+ let { responsive: e } = aa();
7818
7833
  return /* @__PURE__ */ n("div", {
7819
7834
  className: "game-ui-proof-frames",
7820
7835
  children: [/* @__PURE__ */ n("article", {
7821
7836
  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, {})]
7837
+ children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t(Q, { children: e.desktop }), /* @__PURE__ */ t("strong", { children: "1440×900" })] }), /* @__PURE__ */ t(da, {})]
7823
7838
  }), /* @__PURE__ */ n("article", {
7824
7839
  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, {})]
7840
+ children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t(Q, { children: e.mobileLandscape }), /* @__PURE__ */ t("strong", { children: "844×390" })] }), /* @__PURE__ */ t(da, {})]
7826
7841
  })]
7827
7842
  });
7828
7843
  }
7829
- function Da() {
7830
- let { forms: e } = ra();
7844
+ function ka() {
7845
+ let { forms: e } = aa();
7831
7846
  return /* @__PURE__ */ n("div", {
7832
7847
  className: "game-ui-preview-two-up",
7833
7848
  children: [/* @__PURE__ */ n(X, {
7834
7849
  title: e.formsTitle,
7835
7850
  tone: "strong",
7836
7851
  children: [
7837
- /* @__PURE__ */ t(Br, {
7852
+ /* @__PURE__ */ t(Hr, {
7838
7853
  hint: e.roomCodeHint,
7839
7854
  label: e.roomCodeLabel,
7840
- children: /* @__PURE__ */ t(Rr, { placeholder: e.roomCodePlaceholder })
7855
+ children: /* @__PURE__ */ t(Br, { placeholder: e.roomCodePlaceholder })
7841
7856
  }),
7842
- /* @__PURE__ */ t(Br, {
7857
+ /* @__PURE__ */ t(Hr, {
7843
7858
  label: e.nameLabel,
7844
7859
  required: !0,
7845
- children: /* @__PURE__ */ t(Rr, { placeholder: e.namePlaceholder })
7860
+ children: /* @__PURE__ */ t(Br, { placeholder: e.namePlaceholder })
7846
7861
  }),
7847
- /* @__PURE__ */ t(Br, {
7862
+ /* @__PURE__ */ t(Hr, {
7848
7863
  error: e.readError,
7849
7864
  label: e.readLabel,
7850
- children: /* @__PURE__ */ t(zr, {
7865
+ children: /* @__PURE__ */ t(Vr, {
7851
7866
  invalid: !0,
7852
7867
  placeholder: e.readPlaceholder
7853
7868
  })
7854
7869
  }),
7855
- /* @__PURE__ */ t(Vr, {
7870
+ /* @__PURE__ */ t(Ur, {
7856
7871
  defaultChecked: !0,
7857
7872
  label: e.rememberLabel
7858
7873
  })
@@ -7864,38 +7879,38 @@ function Da() {
7864
7879
  /* @__PURE__ */ n("div", {
7865
7880
  className: "game-ui-component-row",
7866
7881
  children: [
7867
- /* @__PURE__ */ t(Ur, {
7882
+ /* @__PURE__ */ t(Gr, {
7868
7883
  name: "Mika Ono",
7869
7884
  status: "online"
7870
7885
  }),
7871
- /* @__PURE__ */ t(Ur, {
7886
+ /* @__PURE__ */ t(Gr, {
7872
7887
  name: "River",
7873
7888
  size: "lg",
7874
7889
  status: "busy"
7875
7890
  }),
7876
- /* @__PURE__ */ t(Ur, {
7891
+ /* @__PURE__ */ t(Gr, {
7877
7892
  name: "Noa",
7878
7893
  status: "away"
7879
7894
  }),
7880
- /* @__PURE__ */ t(Ur, {
7895
+ /* @__PURE__ */ t(Gr, {
7881
7896
  name: e.guestName,
7882
7897
  size: "sm"
7883
7898
  })
7884
7899
  ]
7885
7900
  }),
7886
- /* @__PURE__ */ t(Wr, {
7901
+ /* @__PURE__ */ t(Kr, {
7887
7902
  label: e.revealLabel,
7888
7903
  showValue: !0,
7889
7904
  value: 64
7890
7905
  }),
7891
- /* @__PURE__ */ t(Wr, {
7906
+ /* @__PURE__ */ t(Kr, {
7892
7907
  label: e.batteryLabel,
7893
7908
  max: 20,
7894
7909
  showValue: !0,
7895
7910
  tone: "success",
7896
7911
  value: 14
7897
7912
  }),
7898
- /* @__PURE__ */ t(Gr, {
7913
+ /* @__PURE__ */ t(qr, {
7899
7914
  action: /* @__PURE__ */ t(w, {
7900
7915
  variant: "primary",
7901
7916
  children: e.emptyCta
@@ -7908,8 +7923,8 @@ function Da() {
7908
7923
  })]
7909
7924
  });
7910
7925
  }
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 }) {
7926
+ var Aa = cr.filter((e) => fr(e).includes("game")), ja = cr.filter((e) => fr(e).includes("line"));
7927
+ function Ma({ names: e, style: r }) {
7913
7928
  return /* @__PURE__ */ t("div", {
7914
7929
  className: "game-ui-icon-grid",
7915
7930
  children: e.map((e) => /* @__PURE__ */ n("figure", {
@@ -7922,10 +7937,10 @@ function Aa({ names: e, style: r }) {
7922
7937
  }, `${r}-${e}`))
7923
7938
  });
7924
7939
  }
7925
- function ja() {
7940
+ function Na() {
7926
7941
  return /* @__PURE__ */ t("div", {
7927
7942
  className: "game-ui-icon-grid",
7928
- children: fr.map((e) => /* @__PURE__ */ n("figure", {
7943
+ children: mr.map((e) => /* @__PURE__ */ n("figure", {
7929
7944
  className: "game-ui-icon-cell",
7930
7945
  children: [/* @__PURE__ */ t("span", {
7931
7946
  className: "game-ui-asset-icon",
@@ -7934,14 +7949,14 @@ function ja() {
7934
7949
  "aria-hidden": !0,
7935
7950
  children: /* @__PURE__ */ t("img", {
7936
7951
  alt: "",
7937
- src: dr[e]
7952
+ src: pr[e]
7938
7953
  })
7939
7954
  }), /* @__PURE__ */ t("figcaption", { children: e })]
7940
7955
  }, `sprite-${e}`))
7941
7956
  });
7942
7957
  }
7943
- function Ma() {
7944
- let { gallery: e } = ra();
7958
+ function Pa() {
7959
+ let { gallery: e } = aa();
7945
7960
  return /* @__PURE__ */ n("div", {
7946
7961
  className: "game-ui-icon-gallery",
7947
7962
  children: [
@@ -7956,8 +7971,8 @@ function Ma() {
7956
7971
  className: "game-ui-small-copy",
7957
7972
  children: e.gameHint
7958
7973
  })]
7959
- }), /* @__PURE__ */ t(Aa, {
7960
- names: Oa,
7974
+ }), /* @__PURE__ */ t(Ma, {
7975
+ names: Aa,
7961
7976
  style: "game"
7962
7977
  })]
7963
7978
  }),
@@ -7969,8 +7984,8 @@ function Ma() {
7969
7984
  className: "game-ui-small-copy",
7970
7985
  children: e.lineHint
7971
7986
  })]
7972
- }), /* @__PURE__ */ t(Aa, {
7973
- names: ka,
7987
+ }), /* @__PURE__ */ t(Ma, {
7988
+ names: ja,
7974
7989
  style: "line"
7975
7990
  })]
7976
7991
  }),
@@ -7985,16 +8000,16 @@ function Ma() {
7985
8000
  className: "game-ui-small-copy",
7986
8001
  children: e.spriteHint
7987
8002
  })]
7988
- }), /* @__PURE__ */ t(ja, {})]
8003
+ }), /* @__PURE__ */ t(Na, {})]
7989
8004
  })
7990
8005
  ]
7991
8006
  });
7992
8007
  }
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;
8008
+ function Fa({ title: e, body: r }) {
8009
+ let [i, a] = m("en"), o = ra[i], s = e && i === "en" ? e : o.heroTitle, c = r && i === "en" ? r : o.heroBody;
7995
8010
  return l(() => (document.documentElement.dataset.gameUiPreview = "clay", () => {
7996
8011
  delete document.documentElement.dataset.gameUiPreview;
7997
- }), []), /* @__PURE__ */ t(na.Provider, {
8012
+ }), []), /* @__PURE__ */ t(ia.Provider, {
7998
8013
  value: o,
7999
8014
  children: /* @__PURE__ */ n("main", {
8000
8015
  "aria-label": "Swimmer UI Kit clay preview",
@@ -8007,7 +8022,7 @@ function Na({ title: e, body: r }) {
8007
8022
  tone: "ai",
8008
8023
  children: "@pieai/swimmer-ui-kit"
8009
8024
  }),
8010
- /* @__PURE__ */ t(Mr, {
8025
+ /* @__PURE__ */ t(Pr, {
8011
8026
  currentLabel: o.triggerLabel,
8012
8027
  label: o.langMenuLabel,
8013
8028
  onSelect: (e) => a(e),
@@ -8034,10 +8049,10 @@ function Na({ title: e, body: r }) {
8034
8049
  id: "game-ui-preview-token-title",
8035
8050
  children: o.sections.tokens
8036
8051
  }),
8037
- /* @__PURE__ */ t(oa, {}),
8052
+ /* @__PURE__ */ t(ca, {}),
8038
8053
  /* @__PURE__ */ t("div", {
8039
8054
  className: "game-ui-token-ledger",
8040
- children: ia.map((e) => /* @__PURE__ */ t(aa, {
8055
+ children: oa.map((e) => /* @__PURE__ */ t(sa, {
8041
8056
  id: e.id,
8042
8057
  label: o.tokenGroups[e.id] ?? e.id,
8043
8058
  tokens: e.tokens
@@ -8057,7 +8072,7 @@ function Na({ title: e, body: r }) {
8057
8072
  className: "game-ui-small-copy",
8058
8073
  children: o.iconsIntro
8059
8074
  }),
8060
- /* @__PURE__ */ t(Ma, {})
8075
+ /* @__PURE__ */ t(Pa, {})
8061
8076
  ]
8062
8077
  }),
8063
8078
  /* @__PURE__ */ n("section", {
@@ -8066,7 +8081,7 @@ function Na({ title: e, body: r }) {
8066
8081
  children: [/* @__PURE__ */ t("h2", {
8067
8082
  id: "game-ui-preview-type-title",
8068
8083
  children: o.sections.typography
8069
- }), /* @__PURE__ */ t(sa, {})]
8084
+ }), /* @__PURE__ */ t(la, {})]
8070
8085
  }),
8071
8086
  /* @__PURE__ */ n("section", {
8072
8087
  "aria-labelledby": "game-ui-preview-components-title",
@@ -8076,11 +8091,11 @@ function Na({ title: e, body: r }) {
8076
8091
  id: "game-ui-preview-components-title",
8077
8092
  children: o.sections.components
8078
8093
  }),
8079
- /* @__PURE__ */ t(ca, {}),
8080
- /* @__PURE__ */ t(la, {}),
8081
- /* @__PURE__ */ t(fa, {}),
8082
- /* @__PURE__ */ t(pa, {}),
8083
- /* @__PURE__ */ t(Kn, {
8094
+ /* @__PURE__ */ t(ua, {}),
8095
+ /* @__PURE__ */ t(da, {}),
8096
+ /* @__PURE__ */ t(ma, {}),
8097
+ /* @__PURE__ */ t(ha, {}),
8098
+ /* @__PURE__ */ t(Jn, {
8084
8099
  entries: o.history,
8085
8100
  label: o.historyLabel
8086
8101
  })
@@ -8092,7 +8107,7 @@ function Na({ title: e, body: r }) {
8092
8107
  children: [/* @__PURE__ */ t("h2", {
8093
8108
  id: "game-ui-preview-forms-title",
8094
8109
  children: o.sections.forms
8095
- }), /* @__PURE__ */ t(Da, {})]
8110
+ }), /* @__PURE__ */ t(ka, {})]
8096
8111
  }),
8097
8112
  /* @__PURE__ */ n("section", {
8098
8113
  "aria-labelledby": "game-ui-preview-overlay-glass-title",
@@ -8106,7 +8121,7 @@ function Na({ title: e, body: r }) {
8106
8121
  className: "game-ui-small-copy",
8107
8122
  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
8123
  }),
8109
- /* @__PURE__ */ t(ua, {})
8124
+ /* @__PURE__ */ t(fa, {})
8110
8125
  ]
8111
8126
  }),
8112
8127
  /* @__PURE__ */ n("section", {
@@ -8121,7 +8136,7 @@ function Na({ title: e, body: r }) {
8121
8136
  className: "game-ui-small-copy",
8122
8137
  children: o.liquidMetal.body
8123
8138
  }),
8124
- /* @__PURE__ */ t(da, {})
8139
+ /* @__PURE__ */ t(pa, {})
8125
8140
  ]
8126
8141
  }),
8127
8142
  /* @__PURE__ */ n("section", {
@@ -8130,7 +8145,7 @@ function Na({ title: e, body: r }) {
8130
8145
  children: [/* @__PURE__ */ t("h2", {
8131
8146
  id: "game-ui-preview-ownmyspace-title",
8132
8147
  children: "OwnMySpace game surface pack"
8133
- }), /* @__PURE__ */ t(Sa, {})]
8148
+ }), /* @__PURE__ */ t(wa, {})]
8134
8149
  }),
8135
8150
  /* @__PURE__ */ n("section", {
8136
8151
  "aria-labelledby": "game-ui-preview-terrain-build-title",
@@ -8144,7 +8159,7 @@ function Na({ title: e, body: r }) {
8144
8159
  className: "game-ui-small-copy",
8145
8160
  children: "Official terrain controls cover mode, brush, material, undo/redo, build library, status, progress, and compact mobile drawer surfaces."
8146
8161
  }),
8147
- /* @__PURE__ */ t(va, {})
8162
+ /* @__PURE__ */ t(ba, {})
8148
8163
  ]
8149
8164
  }),
8150
8165
  /* @__PURE__ */ n("section", {
@@ -8159,7 +8174,7 @@ function Na({ title: e, body: r }) {
8159
8174
  className: "game-ui-small-copy",
8160
8175
  children: "Official construction surfaces cover job queue states, before/after review, robot crew status, validation warnings, approval actions, and local-only provider badges."
8161
8176
  }),
8162
- /* @__PURE__ */ t(xa, {})
8177
+ /* @__PURE__ */ t(Ca, {})
8163
8178
  ]
8164
8179
  }),
8165
8180
  /* @__PURE__ */ n("section", {
@@ -8174,7 +8189,7 @@ function Na({ title: e, body: r }) {
8174
8189
  className: "game-ui-small-copy",
8175
8190
  children: "Official asset cards must stay visually complete when a game shell uses dense, narrow, or rail-style inventory slots."
8176
8191
  }),
8177
- /* @__PURE__ */ t(wa, {})
8192
+ /* @__PURE__ */ t(Ea, {})
8178
8193
  ]
8179
8194
  }),
8180
8195
  /* @__PURE__ */ n("section", {
@@ -8183,7 +8198,7 @@ function Na({ title: e, body: r }) {
8183
8198
  children: [/* @__PURE__ */ t("h2", {
8184
8199
  id: "game-ui-preview-first-session-title",
8185
8200
  children: o.sections.firstSession
8186
- }), /* @__PURE__ */ t(Ta, {})]
8201
+ }), /* @__PURE__ */ t(Da, {})]
8187
8202
  }),
8188
8203
  /* @__PURE__ */ n("section", {
8189
8204
  "aria-labelledby": "game-ui-preview-orientation-title",
@@ -8191,7 +8206,7 @@ function Na({ title: e, body: r }) {
8191
8206
  children: [/* @__PURE__ */ t("h2", {
8192
8207
  id: "game-ui-preview-orientation-title",
8193
8208
  children: o.sections.orientation
8194
- }), /* @__PURE__ */ t(jr, {
8209
+ }), /* @__PURE__ */ t(Nr, {
8195
8210
  badgeLabel: o.orientation.badge,
8196
8211
  body: o.orientation.body,
8197
8212
  cta: o.orientation.cta,
@@ -8206,11 +8221,11 @@ function Na({ title: e, body: r }) {
8206
8221
  children: [/* @__PURE__ */ t("h2", {
8207
8222
  id: "game-ui-preview-responsive-title",
8208
8223
  children: o.sections.responsive
8209
- }), /* @__PURE__ */ t(Ea, {})]
8224
+ }), /* @__PURE__ */ t(Oa, {})]
8210
8225
  })
8211
8226
  ]
8212
8227
  })
8213
8228
  });
8214
8229
  }
8215
8230
  //#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 };
8231
+ export { hr as CLAY_ASSETS, or as CLAY_ASSET_BASE_PATH, xe as CLAY_ASSET_SIZE_TOKENS, L as CLAY_COLOR_TOKENS, U as CLAY_ELEVATION_TOKENS, pr as CLAY_GAME_SPRITES, mr as CLAY_GAME_SPRITE_NAMES, cr as CLAY_ICON_NAMES, sr 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, Rr as FirstSessionHud, zr as FirstSessionOnboarding, ea as GAME_UI_OVERLAY, Qi as GAME_UI_PREVIEW_MESSAGES, ta as GAME_UI_TARGETS, na as GAME_UI_THEME_CONTRACT, $i as GAME_UI_TOKENS, Qr as GameActionGrid, ai as GameAssetCard, $ as GameAssetIcon, oi as GameAssetLibrary, Gr as GameAvatar, Q as GameBadge, Vi as GameBeforeAfterToggle, _i as GameBrushControls, bi as GameBuildLibrary, w as GameButton, Kn as GameCallout, Ar as GameCardFan, Ur as GameCheckbox, qi as GameCollapsiblePanel, xi as GameCompactGameDrawer, Ui as GameCompactJobDrawer, zi as GameConstructionApprovalBar, Hi as GameConstructionJobCard, Ri as GameConstructionProgress, Wi as GameContractorPanel, qn as GameDialog, qr as GameEmptyState, Xr as GameFactList, Hr as GameField, Jn as GameHistoryPanel, kr as GameHud, Yn as GameHudActions, Xn as GameIconButton, Br as GameInput, Pr as GameLanguageMenu, Fr as GameLoadingState, vi as GameMaterialSwatches, Zi as GameModal, ti as GameMovementPad, ci as GameObjectToolbar, Nr as GameOrientationGate, X as GamePanel, si as GamePlacementToolbar, Kr as GameProgress, ar as GamePrompt, rr as GameRadialMenu, Bi as GameRobotCrewStatus, Yr as GameSceneHudLayout, er as GameSegmentedControl, Jr as GameShell, tr as GameSlider, jr as GameStageTile, Zr as GameStatList, Qn as GameTabs, wi as GameTerrainBuildToolbox, hi as GameTerrainModeControl, gi as GameTerrainToolStrip, Vr as GameTextArea, ir as GameToast, nr as GameToggle, Zn as GameTooltip, Fa as GameUiPreview, yi as GameUndoRedoActions, Xi as GameWindowPanel, Qt as IMAGE_MELT_DEFAULTS, ze as LIQUID_GOOEY_WAVINESS_MAX_FRACTION, Gn as LiquidGroup, Wn as LiquidItem, ge as LiquidMetalButton, Er as acknowledgeClayPlaceholders, Cr as getClayAssetBasePath, xr as getClayAssetMode, Ir as getClayCatalogPaths, Dr as getClayIconPath, fr as getClayIconStyles, Or as getClaySourceAssetPath, Oe as getLiquidGooeyBudget, O as getLiquidMetalContextBudget, C as playGameInteractionSound, S as playGameInteractionSoundForContext, rn as resolveDissolveOptions, Sr as setClayAssetBasePath, br as setClayAssetMode, ke as setLiquidGooeyBudget, k as setLiquidMetalContextBudget };