@pieai/swimmer-ui-kit 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -346,7 +346,7 @@ var D = {
346
346
  borderSubtle: "var(--game-ui-border-subtle)",
347
347
  borderStrong: "var(--game-ui-border-strong)",
348
348
  disabled: "var(--game-ui-disabled)"
349
- }, A = {
349
+ }, ce = {
350
350
  familyDisplay: "var(--game-ui-font-display)",
351
351
  familyBody: "var(--game-ui-font-body)",
352
352
  xs: "var(--game-ui-font-xs)",
@@ -360,7 +360,7 @@ var D = {
360
360
  weightBody: "var(--game-ui-weight-body)",
361
361
  weightStrong: "var(--game-ui-weight-strong)",
362
362
  weightTitle: "var(--game-ui-weight-title)"
363
- }, j = {
363
+ }, le = {
364
364
  px2: "var(--game-ui-space-2)",
365
365
  px4: "var(--game-ui-space-4)",
366
366
  px6: "var(--game-ui-space-6)",
@@ -375,33 +375,33 @@ var D = {
375
375
  safeRight: "var(--game-ui-safe-right)",
376
376
  safeBottom: "var(--game-ui-safe-bottom)",
377
377
  safeLeft: "var(--game-ui-safe-left)"
378
- }, M = {
378
+ }, A = {
379
379
  bead: "var(--game-ui-radius-bead)",
380
380
  control: "var(--game-ui-radius-control)",
381
381
  card: "var(--game-ui-radius-card)",
382
382
  panel: "var(--game-ui-radius-panel)",
383
383
  modal: "var(--game-ui-radius-modal)"
384
- }, N = {
384
+ }, j = {
385
385
  button: "var(--game-ui-shadow-button)",
386
386
  panel: "var(--game-ui-shadow-panel)",
387
387
  modal: "var(--game-ui-shadow-modal)",
388
388
  inset: "var(--game-ui-shadow-inset)",
389
389
  stroke: "var(--game-ui-stroke)"
390
- }, P = {
390
+ }, M = {
391
391
  fast: "var(--game-ui-motion-fast)",
392
392
  base: "var(--game-ui-motion-base)",
393
393
  slow: "var(--game-ui-motion-slow)",
394
394
  easingPop: "var(--game-ui-ease-pop)",
395
395
  easingSoft: "var(--game-ui-ease-soft)",
396
396
  reducedMotion: "var(--game-ui-reduced-motion-policy)"
397
- }, F = {
397
+ }, N = {
398
398
  playfield: "var(--game-ui-z-playfield)",
399
399
  hud: "var(--game-ui-z-hud)",
400
400
  sidebar: "var(--game-ui-z-sidebar)",
401
401
  overlay: "var(--game-ui-z-overlay)",
402
402
  modal: "var(--game-ui-z-modal)",
403
403
  toast: "var(--game-ui-z-toast)"
404
- }, I = {
404
+ }, P = {
405
405
  touchMinimumPx: 44,
406
406
  touchPrimaryPx: 52,
407
407
  touchIconPx: 48,
@@ -412,7 +412,7 @@ var D = {
412
412
  desktopProofHeightPx: 900,
413
413
  mobileLandscapeProofWidthPx: 844,
414
414
  mobileLandscapeProofHeightPx: 390
415
- }, L = {
415
+ }, F = {
416
416
  iconSm: "var(--game-ui-asset-icon-sm)",
417
417
  iconMd: "var(--game-ui-asset-icon-md)",
418
418
  iconLg: "var(--game-ui-asset-icon-lg)",
@@ -424,174 +424,178 @@ var D = {
424
424
  terrainToolHitSize: "var(--game-ui-terrain-tool-hit-size)",
425
425
  buildRailCardSize: "var(--game-ui-build-rail-card-size)",
426
426
  brushNumberWidth: "var(--game-ui-brush-number-width)"
427
- }, ce = {
427
+ }, ue = {
428
428
  colors: D,
429
429
  semantic: k,
430
- typography: A,
431
- spacing: j,
432
- radius: M,
433
- elevation: N,
434
- motion: P,
435
- layers: F,
436
- targets: I,
437
- assetSizing: L,
430
+ typography: ce,
431
+ spacing: le,
432
+ radius: A,
433
+ elevation: j,
434
+ motion: M,
435
+ layers: N,
436
+ targets: P,
437
+ assetSizing: F,
438
438
  overlayGlass: O
439
- }, le = "/assets/game/ui/clay/phase03-clay-kit", R = (e) => `${le}/${e}`, z = {
440
- ai: { line: R("icons/function/brain-v1.png") },
439
+ }, de = "/assets/game/ui/clay/phase03-clay-kit", I = (e) => `${de}/${e}`, L = {
440
+ ai: { line: I("icons/function/brain-v1.png") },
441
441
  alert: {
442
- game: R("components/common/alert-v1.png"),
443
- line: R("icons/function/warning-v1.png")
442
+ game: I("components/common/alert-v1.png"),
443
+ line: I("icons/function/warning-v1.png")
444
444
  },
445
- card: { line: R("icons/function/card-v1.png") },
446
- chat: { line: R("icons/function/chat-v1.png") },
447
- check: { line: R("icons/function/check-v1.png") },
445
+ card: { line: I("icons/function/card-v1.png") },
446
+ chat: { line: I("icons/function/chat-v1.png") },
447
+ check: { line: I("icons/function/check-v1.png") },
448
448
  close: {
449
- game: R("components/language/button-close-v1.png"),
450
- line: R("icons/function/cancel-v1.png")
449
+ game: I("components/language/button-close-v1.png"),
450
+ line: I("icons/function/cancel-v1.png")
451
451
  },
452
452
  coin: {
453
- game: R("icons/common/gold-v1.png"),
454
- line: R("icons/function/gold-v1.png")
453
+ game: I("icons/common/gold-v1.png"),
454
+ line: I("icons/function/gold-v1.png")
455
455
  },
456
- compass: { line: R("icons/function/compass-v1.png") },
457
- copy: { line: R("icons/function/copy-v1.png") },
456
+ compass: { line: I("icons/function/compass-v1.png") },
457
+ copy: { line: I("icons/function/copy-v1.png") },
458
458
  crown: {
459
- game: R("icons/common/crown-v1.png"),
460
- line: R("icons/function/crown-v1.png")
459
+ game: I("icons/common/crown-v1.png"),
460
+ line: I("icons/function/crown-v1.png")
461
461
  },
462
462
  energy: {
463
- game: R("icons/common/energy-v1.png"),
464
- line: R("icons/function/energy-v1.png")
463
+ game: I("icons/common/energy-v1.png"),
464
+ line: I("icons/function/energy-v1.png")
465
465
  },
466
466
  gem: {
467
- game: R("icons/common/gem-v1.png"),
468
- line: R("icons/function/gem-v1.png")
467
+ game: I("icons/common/gem-v1.png"),
468
+ line: I("icons/function/gem-v1.png")
469
469
  },
470
470
  gift: {
471
- game: R("icons/common/gift-red-v1.png"),
472
- line: R("icons/function/gift-v1.png")
471
+ game: I("icons/common/gift-red-v1.png"),
472
+ line: I("icons/function/gift-v1.png")
473
473
  },
474
- globe: { line: R("icons/function/globe-v1.png") },
475
- history: { line: R("icons/function/list-v1.png") },
476
- home: { line: R("icons/function/home-v1.png") },
474
+ globe: { line: I("icons/function/globe-v1.png") },
475
+ history: { line: I("icons/function/list-v1.png") },
476
+ home: { line: I("icons/function/home-v1.png") },
477
477
  hourglass: {
478
- game: R("icons/common/sandglass-v1.png"),
479
- line: R("icons/function/sandglass-v1.png")
478
+ game: I("icons/common/sandglass-v1.png"),
479
+ line: I("icons/function/sandglass-v1.png")
480
480
  },
481
- laurel: { game: R("icons/common/laurel-v1.png") },
481
+ laurel: { game: I("icons/common/laurel-v1.png") },
482
482
  lock: {
483
- game: R("icons/common/lock-v1.png"),
484
- line: R("icons/function/lock-v1.png")
483
+ game: I("icons/common/lock-v1.png"),
484
+ line: I("icons/function/lock-v1.png")
485
485
  },
486
- lucky: { game: R("icons/common/lucky-v1.png") },
486
+ lucky: { game: I("icons/common/lucky-v1.png") },
487
487
  mail: {
488
- game: R("icons/common/envelope-v1.png"),
489
- line: R("icons/function/mail-unread-v1.png")
488
+ game: I("icons/common/envelope-v1.png"),
489
+ line: I("icons/function/mail-unread-v1.png")
490
490
  },
491
491
  medal: {
492
- game: R("icons/common/medal-gold-v1.png"),
493
- line: R("icons/function/medal-v1.png")
492
+ game: I("icons/common/medal-gold-v1.png"),
493
+ line: I("icons/function/medal-v1.png")
494
494
  },
495
- mission: { game: R("icons/common/mission-v1.png") },
496
- mobile: { line: R("icons/function/mobile-v1.png") },
495
+ mission: { game: I("icons/common/mission-v1.png") },
496
+ mobile: { line: I("icons/function/mobile-v1.png") },
497
497
  portal: {
498
- game: R("icons/common/key-v1.png"),
499
- line: R("icons/function/compass-v1.png")
498
+ game: I("icons/common/key-v1.png"),
499
+ line: I("icons/function/compass-v1.png")
500
500
  },
501
501
  scroll: {
502
- game: R("icons/common/scroll-v1.png"),
503
- line: R("icons/function/list-v1.png")
502
+ game: I("icons/common/scroll-v1.png"),
503
+ line: I("icons/function/list-v1.png")
504
504
  },
505
505
  settings: {
506
- game: R("icons/common/setting-v1.png"),
507
- line: R("icons/function/setting-1-v1.png")
506
+ game: I("icons/common/setting-v1.png"),
507
+ line: I("icons/function/setting-1-v1.png")
508
508
  },
509
- shirt: { line: R("icons/function/user-v1.png") },
509
+ shirt: { line: I("icons/function/user-v1.png") },
510
510
  shop: {
511
- game: R("icons/common/shop-v1.png"),
512
- line: R("icons/function/shop-v1.png")
511
+ game: I("icons/common/shop-v1.png"),
512
+ line: I("icons/function/shop-v1.png")
513
513
  },
514
- smile: { line: R("icons/function/emoji-good-v1.png") },
514
+ smile: { line: I("icons/function/emoji-good-v1.png") },
515
515
  timer: {
516
- game: R("icons/common/timer-v1.png"),
517
- line: R("icons/function/stopwatch-v1.png")
516
+ game: I("icons/common/timer-v1.png"),
517
+ line: I("icons/function/stopwatch-v1.png")
518
518
  },
519
519
  trophy: {
520
- game: R("icons/common/trophy-v1.png"),
521
- line: R("icons/function/trophy-v1.png")
520
+ game: I("icons/common/trophy-v1.png"),
521
+ line: I("icons/function/trophy-v1.png")
522
522
  },
523
- undo: { line: R("icons/function/back-v1.png") },
524
- redo: { line: R("icons/function/refresh-v1.png") },
523
+ undo: { line: I("icons/function/back-v1.png") },
524
+ redo: { line: I("icons/function/refresh-v1.png") },
525
525
  vote: {
526
- game: R("icons/common/target-v1.png"),
527
- line: R("icons/function/target-v1.png")
526
+ game: I("icons/common/target-v1.png"),
527
+ line: I("icons/function/target-v1.png")
528
528
  }
529
- }, B = Object.keys(z);
530
- function ue(e, t) {
531
- let n = z[e];
532
- return t === "line" ? n.line ?? n.game ?? "" : n.game ?? n.line ?? "";
529
+ }, R = Object.keys(L), fe = de;
530
+ function pe(e) {
531
+ let t = fe;
532
+ 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;
533
+ }
534
+ function me(e, t) {
535
+ let n = L[e];
536
+ return pe(t === "line" ? n.line ?? n.game ?? "" : n.game ?? n.line ?? "");
533
537
  }
534
- function de(e) {
535
- let t = z[e], n = [];
538
+ function he(e) {
539
+ let t = L[e], n = [];
536
540
  return t.game && n.push("game"), t.line && n.push("line"), n;
537
541
  }
538
- var fe = {
539
- anvil: R("icons/common/anvil-v1.png"),
540
- arrow: R("icons/common/arrow-v1.png"),
541
- bomb: R("icons/common/bomb-v1.png"),
542
- candle: R("icons/common/candle-v1.png"),
543
- chicken: R("icons/common/chicken-v1.png"),
544
- giftBlue: R("icons/common/gift-blue-v1.png"),
545
- hammer: R("icons/common/hammer-v1.png"),
546
- horn: R("icons/common/horner-v1.png"),
547
- horseshoe: R("icons/common/horseshoes-v1.png"),
548
- letter: R("icons/common/letter-v1.png"),
549
- medalBronze: R("icons/common/medal-bronze-v1.png"),
550
- medalSilver: R("icons/common/medal-silver-v1.png"),
551
- pickaxe: R("icons/common/pickax-v1.png"),
552
- potionPurple: R("icons/common/poiton-purple-v1.png"),
553
- potionRed: R("icons/common/poition-red-v1.png"),
554
- purpleGem: R("icons/common/purplegem-v1.png"),
555
- shieldA: R("icons/common/shield-a-v1.png"),
556
- shieldB: R("icons/common/shield-b-v1.png"),
557
- shieldC: R("icons/common/shield-c-v1.png"),
558
- shieldD: R("icons/common/shield-d-v1.png"),
559
- skull: R("icons/common/skull-v1.png"),
560
- soulGem: R("icons/common/soulgem-v1.png"),
561
- swordA: R("icons/common/sword-a-v1.png"),
562
- swordB: R("icons/common/sword-b-v1.png"),
563
- talaria: R("icons/common/talaria-v1.png"),
564
- treasure: R("icons/common/treasure-v1.png")
565
- }, pe = Object.keys(fe), V = {
542
+ var ge = {
543
+ anvil: I("icons/common/anvil-v1.png"),
544
+ arrow: I("icons/common/arrow-v1.png"),
545
+ bomb: I("icons/common/bomb-v1.png"),
546
+ candle: I("icons/common/candle-v1.png"),
547
+ chicken: I("icons/common/chicken-v1.png"),
548
+ giftBlue: I("icons/common/gift-blue-v1.png"),
549
+ hammer: I("icons/common/hammer-v1.png"),
550
+ horn: I("icons/common/horner-v1.png"),
551
+ horseshoe: I("icons/common/horseshoes-v1.png"),
552
+ letter: I("icons/common/letter-v1.png"),
553
+ medalBronze: I("icons/common/medal-bronze-v1.png"),
554
+ medalSilver: I("icons/common/medal-silver-v1.png"),
555
+ pickaxe: I("icons/common/pickax-v1.png"),
556
+ potionPurple: I("icons/common/poiton-purple-v1.png"),
557
+ potionRed: I("icons/common/poition-red-v1.png"),
558
+ purpleGem: I("icons/common/purplegem-v1.png"),
559
+ shieldA: I("icons/common/shield-a-v1.png"),
560
+ shieldB: I("icons/common/shield-b-v1.png"),
561
+ shieldC: I("icons/common/shield-c-v1.png"),
562
+ shieldD: I("icons/common/shield-d-v1.png"),
563
+ skull: I("icons/common/skull-v1.png"),
564
+ soulGem: I("icons/common/soulgem-v1.png"),
565
+ swordA: I("icons/common/sword-a-v1.png"),
566
+ swordB: I("icons/common/sword-b-v1.png"),
567
+ talaria: I("icons/common/talaria-v1.png"),
568
+ treasure: I("icons/common/treasure-v1.png")
569
+ }, _e = Object.keys(ge), z = {
566
570
  buttons: {
567
- primary: R("buttons/button-brown-large-v2.png"),
568
- blue: R("buttons/button-blue-large-v2.png"),
569
- brown: R("buttons/button-brown-large-v2.png"),
570
- green: R("buttons/button-green-large-v2.png"),
571
- purple: R("buttons/button-purple-large-v2.png"),
572
- red: R("buttons/button-red-large-v2.png")
571
+ primary: I("buttons/button-brown-large-v2.png"),
572
+ blue: I("buttons/button-blue-large-v2.png"),
573
+ brown: I("buttons/button-brown-large-v2.png"),
574
+ green: I("buttons/button-green-large-v2.png"),
575
+ purple: I("buttons/button-purple-large-v2.png"),
576
+ red: I("buttons/button-red-large-v2.png")
573
577
  },
574
578
  panels: {
575
- popup: R("components/popup/popup-v1.png"),
576
- commonTitle: R("components/settings/common-popup-title-v1.png"),
577
- language: R("components/language/language-v1.png")
579
+ popup: I("components/popup/popup-v1.png"),
580
+ commonTitle: I("components/settings/common-popup-title-v1.png"),
581
+ language: I("components/language/language-v1.png")
578
582
  },
579
583
  controls: {
580
- switchOn: R("components/common/switch-on-v1.png"),
581
- switchOff: R("components/common/switch-off-v1.png"),
582
- slider: R("components/settings/slidebar-v1.png"),
583
- tabSelected: R("components/common/tab-s-v1.png"),
584
- tabNormal: R("components/common/tab-n-v1.png")
584
+ switchOn: I("components/common/switch-on-v1.png"),
585
+ switchOff: I("components/common/switch-off-v1.png"),
586
+ slider: I("components/settings/slidebar-v1.png"),
587
+ tabSelected: I("components/common/tab-s-v1.png"),
588
+ tabNormal: I("components/common/tab-n-v1.png")
585
589
  },
586
- icons: Object.fromEntries(B.map((e) => [e, ue(e)])),
590
+ icons: Object.fromEntries(R.map((e) => [e, me(e)])),
587
591
  catalog: {
588
592
  manifest: "/assets/game/ui/clay/asset-manifest.json",
589
- sourceCatalog: R("catalog/phase03-clay-ui-catalog.json"),
590
- contactSheetCommon: R("catalog/common-icons-contact-sheet-v1.png"),
591
- contactSheetComponents: R("catalog/component-candidates-contact-sheet-v1.png"),
592
- contactSheetFunction: R("catalog/function-icons-contact-sheet-v1.png")
593
+ sourceCatalog: I("catalog/phase03-clay-ui-catalog.json"),
594
+ contactSheetCommon: I("catalog/common-icons-contact-sheet-v1.png"),
595
+ contactSheetComponents: I("catalog/component-candidates-contact-sheet-v1.png"),
596
+ contactSheetFunction: I("catalog/function-icons-contact-sheet-v1.png")
593
597
  }
594
- }, me = {
598
+ }, ve = {
595
599
  ai: "AI",
596
600
  alert: "!",
597
601
  card: "▣",
@@ -627,7 +631,7 @@ var fe = {
627
631
  timer: "◷",
628
632
  trophy: "★",
629
633
  vote: "⌾"
630
- }, he = {
634
+ }, ye = {
631
635
  ai: D.berry,
632
636
  alert: D.red,
633
637
  card: D.honey,
@@ -664,34 +668,47 @@ var fe = {
664
668
  trophy: D.honey,
665
669
  vote: D.red
666
670
  };
667
- function ge(e) {
668
- let t = me[e], n = he[e], r = D.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>`;
671
+ function be(e) {
672
+ let t = ve[e], n = ye[e], r = D.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>`;
669
673
  return `data:image/svg+xml,${encodeURIComponent(i)}`;
670
674
  }
671
- var _e = "inline";
672
- function ve(e) {
673
- _e = e;
675
+ var xe = "inline";
676
+ function Se(e) {
677
+ xe = e;
678
+ }
679
+ function Ce() {
680
+ return xe;
681
+ }
682
+ function we(e) {
683
+ fe = e.replace(/\/+$/, "");
684
+ }
685
+ function Te() {
686
+ return fe;
674
687
  }
675
- function ye() {
676
- return _e;
688
+ var Ee = !1;
689
+ function De() {
690
+ Ee || (Ee = !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."));
677
691
  }
678
- function be(e, t = {}) {
679
- return t.inline ?? _e === "inline" ? ge(e) : ue(e, t.style);
692
+ function Oe() {
693
+ Ee = !0;
680
694
  }
681
- function xe(e, t) {
682
- return ue(e, t);
695
+ function ke(e, t = {}) {
696
+ return t.inline ?? xe === "inline" ? (De(), be(e)) : me(e, t.style);
697
+ }
698
+ function Ae(e, t) {
699
+ return me(e, t);
683
700
  }
684
701
  //#endregion
685
702
  //#region src/ClayComponents.tsx
686
- function H({ children: e, className: n, tone: r = "neutral" }) {
703
+ function B({ children: e, className: n, tone: r = "neutral" }) {
687
704
  return /* @__PURE__ */ t("span", {
688
705
  className: ["game-ui-badge", n].filter(Boolean).join(" "),
689
706
  "data-badge-tone": r,
690
707
  children: e
691
708
  });
692
709
  }
693
- function U({ className: e, icon: n, label: r, size: i = "md", style: a, useSourceAsset: o = !1 }) {
694
- let s = ["game-ui-asset-icon", e].filter(Boolean).join(" "), c = r ? { "aria-label": r } : { "aria-hidden": !0 }, l = be(n, {
710
+ function V({ className: e, icon: n, label: r, size: i = "md", style: a, useSourceAsset: o = !1 }) {
711
+ let s = ["game-ui-asset-icon", e].filter(Boolean).join(" "), c = r ? { "aria-label": r } : { "aria-hidden": !0 }, l = ke(n, {
695
712
  ...a ? { style: a } : {},
696
713
  ...o ? { inline: !1 } : {}
697
714
  });
@@ -706,7 +723,7 @@ function U({ className: e, icon: n, label: r, size: i = "md", style: a, useSourc
706
723
  })
707
724
  });
708
725
  }
709
- function W({ actions: e, className: r, items: i, label: a }) {
726
+ function H({ actions: e, className: r, items: i, label: a }) {
710
727
  return /* @__PURE__ */ n("section", {
711
728
  "aria-label": a,
712
729
  className: ["game-ui-hud", r].filter(Boolean).join(" "),
@@ -714,7 +731,7 @@ function W({ actions: e, className: r, items: i, label: a }) {
714
731
  className: "game-ui-hud-cluster",
715
732
  children: i.map((e) => /* @__PURE__ */ n("article", {
716
733
  className: "game-ui-hud-chip",
717
- children: [e.icon ? /* @__PURE__ */ t(U, {
734
+ children: [e.icon ? /* @__PURE__ */ t(V, {
718
735
  icon: e.icon,
719
736
  size: "md"
720
737
  }) : null, /* @__PURE__ */ n("span", { children: [
@@ -729,7 +746,7 @@ function W({ actions: e, className: r, items: i, label: a }) {
729
746
  }) : null]
730
747
  });
731
748
  }
732
- function Se({ cards: e, className: r, label: i }) {
749
+ function je({ cards: e, className: r, label: i }) {
733
750
  let a = ["game-ui-card-fan", r].filter(Boolean).join(" "), o = (e.length - 1) / 2;
734
751
  return /* @__PURE__ */ t("div", {
735
752
  "aria-label": i,
@@ -742,7 +759,7 @@ function Se({ cards: e, className: r, label: i }) {
742
759
  "--game-ui-card-offset": r - o
743
760
  },
744
761
  children: [
745
- e.icon ? /* @__PURE__ */ t(U, {
762
+ e.icon ? /* @__PURE__ */ t(V, {
746
763
  icon: e.icon,
747
764
  size: "lg"
748
765
  }) : null,
@@ -752,7 +769,7 @@ function Se({ cards: e, className: r, label: i }) {
752
769
  }, e.id))
753
770
  });
754
771
  }
755
- function G({ badge: e, className: r, icon: i, kicker: a, selected: o = !1, summary: s, title: c, tone: l = "daily", type: u = "button", ...d }) {
772
+ function U({ badge: e, className: r, icon: i, kicker: a, selected: o = !1, summary: s, title: c, tone: l = "daily", type: u = "button", ...d }) {
756
773
  return /* @__PURE__ */ n("button", {
757
774
  "aria-pressed": o,
758
775
  className: ["game-ui-stage-tile", r].filter(Boolean).join(" "),
@@ -760,7 +777,7 @@ function G({ badge: e, className: r, icon: i, kicker: a, selected: o = !1, summa
760
777
  type: u,
761
778
  ...d,
762
779
  children: [
763
- i ? /* @__PURE__ */ t(U, {
780
+ i ? /* @__PURE__ */ t(V, {
764
781
  icon: i,
765
782
  size: "xl"
766
783
  }) : null,
@@ -772,22 +789,22 @@ function G({ badge: e, className: r, icon: i, kicker: a, selected: o = !1, summa
772
789
  /* @__PURE__ */ t("span", { children: s })
773
790
  ]
774
791
  }),
775
- e ? /* @__PURE__ */ t(H, {
792
+ e ? /* @__PURE__ */ t(B, {
776
793
  tone: o ? "success" : "neutral",
777
794
  children: e
778
795
  }) : null
779
796
  ]
780
797
  });
781
798
  }
782
- function Ce() {
799
+ function Me() {
783
800
  return typeof window > "u" ? !1 : (window.matchMedia?.("(pointer: coarse), (max-width: 899px)").matches ?? window.innerWidth < 900) && window.innerHeight > window.innerWidth;
784
801
  }
785
- function we({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a = "Rotate manually if this browser blocks automatic landscape lock.", preview: o = !1, title: s }) {
786
- let [l, u] = d(o || Ce), [f, p] = d("");
802
+ function Ne({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a = "Rotate manually if this browser blocks automatic landscape lock.", preview: o = !1, title: s }) {
803
+ let [l, u] = d(o || Me), [f, p] = d("");
787
804
  if (c(() => {
788
805
  if (o) return;
789
806
  let e = () => {
790
- let e = Ce();
807
+ let e = Me();
791
808
  u(e), e || p("");
792
809
  };
793
810
  return e(), window.addEventListener("resize", e), window.addEventListener("orientationchange", e), () => {
@@ -797,7 +814,7 @@ function we({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a =
797
814
  let m = async () => {
798
815
  if (p(""), !o) try {
799
816
  let e = document.documentElement;
800
- !document.fullscreenElement && e.requestFullscreen && await e.requestFullscreen(), await screen.orientation.lock?.("landscape-primary"), u(Ce());
817
+ !document.fullscreenElement && e.requestFullscreen && await e.requestFullscreen(), await screen.orientation.lock?.("landscape-primary"), u(Me());
801
818
  } catch {
802
819
  p(a);
803
820
  }
@@ -808,11 +825,11 @@ function we({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a =
808
825
  children: /* @__PURE__ */ n("div", {
809
826
  className: "game-ui-orientation-card",
810
827
  children: [
811
- /* @__PURE__ */ t(U, {
828
+ /* @__PURE__ */ t(V, {
812
829
  icon: "mobile",
813
830
  size: "xl"
814
831
  }),
815
- /* @__PURE__ */ t(H, {
832
+ /* @__PURE__ */ t(B, {
816
833
  tone: "warning",
817
834
  children: i
818
835
  }),
@@ -828,7 +845,7 @@ function we({ body: e, cta: r, badgeLabel: i = "Landscape only", manualHint: a =
828
845
  })
829
846
  });
830
847
  }
831
- function Te({ className: e, currentLabel: r, label: i, options: a, value: o, defaultValue: s, onSelect: c }) {
848
+ function Pe({ className: e, currentLabel: r, label: i, options: a, value: o, defaultValue: s, onSelect: c }) {
832
849
  let [u, f] = d(!1), [p, m] = d(s ?? a[0]?.id ?? ""), h = l(), g = ["game-ui-language-menu", e].filter(Boolean).join(" "), _ = o ?? p, v = a.find((e) => e.id === _), y = r ?? v?.label ?? a[0]?.label ?? "", b = (e) => {
833
850
  o === void 0 && m(e), c?.(e), f(!1);
834
851
  };
@@ -840,7 +857,7 @@ function Te({ className: e, currentLabel: r, label: i, options: a, value: o, def
840
857
  className: "game-ui-language-trigger",
841
858
  onClick: () => f((e) => !e),
842
859
  type: "button",
843
- children: [/* @__PURE__ */ t(U, {
860
+ children: [/* @__PURE__ */ t(V, {
844
861
  icon: "globe",
845
862
  size: "sm"
846
863
  }), /* @__PURE__ */ t("span", { children: y })]
@@ -860,34 +877,34 @@ function Te({ className: e, currentLabel: r, label: i, options: a, value: o, def
860
877
  }) : null]
861
878
  });
862
879
  }
863
- function Ee({ label: e, tone: r = "loading" }) {
880
+ function Fe({ label: e, tone: r = "loading" }) {
864
881
  return /* @__PURE__ */ n("div", {
865
882
  className: "game-ui-loading-state",
866
883
  "data-loading-tone": r,
867
884
  role: r === "error" ? "alert" : "status",
868
885
  children: [/* @__PURE__ */ t("img", {
869
886
  alt: "",
870
- src: be(r === "error" ? "alert" : "timer")
887
+ src: ke(r === "error" ? "alert" : "timer")
871
888
  }), /* @__PURE__ */ t("span", { children: e })]
872
889
  });
873
890
  }
874
- function De() {
875
- return V.catalog;
891
+ function Ie() {
892
+ return z.catalog;
876
893
  }
877
894
  //#endregion
878
895
  //#region src/FirstSessionGameShell.tsx
879
- function K({ fallback: e, slot: n }) {
880
- return n ?? /* @__PURE__ */ t(U, {
896
+ function W({ fallback: e, slot: n }) {
897
+ return n ?? /* @__PURE__ */ t(V, {
881
898
  icon: e,
882
899
  size: "sm"
883
900
  });
884
901
  }
885
- function Oe({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, iconSlots: o, labels: s, onHistory: c, onSettings: l, onWardrobe: u, playerName: d }) {
902
+ function Le({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, iconSlots: o, labels: s, onHistory: c, onSettings: l, onWardrobe: u, playerName: d }) {
886
903
  let f = ["swimmer-first-session-shell", i].filter(Boolean).join(" "), p = e ? `${r} 🔋` : s.guest ?? "guest";
887
904
  return /* @__PURE__ */ n("section", {
888
905
  "aria-label": s.shell,
889
906
  className: f,
890
- children: [/* @__PURE__ */ t(W, {
907
+ children: [/* @__PURE__ */ t(H, {
891
908
  className: "swimmer-first-session-hud",
892
909
  items: [
893
910
  {
@@ -927,7 +944,7 @@ function Oe({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
927
944
  "aria-label": s.wardrobe,
928
945
  onClick: u,
929
946
  variant: "secondary",
930
- children: [/* @__PURE__ */ t(K, {
947
+ children: [/* @__PURE__ */ t(W, {
931
948
  fallback: "shirt",
932
949
  slot: o?.wardrobe
933
950
  }), s.wardrobe]
@@ -936,7 +953,7 @@ function Oe({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
936
953
  "aria-label": s.settings,
937
954
  onClick: l,
938
955
  variant: "secondary",
939
- children: [/* @__PURE__ */ t(K, {
956
+ children: [/* @__PURE__ */ t(W, {
940
957
  fallback: "settings",
941
958
  slot: o?.settings
942
959
  }), s.settings]
@@ -945,7 +962,7 @@ function Oe({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
945
962
  "aria-label": s.history,
946
963
  onClick: c,
947
964
  variant: "secondary",
948
- children: [/* @__PURE__ */ t(K, {
965
+ children: [/* @__PURE__ */ t(W, {
949
966
  fallback: "history",
950
967
  slot: o?.history
951
968
  }), s.history]
@@ -963,14 +980,14 @@ function Oe({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
963
980
  }),
964
981
  /* @__PURE__ */ n("div", {
965
982
  className: "swimmer-first-session-control-copy",
966
- children: [/* @__PURE__ */ t(H, {
983
+ children: [/* @__PURE__ */ t(B, {
967
984
  tone: "ai",
968
985
  children: s.moveBadge
969
986
  }), /* @__PURE__ */ t("strong", { children: s.move })]
970
987
  }),
971
988
  /* @__PURE__ */ n("label", {
972
989
  className: "swimmer-first-session-input",
973
- children: [/* @__PURE__ */ t(K, {
990
+ children: [/* @__PURE__ */ t(W, {
974
991
  fallback: "chat",
975
992
  slot: o?.input
976
993
  }), /* @__PURE__ */ t("span", { children: s.input })]
@@ -978,7 +995,7 @@ function Oe({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
978
995
  /* @__PURE__ */ n("button", {
979
996
  className: "swimmer-first-session-emote",
980
997
  type: "button",
981
- children: [/* @__PURE__ */ t(K, {
998
+ children: [/* @__PURE__ */ t(W, {
982
999
  fallback: "smile",
983
1000
  slot: o?.emote
984
1001
  }), s.emote]
@@ -987,7 +1004,7 @@ function Oe({ authenticated: e, batteryCount: r, className: i, dailyStreak: a, i
987
1004
  })]
988
1005
  });
989
1006
  }
990
- function ke({ labels: e, onDismiss: r, open: i }) {
1007
+ function Re({ labels: e, onDismiss: r, open: i }) {
991
1008
  return i ? /* @__PURE__ */ n("aside", {
992
1009
  "aria-labelledby": "swimmer-first-session-onboarding-title",
993
1010
  "aria-modal": "true",
@@ -996,11 +1013,11 @@ function ke({ labels: e, onDismiss: r, open: i }) {
996
1013
  children: [/* @__PURE__ */ t("div", { className: "swimmer-first-session-onboarding-scrim" }), /* @__PURE__ */ n("div", {
997
1014
  className: "swimmer-first-session-onboarding-card",
998
1015
  children: [
999
- /* @__PURE__ */ t(U, {
1016
+ /* @__PURE__ */ t(V, {
1000
1017
  icon: "trophy",
1001
1018
  size: "xl"
1002
1019
  }),
1003
- /* @__PURE__ */ t(H, {
1020
+ /* @__PURE__ */ t(B, {
1004
1021
  tone: "warning",
1005
1022
  children: e.badge
1006
1023
  }),
@@ -1035,7 +1052,7 @@ function ke({ labels: e, onDismiss: r, open: i }) {
1035
1052
  }
1036
1053
  //#endregion
1037
1054
  //#region src/GameForms.tsx
1038
- var Ae = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
1055
+ var ze = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
1039
1056
  return /* @__PURE__ */ t("input", {
1040
1057
  className: ["game-ui-input", e].filter(Boolean).join(" "),
1041
1058
  "data-invalid": n ? "true" : void 0,
@@ -1043,7 +1060,7 @@ var Ae = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
1043
1060
  type: r,
1044
1061
  ...i
1045
1062
  });
1046
- }), je = a(function({ className: e, invalid: n, rows: r = 3, ...i }, a) {
1063
+ }), Be = a(function({ className: e, invalid: n, rows: r = 3, ...i }, a) {
1047
1064
  return /* @__PURE__ */ t("textarea", {
1048
1065
  className: [
1049
1066
  "game-ui-input",
@@ -1056,7 +1073,7 @@ var Ae = a(function({ className: e, invalid: n, type: r = "text", ...i }, a) {
1056
1073
  ...i
1057
1074
  });
1058
1075
  });
1059
- function q({ children: e, className: r, error: i, hint: a, label: o, required: s }) {
1076
+ function G({ children: e, className: r, error: i, hint: a, label: o, required: s }) {
1060
1077
  return /* @__PURE__ */ n("label", {
1061
1078
  className: ["game-ui-field", r].filter(Boolean).join(" "),
1062
1079
  "data-invalid": i ? "true" : void 0,
@@ -1082,7 +1099,7 @@ function q({ children: e, className: r, error: i, hint: a, label: o, required: s
1082
1099
  ]
1083
1100
  });
1084
1101
  }
1085
- function Me({ className: e, label: r, ...i }) {
1102
+ function Ve({ className: e, label: r, ...i }) {
1086
1103
  return /* @__PURE__ */ n("label", {
1087
1104
  className: ["game-ui-checkbox", e].filter(Boolean).join(" "),
1088
1105
  children: [
@@ -1104,11 +1121,11 @@ function Me({ className: e, label: r, ...i }) {
1104
1121
  }
1105
1122
  //#endregion
1106
1123
  //#region src/GameDisplay.tsx
1107
- function Ne(e) {
1124
+ function He(e) {
1108
1125
  let t = e.trim().split(/\s+/).filter(Boolean);
1109
1126
  return t.length === 0 ? "?" : t.slice(0, 2).map((e) => e[0] ?? "").join("").toUpperCase();
1110
1127
  }
1111
- function J({ className: r, name: i, size: a = "md", src: o, status: s = "none" }) {
1128
+ function K({ className: r, name: i, size: a = "md", src: o, status: s = "none" }) {
1112
1129
  return /* @__PURE__ */ n("span", {
1113
1130
  className: ["game-ui-avatar", r].filter(Boolean).join(" "),
1114
1131
  "data-avatar-size": a,
@@ -1119,7 +1136,7 @@ function J({ className: r, name: i, size: a = "md", src: o, status: s = "none" }
1119
1136
  }) : /* @__PURE__ */ n(e, { children: [/* @__PURE__ */ t("span", {
1120
1137
  "aria-hidden": "true",
1121
1138
  className: "game-ui-avatar-initials",
1122
- children: Ne(i)
1139
+ children: He(i)
1123
1140
  }), /* @__PURE__ */ t("span", {
1124
1141
  className: "game-ui-sr-only",
1125
1142
  children: i
@@ -1129,7 +1146,7 @@ function J({ className: r, name: i, size: a = "md", src: o, status: s = "none" }
1129
1146
  })]
1130
1147
  });
1131
1148
  }
1132
- function Y({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o = "accent", value: s, valueLabel: c }) {
1149
+ function q({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o = "accent", value: s, valueLabel: c }) {
1133
1150
  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;
1134
1151
  return /* @__PURE__ */ n("div", {
1135
1152
  className: d,
@@ -1155,11 +1172,11 @@ function Y({ className: e, label: r, max: i = 100, showValue: a = !1, tone: o =
1155
1172
  }) : null]
1156
1173
  });
1157
1174
  }
1158
- function X({ action: e, className: r, description: i, icon: a, title: o }) {
1175
+ function J({ action: e, className: r, description: i, icon: a, title: o }) {
1159
1176
  return /* @__PURE__ */ n("div", {
1160
1177
  className: ["game-ui-empty-state", r].filter(Boolean).join(" "),
1161
1178
  children: [
1162
- a ? /* @__PURE__ */ t(U, {
1179
+ a ? /* @__PURE__ */ t(V, {
1163
1180
  icon: a,
1164
1181
  size: "xl"
1165
1182
  }) : null,
@@ -1180,7 +1197,7 @@ function X({ action: e, className: r, description: i, icon: a, title: o }) {
1180
1197
  }
1181
1198
  //#endregion
1182
1199
  //#region src/GameSurfacePack.tsx
1183
- function Pe({ assetLibrary: e, bottomBar: r, children: i, className: a, density: o = "comfortable", hud: s, layout: c = "auto", movementPad: l, overlay: u, sidePanel: d, title: f }) {
1200
+ function Ue({ assetLibrary: e, bottomBar: r, children: i, className: a, density: o = "comfortable", hud: s, layout: c = "auto", movementPad: l, overlay: u, sidePanel: d, title: f }) {
1184
1201
  return /* @__PURE__ */ n("section", {
1185
1202
  "aria-label": f,
1186
1203
  className: ["game-ui-shell", a].filter(Boolean).join(" "),
@@ -1218,8 +1235,8 @@ function Pe({ assetLibrary: e, bottomBar: r, children: i, className: a, density:
1218
1235
  ]
1219
1236
  });
1220
1237
  }
1221
- var Fe = Pe;
1222
- function Ie({ className: e, density: r = "comfortable", facts: i, label: a, variant: o = "facts" }) {
1238
+ var We = Ue;
1239
+ function Y({ className: e, density: r = "comfortable", facts: i, label: a, variant: o = "facts" }) {
1223
1240
  return /* @__PURE__ */ t("section", {
1224
1241
  "aria-label": a,
1225
1242
  className: ["game-ui-fact-list", e].filter(Boolean).join(" "),
@@ -1228,7 +1245,7 @@ function Ie({ className: e, density: r = "comfortable", facts: i, label: a, vari
1228
1245
  children: i.map((e) => /* @__PURE__ */ n("article", {
1229
1246
  className: "game-ui-fact",
1230
1247
  children: [
1231
- e.icon ? /* @__PURE__ */ t(U, {
1248
+ e.icon ? /* @__PURE__ */ t(V, {
1232
1249
  icon: e.icon,
1233
1250
  size: r === "dense" ? "sm" : "md"
1234
1251
  }) : null,
@@ -1240,7 +1257,7 @@ function Ie({ className: e, density: r = "comfortable", facts: i, label: a, vari
1240
1257
  e.meta ? /* @__PURE__ */ t("em", { children: e.meta }) : null
1241
1258
  ]
1242
1259
  }),
1243
- e.tone ? /* @__PURE__ */ t(H, {
1260
+ e.tone ? /* @__PURE__ */ t(B, {
1244
1261
  tone: e.tone,
1245
1262
  children: o === "stats" ? e.label : e.value
1246
1263
  }) : null
@@ -1248,8 +1265,8 @@ function Ie({ className: e, density: r = "comfortable", facts: i, label: a, vari
1248
1265
  }, e.id))
1249
1266
  });
1250
1267
  }
1251
- var Le = Ie;
1252
- function Z({ actions: r, className: i, density: a = "comfortable", iconLabelMode: o = "hidden", label: s, style: c = "button" }) {
1268
+ var Ge = Y;
1269
+ function X({ actions: r, className: i, density: a = "comfortable", iconLabelMode: o = "hidden", label: s, style: c = "button" }) {
1253
1270
  return /* @__PURE__ */ n(w, {
1254
1271
  className: ["game-ui-action-grid", i].filter(Boolean).join(" "),
1255
1272
  "data-icon-label-mode": c === "icon" ? o : void 0,
@@ -1259,7 +1276,7 @@ function Z({ actions: r, className: i, density: a = "comfortable", iconLabelMode
1259
1276
  children: s
1260
1277
  }), r.map((r) => {
1261
1278
  let i = r.compactLabel ?? r.label, s = /* @__PURE__ */ n(e, { children: [
1262
- r.icon ? /* @__PURE__ */ t(U, {
1279
+ r.icon ? /* @__PURE__ */ t(V, {
1263
1280
  icon: r.icon,
1264
1281
  size: a === "dense" ? "sm" : "md",
1265
1282
  ...c === "icon" ? { style: "line" } : {}
@@ -1269,7 +1286,7 @@ function Z({ actions: r, className: i, density: a = "comfortable", iconLabelMode
1269
1286
  className: "game-ui-action-grid-caption",
1270
1287
  children: i
1271
1288
  }) : null,
1272
- r.badge ? /* @__PURE__ */ t(H, {
1289
+ r.badge ? /* @__PURE__ */ t(B, {
1273
1290
  tone: r.selected ? "success" : "neutral",
1274
1291
  children: r.badge
1275
1292
  }) : null,
@@ -1293,7 +1310,7 @@ function Z({ actions: r, className: i, density: a = "comfortable", iconLabelMode
1293
1310
  })]
1294
1311
  });
1295
1312
  }
1296
- var Re = [
1313
+ var Ke = [
1297
1314
  {
1298
1315
  direction: "forward",
1299
1316
  label: "Move forward",
@@ -1318,7 +1335,7 @@ var Re = [
1318
1335
  shortcut: "S / ↓",
1319
1336
  symbol: "↓"
1320
1337
  }
1321
- ], ze = {
1338
+ ], qe = {
1322
1339
  ArrowUp: "forward",
1323
1340
  w: "forward",
1324
1341
  W: "forward",
@@ -1333,7 +1350,7 @@ var Re = [
1333
1350
  S: "backward",
1334
1351
  " ": "reset"
1335
1352
  };
1336
- function Be({ actions: e = Re, className: r, density: i = "comfortable", disabled: a = !1, helpText: o, label: s, layout: c = "dpad", onMove: l }) {
1353
+ function Je({ actions: e = Ke, className: r, density: i = "comfortable", disabled: a = !1, helpText: o, label: s, layout: c = "dpad", onMove: l }) {
1337
1354
  let u = ["game-ui-movement-pad", r].filter(Boolean).join(" "), d = (e) => {
1338
1355
  a || l?.(e);
1339
1356
  };
@@ -1343,7 +1360,7 @@ function Be({ actions: e = Re, className: r, density: i = "comfortable", disable
1343
1360
  "data-density": i,
1344
1361
  "data-layout": c,
1345
1362
  onKeyDown: (t) => {
1346
- let n = ze[t.key];
1363
+ let n = qe[t.key];
1347
1364
  if (!n) return;
1348
1365
  let r = e.find((e) => e.direction === n);
1349
1366
  !r || r.disabled || a || (t.preventDefault(), d(n));
@@ -1357,7 +1374,7 @@ function Be({ actions: e = Re, className: r, density: i = "comfortable", disable
1357
1374
  disabled: a || e.disabled,
1358
1375
  label: e.label,
1359
1376
  onClick: () => d(e.direction),
1360
- children: [e.icon ? /* @__PURE__ */ t(U, {
1377
+ children: [e.icon ? /* @__PURE__ */ t(V, {
1361
1378
  icon: e.icon,
1362
1379
  size: i === "dense" ? "sm" : "md",
1363
1380
  style: "line"
@@ -1369,15 +1386,15 @@ function Be({ actions: e = Re, className: r, density: i = "comfortable", disable
1369
1386
  }), o ? /* @__PURE__ */ t("p", { children: o }) : null]
1370
1387
  });
1371
1388
  }
1372
- var Ve = {
1389
+ var Ye = {
1373
1390
  generated: "Generated",
1374
1391
  imported: "Imported",
1375
1392
  starter: "Starter"
1376
- }, He = {
1393
+ }, Xe = {
1377
1394
  generated: "ai",
1378
1395
  imported: "warning",
1379
1396
  starter: "neutral"
1380
- }, Ue = {
1397
+ }, Ze = {
1381
1398
  error: "danger",
1382
1399
  generating: "ai",
1383
1400
  missing: "danger",
@@ -1385,8 +1402,8 @@ var Ve = {
1385
1402
  ready: "neutral",
1386
1403
  selected: "success"
1387
1404
  };
1388
- function We({ 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 }) {
1389
- let { "aria-label": S, ...C } = x, w = ["game-ui-asset-card", a].filter(Boolean).join(" "), T = m ?? Ve[p], E = g ?? h;
1405
+ function Qe({ 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 }) {
1406
+ let { "aria-label": S, ...C } = x, w = ["game-ui-asset-card", a].filter(Boolean).join(" "), T = m ?? Ye[p], E = g ?? h;
1390
1407
  return /* @__PURE__ */ n("button", {
1391
1408
  "aria-label": S ?? y,
1392
1409
  "aria-pressed": f,
@@ -1405,7 +1422,7 @@ function We({ assetId: e, badges: r = [], cardLayout: i = "list", className: a,
1405
1422
  children: v ? /* @__PURE__ */ t("img", {
1406
1423
  alt: _,
1407
1424
  src: v
1408
- }) : /* @__PURE__ */ t(U, {
1425
+ }) : /* @__PURE__ */ t(V, {
1409
1426
  className: "game-ui-asset-card-icon",
1410
1427
  icon: l,
1411
1428
  size: "xl"
@@ -1416,15 +1433,15 @@ function We({ assetId: e, badges: r = [], cardLayout: i = "list", className: a,
1416
1433
  /* @__PURE__ */ n("span", {
1417
1434
  className: "game-ui-asset-card-badges",
1418
1435
  children: [
1419
- /* @__PURE__ */ t(H, {
1420
- tone: He[p],
1436
+ /* @__PURE__ */ t(B, {
1437
+ tone: Xe[p],
1421
1438
  children: T
1422
1439
  }),
1423
- /* @__PURE__ */ t(H, {
1424
- tone: Ue[h],
1440
+ /* @__PURE__ */ t(B, {
1441
+ tone: Ze[h],
1425
1442
  children: E
1426
1443
  }),
1427
- r.map((e) => /* @__PURE__ */ t(H, {
1444
+ r.map((e) => /* @__PURE__ */ t(B, {
1428
1445
  tone: e.tone ?? "neutral",
1429
1446
  children: e.label
1430
1447
  }, e.label))
@@ -1440,7 +1457,7 @@ function We({ assetId: e, badges: r = [], cardLayout: i = "list", className: a,
1440
1457
  })]
1441
1458
  });
1442
1459
  }
1443
- function Ge({ 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 }) {
1460
+ function $e({ 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 }) {
1444
1461
  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) => {
1445
1462
  e[t.source] += 1;
1446
1463
  }), e), {
@@ -1464,16 +1481,16 @@ function Ge({ cardLayout: e = "auto", className: r, density: i = "comfortable",
1464
1481
  /* @__PURE__ */ t("div", {
1465
1482
  "aria-label": "Asset source counts",
1466
1483
  className: "game-ui-asset-library-counts",
1467
- children: Object.entries(g).map(([e, t]) => /* @__PURE__ */ n(H, {
1468
- tone: He[e],
1484
+ children: Object.entries(g).map(([e, t]) => /* @__PURE__ */ n(B, {
1485
+ tone: Xe[e],
1469
1486
  children: [
1470
- Ve[e],
1487
+ Ye[e],
1471
1488
  " ",
1472
1489
  t
1473
1490
  ]
1474
1491
  }, e))
1475
1492
  }),
1476
- h === 0 ? /* @__PURE__ */ t(X, {
1493
+ h === 0 ? /* @__PURE__ */ t(J, {
1477
1494
  action: a,
1478
1495
  description: o,
1479
1496
  icon: "gem",
@@ -1484,14 +1501,14 @@ function Ge({ cardLayout: e = "auto", className: r, density: i = "comfortable",
1484
1501
  "aria-label": r.label,
1485
1502
  className: "game-ui-asset-library-group",
1486
1503
  "data-asset-source": r.source,
1487
- children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t("strong", { children: r.label }), r.source ? /* @__PURE__ */ t(H, {
1488
- tone: He[r.source],
1489
- children: Ve[r.source]
1504
+ children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t("strong", { children: r.label }), r.source ? /* @__PURE__ */ t(B, {
1505
+ tone: Xe[r.source],
1506
+ children: Ye[r.source]
1490
1507
  }) : null] }), /* @__PURE__ */ t("div", {
1491
1508
  className: "game-ui-asset-library-grid",
1492
1509
  children: r.assets.map((n) => {
1493
1510
  let r = e === "auto" ? n.cardLayout : e;
1494
- return /* @__PURE__ */ t(We, {
1511
+ return /* @__PURE__ */ t(Qe, {
1495
1512
  ...n,
1496
1513
  ...r ? { cardLayout: r } : {},
1497
1514
  ...u ? { onSelect: u } : {},
@@ -1505,7 +1522,7 @@ function Ge({ cardLayout: e = "auto", className: r, density: i = "comfortable",
1505
1522
  })
1506
1523
  });
1507
1524
  }
1508
- function Ke({ 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 }) {
1525
+ function et({ 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 }) {
1509
1526
  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;
1510
1527
  return /* @__PURE__ */ t(T, {
1511
1528
  className: h,
@@ -1514,7 +1531,7 @@ function Ke({ actions: e = [], capacityLabel: r = "Objects", className: i, densi
1514
1531
  children: /* @__PURE__ */ n("div", {
1515
1532
  "data-density": a,
1516
1533
  children: [
1517
- /* @__PURE__ */ t(Ie, {
1534
+ /* @__PURE__ */ t(Y, {
1518
1535
  density: a,
1519
1536
  facts: [{
1520
1537
  icon: "gem",
@@ -1530,19 +1547,19 @@ function Ke({ actions: e = [], capacityLabel: r = "Objects", className: i, densi
1530
1547
  }],
1531
1548
  label: `${m} facts`
1532
1549
  }),
1533
- g ? /* @__PURE__ */ t(Y, {
1550
+ g ? /* @__PURE__ */ t(q, {
1534
1551
  label: r,
1535
1552
  max: o,
1536
1553
  showValue: !0,
1537
1554
  tone: _ >= o ? "warning" : "success",
1538
1555
  value: _
1539
1556
  }) : null,
1540
- e.length > 0 ? /* @__PURE__ */ t(Z, {
1557
+ e.length > 0 ? /* @__PURE__ */ t(X, {
1541
1558
  actions: e,
1542
1559
  density: a,
1543
1560
  label: `${m} actions`
1544
1561
  }) : null,
1545
- s.length > 0 ? /* @__PURE__ */ t(Z, {
1562
+ s.length > 0 ? /* @__PURE__ */ t(X, {
1546
1563
  actions: s,
1547
1564
  density: a,
1548
1565
  label: `${m} object actions`,
@@ -1552,7 +1569,7 @@ function Ke({ actions: e = [], capacityLabel: r = "Objects", className: i, densi
1552
1569
  })
1553
1570
  });
1554
1571
  }
1555
- var qe = Ke, Je = {
1572
+ var tt = et, nt = {
1556
1573
  build: "home",
1557
1574
  flatten: "card",
1558
1575
  inspect: "compass",
@@ -1562,7 +1579,7 @@ var qe = Ke, Je = {
1562
1579
  raise: "energy",
1563
1580
  smooth: "lucky",
1564
1581
  terrain: "portal"
1565
- }, Ye = {
1582
+ }, rt = {
1566
1583
  error: "danger",
1567
1584
  locked: "warning",
1568
1585
  missing: "danger",
@@ -1570,10 +1587,10 @@ var qe = Ke, Je = {
1570
1587
  ready: "neutral",
1571
1588
  selected: "success"
1572
1589
  };
1573
- function Xe(e, t, n, r) {
1590
+ function it(e, t, n, r) {
1574
1591
  let i = {
1575
1592
  disabled: !!(r || e.disabled),
1576
- icon: e.icon ?? Je[e.id] ?? "gem",
1593
+ icon: e.icon ?? nt[e.id] ?? "gem",
1577
1594
  id: e.id,
1578
1595
  label: e.label,
1579
1596
  selected: e.id === t,
@@ -1581,21 +1598,21 @@ function Xe(e, t, n, r) {
1581
1598
  };
1582
1599
  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;
1583
1600
  }
1584
- function Ze(e, t, n) {
1601
+ function Z(e, t, n) {
1585
1602
  return Number.isNaN(e) ? t : Math.min(n, Math.max(t, e));
1586
1603
  }
1587
- function Qe(e) {
1604
+ function at(e) {
1588
1605
  return e;
1589
1606
  }
1590
- function $e(e, t) {
1607
+ function ot(e, t) {
1591
1608
  return e === "auto" ? t === "mobile" || t === "small-mobile" ? "caption" : "hidden" : e;
1592
1609
  }
1593
- function et({ activeModeId: e, className: r, disabled: i = !1, label: a, modes: o, onModeChange: s, variant: c = "desktop", "data-testid": l }) {
1610
+ function st({ activeModeId: e, className: r, disabled: i = !1, label: a, modes: o, onModeChange: s, variant: c = "desktop", "data-testid": l }) {
1594
1611
  return /* @__PURE__ */ n("section", {
1595
1612
  "aria-label": a,
1596
1613
  className: ["game-ui-terrain-mode-control", r].filter(Boolean).join(" "),
1597
1614
  "data-ui-hook": "terrain-mode-control",
1598
- "data-variant": Qe(c),
1615
+ "data-variant": at(c),
1599
1616
  "data-testid": l,
1600
1617
  children: [/* @__PURE__ */ t("span", {
1601
1618
  className: "game-ui-sr-only",
@@ -1616,8 +1633,8 @@ function et({ activeModeId: e, className: r, disabled: i = !1, label: a, modes:
1616
1633
  onClick: s && !o ? () => s(r.id) : void 0,
1617
1634
  type: "button",
1618
1635
  children: [
1619
- /* @__PURE__ */ t(U, {
1620
- icon: r.icon ?? Je[r.id] ?? "portal",
1636
+ /* @__PURE__ */ t(V, {
1637
+ icon: r.icon ?? nt[r.id] ?? "portal",
1621
1638
  size: c === "small-mobile" ? "sm" : "md",
1622
1639
  style: "line"
1623
1640
  }),
@@ -1632,8 +1649,8 @@ function et({ activeModeId: e, className: r, disabled: i = !1, label: a, modes:
1632
1649
  })]
1633
1650
  });
1634
1651
  }
1635
- function tt({ 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 }) {
1636
- let d = ["game-ui-terrain-tool-strip", n].filter(Boolean).join(" "), f = $e(r, l);
1652
+ function ct({ 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 }) {
1653
+ let d = ["game-ui-terrain-tool-strip", n].filter(Boolean).join(" "), f = ot(r, l);
1637
1654
  return /* @__PURE__ */ t("section", {
1638
1655
  "aria-label": o,
1639
1656
  className: d,
@@ -1642,8 +1659,8 @@ function tt({ activeToolId: e, className: n, compactLabelMode: r = "auto", densi
1642
1659
  "data-ui-hook": "terrain-tool-strip",
1643
1660
  "data-variant": l,
1644
1661
  "data-testid": u,
1645
- children: /* @__PURE__ */ t(Z, {
1646
- actions: c.map((t) => Xe(t, e, s, a)),
1662
+ children: /* @__PURE__ */ t(X, {
1663
+ actions: c.map((t) => it(t, e, s, a)),
1647
1664
  density: i,
1648
1665
  iconLabelMode: f,
1649
1666
  label: o,
@@ -1651,18 +1668,18 @@ function tt({ activeToolId: e, className: n, compactLabelMode: r = "auto", densi
1651
1668
  })
1652
1669
  });
1653
1670
  }
1654
- function nt({ className: e, labels: r = {}, onRadiusChange: i, onStrengthChange: a, state: o, variant: s = "desktop", "data-testid": c }) {
1655
- 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 = Ze(o.radius, u, d), _ = Ze(o.strength, p, m), v = !!o.disabled, y = (e) => {
1656
- i?.(Ze(Number(e.currentTarget.value), u, d));
1671
+ function lt({ className: e, labels: r = {}, onRadiusChange: i, onStrengthChange: a, state: o, variant: s = "desktop", "data-testid": c }) {
1672
+ 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 = Z(o.radius, u, d), _ = Z(o.strength, p, m), v = !!o.disabled, y = (e) => {
1673
+ i?.(Z(Number(e.currentTarget.value), u, d));
1657
1674
  }, b = (e) => {
1658
- a?.(Ze(Number(e.currentTarget.value), p, m));
1675
+ a?.(Z(Number(e.currentTarget.value), p, m));
1659
1676
  };
1660
1677
  return /* @__PURE__ */ n("section", {
1661
1678
  className: l,
1662
1679
  "data-ui-hook": "brush-controls",
1663
1680
  "data-variant": s,
1664
1681
  "data-testid": c,
1665
- children: [/* @__PURE__ */ t(q, {
1682
+ children: [/* @__PURE__ */ t(G, {
1666
1683
  ...r.radiusHint ? { hint: r.radiusHint } : {},
1667
1684
  label: r.radius ?? "Brush radius",
1668
1685
  children: /* @__PURE__ */ n("div", {
@@ -1692,7 +1709,7 @@ function nt({ className: e, labels: r = {}, onRadiusChange: i, onStrengthChange:
1692
1709
  value: g
1693
1710
  })]
1694
1711
  })
1695
- }), /* @__PURE__ */ t(q, {
1712
+ }), /* @__PURE__ */ t(G, {
1696
1713
  ...r.strengthHint ? { hint: r.strengthHint } : {},
1697
1714
  label: r.strength ?? "Brush strength",
1698
1715
  children: /* @__PURE__ */ n("div", {
@@ -1725,7 +1742,7 @@ function nt({ className: e, labels: r = {}, onRadiusChange: i, onStrengthChange:
1725
1742
  })]
1726
1743
  });
1727
1744
  }
1728
- function rt({ activeMaterialId: e, className: r, disabled: i = !1, label: a, materials: o, onMaterialChange: s, variant: c = "desktop", "data-testid": l }) {
1745
+ function ut({ activeMaterialId: e, className: r, disabled: i = !1, label: a, materials: o, onMaterialChange: s, variant: c = "desktop", "data-testid": l }) {
1729
1746
  return /* @__PURE__ */ t("section", {
1730
1747
  "aria-label": a,
1731
1748
  className: ["game-ui-material-swatches", r].filter(Boolean).join(" "),
@@ -1768,14 +1785,14 @@ function rt({ activeMaterialId: e, className: r, disabled: i = !1, label: a, mat
1768
1785
  })
1769
1786
  });
1770
1787
  }
1771
- function it({ 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 }) {
1788
+ function dt({ 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 }) {
1772
1789
  return /* @__PURE__ */ t("section", {
1773
1790
  "aria-label": a,
1774
1791
  className: ["game-ui-undo-redo-actions", r].filter(Boolean).join(" "),
1775
1792
  "data-ui-hook": "undo-redo-actions",
1776
1793
  "data-variant": u,
1777
1794
  "data-testid": d,
1778
- children: /* @__PURE__ */ t(Z, {
1795
+ children: /* @__PURE__ */ t(X, {
1779
1796
  actions: [{
1780
1797
  disabled: i || !n,
1781
1798
  icon: "undo",
@@ -1801,7 +1818,7 @@ function it({ canRedo: e = !1, canUndo: n = !1, className: r, disabled: i = !1,
1801
1818
  })
1802
1819
  });
1803
1820
  }
1804
- function at({ 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 }) {
1821
+ function ft({ 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 }) {
1805
1822
  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";
1806
1823
  return /* @__PURE__ */ t(T, {
1807
1824
  className: h,
@@ -1830,8 +1847,8 @@ function at({ activeCategoryId: e, categories: r, className: i, density: a = "co
1830
1847
  role: "tab",
1831
1848
  type: "button",
1832
1849
  children: [
1833
- /* @__PURE__ */ t(U, {
1834
- icon: e.icon ?? Je[e.id] ?? "home",
1850
+ /* @__PURE__ */ t(V, {
1851
+ icon: e.icon ?? nt[e.id] ?? "home",
1835
1852
  size: "sm",
1836
1853
  style: "line"
1837
1854
  }),
@@ -1840,7 +1857,7 @@ function at({ activeCategoryId: e, categories: r, className: i, density: a = "co
1840
1857
  ]
1841
1858
  }, e.id);
1842
1859
  })
1843
- }), v.length === 0 || !_ ? /* @__PURE__ */ t(X, {
1860
+ }), v.length === 0 || !_ ? /* @__PURE__ */ t(J, {
1844
1861
  description: o,
1845
1862
  icon: "home",
1846
1863
  title: s
@@ -1868,7 +1885,7 @@ function at({ activeCategoryId: e, categories: r, className: i, density: a = "co
1868
1885
  alt: e.previewAlt ?? "",
1869
1886
  className: "game-ui-build-item-preview",
1870
1887
  src: e.previewSrc
1871
- }) : /* @__PURE__ */ t(U, {
1888
+ }) : /* @__PURE__ */ t(V, {
1872
1889
  icon: e.icon ?? _.icon ?? "home",
1873
1890
  size: y ? "sm" : "md"
1874
1891
  })
@@ -1877,10 +1894,10 @@ function at({ activeCategoryId: e, categories: r, className: i, density: a = "co
1877
1894
  children: [
1878
1895
  /* @__PURE__ */ n("span", {
1879
1896
  className: "game-ui-build-item-badges",
1880
- children: [/* @__PURE__ */ t(H, {
1881
- tone: Ye[i],
1897
+ children: [/* @__PURE__ */ t(B, {
1898
+ tone: rt[i],
1882
1899
  children: i
1883
- }), e.badges?.map((e) => /* @__PURE__ */ t(H, {
1900
+ }), e.badges?.map((e) => /* @__PURE__ */ t(B, {
1884
1901
  tone: e.tone ?? "neutral",
1885
1902
  children: e.label
1886
1903
  }, e.label))]
@@ -1896,7 +1913,7 @@ function at({ activeCategoryId: e, categories: r, className: i, density: a = "co
1896
1913
  })
1897
1914
  });
1898
1915
  }
1899
- function ot({ 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 }) {
1916
+ function pt({ 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 }) {
1900
1917
  let g = ["game-ui-compact-game-drawer", r].filter(Boolean).join(" "), _ = u ?? `${d.toLowerCase().replace(/[^a-z0-9]+/g, "-") || "tools"}-drawer-panel`;
1901
1918
  return /* @__PURE__ */ n("aside", {
1902
1919
  "aria-label": s,
@@ -1913,7 +1930,7 @@ function ot({ children: e, className: r, closeIcon: i = "close", closeLabel: a =
1913
1930
  onClick: c ? () => c(!l) : void 0,
1914
1931
  type: "button",
1915
1932
  variant: "secondary",
1916
- children: [/* @__PURE__ */ t(U, {
1933
+ children: [/* @__PURE__ */ t(V, {
1917
1934
  icon: l ? i : f,
1918
1935
  size: "sm",
1919
1936
  style: "line"
@@ -1931,7 +1948,7 @@ function ot({ children: e, className: r, closeIcon: i = "close", closeLabel: a =
1931
1948
  })]
1932
1949
  });
1933
1950
  }
1934
- function st({ status: e }) {
1951
+ function mt({ status: e }) {
1935
1952
  if (!e) return null;
1936
1953
  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;
1937
1954
  return /* @__PURE__ */ n("div", {
@@ -1939,12 +1956,12 @@ function st({ status: e }) {
1939
1956
  "data-status-tone": e.tone ?? "neutral",
1940
1957
  "data-ui-hook": "terrain-status",
1941
1958
  children: [
1942
- /* @__PURE__ */ t(H, {
1959
+ /* @__PURE__ */ t(B, {
1943
1960
  tone: e.tone ?? "neutral",
1944
1961
  children: e.label
1945
1962
  }),
1946
1963
  e.description ? /* @__PURE__ */ t("p", { children: e.description }) : null,
1947
- r ? /* @__PURE__ */ t(Y, {
1964
+ r ? /* @__PURE__ */ t(q, {
1948
1965
  label: e.progressLabel ?? e.label,
1949
1966
  max: a,
1950
1967
  showValue: !0,
@@ -1954,15 +1971,15 @@ function st({ status: e }) {
1954
1971
  ]
1955
1972
  });
1956
1973
  }
1957
- function ct({ 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" }) {
1974
+ function ht({ 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" }) {
1958
1975
  return /* @__PURE__ */ n("div", {
1959
1976
  className: "game-ui-terrain-build-toolbox-body",
1960
1977
  "data-active-mode": i,
1961
1978
  "data-active-tool": a,
1962
1979
  "data-variant": E,
1963
1980
  children: [
1964
- /* @__PURE__ */ t(st, { status: S }),
1965
- /* @__PURE__ */ t(et, {
1981
+ /* @__PURE__ */ t(mt, { status: S }),
1982
+ /* @__PURE__ */ t(st, {
1966
1983
  activeModeId: i,
1967
1984
  disabled: l,
1968
1985
  label: "Tool mode",
@@ -1973,7 +1990,7 @@ function ct({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
1973
1990
  /* @__PURE__ */ n("div", {
1974
1991
  className: "game-ui-terrain-build-main-grid",
1975
1992
  children: [
1976
- /* @__PURE__ */ t(tt, {
1993
+ /* @__PURE__ */ t(ct, {
1977
1994
  activeToolId: a,
1978
1995
  compactLabelMode: C,
1979
1996
  density: c,
@@ -1983,7 +2000,7 @@ function ct({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
1983
2000
  tools: w,
1984
2001
  variant: E
1985
2002
  }),
1986
- /* @__PURE__ */ t(it, {
2003
+ /* @__PURE__ */ t(dt, {
1987
2004
  canRedo: T?.canRedo,
1988
2005
  canUndo: T?.canUndo,
1989
2006
  disabled: l,
@@ -1994,7 +2011,7 @@ function ct({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
1994
2011
  undoLabel: T?.undoLabel,
1995
2012
  variant: E
1996
2013
  }),
1997
- /* @__PURE__ */ t(nt, {
2014
+ /* @__PURE__ */ t(lt, {
1998
2015
  onRadiusChange: f,
1999
2016
  onStrengthChange: p,
2000
2017
  state: {
@@ -2003,7 +2020,7 @@ function ct({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
2003
2020
  },
2004
2021
  variant: E
2005
2022
  }),
2006
- u.length > 0 ? /* @__PURE__ */ t(rt, {
2023
+ u.length > 0 ? /* @__PURE__ */ t(ut, {
2007
2024
  activeMaterialId: r,
2008
2025
  disabled: l,
2009
2026
  label: "Terrain materials",
@@ -2013,7 +2030,7 @@ function ct({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
2013
2030
  }) : null
2014
2031
  ]
2015
2032
  }),
2016
- s.length > 0 ? /* @__PURE__ */ t(at, {
2033
+ s.length > 0 ? /* @__PURE__ */ t(ft, {
2017
2034
  activeCategoryId: e,
2018
2035
  categories: s,
2019
2036
  density: c,
@@ -2027,12 +2044,12 @@ function ct({ activeBuildCategoryId: e, activeMaterialId: r, activeModeId: i, ac
2027
2044
  ]
2028
2045
  });
2029
2046
  }
2030
- function lt({ className: e, drawerOpen: n = !1, drawerTitle: r = "Terrain and build tools", label: i, onDrawerOpenChange: a, title: o, variant: s = "desktop", "data-testid": c, ...l }) {
2031
- let u = ["game-ui-terrain-build-toolbox", e].filter(Boolean).join(" "), d = /* @__PURE__ */ t(ct, {
2047
+ function gt({ className: e, drawerOpen: n = !1, drawerTitle: r = "Terrain and build tools", label: i, onDrawerOpenChange: a, title: o, variant: s = "desktop", "data-testid": c, ...l }) {
2048
+ let u = ["game-ui-terrain-build-toolbox", e].filter(Boolean).join(" "), d = /* @__PURE__ */ t(ht, {
2032
2049
  ...l,
2033
2050
  variant: s
2034
2051
  });
2035
- return s === "mobile" || s === "small-mobile" ? /* @__PURE__ */ t(ot, {
2052
+ return s === "mobile" || s === "small-mobile" ? /* @__PURE__ */ t(pt, {
2036
2053
  className: u,
2037
2054
  label: i,
2038
2055
  onOpenChange: a,
@@ -2057,7 +2074,7 @@ function lt({ className: e, drawerOpen: n = !1, drawerTitle: r = "Terrain and bu
2057
2074
  }
2058
2075
  //#endregion
2059
2076
  //#region src/GameContractorTools.tsx
2060
- var ut = {
2077
+ var _t = {
2061
2078
  accepted: "success",
2062
2079
  blocked: "danger",
2063
2080
  cancelled: "neutral",
@@ -2066,7 +2083,7 @@ var ut = {
2066
2083
  queued: "warning",
2067
2084
  readyForReview: "success",
2068
2085
  working: "ai"
2069
- }, dt = {
2086
+ }, vt = {
2070
2087
  accepted: "check",
2071
2088
  blocked: "alert",
2072
2089
  cancelled: "close",
@@ -2075,26 +2092,26 @@ var ut = {
2075
2092
  queued: "hourglass",
2076
2093
  readyForReview: "vote",
2077
2094
  working: "energy"
2078
- }, ft = {
2095
+ }, yt = {
2079
2096
  active: "ai",
2080
2097
  blocked: "danger",
2081
2098
  complete: "success",
2082
2099
  pending: "neutral"
2083
- }, pt = {
2100
+ }, bt = {
2084
2101
  blocked: "danger",
2085
2102
  done: "success",
2086
2103
  idle: "neutral",
2087
2104
  queued: "warning",
2088
2105
  working: "ai"
2089
- }, mt = {
2106
+ }, xt = {
2090
2107
  "local-only": "Local only",
2091
2108
  mock: "Mock run",
2092
2109
  "paid-disabled": "Paid provider off"
2093
- }, ht = {
2110
+ }, St = {
2094
2111
  "local-only": "success",
2095
2112
  mock: "ai",
2096
2113
  "paid-disabled": "warning"
2097
- }, gt = {
2114
+ }, Ct = {
2098
2115
  accepted: [{
2099
2116
  id: "revert",
2100
2117
  label: "Revert",
@@ -2200,17 +2217,17 @@ var ut = {
2200
2217
  tone: "danger"
2201
2218
  }]
2202
2219
  };
2203
- function _t(e, t) {
2220
+ function wt(e, t) {
2204
2221
  if (t) return t;
2205
2222
  switch (e) {
2206
2223
  case "readyForReview": return "Ready for review";
2207
2224
  default: return e.replace(/([A-Z])/g, " $1").replace(/^./, (e) => e.toUpperCase());
2208
2225
  }
2209
2226
  }
2210
- function vt(e) {
2227
+ function Tt(e) {
2211
2228
  return e === "blocked" || e === "cancelled" ? "danger" : e === "accepted" || e === "readyForReview" ? "success" : e === "queued" || e === "draft" || e === "preview" ? "warning" : "accent";
2212
2229
  }
2213
- function yt(e) {
2230
+ function Et(e) {
2214
2231
  switch (e) {
2215
2232
  case "accepted": return 100;
2216
2233
  case "blocked": return 42;
@@ -2222,7 +2239,7 @@ function yt(e) {
2222
2239
  case "working": return 64;
2223
2240
  }
2224
2241
  }
2225
- function bt(e, t, n) {
2242
+ function Dt(e, t, n) {
2226
2243
  let r = {
2227
2244
  disabled: !!(n || e.disabled),
2228
2245
  id: e.id,
@@ -2231,14 +2248,14 @@ function bt(e, t, n) {
2231
2248
  };
2232
2249
  return e.icon && (r.icon = e.icon), e.ariaLabel && (r.ariaLabel = e.ariaLabel), e.meta && (r.meta = e.meta), t && (r.onAction = t), r;
2233
2250
  }
2234
- function xt(e) {
2251
+ function Ot(e) {
2235
2252
  return e === "danger" || e === "warning" ? "alert" : "status";
2236
2253
  }
2237
- function St(e) {
2254
+ function kt(e) {
2238
2255
  return !!(e.before && e.after);
2239
2256
  }
2240
- function Ct({ 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 }) {
2241
- let m = ["game-ui-construction-progress", e].filter(Boolean).join(" "), h = d ?? yt(s), g = _t(s, c);
2257
+ function At({ 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 }) {
2258
+ let m = ["game-ui-construction-progress", e].filter(Boolean).join(" "), h = d ?? Et(s), g = wt(s, c);
2242
2259
  return /* @__PURE__ */ n("section", {
2243
2260
  "aria-label": r,
2244
2261
  className: m,
@@ -2249,19 +2266,19 @@ function Ct({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
2249
2266
  children: [
2250
2267
  /* @__PURE__ */ n("header", {
2251
2268
  className: "game-ui-construction-progress-header",
2252
- children: [/* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t(U, {
2253
- icon: dt[s],
2269
+ children: [/* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t(V, {
2270
+ icon: vt[s],
2254
2271
  size: "sm"
2255
- }), /* @__PURE__ */ t("strong", { children: a })] }), o ? /* @__PURE__ */ t(H, {
2256
- tone: ut[s],
2272
+ }), /* @__PURE__ */ t("strong", { children: a })] }), o ? /* @__PURE__ */ t(B, {
2273
+ tone: _t[s],
2257
2274
  children: g
2258
2275
  }) : null]
2259
2276
  }),
2260
- /* @__PURE__ */ t(Y, {
2277
+ /* @__PURE__ */ t(q, {
2261
2278
  label: a,
2262
2279
  max: i,
2263
2280
  showValue: !0,
2264
- tone: vt(s),
2281
+ tone: Tt(s),
2265
2282
  value: h
2266
2283
  }),
2267
2284
  l.length > 0 ? /* @__PURE__ */ t("ol", {
@@ -2275,8 +2292,8 @@ function Ct({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
2275
2292
  className: "game-ui-construction-step-dot"
2276
2293
  }),
2277
2294
  /* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t("strong", { children: e.label }), e.caption ? /* @__PURE__ */ t("small", { children: e.caption }) : null] }),
2278
- /* @__PURE__ */ t(H, {
2279
- tone: ft[e.status],
2295
+ /* @__PURE__ */ t(B, {
2296
+ tone: yt[e.status],
2280
2297
  children: e.status
2281
2298
  })
2282
2299
  ]
@@ -2288,8 +2305,8 @@ function Ct({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
2288
2305
  children: u.map((e) => /* @__PURE__ */ n("div", {
2289
2306
  className: "game-ui-construction-warning",
2290
2307
  "data-warning-tone": e.tone ?? "warning",
2291
- role: xt(e.tone),
2292
- children: [/* @__PURE__ */ t(U, {
2308
+ role: Ot(e.tone),
2309
+ children: [/* @__PURE__ */ t(V, {
2293
2310
  icon: e.tone === "danger" || e.tone === "warning" ? "alert" : "check",
2294
2311
  size: "sm"
2295
2312
  }), /* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t("strong", { children: e.label }), e.description ? /* @__PURE__ */ t("small", { children: e.description }) : null] })]
@@ -2298,8 +2315,8 @@ function Ct({ className: e, label: r, max: i = 100, progressLabel: a = "Construc
2298
2315
  ]
2299
2316
  });
2300
2317
  }
2301
- function wt({ 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 }) {
2302
- let p = ["game-ui-construction-approval-bar", r].filter(Boolean).join(" "), m = e ?? gt[l], h = u.filter((e) => e.tone !== "success").length, g = m.map((e) => bt(e, s, i));
2318
+ function jt({ 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 }) {
2319
+ let p = ["game-ui-construction-approval-bar", r].filter(Boolean).join(" "), m = e ?? Ct[l], h = u.filter((e) => e.tone !== "success").length, g = m.map((e) => Dt(e, s, i));
2303
2320
  return /* @__PURE__ */ n("section", {
2304
2321
  "aria-label": a,
2305
2322
  className: p,
@@ -2309,38 +2326,38 @@ function wt({ actions: e, className: r, disabled: i = !1, label: a, localOnlyLab
2309
2326
  "data-testid": f,
2310
2327
  children: [/* @__PURE__ */ n("div", {
2311
2328
  className: "game-ui-construction-approval-meta",
2312
- children: [c ? /* @__PURE__ */ t(H, {
2313
- tone: ht[c],
2314
- children: mt[c]
2315
- }) : /* @__PURE__ */ t(H, {
2329
+ children: [c ? /* @__PURE__ */ t(B, {
2330
+ tone: St[c],
2331
+ children: xt[c]
2332
+ }) : /* @__PURE__ */ t(B, {
2316
2333
  tone: "success",
2317
2334
  children: o
2318
- }), h > 0 ? /* @__PURE__ */ n(H, {
2335
+ }), h > 0 ? /* @__PURE__ */ n(B, {
2319
2336
  tone: "warning",
2320
2337
  children: [
2321
2338
  h,
2322
2339
  " validation warning",
2323
2340
  h === 1 ? "" : "s"
2324
2341
  ]
2325
- }) : /* @__PURE__ */ t(H, {
2342
+ }) : /* @__PURE__ */ t(B, {
2326
2343
  tone: "success",
2327
2344
  children: "Validation clear"
2328
2345
  })]
2329
- }), g.length > 0 ? /* @__PURE__ */ t(Z, {
2346
+ }), g.length > 0 ? /* @__PURE__ */ t(X, {
2330
2347
  actions: g,
2331
2348
  density: d === "small-mobile" ? "dense" : "comfortable",
2332
2349
  label: `${a} actions`
2333
2350
  }) : null]
2334
2351
  });
2335
2352
  }
2336
- function Tt({ 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 }) {
2353
+ function Mt({ 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 }) {
2337
2354
  return /* @__PURE__ */ n("section", {
2338
2355
  "aria-label": o,
2339
2356
  className: ["game-ui-robot-crew-status", e].filter(Boolean).join(" "),
2340
2357
  "data-ui-hook": "robot-crew-status",
2341
2358
  "data-variant": c,
2342
2359
  "data-testid": l,
2343
- children: [s ? /* @__PURE__ */ t("header", { children: /* @__PURE__ */ t("strong", { children: s }) }) : null, r.length === 0 ? /* @__PURE__ */ t(X, {
2360
+ children: [s ? /* @__PURE__ */ t("header", { children: /* @__PURE__ */ t("strong", { children: s }) }) : null, r.length === 0 ? /* @__PURE__ */ t(J, {
2344
2361
  description: i,
2345
2362
  icon: "ai",
2346
2363
  title: a
@@ -2350,7 +2367,7 @@ function Tt({ className: e, crew: r, emptyDescription: i = "Robot crew members a
2350
2367
  className: "game-ui-robot-crew-member",
2351
2368
  "data-crew-status": e.status,
2352
2369
  children: [
2353
- /* @__PURE__ */ t(U, {
2370
+ /* @__PURE__ */ t(V, {
2354
2371
  icon: e.icon ?? "ai",
2355
2372
  size: c === "small-mobile" ? "sm" : "md"
2356
2373
  }),
@@ -2362,8 +2379,8 @@ function Tt({ className: e, crew: r, emptyDescription: i = "Robot crew members a
2362
2379
  e.task ? /* @__PURE__ */ t("em", { children: e.task }) : null
2363
2380
  ]
2364
2381
  }),
2365
- /* @__PURE__ */ t(H, {
2366
- tone: pt[e.status],
2382
+ /* @__PURE__ */ t(B, {
2383
+ tone: bt[e.status],
2367
2384
  children: e.status
2368
2385
  })
2369
2386
  ]
@@ -2371,7 +2388,7 @@ function Tt({ className: e, crew: r, emptyDescription: i = "Robot crew members a
2371
2388
  })]
2372
2389
  });
2373
2390
  }
2374
- function Et({ activeView: e, after: r, before: i, className: a, label: o, onViewChange: s, variant: c = "desktop", "data-testid": l }) {
2391
+ function Nt({ activeView: e, after: r, before: i, className: a, label: o, onViewChange: s, variant: c = "desktop", "data-testid": l }) {
2375
2392
  let u = ["game-ui-before-after-toggle", a].filter(Boolean).join(" "), d = e === "before" ? i : r;
2376
2393
  return /* @__PURE__ */ n("section", {
2377
2394
  "aria-label": o,
@@ -2399,7 +2416,7 @@ function Et({ activeView: e, after: r, before: i, className: a, label: o, onView
2399
2416
  }) : /* @__PURE__ */ t("div", {
2400
2417
  "aria-hidden": "true",
2401
2418
  className: "game-ui-before-after-placeholder",
2402
- children: /* @__PURE__ */ t(U, {
2419
+ children: /* @__PURE__ */ t(V, {
2403
2420
  icon: e === "before" ? "home" : "check",
2404
2421
  size: "xl"
2405
2422
  })
@@ -2407,8 +2424,8 @@ function Et({ activeView: e, after: r, before: i, className: a, label: o, onView
2407
2424
  })]
2408
2425
  });
2409
2426
  }
2410
- function Dt({ 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 }) {
2411
- let f = ["game-ui-construction-job-card", e].filter(Boolean).join(" "), p = _t(i.status, i.statusLabel), m = u === "mobile" || u === "small-mobile", h = i.facts ?? [];
2427
+ function Pt({ 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 }) {
2428
+ let f = ["game-ui-construction-job-card", e].filter(Boolean).join(" "), p = wt(i.status, i.statusLabel), m = u === "mobile" || u === "small-mobile", h = i.facts ?? [];
2412
2429
  return /* @__PURE__ */ n("article", {
2413
2430
  className: f,
2414
2431
  "data-density": r,
@@ -2427,22 +2444,22 @@ function Dt({ className: e, density: r = "comfortable", job: i, onAction: a, onS
2427
2444
  disabled: !o,
2428
2445
  onClick: () => o?.(i.id),
2429
2446
  type: "button",
2430
- children: [/* @__PURE__ */ t(U, {
2431
- icon: dt[i.status],
2447
+ children: [/* @__PURE__ */ t(V, {
2448
+ icon: vt[i.status],
2432
2449
  size: m ? "sm" : "md"
2433
2450
  }), /* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t("strong", { children: i.title }), i.description ? /* @__PURE__ */ t("small", { children: i.description }) : null] })]
2434
2451
  }), /* @__PURE__ */ n("span", {
2435
2452
  className: "game-ui-construction-job-badges",
2436
2453
  children: [
2437
- /* @__PURE__ */ t(H, {
2438
- tone: ut[i.status],
2454
+ /* @__PURE__ */ t(B, {
2455
+ tone: _t[i.status],
2439
2456
  children: p
2440
2457
  }),
2441
- i.providerMode ? /* @__PURE__ */ t(H, {
2442
- tone: ht[i.providerMode],
2443
- children: mt[i.providerMode]
2458
+ i.providerMode ? /* @__PURE__ */ t(B, {
2459
+ tone: St[i.providerMode],
2460
+ children: xt[i.providerMode]
2444
2461
  }) : null,
2445
- i.badges?.map((e) => /* @__PURE__ */ t(H, {
2462
+ i.badges?.map((e) => /* @__PURE__ */ t(B, {
2446
2463
  tone: e.tone ?? "neutral",
2447
2464
  children: e.label
2448
2465
  }, e.label))
@@ -2458,7 +2475,7 @@ function Dt({ className: e, density: r = "comfortable", job: i, onAction: a, onS
2458
2475
  h.map((e) => /* @__PURE__ */ n("span", { children: [/* @__PURE__ */ t("small", { children: e.label }), /* @__PURE__ */ t("b", { children: e.value })] }, e.id))
2459
2476
  ]
2460
2477
  }),
2461
- /* @__PURE__ */ t(Ct, {
2478
+ /* @__PURE__ */ t(At, {
2462
2479
  label: `${i.title} progress`,
2463
2480
  progressLabel: i.progressLabel,
2464
2481
  status: i.status,
@@ -2469,19 +2486,19 @@ function Dt({ className: e, density: r = "comfortable", job: i, onAction: a, onS
2469
2486
  max: i.progressMax,
2470
2487
  variant: u
2471
2488
  }),
2472
- l && St(i) ? /* @__PURE__ */ t(Et, {
2489
+ l && kt(i) ? /* @__PURE__ */ t(Nt, {
2473
2490
  activeView: "after",
2474
2491
  after: i.after,
2475
2492
  before: i.before,
2476
2493
  label: `${i.title} preview`,
2477
2494
  variant: u
2478
2495
  }) : null,
2479
- i.crew && i.crew.length > 0 ? /* @__PURE__ */ t(Tt, {
2496
+ i.crew && i.crew.length > 0 ? /* @__PURE__ */ t(Mt, {
2480
2497
  crew: i.crew,
2481
2498
  label: `${i.title} robot crew`,
2482
2499
  variant: u
2483
2500
  }) : null,
2484
- c ? /* @__PURE__ */ t(wt, {
2501
+ c ? /* @__PURE__ */ t(jt, {
2485
2502
  actions: i.actions,
2486
2503
  label: `${i.title} approval`,
2487
2504
  onAction: (e) => a?.(e, i.id),
@@ -2493,8 +2510,8 @@ function Dt({ className: e, density: r = "comfortable", job: i, onAction: a, onS
2493
2510
  ]
2494
2511
  });
2495
2512
  }
2496
- function Ot({ 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 }) {
2497
- return /* @__PURE__ */ t(ot, {
2513
+ function Ft({ 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 }) {
2514
+ return /* @__PURE__ */ t(pt, {
2498
2515
  className: ["game-ui-compact-job-drawer", n].filter(Boolean).join(" "),
2499
2516
  closeLabel: r,
2500
2517
  disabled: i,
@@ -2510,7 +2527,7 @@ function Ot({ children: e, className: n, closeLabel: r = "Close jobs", disabled:
2510
2527
  children: e ?? /* @__PURE__ */ t("div", {
2511
2528
  className: "game-ui-compact-job-drawer-list",
2512
2529
  tabIndex: 0,
2513
- children: a.map((e) => /* @__PURE__ */ t(Dt, {
2530
+ children: a.map((e) => /* @__PURE__ */ t(Pt, {
2514
2531
  density: "dense",
2515
2532
  job: e,
2516
2533
  onAction: s,
@@ -2522,7 +2539,7 @@ function Ot({ children: e, className: n, closeLabel: r = "Close jobs", disabled:
2522
2539
  })
2523
2540
  });
2524
2541
  }
2525
- function kt({ 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 }) {
2542
+ function It({ 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 }) {
2526
2543
  let y = ["game-ui-contractor-panel", r].filter(Boolean).join(" "), b = c.find((e) => e.id === m) ?? c[0];
2527
2544
  return _ === "mobile" || _ === "small-mobile" ? /* @__PURE__ */ n("section", {
2528
2545
  "aria-label": l,
@@ -2531,7 +2548,7 @@ function kt({ activePreviewView: e = "after", className: r, density: i = "comfor
2531
2548
  "data-variant": _,
2532
2549
  "data-testid": v,
2533
2550
  children: [
2534
- /* @__PURE__ */ t(Ot, {
2551
+ /* @__PURE__ */ t(Ft, {
2535
2552
  jobs: c,
2536
2553
  label: `${l} drawer`,
2537
2554
  onAction: u,
@@ -2543,16 +2560,16 @@ function kt({ activePreviewView: e = "after", className: r, density: i = "comfor
2543
2560
  triggerLabel: "Contractor",
2544
2561
  variant: _
2545
2562
  }),
2546
- b && !a ? /* @__PURE__ */ t(Dt, {
2563
+ b && !a ? /* @__PURE__ */ t(Pt, {
2547
2564
  density: "dense",
2548
2565
  job: b,
2549
2566
  onAction: u,
2550
2567
  onSelect: p,
2551
2568
  selected: !0,
2552
- showBeforeAfter: St(b),
2569
+ showBeforeAfter: kt(b),
2553
2570
  variant: _
2554
2571
  }) : null,
2555
- b ? null : /* @__PURE__ */ t(X, {
2572
+ b ? null : /* @__PURE__ */ t(J, {
2556
2573
  description: o,
2557
2574
  icon: "energy",
2558
2575
  title: s
@@ -2573,7 +2590,7 @@ function kt({ activePreviewView: e = "after", className: r, density: i = "comfor
2573
2590
  className: "game-ui-contractor-panel-subtitle",
2574
2591
  children: h
2575
2592
  }) : null,
2576
- c.length === 0 ? /* @__PURE__ */ t(X, {
2593
+ c.length === 0 ? /* @__PURE__ */ t(J, {
2577
2594
  description: o,
2578
2595
  icon: "energy",
2579
2596
  title: s
@@ -2584,7 +2601,7 @@ function kt({ activePreviewView: e = "after", className: r, density: i = "comfor
2584
2601
  "aria-label": "Construction job queue",
2585
2602
  className: "game-ui-contractor-job-list",
2586
2603
  tabIndex: 0,
2587
- children: c.map((e) => /* @__PURE__ */ t(Dt, {
2604
+ children: c.map((e) => /* @__PURE__ */ t(Pt, {
2588
2605
  density: i,
2589
2606
  job: e,
2590
2607
  onAction: u,
@@ -2597,7 +2614,7 @@ function kt({ activePreviewView: e = "after", className: r, density: i = "comfor
2597
2614
  className: "game-ui-contractor-detail",
2598
2615
  "aria-label": `${b.title} detail`,
2599
2616
  children: [
2600
- /* @__PURE__ */ t(Ct, {
2617
+ /* @__PURE__ */ t(At, {
2601
2618
  label: `${b.title} progress detail`,
2602
2619
  progressLabel: b.progressLabel,
2603
2620
  status: b.status,
@@ -2608,7 +2625,7 @@ function kt({ activePreviewView: e = "after", className: r, density: i = "comfor
2608
2625
  max: b.progressMax,
2609
2626
  variant: _
2610
2627
  }),
2611
- St(b) ? /* @__PURE__ */ t(Et, {
2628
+ kt(b) ? /* @__PURE__ */ t(Nt, {
2612
2629
  activeView: e,
2613
2630
  after: b.after,
2614
2631
  before: b.before,
@@ -2616,13 +2633,13 @@ function kt({ activePreviewView: e = "after", className: r, density: i = "comfor
2616
2633
  onViewChange: f,
2617
2634
  variant: _
2618
2635
  }) : null,
2619
- /* @__PURE__ */ t(Tt, {
2636
+ /* @__PURE__ */ t(Mt, {
2620
2637
  crew: b.crew ?? [],
2621
2638
  label: `${b.title} robot crew`,
2622
2639
  title: "Robot crew",
2623
2640
  variant: _
2624
2641
  }),
2625
- /* @__PURE__ */ t(wt, {
2642
+ /* @__PURE__ */ t(jt, {
2626
2643
  actions: b.actions,
2627
2644
  label: `${b.title} approval`,
2628
2645
  onAction: u ? (e) => u(e, b.id) : void 0,
@@ -2640,16 +2657,16 @@ function kt({ activePreviewView: e = "after", className: r, density: i = "comfor
2640
2657
  }
2641
2658
  //#endregion
2642
2659
  //#region src/GamePanelSystem.tsx
2643
- function At(...e) {
2660
+ function Lt(...e) {
2644
2661
  return e.filter(Boolean).join(" ");
2645
2662
  }
2646
- var jt = {
2663
+ var Rt = {
2647
2664
  collapse: "Collapse",
2648
2665
  expand: "Expand"
2649
2666
  };
2650
- function Mt({ actions: e, children: r, className: i, defaultOpen: a = !0, labels: o, onOpenChange: s, open: c, title: u, tone: f = "default", ...p }) {
2667
+ function zt({ actions: e, children: r, className: i, defaultOpen: a = !0, labels: o, onOpenChange: s, open: c, title: u, tone: f = "default", ...p }) {
2651
2668
  let m = l(), [h, g] = d(a), _ = c ?? h, v = {
2652
- ...jt,
2669
+ ...Rt,
2653
2670
  ...o
2654
2671
  }, y = () => {
2655
2672
  let e = !_;
@@ -2657,7 +2674,7 @@ function Mt({ actions: e, children: r, className: i, defaultOpen: a = !0, labels
2657
2674
  };
2658
2675
  return /* @__PURE__ */ n("section", {
2659
2676
  ...p,
2660
- className: At("game-ui-collapsible", i),
2677
+ className: Lt("game-ui-collapsible", i),
2661
2678
  "data-open": _,
2662
2679
  "data-panel-tone": f,
2663
2680
  children: [/* @__PURE__ */ n("header", {
@@ -2696,13 +2713,13 @@ function Mt({ actions: e, children: r, className: i, defaultOpen: a = !0, labels
2696
2713
  })]
2697
2714
  });
2698
2715
  }
2699
- var Nt = {
2716
+ var Bt = {
2700
2717
  close: "Close",
2701
2718
  maximize: "Maximize",
2702
2719
  minimize: "Minimize",
2703
2720
  restore: "Restore"
2704
2721
  };
2705
- function Pt({ kind: e }) {
2722
+ function Vt({ kind: e }) {
2706
2723
  return /* @__PURE__ */ t("svg", {
2707
2724
  "aria-hidden": "true",
2708
2725
  fill: "none",
@@ -2722,9 +2739,9 @@ function Pt({ kind: e }) {
2722
2739
  })
2723
2740
  });
2724
2741
  }
2725
- function Ft({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, className: a, defaultState: o = "normal", footer: s, icon: c, labels: l, onClose: u, onStateChange: f, state: p, title: m, ...h }) {
2742
+ function Ht({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, className: a, defaultState: o = "normal", footer: s, icon: c, labels: l, onClose: u, onStateChange: f, state: p, title: m, ...h }) {
2726
2743
  let [g, _] = d(o), v = p ?? g, y = {
2727
- ...Nt,
2744
+ ...Bt,
2728
2745
  ...l
2729
2746
  }, b = (e) => {
2730
2747
  p === void 0 && _(e), f?.(e);
@@ -2732,7 +2749,7 @@ function Ft({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, classNa
2732
2749
  return /* @__PURE__ */ n("section", {
2733
2750
  ...h,
2734
2751
  "aria-label": m,
2735
- className: At("game-ui-window", a),
2752
+ className: Lt("game-ui-window", a),
2736
2753
  "data-window-state": v,
2737
2754
  role: "group",
2738
2755
  children: [/* @__PURE__ */ n("header", {
@@ -2755,21 +2772,21 @@ function Ft({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, classNa
2755
2772
  className: "game-ui-icon-button game-ui-window-button",
2756
2773
  onClick: () => b(x ? "normal" : "minimized"),
2757
2774
  type: "button",
2758
- children: /* @__PURE__ */ t(Pt, { kind: x ? "restore" : "minimize" })
2775
+ children: /* @__PURE__ */ t(Vt, { kind: x ? "restore" : "minimize" })
2759
2776
  }) : null,
2760
2777
  e ? /* @__PURE__ */ t("button", {
2761
2778
  "aria-label": S ? y.restore : y.maximize,
2762
2779
  className: "game-ui-icon-button game-ui-window-button",
2763
2780
  onClick: () => b(S ? "normal" : "maximized"),
2764
2781
  type: "button",
2765
- children: /* @__PURE__ */ t(Pt, { kind: S ? "restore" : "maximize" })
2782
+ children: /* @__PURE__ */ t(Vt, { kind: S ? "restore" : "maximize" })
2766
2783
  }) : null,
2767
2784
  u ? /* @__PURE__ */ t("button", {
2768
2785
  "aria-label": y.close,
2769
2786
  className: "game-ui-icon-button game-ui-window-button",
2770
2787
  onClick: u,
2771
2788
  type: "button",
2772
- children: /* @__PURE__ */ t(Pt, { kind: "close" })
2789
+ children: /* @__PURE__ */ t(Vt, { kind: "close" })
2773
2790
  }) : null
2774
2791
  ]
2775
2792
  })
@@ -2789,14 +2806,14 @@ function Ft({ allowMaximize: e = !0, allowMinimize: r = !0, children: i, classNa
2789
2806
  })]
2790
2807
  });
2791
2808
  }
2792
- function It({ children: e, className: r, closeLabel: i = "Close", closeOnBackdrop: a = !0, footer: o, onClose: s, open: d, position: f = "center", size: p = "md", title: m }) {
2809
+ function Ut({ children: e, className: r, closeLabel: i = "Close", closeOnBackdrop: a = !0, footer: o, onClose: s, open: d, position: f = "center", size: p = "md", title: m }) {
2793
2810
  let h = u(null), g = l();
2794
2811
  return c(() => {
2795
2812
  let e = h.current;
2796
2813
  e && (d && !e.open && e.showModal(), !d && e.open && e.close());
2797
2814
  }, [d]), /* @__PURE__ */ t("dialog", {
2798
2815
  "aria-labelledby": g,
2799
- className: At("game-ui-modal", r),
2816
+ className: Lt("game-ui-modal", r),
2800
2817
  "data-position": f,
2801
2818
  "data-size": p,
2802
2819
  onCancel: (e) => {
@@ -2820,7 +2837,7 @@ function It({ children: e, className: r, closeLabel: i = "Close", closeOnBackdro
2820
2837
  className: "game-ui-icon-button game-ui-window-button",
2821
2838
  onClick: s,
2822
2839
  type: "button",
2823
- children: /* @__PURE__ */ t(Pt, { kind: "close" })
2840
+ children: /* @__PURE__ */ t(Vt, { kind: "close" })
2824
2841
  })]
2825
2842
  }),
2826
2843
  /* @__PURE__ */ t("div", {
@@ -2837,7 +2854,7 @@ function It({ children: e, className: r, closeLabel: i = "Close", closeOnBackdro
2837
2854
  }
2838
2855
  //#endregion
2839
2856
  //#region src/previewStates.ts
2840
- var Lt = [
2857
+ var Wt = [
2841
2858
  {
2842
2859
  id: "history-human-long",
2843
2860
  kind: "human",
@@ -2859,22 +2876,22 @@ var Lt = [
2859
2876
  speaker: "Table",
2860
2877
  text: "Three votes are locked. One more read can still change the pact."
2861
2878
  }
2862
- ], Rt = {
2879
+ ], Gt = {
2863
2880
  ...k,
2881
+ ...ce,
2882
+ ...le,
2864
2883
  ...A,
2865
2884
  ...j,
2866
2885
  ...M,
2867
2886
  ...N,
2868
- ...P,
2869
- ...F,
2870
- ...L
2887
+ ...F
2871
2888
  }, Q = {
2872
2889
  toneAttr: "data-game-ui-tone",
2873
2890
  toneGlass: "glass",
2874
2891
  densityAttr: "data-game-ui-density",
2875
2892
  densityCompact: "compact",
2876
2893
  scopeClass: "game-ui-overlay-scope"
2877
- }, zt = I, Bt = [
2894
+ }, Kt = P, qt = [
2878
2895
  "--game-ui-bg",
2879
2896
  "--game-ui-surface",
2880
2897
  "--game-ui-surface-raised",
@@ -2900,7 +2917,7 @@ var Lt = [
2900
2917
  "--game-ui-wood",
2901
2918
  "--game-ui-ink-title",
2902
2919
  "--game-ui-ink-heading"
2903
- ], Vt = {
2920
+ ], Jt = {
2904
2921
  en: {
2905
2922
  triggerLabel: "EN",
2906
2923
  langMenuLabel: "Preview language",
@@ -3093,7 +3110,7 @@ var Lt = [
3093
3110
  hint: "Rotate manually if this browser blocks automatic landscape lock."
3094
3111
  },
3095
3112
  historyLabel: "Round history",
3096
- history: Lt
3113
+ history: Wt
3097
3114
  },
3098
3115
  "zh-CN": {
3099
3116
  triggerLabel: "中",
@@ -3311,7 +3328,7 @@ var Lt = [
3311
3328
  }
3312
3329
  ]
3313
3330
  }
3314
- }, Ht = i(Vt.en), $ = () => s(Ht), Ut = [
3331
+ }, Yt = i(Jt.en), $ = () => s(Yt), Xt = [
3315
3332
  {
3316
3333
  id: "colors",
3317
3334
  tokens: D
@@ -3322,23 +3339,23 @@ var Lt = [
3322
3339
  },
3323
3340
  {
3324
3341
  id: "typography",
3325
- tokens: A
3342
+ tokens: ce
3326
3343
  },
3327
3344
  {
3328
3345
  id: "spacing",
3329
- tokens: j
3346
+ tokens: le
3330
3347
  },
3331
3348
  {
3332
3349
  id: "radius",
3333
- tokens: M
3350
+ tokens: A
3334
3351
  },
3335
3352
  {
3336
3353
  id: "elevation",
3337
- tokens: N
3354
+ tokens: j
3338
3355
  },
3339
3356
  {
3340
3357
  id: "motion",
3341
- tokens: P
3358
+ tokens: M
3342
3359
  },
3343
3360
  {
3344
3361
  id: "overlayGlass",
@@ -3346,18 +3363,18 @@ var Lt = [
3346
3363
  },
3347
3364
  {
3348
3365
  id: "layers",
3349
- tokens: F
3366
+ tokens: N
3350
3367
  },
3351
3368
  {
3352
3369
  id: "targets",
3353
- tokens: I
3370
+ tokens: P
3354
3371
  },
3355
3372
  {
3356
3373
  id: "assetSizing",
3357
- tokens: L
3374
+ tokens: F
3358
3375
  }
3359
3376
  ];
3360
- function Wt({ id: e, label: r, tokens: i }) {
3377
+ function Zt({ id: e, label: r, tokens: i }) {
3361
3378
  return /* @__PURE__ */ n("article", {
3362
3379
  className: "game-ui-token-card",
3363
3380
  children: [/* @__PURE__ */ t("h3", { children: r }), /* @__PURE__ */ t("div", {
@@ -3369,7 +3386,7 @@ function Wt({ id: e, label: r, tokens: i }) {
3369
3386
  })]
3370
3387
  });
3371
3388
  }
3372
- function Gt() {
3389
+ function Qt() {
3373
3390
  return /* @__PURE__ */ t("div", {
3374
3391
  "aria-label": "Clay color swatches",
3375
3392
  className: "game-ui-swatch-grid",
@@ -3379,7 +3396,7 @@ function Gt() {
3379
3396
  }, e))
3380
3397
  });
3381
3398
  }
3382
- function Kt() {
3399
+ function $t() {
3383
3400
  let { type: e } = $();
3384
3401
  return /* @__PURE__ */ n("div", {
3385
3402
  className: "game-ui-type-scale",
@@ -3395,7 +3412,7 @@ function Kt() {
3395
3412
  ]
3396
3413
  });
3397
3414
  }
3398
- function qt() {
3415
+ function en() {
3399
3416
  let { buttons: e } = $();
3400
3417
  return /* @__PURE__ */ n(T, {
3401
3418
  title: e.panelTitle,
@@ -3438,7 +3455,7 @@ function qt() {
3438
3455
  label: e.settingsTip,
3439
3456
  children: /* @__PURE__ */ t(E, {
3440
3457
  label: e.settingsTip,
3441
- children: /* @__PURE__ */ t(U, {
3458
+ children: /* @__PURE__ */ t(V, {
3442
3459
  icon: "settings",
3443
3460
  size: "sm"
3444
3461
  })
@@ -3446,20 +3463,20 @@ function qt() {
3446
3463
  }),
3447
3464
  /* @__PURE__ */ t(E, {
3448
3465
  label: e.copyInvite,
3449
- children: /* @__PURE__ */ t(U, {
3466
+ children: /* @__PURE__ */ t(V, {
3450
3467
  icon: "copy",
3451
3468
  size: "sm"
3452
3469
  })
3453
3470
  }),
3454
- /* @__PURE__ */ t(H, {
3471
+ /* @__PURE__ */ t(B, {
3455
3472
  tone: "ai",
3456
3473
  children: e.aiBadge
3457
3474
  }),
3458
- /* @__PURE__ */ t(H, {
3475
+ /* @__PURE__ */ t(B, {
3459
3476
  tone: "success",
3460
3477
  children: e.readyBadge
3461
3478
  }),
3462
- /* @__PURE__ */ t(H, {
3479
+ /* @__PURE__ */ t(B, {
3463
3480
  tone: "warning",
3464
3481
  children: e.hostGateBadge
3465
3482
  })
@@ -3530,7 +3547,7 @@ function qt() {
3530
3547
  ]
3531
3548
  });
3532
3549
  }
3533
- function Jt() {
3550
+ function tn() {
3534
3551
  let { hud: e, tiles: r } = $();
3535
3552
  return /* @__PURE__ */ n("div", {
3536
3553
  className: "game-ui-stage-demo",
@@ -3538,7 +3555,7 @@ function Jt() {
3538
3555
  "aria-label": "Clay world HUD preview",
3539
3556
  className: "game-ui-stage-world",
3540
3557
  children: [
3541
- /* @__PURE__ */ t(W, {
3558
+ /* @__PURE__ */ t(H, {
3542
3559
  label: e.label,
3543
3560
  items: [
3544
3561
  {
@@ -3565,13 +3582,13 @@ function Jt() {
3565
3582
  label: e.tools,
3566
3583
  children: [/* @__PURE__ */ t(E, {
3567
3584
  label: e.history,
3568
- children: /* @__PURE__ */ t(U, {
3585
+ children: /* @__PURE__ */ t(V, {
3569
3586
  icon: "scroll",
3570
3587
  size: "sm"
3571
3588
  })
3572
3589
  }), /* @__PURE__ */ t(E, {
3573
3590
  label: e.settings,
3574
- children: /* @__PURE__ */ t(U, {
3591
+ children: /* @__PURE__ */ t(V, {
3575
3592
  icon: "settings",
3576
3593
  size: "sm"
3577
3594
  })
@@ -3609,7 +3626,7 @@ function Jt() {
3609
3626
  }), /* @__PURE__ */ n("div", {
3610
3627
  className: "game-ui-stage-sidecar",
3611
3628
  children: [
3612
- /* @__PURE__ */ t(G, {
3629
+ /* @__PURE__ */ t(U, {
3613
3630
  badge: r.daily.badge,
3614
3631
  icon: "scroll",
3615
3632
  kicker: r.daily.kicker,
@@ -3618,7 +3635,7 @@ function Jt() {
3618
3635
  title: r.daily.title,
3619
3636
  tone: "daily"
3620
3637
  }),
3621
- /* @__PURE__ */ t(G, {
3638
+ /* @__PURE__ */ t(U, {
3622
3639
  badge: r.portal.badge,
3623
3640
  icon: "portal",
3624
3641
  kicker: r.portal.kicker,
@@ -3626,7 +3643,7 @@ function Jt() {
3626
3643
  title: r.portal.title,
3627
3644
  tone: "portal"
3628
3645
  }),
3629
- /* @__PURE__ */ t(G, {
3646
+ /* @__PURE__ */ t(U, {
3630
3647
  icon: "energy",
3631
3648
  kicker: r.host.kicker,
3632
3649
  summary: r.host.summary,
@@ -3637,7 +3654,7 @@ function Jt() {
3637
3654
  })]
3638
3655
  });
3639
3656
  }
3640
- function Yt() {
3657
+ function nn() {
3641
3658
  let { hud: e, buttons: r } = $(), i = (i) => {
3642
3659
  let a = i === "glass";
3643
3660
  return /* @__PURE__ */ n("div", {
@@ -3651,7 +3668,7 @@ function Yt() {
3651
3668
  [Q.toneAttr]: Q.toneGlass,
3652
3669
  [Q.densityAttr]: Q.densityCompact
3653
3670
  } : {},
3654
- children: [/* @__PURE__ */ t(W, {
3671
+ children: [/* @__PURE__ */ t(H, {
3655
3672
  label: e.label,
3656
3673
  items: [
3657
3674
  {
@@ -3678,13 +3695,13 @@ function Yt() {
3678
3695
  label: e.tools,
3679
3696
  children: [/* @__PURE__ */ t(E, {
3680
3697
  label: e.history,
3681
- children: /* @__PURE__ */ t(U, {
3698
+ children: /* @__PURE__ */ t(V, {
3682
3699
  icon: "scroll",
3683
3700
  size: "sm"
3684
3701
  })
3685
3702
  }), /* @__PURE__ */ t(E, {
3686
3703
  label: e.settings,
3687
- children: /* @__PURE__ */ t(U, {
3704
+ children: /* @__PURE__ */ t(V, {
3688
3705
  icon: "settings",
3689
3706
  size: "sm"
3690
3707
  })
@@ -3695,15 +3712,15 @@ function Yt() {
3695
3712
  children: [/* @__PURE__ */ n("div", {
3696
3713
  className: "game-ui-hud-cluster",
3697
3714
  children: [
3698
- /* @__PURE__ */ t(H, {
3715
+ /* @__PURE__ */ t(B, {
3699
3716
  tone: "ai",
3700
3717
  children: r.aiBadge
3701
3718
  }),
3702
- /* @__PURE__ */ t(H, {
3719
+ /* @__PURE__ */ t(B, {
3703
3720
  tone: "success",
3704
3721
  children: r.readyBadge
3705
3722
  }),
3706
- /* @__PURE__ */ t(Y, {
3723
+ /* @__PURE__ */ t(q, {
3707
3724
  label: e.reveal,
3708
3725
  value: 68
3709
3726
  })
@@ -3755,7 +3772,7 @@ function Yt() {
3755
3772
  })]
3756
3773
  });
3757
3774
  }
3758
- function Xt() {
3775
+ function rn() {
3759
3776
  let { modals: e } = $();
3760
3777
  return /* @__PURE__ */ n("div", {
3761
3778
  className: "game-ui-preview-two-up",
@@ -3783,8 +3800,8 @@ function Xt() {
3783
3800
  tone: "danger",
3784
3801
  children: e.toastErr
3785
3802
  }),
3786
- /* @__PURE__ */ t(Ee, { label: e.loading }),
3787
- /* @__PURE__ */ t(Ee, {
3803
+ /* @__PURE__ */ t(Fe, { label: e.loading }),
3804
+ /* @__PURE__ */ t(Fe, {
3788
3805
  label: e.loadingErr,
3789
3806
  tone: "error"
3790
3807
  })
@@ -3792,14 +3809,14 @@ function Xt() {
3792
3809
  })]
3793
3810
  });
3794
3811
  }
3795
- function Zt() {
3812
+ function an() {
3796
3813
  let { cards: e } = $();
3797
3814
  return /* @__PURE__ */ n("div", {
3798
3815
  className: "game-ui-preview-two-up",
3799
3816
  children: [/* @__PURE__ */ t(T, {
3800
3817
  title: e.fanTitle,
3801
3818
  tone: "strong",
3802
- children: /* @__PURE__ */ t(Se, {
3819
+ children: /* @__PURE__ */ t(je, {
3803
3820
  label: e.fanLabel,
3804
3821
  cards: [
3805
3822
  {
@@ -3831,16 +3848,16 @@ function Zt() {
3831
3848
  }), /* @__PURE__ */ n("div", {
3832
3849
  className: "game-ui-asset-path-grid",
3833
3850
  children: [
3834
- /* @__PURE__ */ t("code", { children: V.catalog.manifest }),
3835
- /* @__PURE__ */ t("code", { children: V.catalog.sourceCatalog }),
3836
- /* @__PURE__ */ t("code", { children: V.buttons.primary }),
3837
- /* @__PURE__ */ t("code", { children: V.icons.trophy })
3851
+ /* @__PURE__ */ t("code", { children: z.catalog.manifest }),
3852
+ /* @__PURE__ */ t("code", { children: z.catalog.sourceCatalog }),
3853
+ /* @__PURE__ */ t("code", { children: z.buttons.primary }),
3854
+ /* @__PURE__ */ t("code", { children: z.icons.trophy })
3838
3855
  ]
3839
3856
  })]
3840
3857
  })]
3841
3858
  });
3842
3859
  }
3843
- var Qt = [
3860
+ var on = [
3844
3861
  {
3845
3862
  id: "terrain",
3846
3863
  label: "Terrain",
@@ -3856,7 +3873,7 @@ var Qt = [
3856
3873
  label: "Place",
3857
3874
  icon: "gem"
3858
3875
  }
3859
- ], $t = [
3876
+ ], sn = [
3860
3877
  {
3861
3878
  id: "raise",
3862
3879
  label: "Raise",
@@ -3882,7 +3899,7 @@ var Qt = [
3882
3899
  label: "Paint",
3883
3900
  shortcut: "5"
3884
3901
  }
3885
- ], en = [
3902
+ ], cn = [
3886
3903
  {
3887
3904
  id: "grass",
3888
3905
  label: "Grass",
@@ -3898,7 +3915,7 @@ var Qt = [
3898
3915
  label: "Path",
3899
3916
  color: "#b98d5d"
3900
3917
  }
3901
- ], tn = [{
3918
+ ], ln = [{
3902
3919
  id: "foundation",
3903
3920
  label: "Foundation",
3904
3921
  icon: "home",
@@ -3917,10 +3934,10 @@ var Qt = [
3917
3934
  status: "ready"
3918
3935
  }]
3919
3936
  }];
3920
- function nn() {
3937
+ function un() {
3921
3938
  return /* @__PURE__ */ n("div", {
3922
3939
  className: "game-ui-preview-two-up",
3923
- children: [/* @__PURE__ */ t(lt, {
3940
+ children: [/* @__PURE__ */ t(gt, {
3924
3941
  activeBuildCategoryId: "foundation",
3925
3942
  activeMaterialId: "grass",
3926
3943
  activeModeId: "terrain",
@@ -3929,10 +3946,10 @@ function nn() {
3929
3946
  radius: 2.75,
3930
3947
  strength: .45
3931
3948
  },
3932
- buildCategories: tn,
3949
+ buildCategories: ln,
3933
3950
  label: "Desktop terrain and build tools",
3934
- materials: en,
3935
- modes: Qt,
3951
+ materials: cn,
3952
+ modes: on,
3936
3953
  selectedBuildItemId: "floor-2x2",
3937
3954
  status: {
3938
3955
  label: "Ready",
@@ -3943,12 +3960,12 @@ function nn() {
3943
3960
  progressValue: 68
3944
3961
  },
3945
3962
  title: "Island tools",
3946
- tools: $t,
3963
+ tools: sn,
3947
3964
  undoRedo: {
3948
3965
  canRedo: !1,
3949
3966
  canUndo: !0
3950
3967
  }
3951
- }), /* @__PURE__ */ t(lt, {
3968
+ }), /* @__PURE__ */ t(gt, {
3952
3969
  activeBuildCategoryId: "foundation",
3953
3970
  activeMaterialId: "path",
3954
3971
  activeModeId: "terrain",
@@ -3957,11 +3974,11 @@ function nn() {
3957
3974
  radius: 1.5,
3958
3975
  strength: .3
3959
3976
  },
3960
- buildCategories: tn,
3977
+ buildCategories: ln,
3961
3978
  drawerOpen: !0,
3962
3979
  label: "Small mobile terrain drawer",
3963
- materials: en,
3964
- modes: Qt,
3980
+ materials: cn,
3981
+ modes: on,
3965
3982
  selectedBuildItemId: "floor-2x2",
3966
3983
  status: {
3967
3984
  label: "Blocked",
@@ -3969,7 +3986,7 @@ function nn() {
3969
3986
  description: "This edit would bury a placed object."
3970
3987
  },
3971
3988
  title: "Tools",
3972
- tools: $t,
3989
+ tools: sn,
3973
3990
  undoRedo: {
3974
3991
  canRedo: !0,
3975
3992
  canUndo: !0
@@ -3978,12 +3995,12 @@ function nn() {
3978
3995
  })]
3979
3996
  });
3980
3997
  }
3981
- function rn({ label: e, mode: r }) {
3998
+ function dn({ label: e, mode: r }) {
3982
3999
  return /* @__PURE__ */ n("div", {
3983
4000
  className: "game-ui-construction-preview-card",
3984
4001
  "data-preview": r,
3985
4002
  children: [
3986
- /* @__PURE__ */ t(U, {
4003
+ /* @__PURE__ */ t(V, {
3987
4004
  icon: r === "before" ? "home" : "check",
3988
4005
  size: "xl"
3989
4006
  }),
@@ -3992,7 +4009,7 @@ function rn({ label: e, mode: r }) {
3992
4009
  ]
3993
4010
  });
3994
4011
  }
3995
- var an = [
4012
+ var fn = [
3996
4013
  {
3997
4014
  id: "preview-deck",
3998
4015
  title: "Deck robot crew",
@@ -4053,7 +4070,7 @@ var an = [
4053
4070
  before: {
4054
4071
  label: "Before",
4055
4072
  caption: "Uneven terrain pad.",
4056
- content: /* @__PURE__ */ t(rn, {
4073
+ content: /* @__PURE__ */ t(dn, {
4057
4074
  label: "Rough pad",
4058
4075
  mode: "before"
4059
4076
  })
@@ -4061,7 +4078,7 @@ var an = [
4061
4078
  after: {
4062
4079
  label: "After",
4063
4080
  caption: "Flattened foundation pad with safe clearance.",
4064
- content: /* @__PURE__ */ t(rn, {
4081
+ content: /* @__PURE__ */ t(dn, {
4065
4082
  label: "Foundation ready",
4066
4083
  mode: "after"
4067
4084
  })
@@ -4090,19 +4107,19 @@ var an = [
4090
4107
  }]
4091
4108
  }
4092
4109
  ];
4093
- function on() {
4110
+ function pn() {
4094
4111
  return /* @__PURE__ */ n("div", {
4095
4112
  className: "game-ui-preview-two-up",
4096
- children: [/* @__PURE__ */ t(kt, {
4097
- jobs: an,
4113
+ children: [/* @__PURE__ */ t(It, {
4114
+ jobs: fn,
4098
4115
  label: "AI contractor jobs",
4099
4116
  selectedJobId: "review-house-pad",
4100
4117
  subtitle: "Official contractor UI covers drafts, previews, robot work, validation, review, and local-only provider boundaries.",
4101
4118
  title: "AI contractor",
4102
4119
  variant: "desktop"
4103
- }), /* @__PURE__ */ t(kt, {
4120
+ }), /* @__PURE__ */ t(It, {
4104
4121
  drawerOpen: !0,
4105
- jobs: an,
4122
+ jobs: fn,
4106
4123
  label: "Small mobile contractor jobs",
4107
4124
  selectedJobId: "blocked-fence",
4108
4125
  title: "Contractor",
@@ -4110,10 +4127,10 @@ function on() {
4110
4127
  })]
4111
4128
  });
4112
4129
  }
4113
- function sn() {
4114
- return /* @__PURE__ */ t(Pe, {
4130
+ function mn() {
4131
+ return /* @__PURE__ */ t(Ue, {
4115
4132
  title: "OwnMySpace island editor preview",
4116
- hud: /* @__PURE__ */ t(Ie, {
4133
+ hud: /* @__PURE__ */ t(Y, {
4117
4134
  label: "Island facts",
4118
4135
  facts: [
4119
4136
  {
@@ -4137,11 +4154,11 @@ function sn() {
4137
4154
  }
4138
4155
  ]
4139
4156
  }),
4140
- movementPad: /* @__PURE__ */ t(Be, {
4157
+ movementPad: /* @__PURE__ */ t(Je, {
4141
4158
  helpText: "WASD or arrows",
4142
4159
  label: "Move avatar"
4143
4160
  }),
4144
- assetLibrary: /* @__PURE__ */ t(Ge, {
4161
+ assetLibrary: /* @__PURE__ */ t($e, {
4145
4162
  label: "Placeable assets",
4146
4163
  title: "Assets",
4147
4164
  subtitle: "Starter, generated, and imported assets stay visibly distinct but share one placement path.",
@@ -4188,7 +4205,7 @@ function sn() {
4188
4205
  }
4189
4206
  ]
4190
4207
  }),
4191
- bottomBar: /* @__PURE__ */ t(Ke, {
4208
+ bottomBar: /* @__PURE__ */ t(et, {
4192
4209
  title: "Placement",
4193
4210
  selectedTitle: "Manual chair",
4194
4211
  placedObjects: 3,
@@ -4224,7 +4241,7 @@ function sn() {
4224
4241
  })
4225
4242
  });
4226
4243
  }
4227
- var cn = [{
4244
+ var hn = [{
4228
4245
  id: "starter",
4229
4246
  label: "Starter pieces",
4230
4247
  source: "starter",
@@ -4255,7 +4272,7 @@ var cn = [{
4255
4272
  }
4256
4273
  ]
4257
4274
  }];
4258
- function ln() {
4275
+ function gn() {
4259
4276
  return /* @__PURE__ */ t("div", {
4260
4277
  className: "game-ui-asset-compression-repro",
4261
4278
  "aria-label": "Asset card compression repro",
@@ -4279,9 +4296,9 @@ function ln() {
4279
4296
  className: "game-ui-asset-compression-repro-surface",
4280
4297
  "data-repro-surface": e.id,
4281
4298
  style: { "--repro-width": e.width },
4282
- children: [/* @__PURE__ */ t(H, { children: e.label }), /* @__PURE__ */ t(Ge, {
4299
+ children: [/* @__PURE__ */ t(B, { children: e.label }), /* @__PURE__ */ t($e, {
4283
4300
  density: "dense",
4284
- groups: cn,
4301
+ groups: hn,
4285
4302
  label: `${e.label} assets`,
4286
4303
  selectedAssetId: "asset-repro-chair",
4287
4304
  title: "Build"
@@ -4289,13 +4306,13 @@ function ln() {
4289
4306
  }, e.id))
4290
4307
  });
4291
4308
  }
4292
- function un() {
4309
+ function _n() {
4293
4310
  let { firstSession: e } = $();
4294
4311
  return /* @__PURE__ */ n("div", {
4295
4312
  className: "game-ui-first-session-preview",
4296
4313
  children: [/* @__PURE__ */ t("div", {
4297
4314
  className: "game-ui-first-session-world",
4298
- children: /* @__PURE__ */ t(Oe, {
4315
+ children: /* @__PURE__ */ t(Le, {
4299
4316
  authenticated: !0,
4300
4317
  batteryCount: 5,
4301
4318
  dailyStreak: 3,
@@ -4329,7 +4346,7 @@ function un() {
4329
4346
  })
4330
4347
  }), /* @__PURE__ */ t("div", {
4331
4348
  className: "game-ui-first-session-modal-slot",
4332
- children: /* @__PURE__ */ t(ke, {
4349
+ children: /* @__PURE__ */ t(Re, {
4333
4350
  open: !0,
4334
4351
  onDismiss: () => void 0,
4335
4352
  labels: {
@@ -4357,20 +4374,20 @@ function un() {
4357
4374
  })]
4358
4375
  });
4359
4376
  }
4360
- function dn() {
4377
+ function vn() {
4361
4378
  let { responsive: e } = $();
4362
4379
  return /* @__PURE__ */ n("div", {
4363
4380
  className: "game-ui-proof-frames",
4364
4381
  children: [/* @__PURE__ */ n("article", {
4365
4382
  className: "game-ui-proof-frame is-desktop",
4366
- children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t(H, { children: e.desktop }), /* @__PURE__ */ t("strong", { children: "1440×900" })] }), /* @__PURE__ */ t(Jt, {})]
4383
+ children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t(B, { children: e.desktop }), /* @__PURE__ */ t("strong", { children: "1440×900" })] }), /* @__PURE__ */ t(tn, {})]
4367
4384
  }), /* @__PURE__ */ n("article", {
4368
4385
  className: "game-ui-proof-frame is-mobile-landscape",
4369
- children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t(H, { children: e.mobileLandscape }), /* @__PURE__ */ t("strong", { children: "844×390" })] }), /* @__PURE__ */ t(Jt, {})]
4386
+ children: [/* @__PURE__ */ n("header", { children: [/* @__PURE__ */ t(B, { children: e.mobileLandscape }), /* @__PURE__ */ t("strong", { children: "844×390" })] }), /* @__PURE__ */ t(tn, {})]
4370
4387
  })]
4371
4388
  });
4372
4389
  }
4373
- function fn() {
4390
+ function yn() {
4374
4391
  let { forms: e } = $();
4375
4392
  return /* @__PURE__ */ n("div", {
4376
4393
  className: "game-ui-preview-two-up",
@@ -4378,25 +4395,25 @@ function fn() {
4378
4395
  title: e.formsTitle,
4379
4396
  tone: "strong",
4380
4397
  children: [
4381
- /* @__PURE__ */ t(q, {
4398
+ /* @__PURE__ */ t(G, {
4382
4399
  hint: e.roomCodeHint,
4383
4400
  label: e.roomCodeLabel,
4384
- children: /* @__PURE__ */ t(Ae, { placeholder: e.roomCodePlaceholder })
4401
+ children: /* @__PURE__ */ t(ze, { placeholder: e.roomCodePlaceholder })
4385
4402
  }),
4386
- /* @__PURE__ */ t(q, {
4403
+ /* @__PURE__ */ t(G, {
4387
4404
  label: e.nameLabel,
4388
4405
  required: !0,
4389
- children: /* @__PURE__ */ t(Ae, { placeholder: e.namePlaceholder })
4406
+ children: /* @__PURE__ */ t(ze, { placeholder: e.namePlaceholder })
4390
4407
  }),
4391
- /* @__PURE__ */ t(q, {
4408
+ /* @__PURE__ */ t(G, {
4392
4409
  error: e.readError,
4393
4410
  label: e.readLabel,
4394
- children: /* @__PURE__ */ t(je, {
4411
+ children: /* @__PURE__ */ t(Be, {
4395
4412
  invalid: !0,
4396
4413
  placeholder: e.readPlaceholder
4397
4414
  })
4398
4415
  }),
4399
- /* @__PURE__ */ t(Me, {
4416
+ /* @__PURE__ */ t(Ve, {
4400
4417
  defaultChecked: !0,
4401
4418
  label: e.rememberLabel
4402
4419
  })
@@ -4408,38 +4425,38 @@ function fn() {
4408
4425
  /* @__PURE__ */ n("div", {
4409
4426
  className: "game-ui-component-row",
4410
4427
  children: [
4411
- /* @__PURE__ */ t(J, {
4428
+ /* @__PURE__ */ t(K, {
4412
4429
  name: "Mika Ono",
4413
4430
  status: "online"
4414
4431
  }),
4415
- /* @__PURE__ */ t(J, {
4432
+ /* @__PURE__ */ t(K, {
4416
4433
  name: "River",
4417
4434
  size: "lg",
4418
4435
  status: "busy"
4419
4436
  }),
4420
- /* @__PURE__ */ t(J, {
4437
+ /* @__PURE__ */ t(K, {
4421
4438
  name: "Noa",
4422
4439
  status: "away"
4423
4440
  }),
4424
- /* @__PURE__ */ t(J, {
4441
+ /* @__PURE__ */ t(K, {
4425
4442
  name: e.guestName,
4426
4443
  size: "sm"
4427
4444
  })
4428
4445
  ]
4429
4446
  }),
4430
- /* @__PURE__ */ t(Y, {
4447
+ /* @__PURE__ */ t(q, {
4431
4448
  label: e.revealLabel,
4432
4449
  showValue: !0,
4433
4450
  value: 64
4434
4451
  }),
4435
- /* @__PURE__ */ t(Y, {
4452
+ /* @__PURE__ */ t(q, {
4436
4453
  label: e.batteryLabel,
4437
4454
  max: 20,
4438
4455
  showValue: !0,
4439
4456
  tone: "success",
4440
4457
  value: 14
4441
4458
  }),
4442
- /* @__PURE__ */ t(X, {
4459
+ /* @__PURE__ */ t(J, {
4443
4460
  action: /* @__PURE__ */ t(b, {
4444
4461
  variant: "primary",
4445
4462
  children: e.emptyCta
@@ -4452,13 +4469,13 @@ function fn() {
4452
4469
  })]
4453
4470
  });
4454
4471
  }
4455
- var pn = B.filter((e) => de(e).includes("game")), mn = B.filter((e) => de(e).includes("line"));
4456
- function hn({ names: e, style: r }) {
4472
+ var bn = R.filter((e) => he(e).includes("game")), xn = R.filter((e) => he(e).includes("line"));
4473
+ function Sn({ names: e, style: r }) {
4457
4474
  return /* @__PURE__ */ t("div", {
4458
4475
  className: "game-ui-icon-grid",
4459
4476
  children: e.map((e) => /* @__PURE__ */ n("figure", {
4460
4477
  className: "game-ui-icon-cell",
4461
- children: [/* @__PURE__ */ t(U, {
4478
+ children: [/* @__PURE__ */ t(V, {
4462
4479
  icon: e,
4463
4480
  size: "lg",
4464
4481
  style: r
@@ -4466,10 +4483,10 @@ function hn({ names: e, style: r }) {
4466
4483
  }, `${r}-${e}`))
4467
4484
  });
4468
4485
  }
4469
- function gn() {
4486
+ function Cn() {
4470
4487
  return /* @__PURE__ */ t("div", {
4471
4488
  className: "game-ui-icon-grid",
4472
- children: pe.map((e) => /* @__PURE__ */ n("figure", {
4489
+ children: _e.map((e) => /* @__PURE__ */ n("figure", {
4473
4490
  className: "game-ui-icon-cell",
4474
4491
  children: [/* @__PURE__ */ t("span", {
4475
4492
  className: "game-ui-asset-icon",
@@ -4478,13 +4495,13 @@ function gn() {
4478
4495
  "aria-hidden": !0,
4479
4496
  children: /* @__PURE__ */ t("img", {
4480
4497
  alt: "",
4481
- src: fe[e]
4498
+ src: ge[e]
4482
4499
  })
4483
4500
  }), /* @__PURE__ */ t("figcaption", { children: e })]
4484
4501
  }, `sprite-${e}`))
4485
4502
  });
4486
4503
  }
4487
- function _n() {
4504
+ function wn() {
4488
4505
  let { gallery: e } = $();
4489
4506
  return /* @__PURE__ */ n("div", {
4490
4507
  className: "game-ui-icon-gallery",
@@ -4493,15 +4510,15 @@ function _n() {
4493
4510
  className: "game-ui-icon-family",
4494
4511
  children: [/* @__PURE__ */ n("header", {
4495
4512
  className: "game-ui-icon-family-head",
4496
- children: [/* @__PURE__ */ t(H, {
4513
+ children: [/* @__PURE__ */ t(B, {
4497
4514
  tone: "success",
4498
4515
  children: e.gameLabel
4499
4516
  }), /* @__PURE__ */ t("p", {
4500
4517
  className: "game-ui-small-copy",
4501
4518
  children: e.gameHint
4502
4519
  })]
4503
- }), /* @__PURE__ */ t(hn, {
4504
- names: pn,
4520
+ }), /* @__PURE__ */ t(Sn, {
4521
+ names: bn,
4505
4522
  style: "game"
4506
4523
  })]
4507
4524
  }),
@@ -4509,12 +4526,12 @@ function _n() {
4509
4526
  className: "game-ui-icon-family",
4510
4527
  children: [/* @__PURE__ */ n("header", {
4511
4528
  className: "game-ui-icon-family-head",
4512
- children: [/* @__PURE__ */ t(H, { children: e.lineLabel }), /* @__PURE__ */ t("p", {
4529
+ children: [/* @__PURE__ */ t(B, { children: e.lineLabel }), /* @__PURE__ */ t("p", {
4513
4530
  className: "game-ui-small-copy",
4514
4531
  children: e.lineHint
4515
4532
  })]
4516
- }), /* @__PURE__ */ t(hn, {
4517
- names: mn,
4533
+ }), /* @__PURE__ */ t(Sn, {
4534
+ names: xn,
4518
4535
  style: "line"
4519
4536
  })]
4520
4537
  }),
@@ -4522,23 +4539,23 @@ function _n() {
4522
4539
  className: "game-ui-icon-family",
4523
4540
  children: [/* @__PURE__ */ n("header", {
4524
4541
  className: "game-ui-icon-family-head",
4525
- children: [/* @__PURE__ */ t(H, {
4542
+ children: [/* @__PURE__ */ t(B, {
4526
4543
  tone: "warning",
4527
4544
  children: e.spriteLabel
4528
4545
  }), /* @__PURE__ */ t("p", {
4529
4546
  className: "game-ui-small-copy",
4530
4547
  children: e.spriteHint
4531
4548
  })]
4532
- }), /* @__PURE__ */ t(gn, {})]
4549
+ }), /* @__PURE__ */ t(Cn, {})]
4533
4550
  })
4534
4551
  ]
4535
4552
  });
4536
4553
  }
4537
- function vn({ title: e, body: r }) {
4538
- let [i, a] = d("en"), o = Vt[i], s = e && i === "en" ? e : o.heroTitle, l = r && i === "en" ? r : o.heroBody;
4554
+ function Tn({ title: e, body: r }) {
4555
+ let [i, a] = d("en"), o = Jt[i], s = e && i === "en" ? e : o.heroTitle, l = r && i === "en" ? r : o.heroBody;
4539
4556
  return c(() => (document.documentElement.dataset.gameUiPreview = "clay", () => {
4540
4557
  delete document.documentElement.dataset.gameUiPreview;
4541
- }), []), /* @__PURE__ */ t(Ht.Provider, {
4558
+ }), []), /* @__PURE__ */ t(Yt.Provider, {
4542
4559
  value: o,
4543
4560
  children: /* @__PURE__ */ n("main", {
4544
4561
  "aria-label": "Swimmer UI Kit clay preview",
@@ -4547,11 +4564,11 @@ function vn({ title: e, body: r }) {
4547
4564
  /* @__PURE__ */ n("header", {
4548
4565
  className: "game-ui-preview-hero",
4549
4566
  children: [
4550
- /* @__PURE__ */ t(H, {
4567
+ /* @__PURE__ */ t(B, {
4551
4568
  tone: "ai",
4552
4569
  children: "@pieai/swimmer-ui-kit"
4553
4570
  }),
4554
- /* @__PURE__ */ t(Te, {
4571
+ /* @__PURE__ */ t(Pe, {
4555
4572
  currentLabel: o.triggerLabel,
4556
4573
  label: o.langMenuLabel,
4557
4574
  onSelect: (e) => a(e),
@@ -4578,10 +4595,10 @@ function vn({ title: e, body: r }) {
4578
4595
  id: "game-ui-preview-token-title",
4579
4596
  children: o.sections.tokens
4580
4597
  }),
4581
- /* @__PURE__ */ t(Gt, {}),
4598
+ /* @__PURE__ */ t(Qt, {}),
4582
4599
  /* @__PURE__ */ t("div", {
4583
4600
  className: "game-ui-token-ledger",
4584
- children: Ut.map((e) => /* @__PURE__ */ t(Wt, {
4601
+ children: Xt.map((e) => /* @__PURE__ */ t(Zt, {
4585
4602
  id: e.id,
4586
4603
  label: o.tokenGroups[e.id] ?? e.id,
4587
4604
  tokens: e.tokens
@@ -4601,7 +4618,7 @@ function vn({ title: e, body: r }) {
4601
4618
  className: "game-ui-small-copy",
4602
4619
  children: o.iconsIntro
4603
4620
  }),
4604
- /* @__PURE__ */ t(_n, {})
4621
+ /* @__PURE__ */ t(wn, {})
4605
4622
  ]
4606
4623
  }),
4607
4624
  /* @__PURE__ */ n("section", {
@@ -4610,7 +4627,7 @@ function vn({ title: e, body: r }) {
4610
4627
  children: [/* @__PURE__ */ t("h2", {
4611
4628
  id: "game-ui-preview-type-title",
4612
4629
  children: o.sections.typography
4613
- }), /* @__PURE__ */ t(Kt, {})]
4630
+ }), /* @__PURE__ */ t($t, {})]
4614
4631
  }),
4615
4632
  /* @__PURE__ */ n("section", {
4616
4633
  "aria-labelledby": "game-ui-preview-components-title",
@@ -4620,10 +4637,10 @@ function vn({ title: e, body: r }) {
4620
4637
  id: "game-ui-preview-components-title",
4621
4638
  children: o.sections.components
4622
4639
  }),
4623
- /* @__PURE__ */ t(qt, {}),
4624
- /* @__PURE__ */ t(Jt, {}),
4625
- /* @__PURE__ */ t(Xt, {}),
4626
- /* @__PURE__ */ t(Zt, {}),
4640
+ /* @__PURE__ */ t(en, {}),
4641
+ /* @__PURE__ */ t(tn, {}),
4642
+ /* @__PURE__ */ t(rn, {}),
4643
+ /* @__PURE__ */ t(an, {}),
4627
4644
  /* @__PURE__ */ t(C, {
4628
4645
  entries: o.history,
4629
4646
  label: o.historyLabel
@@ -4636,7 +4653,7 @@ function vn({ title: e, body: r }) {
4636
4653
  children: [/* @__PURE__ */ t("h2", {
4637
4654
  id: "game-ui-preview-forms-title",
4638
4655
  children: o.sections.forms
4639
- }), /* @__PURE__ */ t(fn, {})]
4656
+ }), /* @__PURE__ */ t(yn, {})]
4640
4657
  }),
4641
4658
  /* @__PURE__ */ n("section", {
4642
4659
  "aria-labelledby": "game-ui-preview-overlay-glass-title",
@@ -4650,7 +4667,7 @@ function vn({ title: e, body: r }) {
4650
4667
  className: "game-ui-small-copy",
4651
4668
  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."
4652
4669
  }),
4653
- /* @__PURE__ */ t(Yt, {})
4670
+ /* @__PURE__ */ t(nn, {})
4654
4671
  ]
4655
4672
  }),
4656
4673
  /* @__PURE__ */ n("section", {
@@ -4659,7 +4676,7 @@ function vn({ title: e, body: r }) {
4659
4676
  children: [/* @__PURE__ */ t("h2", {
4660
4677
  id: "game-ui-preview-ownmyspace-title",
4661
4678
  children: "OwnMySpace game surface pack"
4662
- }), /* @__PURE__ */ t(sn, {})]
4679
+ }), /* @__PURE__ */ t(mn, {})]
4663
4680
  }),
4664
4681
  /* @__PURE__ */ n("section", {
4665
4682
  "aria-labelledby": "game-ui-preview-terrain-build-title",
@@ -4673,7 +4690,7 @@ function vn({ title: e, body: r }) {
4673
4690
  className: "game-ui-small-copy",
4674
4691
  children: "Official terrain controls cover mode, brush, material, undo/redo, build library, status, progress, and compact mobile drawer surfaces."
4675
4692
  }),
4676
- /* @__PURE__ */ t(nn, {})
4693
+ /* @__PURE__ */ t(un, {})
4677
4694
  ]
4678
4695
  }),
4679
4696
  /* @__PURE__ */ n("section", {
@@ -4688,7 +4705,7 @@ function vn({ title: e, body: r }) {
4688
4705
  className: "game-ui-small-copy",
4689
4706
  children: "Official construction surfaces cover job queue states, before/after review, robot crew status, validation warnings, approval actions, and local-only provider badges."
4690
4707
  }),
4691
- /* @__PURE__ */ t(on, {})
4708
+ /* @__PURE__ */ t(pn, {})
4692
4709
  ]
4693
4710
  }),
4694
4711
  /* @__PURE__ */ n("section", {
@@ -4703,7 +4720,7 @@ function vn({ title: e, body: r }) {
4703
4720
  className: "game-ui-small-copy",
4704
4721
  children: "Official asset cards must stay visually complete when a game shell uses dense, narrow, or rail-style inventory slots."
4705
4722
  }),
4706
- /* @__PURE__ */ t(ln, {})
4723
+ /* @__PURE__ */ t(gn, {})
4707
4724
  ]
4708
4725
  }),
4709
4726
  /* @__PURE__ */ n("section", {
@@ -4712,7 +4729,7 @@ function vn({ title: e, body: r }) {
4712
4729
  children: [/* @__PURE__ */ t("h2", {
4713
4730
  id: "game-ui-preview-first-session-title",
4714
4731
  children: o.sections.firstSession
4715
- }), /* @__PURE__ */ t(un, {})]
4732
+ }), /* @__PURE__ */ t(_n, {})]
4716
4733
  }),
4717
4734
  /* @__PURE__ */ n("section", {
4718
4735
  "aria-labelledby": "game-ui-preview-orientation-title",
@@ -4720,7 +4737,7 @@ function vn({ title: e, body: r }) {
4720
4737
  children: [/* @__PURE__ */ t("h2", {
4721
4738
  id: "game-ui-preview-orientation-title",
4722
4739
  children: o.sections.orientation
4723
- }), /* @__PURE__ */ t(we, {
4740
+ }), /* @__PURE__ */ t(Ne, {
4724
4741
  badgeLabel: o.orientation.badge,
4725
4742
  body: o.orientation.body,
4726
4743
  cta: o.orientation.cta,
@@ -4735,11 +4752,11 @@ function vn({ title: e, body: r }) {
4735
4752
  children: [/* @__PURE__ */ t("h2", {
4736
4753
  id: "game-ui-preview-responsive-title",
4737
4754
  children: o.sections.responsive
4738
- }), /* @__PURE__ */ t(dn, {})]
4755
+ }), /* @__PURE__ */ t(vn, {})]
4739
4756
  })
4740
4757
  ]
4741
4758
  })
4742
4759
  });
4743
4760
  }
4744
4761
  //#endregion
4745
- export { V as CLAY_ASSETS, le as CLAY_ASSET_BASE_PATH, L as CLAY_ASSET_SIZE_TOKENS, D as CLAY_COLOR_TOKENS, N as CLAY_ELEVATION_TOKENS, fe as CLAY_GAME_SPRITES, pe as CLAY_GAME_SPRITE_NAMES, B as CLAY_ICON_NAMES, z as CLAY_ICON_VARIANTS, F as CLAY_LAYER_TOKENS, P as CLAY_MOTION_TOKENS, O as CLAY_OVERLAY_GLASS_TOKENS, O as GAME_UI_OVERLAY_GLASS_TOKENS, M as CLAY_RADIUS_TOKENS, k as CLAY_SEMANTIC_TOKENS, j as CLAY_SPACE_TOKENS, I as CLAY_TARGET_TOKENS, A as CLAY_TYPE_TOKENS, ce as CLAY_UI_TOKENS, Oe as FirstSessionHud, ke as FirstSessionOnboarding, Q as GAME_UI_OVERLAY, Lt as GAME_UI_PREVIEW_MESSAGES, zt as GAME_UI_TARGETS, Bt as GAME_UI_THEME_CONTRACT, Rt as GAME_UI_TOKENS, Z as GameActionGrid, We as GameAssetCard, U as GameAssetIcon, Ge as GameAssetLibrary, J as GameAvatar, H as GameBadge, Et as GameBeforeAfterToggle, nt as GameBrushControls, at as GameBuildLibrary, b as GameButton, x as GameCallout, Se as GameCardFan, Me as GameCheckbox, Mt as GameCollapsiblePanel, ot as GameCompactGameDrawer, Ot as GameCompactJobDrawer, wt as GameConstructionApprovalBar, Dt as GameConstructionJobCard, Ct as GameConstructionProgress, kt as GameContractorPanel, S as GameDialog, X as GameEmptyState, Ie as GameFactList, q as GameField, C as GameHistoryPanel, W as GameHud, w as GameHudActions, E as GameIconButton, Ae as GameInput, Te as GameLanguageMenu, Ee as GameLoadingState, rt as GameMaterialSwatches, It as GameModal, Be as GameMovementPad, qe as GameObjectToolbar, we as GameOrientationGate, T as GamePanel, Ke as GamePlacementToolbar, Y as GameProgress, se as GamePrompt, ae as GameRadialMenu, Tt as GameRobotCrewStatus, Fe as GameSceneHudLayout, ne as GameSegmentedControl, Pe as GameShell, re as GameSlider, G as GameStageTile, Le as GameStatList, te as GameTabs, lt as GameTerrainBuildToolbox, et as GameTerrainModeControl, tt as GameTerrainToolStrip, je as GameTextArea, oe as GameToast, ie as GameToggle, ee as GameTooltip, vn as GameUiPreview, it as GameUndoRedoActions, Ft as GameWindowPanel, ye as getClayAssetMode, De as getClayCatalogPaths, be as getClayIconPath, de as getClayIconStyles, xe as getClaySourceAssetPath, y as playGameInteractionSound, v as playGameInteractionSoundForContext, ve as setClayAssetMode };
4762
+ export { z as CLAY_ASSETS, de as CLAY_ASSET_BASE_PATH, F as CLAY_ASSET_SIZE_TOKENS, D as CLAY_COLOR_TOKENS, j as CLAY_ELEVATION_TOKENS, ge as CLAY_GAME_SPRITES, _e as CLAY_GAME_SPRITE_NAMES, R as CLAY_ICON_NAMES, L as CLAY_ICON_VARIANTS, N as CLAY_LAYER_TOKENS, M as CLAY_MOTION_TOKENS, O as CLAY_OVERLAY_GLASS_TOKENS, O as GAME_UI_OVERLAY_GLASS_TOKENS, A as CLAY_RADIUS_TOKENS, k as CLAY_SEMANTIC_TOKENS, le as CLAY_SPACE_TOKENS, P as CLAY_TARGET_TOKENS, ce as CLAY_TYPE_TOKENS, ue as CLAY_UI_TOKENS, Le as FirstSessionHud, Re as FirstSessionOnboarding, Q as GAME_UI_OVERLAY, Wt as GAME_UI_PREVIEW_MESSAGES, Kt as GAME_UI_TARGETS, qt as GAME_UI_THEME_CONTRACT, Gt as GAME_UI_TOKENS, X as GameActionGrid, Qe as GameAssetCard, V as GameAssetIcon, $e as GameAssetLibrary, K as GameAvatar, B as GameBadge, Nt as GameBeforeAfterToggle, lt as GameBrushControls, ft as GameBuildLibrary, b as GameButton, x as GameCallout, je as GameCardFan, Ve as GameCheckbox, zt as GameCollapsiblePanel, pt as GameCompactGameDrawer, Ft as GameCompactJobDrawer, jt as GameConstructionApprovalBar, Pt as GameConstructionJobCard, At as GameConstructionProgress, It as GameContractorPanel, S as GameDialog, J as GameEmptyState, Y as GameFactList, G as GameField, C as GameHistoryPanel, H as GameHud, w as GameHudActions, E as GameIconButton, ze as GameInput, Pe as GameLanguageMenu, Fe as GameLoadingState, ut as GameMaterialSwatches, Ut as GameModal, Je as GameMovementPad, tt as GameObjectToolbar, Ne as GameOrientationGate, T as GamePanel, et as GamePlacementToolbar, q as GameProgress, se as GamePrompt, ae as GameRadialMenu, Mt as GameRobotCrewStatus, We as GameSceneHudLayout, ne as GameSegmentedControl, Ue as GameShell, re as GameSlider, U as GameStageTile, Ge as GameStatList, te as GameTabs, gt as GameTerrainBuildToolbox, st as GameTerrainModeControl, ct as GameTerrainToolStrip, Be as GameTextArea, oe as GameToast, ie as GameToggle, ee as GameTooltip, Tn as GameUiPreview, dt as GameUndoRedoActions, Ht as GameWindowPanel, Oe as acknowledgeClayPlaceholders, Te as getClayAssetBasePath, Ce as getClayAssetMode, Ie as getClayCatalogPaths, ke as getClayIconPath, he as getClayIconStyles, Ae as getClaySourceAssetPath, y as playGameInteractionSound, v as playGameInteractionSoundForContext, we as setClayAssetBasePath, Se as setClayAssetMode };