@almadar/ui 5.9.6 → 5.9.7

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.
@@ -7145,7 +7145,7 @@ function HealthBar({
7145
7145
  "div",
7146
7146
  {
7147
7147
  className: cn(
7148
- "relative overflow-hidden rounded-full bg-gray-700",
7148
+ "relative overflow-hidden rounded-full bg-muted",
7149
7149
  sizes.bar,
7150
7150
  "w-24",
7151
7151
  className
@@ -7155,7 +7155,7 @@ function HealthBar({
7155
7155
  {
7156
7156
  className: cn(
7157
7157
  "absolute inset-y-0 left-0 rounded-full",
7158
- percentage > 66 ? "bg-green-500" : percentage > 33 ? "bg-yellow-500" : "bg-red-500",
7158
+ percentage > 66 ? "bg-success" : percentage > 33 ? "bg-warning" : "bg-error",
7159
7159
  animated && "transition-all duration-300"
7160
7160
  ),
7161
7161
  style: { width: `${percentage}%` }
@@ -7177,7 +7177,7 @@ var init_HealthBar = __esm({
7177
7177
  heartIcon = (filled, size) => /* @__PURE__ */ jsxRuntime.jsx(
7178
7178
  "svg",
7179
7179
  {
7180
- className: cn("transition-all duration-200", size, filled ? "text-red-500" : "text-gray-400"),
7180
+ className: cn("transition-all duration-200", size, filled ? "text-error" : "text-muted-foreground"),
7181
7181
  viewBox: "0 0 24 24",
7182
7182
  fill: filled ? "currentColor" : "none",
7183
7183
  stroke: "currentColor",
@@ -7241,7 +7241,7 @@ function ScoreDisplay({
7241
7241
  ),
7242
7242
  children: [
7243
7243
  icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: icon }),
7244
- label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children: label }),
7244
+ label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: label }),
7245
7245
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tabular-nums", children: formattedValue })
7246
7246
  ]
7247
7247
  }
@@ -7354,8 +7354,8 @@ var init_ControlButton = __esm({
7354
7354
  };
7355
7355
  shapeMap = {
7356
7356
  circle: "rounded-full",
7357
- rounded: "rounded-xl",
7358
- square: "rounded-md"
7357
+ rounded: "rounded-interactive",
7358
+ square: "rounded-interactive"
7359
7359
  };
7360
7360
  variantMap = {
7361
7361
  primary: "bg-primary text-primary-foreground border-primary hover:bg-primary-hover",
@@ -7523,12 +7523,12 @@ function TimerDisplay({
7523
7523
  "div",
7524
7524
  {
7525
7525
  className: cn(
7526
- "inline-flex items-center justify-center rounded-lg",
7527
- "bg-[var(--color-card)]/80 border border-gray-600 font-mono font-bold tabular-nums",
7526
+ "inline-flex items-center justify-center rounded-container",
7527
+ "bg-card/80 border border-muted font-mono font-bold tabular-nums",
7528
7528
  sizeMap4[size],
7529
- running && "border-green-500/50",
7530
- isLow && "text-red-400 border-red-500/50 animate-pulse",
7531
- !isLow && "text-[var(--color-foreground)]",
7529
+ running && "border-success/50",
7530
+ isLow && "text-error border-error/50 animate-pulse",
7531
+ !isLow && "text-foreground",
7532
7532
  className
7533
7533
  ),
7534
7534
  children: formatTime(seconds, format)
@@ -7561,17 +7561,17 @@ function ResourceCounter({
7561
7561
  "div",
7562
7562
  {
7563
7563
  className: cn(
7564
- "inline-flex items-center rounded-md",
7565
- "bg-[var(--color-card)]/80 border border-gray-600 font-medium text-[var(--color-foreground)]",
7564
+ "inline-flex items-center rounded-container",
7565
+ "bg-card/80 border border-muted font-medium text-foreground",
7566
7566
  sizes.wrapper,
7567
7567
  className
7568
7568
  ),
7569
7569
  children: [
7570
7570
  icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("flex-shrink-0", sizes.icon), children: icon }),
7571
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children: label }),
7571
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: label }),
7572
7572
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("font-bold tabular-nums", color), children: [
7573
7573
  value,
7574
- max != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-gray-500", children: [
7574
+ max != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
7575
7575
  "/",
7576
7576
  max
7577
7577
  ] })
@@ -7612,18 +7612,18 @@ function ItemSlot({
7612
7612
  disabled: !isClickable,
7613
7613
  title: label,
7614
7614
  className: cn(
7615
- "relative flex items-center justify-center rounded-lg border-2",
7616
- "bg-[var(--color-card)]/80 transition-all duration-150",
7615
+ "relative flex items-center justify-center rounded-interactive border-2",
7616
+ "bg-card/80 transition-all duration-150",
7617
7617
  sizeMap6[size],
7618
- empty ? "border-gray-700 bg-[var(--color-card)]/50" : rarityBorderMap[rarity],
7618
+ empty ? "border-border bg-card/50" : rarityBorderMap[rarity],
7619
7619
  !empty && rarityGlowMap[rarity],
7620
- selected && "ring-2 ring-white ring-offset-1 ring-offset-gray-900",
7620
+ selected && "ring-2 ring-foreground ring-offset-1 ring-offset-background",
7621
7621
  isClickable && !empty && "hover:brightness-125 cursor-pointer",
7622
- isClickable && empty && "hover:border-gray-500 cursor-pointer",
7622
+ isClickable && empty && "hover:border-muted cursor-pointer",
7623
7623
  !isClickable && "cursor-default",
7624
7624
  className
7625
7625
  ),
7626
- children: empty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-600 text-base", children: "+" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7626
+ children: empty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7627
7627
  icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: icon }),
7628
7628
  quantity != null && quantity > 1 && /* @__PURE__ */ jsxRuntime.jsx(
7629
7629
  "span",
@@ -7631,7 +7631,7 @@ function ItemSlot({
7631
7631
  className: cn(
7632
7632
  "absolute -bottom-1 -right-1 flex items-center justify-center",
7633
7633
  "min-w-[18px] h-[18px] rounded-full px-1",
7634
- "bg-[var(--color-surface,#374151)] border border-gray-500 text-xs font-bold text-[var(--color-foreground)]"
7634
+ "bg-surface border border-muted text-xs font-bold text-foreground"
7635
7635
  ),
7636
7636
  children: quantity
7637
7637
  }
@@ -7651,18 +7651,18 @@ var init_ItemSlot = __esm({
7651
7651
  lg: "w-18 h-18 text-3xl"
7652
7652
  };
7653
7653
  rarityBorderMap = {
7654
- common: "border-gray-500",
7655
- uncommon: "border-green-500",
7656
- rare: "border-blue-500",
7657
- epic: "border-purple-500",
7658
- legendary: "border-amber-400"
7654
+ common: "border-muted",
7655
+ uncommon: "border-success",
7656
+ rare: "border-info",
7657
+ epic: "border-accent",
7658
+ legendary: "border-warning"
7659
7659
  };
7660
7660
  rarityGlowMap = {
7661
7661
  common: "",
7662
7662
  uncommon: "",
7663
- rare: "shadow-[0_0_6px_rgba(59,130,246,0.3)]",
7664
- epic: "shadow-[0_0_8px_rgba(168,85,247,0.4)]",
7665
- legendary: "shadow-[0_0_10px_rgba(251,191,36,0.5)]"
7663
+ rare: "shadow-sm",
7664
+ epic: "shadow-lg",
7665
+ legendary: "shadow-lg"
7666
7666
  };
7667
7667
  ItemSlot.displayName = "ItemSlot";
7668
7668
  }
@@ -7680,8 +7680,8 @@ function TurnIndicator({
7680
7680
  "div",
7681
7681
  {
7682
7682
  className: cn(
7683
- "inline-flex items-center rounded-lg",
7684
- "bg-[var(--color-card)]/80 border border-gray-600 font-medium text-[var(--color-foreground)]",
7683
+ "inline-flex items-center rounded-container",
7684
+ "bg-card/80 border border-muted font-medium text-foreground",
7685
7685
  sizes.wrapper,
7686
7686
  className
7687
7687
  ),
@@ -7689,19 +7689,19 @@ function TurnIndicator({
7689
7689
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-bold tabular-nums", children: [
7690
7690
  "Turn ",
7691
7691
  currentTurn,
7692
- maxTurns != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-gray-400", children: [
7692
+ maxTurns != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
7693
7693
  "/",
7694
7694
  maxTurns
7695
7695
  ] })
7696
7696
  ] }),
7697
7697
  phase && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7698
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-600", children: "|" }),
7699
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-300", children: phase })
7698
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "|" }),
7699
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: phase })
7700
7700
  ] }),
7701
7701
  activeTeam && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7702
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-600", children: "|" }),
7703
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("rounded-full bg-green-500/20", sizes.dot) }),
7704
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-green-400", children: activeTeam })
7702
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "|" }),
7703
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("rounded-full bg-success/20", sizes.dot) }),
7704
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-success", children: activeTeam })
7705
7705
  ] })
7706
7706
  ]
7707
7707
  }
@@ -7720,10 +7720,10 @@ var init_TurnIndicator = __esm({
7720
7720
  }
7721
7721
  });
7722
7722
  function getComboIntensity(combo) {
7723
- if (combo >= 10) return "text-red-400 animate-pulse";
7724
- if (combo >= 7) return "text-orange-400";
7725
- if (combo >= 4) return "text-yellow-400";
7726
- return "text-[var(--color-foreground)]";
7723
+ if (combo >= 10) return "text-error animate-pulse";
7724
+ if (combo >= 7) return "text-warning";
7725
+ if (combo >= 4) return "text-warning";
7726
+ return "text-foreground";
7727
7727
  }
7728
7728
  function getComboScale(combo) {
7729
7729
  if (combo >= 10) return "scale-110";
@@ -7744,19 +7744,19 @@ function ComboCounter({
7744
7744
  {
7745
7745
  className: cn(
7746
7746
  "inline-flex flex-col items-center justify-center",
7747
- "rounded-xl bg-[var(--color-card)]/80 border border-gray-600 px-3 py-1.5",
7747
+ "rounded-container bg-card/80 border border-muted px-3 py-1.5",
7748
7748
  "transition-transform duration-200",
7749
7749
  getComboScale(combo),
7750
7750
  className
7751
7751
  ),
7752
7752
  children: [
7753
7753
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-black tabular-nums leading-none", sizes.combo, getComboIntensity(combo)), children: combo }),
7754
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-bold uppercase tracking-wider text-gray-400", sizes.label), children: "combo" }),
7755
- multiplier != null && multiplier > 1 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("font-bold text-amber-400 tabular-nums", sizes.multiplier), children: [
7754
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-bold uppercase tracking-wider text-muted-foreground", sizes.label), children: "combo" }),
7755
+ multiplier != null && multiplier > 1 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("font-bold text-warning tabular-nums", sizes.multiplier), children: [
7756
7756
  "x",
7757
7757
  multiplier.toFixed(1)
7758
7758
  ] }),
7759
- streak != null && streak > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("text-gray-500 tabular-nums", sizes.label), children: [
7759
+ streak != null && streak > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("text-muted-foreground tabular-nums", sizes.label), children: [
7760
7760
  streak,
7761
7761
  " streak"
7762
7762
  ] })
@@ -7792,8 +7792,8 @@ function XPBar({
7792
7792
  "span",
7793
7793
  {
7794
7794
  className: cn(
7795
- "flex-shrink-0 rounded-md font-bold",
7796
- "bg-indigo-600 text-white border border-indigo-400",
7795
+ "flex-shrink-0 rounded-interactive font-bold",
7796
+ "bg-accent text-foreground border border-accent",
7797
7797
  sizes.badge
7798
7798
  ),
7799
7799
  children: [
@@ -7807,7 +7807,7 @@ function XPBar({
7807
7807
  "div",
7808
7808
  {
7809
7809
  className: cn(
7810
- "relative w-full overflow-hidden rounded-full bg-gray-700 border border-gray-600",
7810
+ "relative w-full overflow-hidden rounded-full bg-muted border border-muted",
7811
7811
  sizes.bar
7812
7812
  ),
7813
7813
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -7815,7 +7815,7 @@ function XPBar({
7815
7815
  {
7816
7816
  className: cn(
7817
7817
  "absolute inset-y-0 left-0 rounded-full",
7818
- "bg-gradient-to-r from-indigo-600 to-purple-500",
7818
+ "bg-gradient-to-r from-accent to-info",
7819
7819
  animated && "transition-all duration-500 ease-out"
7820
7820
  ),
7821
7821
  style: { width: `${percentage}%` }
@@ -7823,7 +7823,7 @@ function XPBar({
7823
7823
  )
7824
7824
  }
7825
7825
  ),
7826
- showLabel && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("text-gray-400 tabular-nums", sizes.text), children: [
7826
+ showLabel && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("text-muted-foreground tabular-nums", sizes.text), children: [
7827
7827
  current,
7828
7828
  " / ",
7829
7829
  max,
@@ -7859,7 +7859,7 @@ function WaypointMarker({
7859
7859
  "div",
7860
7860
  {
7861
7861
  className: cn(
7862
- "absolute rounded-full border-2 border-blue-400 animate-ping opacity-50",
7862
+ "absolute rounded-full border-2 border-info animate-ping opacity-50",
7863
7863
  sizes.ring
7864
7864
  )
7865
7865
  }
@@ -7868,7 +7868,7 @@ function WaypointMarker({
7868
7868
  "div",
7869
7869
  {
7870
7870
  className: cn(
7871
- "absolute rounded-full border-2 border-blue-400",
7871
+ "absolute rounded-full border-2 border-info",
7872
7872
  sizes.ring
7873
7873
  )
7874
7874
  }
@@ -7879,9 +7879,9 @@ function WaypointMarker({
7879
7879
  className: cn(
7880
7880
  "relative flex items-center justify-center rounded-full transition-all duration-200",
7881
7881
  sizes.dot,
7882
- completed && "bg-green-500 text-white",
7883
- active && !completed && "bg-blue-500 text-white",
7884
- !active && !completed && "bg-gray-500"
7882
+ completed && "bg-success text-foreground",
7883
+ active && !completed && "bg-info text-foreground",
7884
+ !active && !completed && "bg-muted"
7885
7885
  ),
7886
7886
  children: completed ? checkIcon : icon
7887
7887
  }
@@ -7893,7 +7893,7 @@ function WaypointMarker({
7893
7893
  className: cn(
7894
7894
  "text-center whitespace-nowrap",
7895
7895
  sizes.label,
7896
- completed ? "text-green-400" : active ? "text-blue-400" : "text-gray-400"
7896
+ completed ? "text-success" : active ? "text-info" : "text-muted-foreground"
7897
7897
  ),
7898
7898
  children: label
7899
7899
  }
@@ -7934,7 +7934,7 @@ function StatusEffect({
7934
7934
  "div",
7935
7935
  {
7936
7936
  className: cn(
7937
- "relative flex items-center justify-center rounded border-2",
7937
+ "relative flex items-center justify-center rounded-interactive border-2",
7938
7938
  sizes.container,
7939
7939
  variantStyles7[variant]
7940
7940
  ),
@@ -7945,7 +7945,7 @@ function StatusEffect({
7945
7945
  "span",
7946
7946
  {
7947
7947
  className: cn(
7948
- "absolute bottom-0 left-0 right-0 text-center font-mono font-bold text-white bg-black/60 leading-tight",
7948
+ "absolute bottom-0 left-0 right-0 text-center font-mono font-bold text-foreground bg-background/60 leading-tight",
7949
7949
  sizes.timer
7950
7950
  ),
7951
7951
  children: formatDuration(duration)
@@ -7958,7 +7958,7 @@ function StatusEffect({
7958
7958
  "span",
7959
7959
  {
7960
7960
  className: cn(
7961
- "absolute flex items-center justify-center rounded-full bg-[var(--color-card)] text-[var(--color-foreground)] font-bold leading-none",
7961
+ "absolute flex items-center justify-center rounded-full bg-card text-foreground font-bold leading-none",
7962
7962
  sizes.badge
7963
7963
  ),
7964
7964
  children: stacks
@@ -7977,9 +7977,9 @@ var init_StatusEffect = __esm({
7977
7977
  lg: { container: "w-12 h-12", icon: "text-lg", badge: "text-sm -top-1.5 -right-1.5 w-6 h-6", timer: "text-xs" }
7978
7978
  };
7979
7979
  variantStyles7 = {
7980
- buff: "border-green-500 bg-green-500/20",
7981
- debuff: "border-red-500 bg-red-500/20",
7982
- neutral: "border-gray-500 bg-gray-500/20"
7980
+ buff: "border-success bg-success/20",
7981
+ debuff: "border-error bg-error/20",
7982
+ neutral: "border-muted bg-muted/20"
7983
7983
  };
7984
7984
  StatusEffect.displayName = "StatusEffect";
7985
7985
  }
@@ -8018,10 +8018,10 @@ var init_DamageNumber = __esm({
8018
8018
  lg: "text-2xl"
8019
8019
  };
8020
8020
  typeStyles = {
8021
- damage: "text-red-500 font-bold",
8022
- heal: "text-green-500 font-bold",
8023
- crit: "text-orange-400 font-extrabold",
8024
- miss: "text-gray-400 italic"
8021
+ damage: "text-error font-bold",
8022
+ heal: "text-success font-bold",
8023
+ crit: "text-warning font-extrabold",
8024
+ miss: "text-muted-foreground italic"
8025
8025
  };
8026
8026
  floatKeyframes = `
8027
8027
  @keyframes damageFloat {
@@ -8044,12 +8044,12 @@ function DialogueBubble({
8044
8044
  "div",
8045
8045
  {
8046
8046
  className: cn(
8047
- "flex items-start gap-3 rounded-lg bg-black/80 backdrop-blur-sm px-4 py-3 border border-white/10",
8047
+ "flex items-start gap-3 rounded-container bg-background/80 backdrop-blur-sm px-4 py-3 border border-border/10",
8048
8048
  position === "top" ? "rounded-bl-none" : "rounded-tl-none",
8049
8049
  className
8050
8050
  ),
8051
8051
  children: [
8052
- portrait && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 w-12 h-12 rounded-full overflow-hidden border-2 border-yellow-400/60", children: /* @__PURE__ */ jsxRuntime.jsx(
8052
+ portrait && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 w-12 h-12 rounded-full overflow-hidden border-2 border-warning/60", children: /* @__PURE__ */ jsxRuntime.jsx(
8053
8053
  "img",
8054
8054
  {
8055
8055
  src: portrait,
@@ -8058,8 +8058,8 @@ function DialogueBubble({
8058
8058
  }
8059
8059
  ) }),
8060
8060
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1 min-w-0", children: [
8061
- speaker && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold text-yellow-400", children: speaker }),
8062
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-[var(--color-foreground)] leading-relaxed", children: text })
8061
+ speaker && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold text-warning", children: speaker }),
8062
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-foreground leading-relaxed", children: text })
8063
8063
  ] })
8064
8064
  ]
8065
8065
  }
@@ -8086,7 +8086,7 @@ function ChoiceButton({
8086
8086
  disabled,
8087
8087
  onClick,
8088
8088
  className: cn(
8089
- "w-full text-left px-4 py-2.5 rounded-md border transition-all duration-150",
8089
+ "w-full text-left px-4 py-2.5 rounded-interactive border transition-all duration-150",
8090
8090
  "flex items-center gap-2",
8091
8091
  selected ? "bg-accent/15 border-accent text-foreground" : "bg-muted/40 border-border text-foreground hover:bg-muted hover:border-border",
8092
8092
  disabled && "opacity-40 cursor-not-allowed hover:bg-muted/40 hover:border-border",
@@ -8139,7 +8139,7 @@ function ActionButton({
8139
8139
  disabled: isDisabled,
8140
8140
  onClick,
8141
8141
  className: cn(
8142
- "relative inline-flex items-center gap-1.5 rounded-md border font-medium overflow-hidden transition-colors duration-150",
8142
+ "relative inline-flex items-center gap-1.5 rounded-interactive border font-medium overflow-hidden transition-colors duration-150",
8143
8143
  sizes.button,
8144
8144
  variantStyles8[variant],
8145
8145
  isDisabled && "opacity-60 cursor-not-allowed",
@@ -8182,9 +8182,9 @@ var init_ActionButton = __esm({
8182
8182
  init_cn();
8183
8183
  init_Icon();
8184
8184
  sizeMap13 = {
8185
- sm: { button: "px-3 py-1.5 text-xs", hotkey: "text-[9px] px-1", icon: "text-xs" },
8186
- md: { button: "px-4 py-2 text-sm", hotkey: "text-xs px-1.5", icon: "text-sm" },
8187
- lg: { button: "px-5 py-2.5 text-base", hotkey: "text-xs px-2", icon: "text-base" }
8185
+ sm: { button: "h-button-sm px-3 text-xs", hotkey: "text-[9px] px-1", icon: "text-xs" },
8186
+ md: { button: "h-button-md px-4 text-sm", hotkey: "text-xs px-1.5", icon: "text-sm" },
8187
+ lg: { button: "h-button-lg px-5 text-base", hotkey: "text-xs px-2", icon: "text-base" }
8188
8188
  };
8189
8189
  variantStyles8 = {
8190
8190
  primary: "bg-primary text-primary-foreground hover:bg-primary-hover border-primary",
@@ -8264,7 +8264,7 @@ function MiniMap({
8264
8264
  "div",
8265
8265
  {
8266
8266
  className: cn(
8267
- "relative inline-block border border-white/20 rounded",
8267
+ "relative inline-block border border-border/20 rounded-container",
8268
8268
  className
8269
8269
  ),
8270
8270
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -10849,7 +10849,7 @@ function ActionTile({
10849
10849
  {
10850
10850
  display: "flex",
10851
10851
  className: cn(
10852
- "flex-col items-center gap-1 rounded-lg border-2 transition-all select-none",
10852
+ "flex-col items-center gap-1 rounded-container border-2 transition-all select-none",
10853
10853
  config.px,
10854
10854
  disabled ? "opacity-40 cursor-not-allowed border-border bg-muted" : "cursor-grab active:cursor-grabbing hover:scale-105 hover:shadow-md border-border bg-card",
10855
10855
  className
@@ -12161,12 +12161,12 @@ function IsometricCanvas({
12161
12161
  return /* @__PURE__ */ jsxRuntime.jsx(
12162
12162
  Box,
12163
12163
  {
12164
- className: cn("relative w-full overflow-hidden rounded-lg", className),
12164
+ className: cn("relative w-full overflow-hidden rounded-container", className),
12165
12165
  style: { height: viewportSize.height },
12166
12166
  "data-testid": "game-canvas-empty",
12167
- children: /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex items-center justify-center h-full bg-[var(--color-card)] rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsxs(Stack, { direction: "vertical", gap: "md", align: "center", children: [
12167
+ children: /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex items-center justify-center h-full bg-[var(--color-card)] rounded-container", children: /* @__PURE__ */ jsxRuntime.jsxs(Stack, { direction: "vertical", gap: "md", align: "center", children: [
12168
12168
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "map", size: "xl" }),
12169
- /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", className: "text-slate-400", children: t("canvas.emptyMessage") || "No map data loaded" })
12169
+ /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", className: "text-muted-foreground", children: t("canvas.emptyMessage") || "No map data loaded" })
12170
12170
  ] }) })
12171
12171
  }
12172
12172
  );
@@ -12564,19 +12564,19 @@ function BattleBoard({
12564
12564
  }
12565
12565
  )
12566
12566
  ] }),
12567
- gameResult && (gameOverOverlay ? gameOverOverlay(ctx) : /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "absolute inset-0 z-50 flex items-center justify-center bg-black/70 backdrop-blur-sm rounded-xl", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: "text-center p-8", gap: "lg", children: [
12567
+ gameResult && (gameOverOverlay ? gameOverOverlay(ctx) : /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "absolute inset-0 z-50 flex items-center justify-center bg-background/70 backdrop-blur-sm rounded-container", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: "text-center p-8", gap: "lg", children: [
12568
12568
  /* @__PURE__ */ jsxRuntime.jsx(
12569
12569
  Typography,
12570
12570
  {
12571
12571
  variant: "h2",
12572
12572
  className: cn(
12573
12573
  "text-4xl font-black tracking-widest uppercase",
12574
- gameResult === "victory" ? "text-yellow-400" : "text-red-500"
12574
+ gameResult === "victory" ? "text-warning" : "text-error"
12575
12575
  ),
12576
12576
  children: gameResult === "victory" ? t("battle.victory") : t("battle.defeat")
12577
12577
  }
12578
12578
  ),
12579
- /* @__PURE__ */ jsxRuntime.jsxs(Typography, { variant: "body1", className: "text-gray-300", children: [
12579
+ /* @__PURE__ */ jsxRuntime.jsxs(Typography, { variant: "body1", className: "text-muted-foreground", children: [
12580
12580
  t("battle.turnsPlayed"),
12581
12581
  ": ",
12582
12582
  currentTurn
@@ -17403,7 +17403,7 @@ function BuilderBoard({
17403
17403
  backgroundPosition: "center"
17404
17404
  },
17405
17405
  children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", className: "p-4", children: [
17406
- entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
17406
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
17407
17407
  /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
17408
17408
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
17409
17409
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.description })
@@ -17441,7 +17441,7 @@ function BuilderBoard({
17441
17441
  {
17442
17442
  gap: "sm",
17443
17443
  align: "center",
17444
- className: `p-3 border-2 rounded ${result ? result.correct ? "border-green-500" : "border-red-500" : selectedComponent ? "border-dashed border-foreground cursor-pointer" : "border-border"}`,
17444
+ className: `p-3 border-2 rounded ${result ? result.correct ? "border-success" : "border-error" : selectedComponent ? "border-dashed border-foreground cursor-pointer" : "border-border"}`,
17445
17445
  onClick: () => handlePlaceComponent(slot.id),
17446
17446
  children: [
17447
17447
  /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", className: "flex-1", children: [
@@ -17456,7 +17456,7 @@ function BuilderBoard({
17456
17456
  ] }) : null,
17457
17457
  placedComp.label
17458
17458
  ] }),
17459
- result && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: result.correct ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "sm", className: result.correct ? "text-green-600" : "text-red-600" })
17459
+ result && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: result.correct ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "sm", className: result.correct ? "text-success" : "text-error" })
17460
17460
  ] }) : /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: t("builder.empty") })
17461
17461
  ]
17462
17462
  },
@@ -17465,10 +17465,10 @@ function BuilderBoard({
17465
17465
  }) })
17466
17466
  ] }) }),
17467
17467
  submitted && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", align: "center", children: [
17468
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: allCorrect ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "lg", className: allCorrect ? "text-green-600" : "text-red-600" }),
17468
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: allCorrect ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "lg", className: allCorrect ? "text-success" : "text-error" }),
17469
17469
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", weight: "bold", children: allCorrect ? entity.successMessage ?? t("builder.success") : entity.failMessage ?? t("builder.incorrect") })
17470
17470
  ] }) }),
17471
- showHint && entity.hint && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4 border-l-4 border-l-yellow-500", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.hint }) }),
17471
+ showHint && entity.hint && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.hint }) }),
17472
17472
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", justify: "center", children: [
17473
17473
  !submitted ? /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "primary", onClick: handleSubmit, disabled: !allPlaced, children: [
17474
17474
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Wrench, size: "sm" }),
@@ -19023,7 +19023,7 @@ function CanvasEffectEngine({
19023
19023
  flash && /* @__PURE__ */ jsxRuntime.jsx(
19024
19024
  Box,
19025
19025
  {
19026
- className: "absolute inset-0 z-20 pointer-events-none rounded-lg",
19026
+ className: "absolute inset-0 z-20 pointer-events-none rounded-container",
19027
19027
  style: { backgroundColor: flash.color, opacity: flash.alpha }
19028
19028
  }
19029
19029
  ),
@@ -19091,7 +19091,7 @@ function EmojiEffect({
19091
19091
  /* @__PURE__ */ jsxRuntime.jsx(
19092
19092
  Box,
19093
19093
  {
19094
- className: "absolute rounded-full animate-ping",
19094
+ className: "absolute rounded-pill animate-ping",
19095
19095
  style: {
19096
19096
  width: 48 * intensity,
19097
19097
  height: 48 * intensity,
@@ -20908,7 +20908,7 @@ function ClassifierBoard({
20908
20908
  backgroundPosition: "center"
20909
20909
  },
20910
20910
  children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", className: "p-4", children: [
20911
- entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
20911
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
20912
20912
  /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
20913
20913
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
20914
20914
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.description })
@@ -20923,7 +20923,7 @@ function ClassifierBoard({
20923
20923
  /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "md", children: categories.map((cat) => {
20924
20924
  const catItems = items.filter((item) => assignments[item.id] === cat.id);
20925
20925
  return /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
20926
- cat.imageUrl && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-16 overflow-hidden rounded-md", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: cat.imageUrl, alt: "", className: "w-full h-full object-cover" }) }),
20926
+ cat.imageUrl && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-16 overflow-hidden rounded-container", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: cat.imageUrl, alt: "", className: "w-full h-full object-cover" }) }),
20927
20927
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { justify: "between", align: "center", children: [
20928
20928
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", weight: "bold", children: cat.label }),
20929
20929
  /* @__PURE__ */ jsxRuntime.jsx(Badge, { size: "sm", children: catItems.length })
@@ -20934,12 +20934,12 @@ function ClassifierBoard({
20934
20934
  Badge,
20935
20935
  {
20936
20936
  size: "sm",
20937
- className: `cursor-pointer ${result ? result.correct ? "border-green-500 bg-green-50 dark:bg-green-950" : "border-red-500 bg-red-50 dark:bg-red-950" : ""}`,
20937
+ className: `cursor-pointer ${result ? result.correct ? "border-success bg-success/10" : "border-error bg-error/10" : ""}`,
20938
20938
  onClick: () => handleUnassign(item.id),
20939
20939
  children: [
20940
20940
  item.iconUrl && /* @__PURE__ */ jsxRuntime.jsx("img", { src: item.iconUrl, alt: "", className: "w-3 h-3 object-contain inline-block" }),
20941
20941
  item.label,
20942
- result && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: result.correct ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "xs", className: result.correct ? "text-green-600" : "text-red-600" })
20942
+ result && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: result.correct ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "xs", className: result.correct ? "text-success" : "text-error" })
20943
20943
  ]
20944
20944
  },
20945
20945
  item.id
@@ -20962,11 +20962,11 @@ function ClassifierBoard({
20962
20962
  ] }) }, cat.id);
20963
20963
  }) }),
20964
20964
  submitted && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", align: "center", children: [
20965
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: allCorrect ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "lg", className: allCorrect ? "text-green-600" : "text-red-600" }),
20965
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: allCorrect ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "lg", className: allCorrect ? "text-success" : "text-error" }),
20966
20966
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", weight: "bold", children: allCorrect ? entity.successMessage ?? t("classifier.allCorrect") : `${correctCount}/${items.length} ${t("classifier.correct")}` }),
20967
20967
  !allCorrect && entity.failMessage && /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", className: "text-muted-foreground", children: entity.failMessage })
20968
20968
  ] }) }),
20969
- showHint && entity.hint && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4 border-l-4 border-l-yellow-500", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.hint }) }),
20969
+ showHint && entity.hint && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.hint }) }),
20970
20970
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", justify: "center", children: [
20971
20971
  !submitted ? /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "primary", onClick: handleSubmit, disabled: !allAssigned, children: [
20972
20972
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Send, size: "sm" }),
@@ -22014,7 +22014,7 @@ function CraftingRecipe({
22014
22014
  Box,
22015
22015
  {
22016
22016
  className: cn(
22017
- "flex flex-wrap items-center gap-3 rounded-lg bg-gray-800/50 border border-gray-700/50 p-3",
22017
+ "flex flex-wrap items-center gap-3 rounded-container bg-muted/50 border border-border/50 p-3",
22018
22018
  className
22019
22019
  ),
22020
22020
  children: [
@@ -22031,10 +22031,10 @@ function CraftingRecipe({
22031
22031
  className: cn(!hasSufficient && "opacity-50")
22032
22032
  }
22033
22033
  ) }),
22034
- index < inputs.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "plus", size: "sm", className: "text-gray-500" })
22034
+ index < inputs.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "plus", size: "sm", className: "text-muted-foreground" })
22035
22035
  ] }, index);
22036
22036
  }) }),
22037
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "arrow-right", size: "md", className: "text-gray-400" }),
22037
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "arrow-right", size: "md", className: "text-muted-foreground" }),
22038
22038
  /* @__PURE__ */ jsxRuntime.jsx(
22039
22039
  ItemSlot,
22040
22040
  {
@@ -22122,7 +22122,7 @@ function DPad({
22122
22122
  createButton("up"),
22123
22123
  /* @__PURE__ */ jsxRuntime.jsx("div", {}),
22124
22124
  createButton("left"),
22125
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-6 h-6 rounded-full bg-gray-700 border-2 border-gray-600" }) }),
22125
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-6 h-6 rounded-interactive bg-muted border-2 border-muted-foreground" }) }),
22126
22126
  createButton("right"),
22127
22127
  /* @__PURE__ */ jsxRuntime.jsx("div", {}),
22128
22128
  createButton("down"),
@@ -26229,7 +26229,7 @@ function StatBadge({
26229
26229
  "div",
26230
26230
  {
26231
26231
  className: cn(
26232
- "inline-flex items-center gap-2 rounded-lg border backdrop-blur-sm",
26232
+ "inline-flex items-center gap-2 rounded-container border backdrop-blur-sm",
26233
26233
  sizeMap17[size] ?? sizeMap17.md,
26234
26234
  variantMap2[variant] ?? variantMap2.default,
26235
26235
  className
@@ -26375,10 +26375,10 @@ function QuestTracker({
26375
26375
  Box,
26376
26376
  {
26377
26377
  className: cn(
26378
- "flex items-start gap-3 rounded-lg px-3 py-2 transition-colors",
26379
- isActive && !isCompleted && "bg-blue-900/20 border border-blue-800/50",
26380
- isCompleted && "bg-green-900/10 border border-green-800/30 opacity-70",
26381
- !isActive && !isCompleted && "bg-gray-800/30 border border-gray-700/30"
26378
+ "flex items-start gap-3 rounded-container px-3 py-2 transition-colors",
26379
+ isActive && !isCompleted && "bg-info/20 border border-info/50",
26380
+ isCompleted && "bg-success/10 border border-success/30 opacity-70",
26381
+ !isActive && !isCompleted && "bg-muted/30 border border-border/30"
26382
26382
  ),
26383
26383
  children: [
26384
26384
  /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex-shrink-0 pt-0.5", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -26396,9 +26396,9 @@ function QuestTracker({
26396
26396
  variant: "body2",
26397
26397
  className: cn(
26398
26398
  "font-medium truncate",
26399
- isCompleted && "line-through text-gray-500",
26400
- isActive && !isCompleted && "text-blue-300",
26401
- !isActive && !isCompleted && "text-gray-300"
26399
+ isCompleted && "line-through text-muted-foreground",
26400
+ isActive && !isCompleted && "text-info",
26401
+ !isActive && !isCompleted && "text-muted-foreground"
26402
26402
  ),
26403
26403
  children: quest.title
26404
26404
  }
@@ -26416,7 +26416,7 @@ function QuestTracker({
26416
26416
  Typography,
26417
26417
  {
26418
26418
  variant: "caption",
26419
- className: "text-gray-500 mt-1",
26419
+ className: "text-muted-foreground mt-1",
26420
26420
  children: [
26421
26421
  quest.progress,
26422
26422
  " / ",
@@ -26473,14 +26473,14 @@ function PowerupSlots({
26473
26473
  {
26474
26474
  className: cn(
26475
26475
  "absolute -bottom-1 left-1/2 -translate-x-1/2",
26476
- "rounded px-1 py-px",
26477
- "bg-black/80 border border-gray-600"
26476
+ "rounded-interactive px-1 py-px",
26477
+ "bg-background/80 border border-border"
26478
26478
  ),
26479
26479
  children: /* @__PURE__ */ jsxRuntime.jsx(
26480
26480
  Typography,
26481
26481
  {
26482
26482
  variant: "caption",
26483
- className: "text-[9px] font-mono font-bold text-yellow-300 whitespace-nowrap",
26483
+ className: "text-[9px] font-mono font-bold text-warning whitespace-nowrap",
26484
26484
  children: formatTime2(powerup.remainingTime)
26485
26485
  }
26486
26486
  )
@@ -26602,7 +26602,7 @@ function HealthPanel({
26602
26602
  Box,
26603
26603
  {
26604
26604
  className: cn(
26605
- "rounded-lg bg-[var(--color-card)]/90 border border-gray-700 backdrop-blur-sm",
26605
+ "rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm",
26606
26606
  sizes.padding,
26607
26607
  className
26608
26608
  ),
@@ -26613,7 +26613,7 @@ function HealthPanel({
26613
26613
  {
26614
26614
  variant: "caption",
26615
26615
  weight: "bold",
26616
- className: "text-gray-300 uppercase tracking-wider",
26616
+ className: "text-muted-foreground uppercase tracking-wider",
26617
26617
  children: label
26618
26618
  }
26619
26619
  ),
@@ -26634,7 +26634,7 @@ function HealthPanel({
26634
26634
  as: "span",
26635
26635
  variant: "caption",
26636
26636
  weight: "bold",
26637
- className: "text-blue-400 ml-1",
26637
+ className: "text-info ml-1",
26638
26638
  children: [
26639
26639
  "+",
26640
26640
  shield
@@ -26659,14 +26659,14 @@ function HealthPanel({
26659
26659
  Box,
26660
26660
  {
26661
26661
  className: cn(
26662
- "relative overflow-hidden rounded-full bg-gray-700",
26662
+ "relative overflow-hidden rounded-container bg-muted",
26663
26663
  size === "sm" ? "h-1" : size === "md" ? "h-1.5" : "h-2",
26664
26664
  "w-full"
26665
26665
  ),
26666
26666
  children: /* @__PURE__ */ jsxRuntime.jsx(
26667
26667
  Box,
26668
26668
  {
26669
- className: "absolute inset-y-0 left-0 rounded-full bg-blue-500 transition-all duration-300",
26669
+ className: "absolute inset-y-0 left-0 rounded-container bg-info transition-all duration-300",
26670
26670
  style: { width: `${Math.min(100, shield / max * 100)}%` }
26671
26671
  }
26672
26672
  )
@@ -26725,7 +26725,7 @@ function ScoreBoard({
26725
26725
  Card,
26726
26726
  {
26727
26727
  className: cn(
26728
- "bg-[var(--color-card)]/90 border-gray-700 backdrop-blur-sm",
26728
+ "bg-[var(--color-card)]/90 border-border backdrop-blur-sm",
26729
26729
  className
26730
26730
  ),
26731
26731
  children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "p-3", children: /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "flex items-center gap-3 flex-wrap", children: [
@@ -26842,7 +26842,7 @@ function TurnPanel({
26842
26842
  Box,
26843
26843
  {
26844
26844
  className: cn(
26845
- "flex items-center gap-3 rounded-lg bg-[var(--color-card)]/90 border border-gray-700 backdrop-blur-sm px-3 py-2",
26845
+ "flex items-center gap-3 rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm px-3 py-2",
26846
26846
  className
26847
26847
  ),
26848
26848
  children: [
@@ -26894,7 +26894,7 @@ function EnemyPlate({
26894
26894
  Box,
26895
26895
  {
26896
26896
  className: cn(
26897
- "inline-flex flex-col gap-1 rounded-lg bg-[var(--color-card)]/90 border border-gray-700 backdrop-blur-sm px-3 py-1.5",
26897
+ "inline-flex flex-col gap-1 rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm px-3 py-1.5",
26898
26898
  "min-w-[120px]",
26899
26899
  className
26900
26900
  ),
@@ -26988,7 +26988,7 @@ function UnitCommandBar({
26988
26988
  Box,
26989
26989
  {
26990
26990
  className: cn(
26991
- "flex items-center gap-1.5 rounded-lg bg-[var(--color-card)]/90 border border-gray-700 backdrop-blur-sm px-2 py-1.5",
26991
+ "flex items-center gap-1.5 rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm px-2 py-1.5",
26992
26992
  className
26993
26993
  ),
26994
26994
  children: commands.map((command, i) => /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "flex flex-col items-center gap-0.5", children: [
@@ -27073,8 +27073,8 @@ function GameHud({
27073
27073
  className: cn(
27074
27074
  "relative z-10",
27075
27075
  positionMap[position],
27076
- transparent && "bg-gradient-to-b from-black/50 to-transparent",
27077
- position === "bottom" && "bg-gradient-to-t from-black/50 to-transparent",
27076
+ transparent && "bg-gradient-to-b from-background/50 to-transparent",
27077
+ position === "bottom" && "bg-gradient-to-t from-background/50 to-transparent",
27078
27078
  className
27079
27079
  ),
27080
27080
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-4", children: stats.map((stat, i) => /* @__PURE__ */ jsxRuntime.jsx(StatBadge, { ...stat, size }, i)) })
@@ -27232,8 +27232,8 @@ function DialogueBox({
27232
27232
  tabIndex: 0,
27233
27233
  role: "dialog",
27234
27234
  "aria-label": "Dialogue",
27235
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-4 my-4 bg-[var(--color-card)] bg-opacity-95 border-2 border-gray-600 rounded-lg overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex", children: [
27236
- dialogue.portrait && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 p-4 border-r border-gray-700", children: /* @__PURE__ */ jsxRuntime.jsx(
27235
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-4 my-4 bg-[var(--color-card)] bg-opacity-95 border-2 border-border rounded-container overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex", children: [
27236
+ dialogue.portrait && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 p-4 border-r border-border", children: /* @__PURE__ */ jsxRuntime.jsx(
27237
27237
  "img",
27238
27238
  {
27239
27239
  src: dialogue.portrait,
@@ -27243,7 +27243,7 @@ function DialogueBox({
27243
27243
  }
27244
27244
  ) }),
27245
27245
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 p-4", children: [
27246
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-yellow-400 font-bold mb-2", children: dialogue.speaker }),
27246
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-warning font-bold mb-2", children: dialogue.speaker }),
27247
27247
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-[var(--color-foreground)] text-lg leading-relaxed min-h-[60px]", children: [
27248
27248
  displayedText,
27249
27249
  isTyping && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "animate-pulse", children: "\u258C" })
@@ -27253,9 +27253,9 @@ function DialogueBox({
27253
27253
  {
27254
27254
  type: "button",
27255
27255
  className: cn(
27256
- "block w-full text-left px-4 py-2 rounded transition-colors",
27257
- "hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-yellow-400",
27258
- selectedChoice === index ? "bg-[var(--color-surface,#374151)] text-yellow-400" : "bg-[var(--color-card)] text-[var(--color-foreground)]"
27256
+ "block w-full text-left px-4 py-2 rounded-interactive transition-colors",
27257
+ "hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-warning",
27258
+ selectedChoice === index ? "bg-[var(--color-surface,#374151)] text-warning" : "bg-[var(--color-card)] text-[var(--color-foreground)]"
27259
27259
  ),
27260
27260
  onClick: (e) => {
27261
27261
  e.stopPropagation();
@@ -27263,7 +27263,7 @@ function DialogueBox({
27263
27263
  onChoice?.(choice);
27264
27264
  },
27265
27265
  children: [
27266
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-gray-500 mr-2", children: [
27266
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground mr-2", children: [
27267
27267
  index + 1,
27268
27268
  "."
27269
27269
  ] }),
@@ -27272,7 +27272,7 @@ function DialogueBox({
27272
27272
  },
27273
27273
  index
27274
27274
  )) }),
27275
- !isTyping && !dialogue.choices?.length && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 text-gray-500 text-sm animate-pulse", children: "Press SPACE or click to continue..." })
27275
+ !isTyping && !dialogue.choices?.length && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 text-muted-foreground text-sm animate-pulse", children: "Press SPACE or click to continue..." })
27276
27276
  ] })
27277
27277
  ] }) })
27278
27278
  }
@@ -27375,7 +27375,7 @@ function InventoryPanel({
27375
27375
  /* @__PURE__ */ jsxRuntime.jsx(
27376
27376
  "div",
27377
27377
  {
27378
- className: "grid gap-1 bg-[var(--color-card)] p-2 rounded-lg border border-gray-700",
27378
+ className: "grid gap-1 bg-[var(--color-card)] p-2 rounded-container border border-border",
27379
27379
  style: {
27380
27380
  gridTemplateColumns: `repeat(${safeColumns}, ${slotSize}px)`,
27381
27381
  gridTemplateRows: `repeat(${rows}, ${slotSize}px)`
@@ -27387,8 +27387,8 @@ function InventoryPanel({
27387
27387
  className: cn(
27388
27388
  "relative flex items-center justify-center",
27389
27389
  "bg-[var(--color-card)] border rounded transition-colors",
27390
- "hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-blue-500",
27391
- selectedSlot === index ? "border-yellow-400 bg-[var(--color-surface,#374151)]" : "border-gray-600"
27390
+ "hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-info",
27391
+ selectedSlot === index ? "border-warning bg-[var(--color-surface,#374151)]" : "border-muted"
27392
27392
  ),
27393
27393
  style: { width: slotSize, height: slotSize },
27394
27394
  onClick: () => handleSlotClick(index),
@@ -27407,8 +27407,8 @@ function InventoryPanel({
27407
27407
  className: "w-8 h-8 object-contain",
27408
27408
  style: { imageRendering: "pixelated" }
27409
27409
  }
27410
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-8 h-8 bg-gray-600 rounded flex items-center justify-center text-xs text-gray-300", children: (item.type ?? item.name ?? "I").charAt(0).toUpperCase() }),
27411
- item.quantity > 1 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute bottom-0 right-0 bg-black bg-opacity-70 text-white text-xs px-1 rounded-tl", children: item.quantity })
27410
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-8 h-8 bg-muted rounded-interactive flex items-center justify-center text-xs text-muted-foreground", children: (item.type ?? item.name ?? "I").charAt(0).toUpperCase() }),
27411
+ item.quantity > 1 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute bottom-0 right-0 bg-background/70 text-foreground text-xs px-1 rounded-tl", children: item.quantity })
27412
27412
  ] })
27413
27413
  },
27414
27414
  index
@@ -27418,7 +27418,7 @@ function InventoryPanel({
27418
27418
  showTooltips && hoveredItem && /* @__PURE__ */ jsxRuntime.jsxs(
27419
27419
  "div",
27420
27420
  {
27421
- className: "fixed z-50 bg-[var(--color-card)] border border-gray-600 rounded-lg p-2 shadow-lg pointer-events-none",
27421
+ className: "fixed z-50 bg-[var(--color-card)] border border-border rounded-container p-2 shadow-elevation-card pointer-events-none",
27422
27422
  style: {
27423
27423
  left: tooltipPosition.x,
27424
27424
  top: tooltipPosition.y,
@@ -27426,8 +27426,8 @@ function InventoryPanel({
27426
27426
  },
27427
27427
  children: [
27428
27428
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-semibold text-[var(--color-foreground)]", children: hoveredItem.name || hoveredItem.type }),
27429
- hoveredItem.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-gray-400 mt-1", children: hoveredItem.description }),
27430
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-xs text-gray-500 mt-1", children: [
27429
+ hoveredItem.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-muted-foreground mt-1", children: hoveredItem.description }),
27430
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-xs text-muted-foreground mt-1", children: [
27431
27431
  "Quantity: ",
27432
27432
  hoveredItem.quantity
27433
27433
  ] })
@@ -27505,7 +27505,7 @@ function GameMenu({
27505
27505
  children: title
27506
27506
  }
27507
27507
  ),
27508
- subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-lg text-gray-400 tracking-widest uppercase", children: subtitle })
27508
+ subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-lg text-muted-foreground tracking-widest uppercase", children: subtitle })
27509
27509
  ] }),
27510
27510
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4 w-full max-w-md", children: resolvedOptions.map((option, index) => /* @__PURE__ */ jsxRuntime.jsx(
27511
27511
  "button",
@@ -27513,10 +27513,10 @@ function GameMenu({
27513
27513
  onClick: () => handleOptionClick(option),
27514
27514
  disabled: option.disabled,
27515
27515
  className: cn(
27516
- "w-full py-4 px-8 rounded-xl border-2 font-bold text-lg",
27516
+ "w-full py-4 px-8 rounded-container border-2 font-bold text-lg",
27517
27517
  "transition-all duration-200 transform",
27518
27518
  "hover:scale-105 active:scale-95",
27519
- "focus:outline-none focus:ring-4 focus:ring-white/25",
27519
+ "focus:outline-none focus:ring-4 focus:ring-foreground/25",
27520
27520
  variantMap3[option.variant ?? "secondary"] ?? variantMap3.secondary,
27521
27521
  option.disabled && "opacity-50 cursor-not-allowed hover:scale-100"
27522
27522
  ),
@@ -27528,8 +27528,8 @@ function GameMenu({
27528
27528
  index
27529
27529
  )) }),
27530
27530
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none overflow-hidden", children: [
27531
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-1/4 left-1/4 w-64 h-64 bg-blue-500/10 rounded-full blur-3xl" }),
27532
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute bottom-1/4 right-1/4 w-96 h-96 bg-purple-500/10 rounded-full blur-3xl" })
27531
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-1/4 left-1/4 w-64 h-64 bg-info/10 rounded-container blur-3xl" }),
27532
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute bottom-1/4 right-1/4 w-96 h-96 bg-accent/10 rounded-container blur-3xl" })
27533
27533
  ] })
27534
27534
  ]
27535
27535
  }
@@ -27542,9 +27542,9 @@ var init_GameMenu = __esm({
27542
27542
  init_cn();
27543
27543
  init_useEventBus();
27544
27544
  variantMap3 = {
27545
- primary: "bg-[var(--color-primary)] hover:bg-blue-500 text-[var(--color-primary-foreground)] border-blue-400 shadow-lg shadow-blue-500/25",
27546
- secondary: "bg-[var(--color-surface,#374151)] hover:bg-gray-600 text-[var(--color-foreground)] border-gray-500",
27547
- ghost: "bg-transparent hover:bg-white/10 text-[var(--color-foreground)] border-white/20"
27545
+ primary: "bg-[var(--color-primary)] hover:bg-info text-[var(--color-primary-foreground)] border-info shadow-lg shadow-info/25",
27546
+ secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
27547
+ ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
27548
27548
  };
27549
27549
  GameMenu.displayName = "GameMenu";
27550
27550
  }
@@ -27612,13 +27612,13 @@ function GameOverScreen({
27612
27612
  children: title
27613
27613
  }
27614
27614
  ),
27615
- message && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xl text-gray-300 mb-8 text-center max-w-md", children: message }),
27616
- isNewHighScore && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-6 px-6 py-2 bg-yellow-500/20 border-2 border-yellow-500 rounded-full animate-pulse", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-yellow-400 font-bold text-lg tracking-wide", children: "\u{1F3C6} NEW HIGH SCORE! \u{1F3C6}" }) }),
27615
+ message && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xl text-muted-foreground mb-8 text-center max-w-md", children: message }),
27616
+ isNewHighScore && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-6 px-6 py-2 bg-warning/20 border-2 border-warning rounded-container animate-pulse", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-warning font-bold text-lg tracking-wide", children: "\u{1F3C6} NEW HIGH SCORE! \u{1F3C6}" }) }),
27617
27617
  stats.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
27618
27618
  "div",
27619
27619
  {
27620
27620
  className: cn(
27621
- "mb-8 p-6 rounded-xl border-2 bg-black/30",
27621
+ "mb-8 p-6 rounded-container border-2 bg-background/30",
27622
27622
  colors.accent
27623
27623
  ),
27624
27624
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-4", children: stats.map((stat, index) => {
@@ -27627,7 +27627,7 @@ function GameOverScreen({
27627
27627
  displayValue = formatTime3(displayValue);
27628
27628
  }
27629
27629
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
27630
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-gray-400 text-sm mb-1", children: stat.label }),
27630
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground text-sm mb-1", children: stat.label }),
27631
27631
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-[var(--color-foreground)] text-2xl font-bold flex items-center justify-center gap-2", children: [
27632
27632
  stat.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { children: stat.icon }),
27633
27633
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tabular-nums", children: displayValue })
@@ -27641,10 +27641,10 @@ function GameOverScreen({
27641
27641
  {
27642
27642
  onClick: () => handleActionClick(action),
27643
27643
  className: cn(
27644
- "px-8 py-4 rounded-xl border-2 font-bold text-lg",
27644
+ "px-8 py-4 rounded-container border-2 font-bold text-lg",
27645
27645
  "transition-all duration-200",
27646
27646
  "hover:scale-105 active:scale-95",
27647
- "focus:outline-none focus:ring-4 focus:ring-white/25",
27647
+ "focus:outline-none focus:ring-4 focus:ring-foreground/25",
27648
27648
  buttonVariants[action.variant ?? "secondary"]
27649
27649
  ),
27650
27650
  children: action.label
@@ -27663,25 +27663,25 @@ var init_GameOverScreen = __esm({
27663
27663
  init_useEventBus();
27664
27664
  variantColors = {
27665
27665
  victory: {
27666
- bg: "from-green-900/90 to-emerald-950/90",
27667
- title: "text-green-400",
27668
- accent: "border-green-500"
27666
+ bg: "from-success/90 to-success/90",
27667
+ title: "text-success",
27668
+ accent: "border-success"
27669
27669
  },
27670
27670
  defeat: {
27671
- bg: "from-red-900/90 to-gray-950/90",
27672
- title: "text-red-400",
27673
- accent: "border-red-500"
27671
+ bg: "from-error/90 to-background/90",
27672
+ title: "text-error",
27673
+ accent: "border-error"
27674
27674
  },
27675
27675
  neutral: {
27676
- bg: "from-gray-900/90 to-gray-950/90",
27677
- title: "text-white",
27678
- accent: "border-gray-500"
27676
+ bg: "from-muted/90 to-background/90",
27677
+ title: "text-foreground",
27678
+ accent: "border-muted"
27679
27679
  }
27680
27680
  };
27681
27681
  buttonVariants = {
27682
- primary: "bg-[var(--color-primary)] hover:bg-blue-500 text-[var(--color-primary-foreground)] border-blue-400",
27683
- secondary: "bg-[var(--color-surface,#374151)] hover:bg-gray-600 text-[var(--color-foreground)] border-gray-500",
27684
- ghost: "bg-transparent hover:bg-white/10 text-[var(--color-foreground)] border-white/20"
27682
+ primary: "bg-[var(--color-primary)] hover:bg-info text-[var(--color-primary-foreground)] border-info",
27683
+ secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
27684
+ ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
27685
27685
  };
27686
27686
  GameOverScreen.displayName = "GameOverScreen";
27687
27687
  }
@@ -27915,7 +27915,7 @@ function PlatformerCanvas({
27915
27915
  {
27916
27916
  ref: canvasRef,
27917
27917
  style: { width: canvasWidth, height: canvasHeight },
27918
- className: cn("block rounded-lg border border-white/10", className),
27918
+ className: cn("block rounded-container border border-border/10", className),
27919
27919
  "data-testid": "platformer-canvas",
27920
27920
  tabIndex: 0
27921
27921
  }
@@ -35320,7 +35320,7 @@ function DebuggerBoard({
35320
35320
  backgroundPosition: "center"
35321
35321
  },
35322
35322
  children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", className: "p-4", children: [
35323
- entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
35323
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
35324
35324
  /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
35325
35325
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "xs", align: "center", children: [
35326
35326
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Bug, size: "sm" }),
@@ -35333,11 +35333,11 @@ function DebuggerBoard({
35333
35333
  const isFlagged = flaggedLines.has(line.id);
35334
35334
  let lineStyle = "";
35335
35335
  if (submitted) {
35336
- if (line.isBug && isFlagged) lineStyle = "bg-green-50 dark:bg-green-950";
35337
- else if (line.isBug && !isFlagged) lineStyle = "bg-yellow-50 dark:bg-yellow-950";
35338
- else if (!line.isBug && isFlagged) lineStyle = "bg-red-50 dark:bg-red-950";
35336
+ if (line.isBug && isFlagged) lineStyle = "bg-success/10";
35337
+ else if (line.isBug && !isFlagged) lineStyle = "bg-warning/10";
35338
+ else if (!line.isBug && isFlagged) lineStyle = "bg-error/10";
35339
35339
  } else if (isFlagged) {
35340
- lineStyle = "bg-red-50 dark:bg-red-950";
35340
+ lineStyle = "bg-error/10";
35341
35341
  }
35342
35342
  return /* @__PURE__ */ jsxRuntime.jsxs(
35343
35343
  HStack,
@@ -35350,8 +35350,8 @@ function DebuggerBoard({
35350
35350
  /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-10 flex-shrink-0 flex items-center justify-center border-r border-border text-muted-foreground", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", children: i + 1 }) }),
35351
35351
  /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex-1 px-3 py-1.5 font-mono text-sm whitespace-pre", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", className: "font-mono text-sm", children: line.content }) }),
35352
35352
  /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "w-8 flex-shrink-0 flex items-center justify-center", children: [
35353
- isFlagged && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Bug, size: "xs", className: "text-red-600" }),
35354
- submitted && line.isBug && !isFlagged && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Bug, size: "xs", className: "text-yellow-600" })
35353
+ isFlagged && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Bug, size: "xs", className: "text-error" }),
35354
+ submitted && line.isBug && !isFlagged && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Bug, size: "xs", className: "text-warning" })
35355
35355
  ] })
35356
35356
  ]
35357
35357
  },
@@ -35366,7 +35366,7 @@ function DebuggerBoard({
35366
35366
  {
35367
35367
  icon: flaggedLines.has(line.id) ? LucideIcons2.CheckCircle : LucideIcons2.XCircle,
35368
35368
  size: "xs",
35369
- className: flaggedLines.has(line.id) ? "text-green-600 mt-0.5" : "text-yellow-600 mt-0.5"
35369
+ className: flaggedLines.has(line.id) ? "text-success mt-0.5" : "text-warning mt-0.5"
35370
35370
  }
35371
35371
  ),
35372
35372
  /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", children: [
@@ -35375,7 +35375,7 @@ function DebuggerBoard({
35375
35375
  ] })
35376
35376
  ] }, line.id))
35377
35377
  ] }) }),
35378
- showHint && entity.hint && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4 border-l-4 border-l-yellow-500", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.hint }) }),
35378
+ showHint && entity.hint && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.hint }) }),
35379
35379
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", justify: "center", children: [
35380
35380
  !submitted ? /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "primary", onClick: handleSubmit, disabled: flaggedLines.size === 0, children: [
35381
35381
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Send, size: "sm" }),
@@ -36098,7 +36098,7 @@ function LinearView({
36098
36098
  className
36099
36099
  }) {
36100
36100
  const currentIdx = trait.states.indexOf(trait.currentState);
36101
- return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-lg bg-card border border-border", className), gap: "sm", children: [
36101
+ return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
36102
36102
  trait.description && /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: trait.description }),
36103
36103
  /* @__PURE__ */ jsxRuntime.jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
36104
36104
  const isDone = i < currentIdx;
@@ -36120,10 +36120,10 @@ function LinearView({
36120
36120
  {
36121
36121
  display: "inline-flex",
36122
36122
  className: cn(
36123
- "items-center justify-center rounded-full px-3 py-1 border-2 transition-all",
36123
+ "items-center justify-center rounded-pill px-3 py-1 border-2 transition-all",
36124
36124
  SIZE_CONFIG2[size || "md"].fontSize,
36125
36125
  isDone && "bg-success/20 border-success text-success",
36126
- isCurrent && "bg-primary/20 border-primary text-primary font-bold shadow-md shadow-primary/20",
36126
+ isCurrent && "bg-primary/20 border-primary text-primary font-bold shadow-elevation-card shadow-primary/20",
36127
36127
  !isDone && !isCurrent && "bg-muted border-border text-muted-foreground"
36128
36128
  ),
36129
36129
  children: [
@@ -36145,7 +36145,7 @@ function CompactView({
36145
36145
  const { t } = useTranslate();
36146
36146
  const config = SIZE_CONFIG2[size || "md"];
36147
36147
  const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
36148
- return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-lg bg-card border border-border", className), gap: "sm", children: [
36148
+ return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
36149
36149
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { className: "items-center justify-between", children: [
36150
36150
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-foreground font-bold", children: trait.name }),
36151
36151
  /* @__PURE__ */ jsxRuntime.jsx(StateIndicator, { state: trait.currentState, size: "sm", stateStyles })
@@ -36181,7 +36181,7 @@ function FullView({
36181
36181
  const { t } = useTranslate();
36182
36182
  const config = SIZE_CONFIG2[size || "md"];
36183
36183
  const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
36184
- return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-lg bg-card border border-border", className), gap: "sm", children: [
36184
+ return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
36185
36185
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { className: "items-center justify-between", children: [
36186
36186
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-foreground font-bold", children: trait.name }),
36187
36187
  /* @__PURE__ */ jsxRuntime.jsx(StateIndicator, { state: trait.currentState, size: "sm", stateStyles })
@@ -36195,9 +36195,9 @@ function FullView({
36195
36195
  {
36196
36196
  display: "flex",
36197
36197
  className: cn(
36198
- "items-center justify-center rounded-md border-2 transition-all px-2",
36198
+ "items-center justify-center rounded-container border-2 transition-all px-2",
36199
36199
  config.nodeSize,
36200
- isCurrent && "bg-primary/20 border-primary shadow-md shadow-primary/20",
36200
+ isCurrent && "bg-primary/20 border-primary shadow-elevation-card shadow-primary/20",
36201
36201
  !isCurrent && hasOutgoing && "bg-muted border-border hover:border-muted-foreground",
36202
36202
  !isCurrent && !hasOutgoing && "bg-background border-border opacity-60",
36203
36203
  onStateClick && "cursor-pointer"
@@ -36627,7 +36627,7 @@ function EventHandlerBoard({
36627
36627
  backgroundPosition: "center"
36628
36628
  },
36629
36629
  children: [
36630
- entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
36630
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
36631
36631
  /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", children: [
36632
36632
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", className: "text-foreground", children: entity.title }),
36633
36633
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-muted-foreground", children: entity.description }),
@@ -36642,7 +36642,7 @@ function EventHandlerBoard({
36642
36642
  Box,
36643
36643
  {
36644
36644
  className: cn(
36645
- "p-3 rounded-lg border-2 cursor-pointer transition-all hover:scale-105",
36645
+ "p-3 rounded-container border-2 cursor-pointer transition-all hover:scale-105",
36646
36646
  selectedObjectId === obj.id ? "border-primary bg-primary/10" : "border-border bg-card hover:border-muted-foreground"
36647
36647
  ),
36648
36648
  onClick: () => setSelectedObjectId(obj.id),
@@ -36664,10 +36664,10 @@ function EventHandlerBoard({
36664
36664
  }
36665
36665
  ),
36666
36666
  eventLog.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(EventLog, { entries: eventLog }),
36667
- playState === "success" && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-4 rounded-lg bg-success/20 border border-success text-center", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h5", className: "text-success", children: entity.successMessage || t("eventHandler.chainComplete") }) }),
36667
+ playState === "success" && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-4 rounded-container bg-success/20 border border-success text-center", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h5", className: "text-success", children: entity.successMessage || t("eventHandler.chainComplete") }) }),
36668
36668
  playState === "fail" && /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
36669
- /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-4 rounded-lg bg-warning/10 border border-warning/30 text-center", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body1", className: "text-foreground font-medium", children: t(encourageKey) }) }),
36670
- showHint && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-3 rounded-lg bg-accent/10 border border-accent/30", children: /* @__PURE__ */ jsxRuntime.jsxs(HStack, { className: "items-start", gap: "xs", children: [
36669
+ /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-4 rounded-container bg-warning/10 border border-warning/30 text-center", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body1", className: "text-foreground font-medium", children: t(encourageKey) }) }),
36670
+ showHint && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-3 rounded-container bg-accent/10 border border-accent/30", children: /* @__PURE__ */ jsxRuntime.jsxs(HStack, { className: "items-start", gap: "xs", children: [
36671
36671
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-accent font-bold shrink-0", children: "\u{1F4A1} " + t("game.hint") + ":" }),
36672
36672
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-foreground", children: entity.hint })
36673
36673
  ] }) })
@@ -39840,7 +39840,7 @@ function NegotiatorBoard({
39840
39840
  backgroundPosition: "center"
39841
39841
  },
39842
39842
  children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", className: "p-4", children: [
39843
- entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
39843
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
39844
39844
  /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
39845
39845
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
39846
39846
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.description }),
@@ -39886,7 +39886,7 @@ function NegotiatorBoard({
39886
39886
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: "vs" }),
39887
39887
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", children: getActionLabel(round.opponentAction) }),
39888
39888
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.ArrowRight, size: "xs" }),
39889
- /* @__PURE__ */ jsxRuntime.jsxs(Typography, { variant: "caption", weight: "bold", className: "text-green-600", children: [
39889
+ /* @__PURE__ */ jsxRuntime.jsxs(Typography, { variant: "caption", weight: "bold", className: "text-success", children: [
39890
39890
  "+",
39891
39891
  round.playerPayoff
39892
39892
  ] }),
@@ -39897,7 +39897,7 @@ function NegotiatorBoard({
39897
39897
  ] }, round.round))
39898
39898
  ] }) }),
39899
39899
  isComplete && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", align: "center", children: [
39900
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.CheckCircle, size: "lg", className: won ? "text-green-600" : "text-red-600" }),
39900
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.CheckCircle, size: "lg", className: won ? "text-success" : "text-error" }),
39901
39901
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", weight: "bold", children: won ? entity.successMessage ?? t("negotiator.success") : entity.failMessage ?? t("negotiator.failed") }),
39902
39902
  /* @__PURE__ */ jsxRuntime.jsxs(Typography, { variant: "caption", className: "text-muted-foreground", children: [
39903
39903
  t("negotiator.finalScore"),
@@ -39907,7 +39907,7 @@ function NegotiatorBoard({
39907
39907
  entity.targetScore
39908
39908
  ] })
39909
39909
  ] }) }),
39910
- showHint && entity.hint && !won && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4 border-l-4 border-l-yellow-500", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.hint }) }),
39910
+ showHint && entity.hint && !won && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.hint }) }),
39911
39911
  isComplete && !won && /* @__PURE__ */ jsxRuntime.jsx(HStack, { justify: "center", children: /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "primary", onClick: handleReset, children: t("negotiator.playAgain") }) })
39912
39912
  ] })
39913
39913
  }
@@ -42511,7 +42511,7 @@ function TraitSlot({
42511
42511
  display: "flex",
42512
42512
  position: "relative",
42513
42513
  className: cn(
42514
- "items-center justify-center rounded-lg transition-all duration-200",
42514
+ "items-center justify-center rounded-container transition-all duration-200 bg-card/50",
42515
42515
  !locked && "cursor-pointer",
42516
42516
  locked && "cursor-not-allowed opacity-50",
42517
42517
  isEmpty && !locked && "border-2 border-dashed border-border hover:border-muted-foreground",
@@ -42527,7 +42527,7 @@ function TraitSlot({
42527
42527
  style: {
42528
42528
  width: config.box,
42529
42529
  height: config.box,
42530
- backgroundColor: catColor?.bg || "rgba(30,41,59,0.5)",
42530
+ backgroundColor: catColor?.bg || void 0,
42531
42531
  borderColor: isDragOver ? void 0 : feedback === "correct" ? "var(--color-success)" : feedback === "wrong" ? "var(--color-error)" : catColor?.border || void 0
42532
42532
  },
42533
42533
  onClick: handleClick,
@@ -42556,7 +42556,7 @@ function TraitSlot({
42556
42556
  Box,
42557
42557
  {
42558
42558
  position: "absolute",
42559
- className: "-top-1.5 -right-1.5 w-4 h-4 bg-error rounded-full flex items-center justify-center cursor-pointer hover:bg-error/80 transition-colors",
42559
+ className: "-top-1.5 -right-1.5 w-4 h-4 bg-error rounded-pill flex items-center justify-center cursor-pointer hover:bg-error/80 transition-colors",
42560
42560
  onClick: handleRemove,
42561
42561
  children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: "text-foreground text-xs leading-none", children: "\xD7" })
42562
42562
  }
@@ -42566,14 +42566,14 @@ function TraitSlot({
42566
42566
  Box,
42567
42567
  {
42568
42568
  position: "absolute",
42569
- className: "-bottom-1 -left-1 w-4 h-4 bg-card rounded-full flex items-center justify-center border border-border",
42569
+ className: "-bottom-1 -left-1 w-4 h-4 bg-card rounded-pill flex items-center justify-center border border-border",
42570
42570
  children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: "text-muted-foreground text-xs", children: slotNumber })
42571
42571
  }
42572
42572
  ),
42573
42573
  showTooltip && isHovered && itemMachine && !isEmpty && equippedItem && /* @__PURE__ */ jsxRuntime.jsxs(
42574
42574
  Box,
42575
42575
  {
42576
- className: "p-3 bg-background border border-border rounded-lg shadow-xl",
42576
+ className: "p-3 bg-background border border-border rounded-container shadow-xl",
42577
42577
  style: {
42578
42578
  ...getTooltipStyle(),
42579
42579
  minWidth: 200,
@@ -42823,12 +42823,12 @@ function SequencerBoard({
42823
42823
  backgroundPosition: "center"
42824
42824
  },
42825
42825
  children: [
42826
- entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
42826
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
42827
42827
  /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", children: [
42828
42828
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", className: "text-foreground", children: entity.title }),
42829
42829
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-muted-foreground", children: entity.description })
42830
42830
  ] }),
42831
- showHint && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-3 rounded-lg bg-accent/10 border border-accent/30", children: /* @__PURE__ */ jsxRuntime.jsxs(HStack, { className: "items-start", gap: "xs", children: [
42831
+ showHint && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-3 rounded-container bg-accent/10 border border-accent/30", children: /* @__PURE__ */ jsxRuntime.jsxs(HStack, { className: "items-start", gap: "xs", children: [
42832
42832
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-accent font-bold shrink-0", children: "\u{1F4A1} " + t("game.hint") + ":" }),
42833
42833
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-foreground", children: entity.hint })
42834
42834
  ] }) }),
@@ -42866,8 +42866,8 @@ function SequencerBoard({
42866
42866
  label: t("sequencer.dragActions")
42867
42867
  }
42868
42868
  ),
42869
- hasFeedback && playState === "idle" && attempts > 0 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-3 rounded-lg bg-warning/10 border border-warning/30 text-center", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-foreground", children: t(encourageKey) }) }),
42870
- playState === "success" && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-4 rounded-lg bg-success/20 border border-success text-center", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h5", className: "text-success", children: entity.successMessage || t("sequencer.levelComplete") }) }),
42869
+ hasFeedback && playState === "idle" && attempts > 0 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-3 rounded-container bg-warning/10 border border-warning/30 text-center", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-foreground", children: t(encourageKey) }) }),
42870
+ playState === "success" && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-4 rounded-container bg-success/20 border border-success text-center", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h5", className: "text-success", children: entity.successMessage || t("sequencer.levelComplete") }) }),
42871
42871
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", children: [
42872
42872
  /* @__PURE__ */ jsxRuntime.jsx(
42873
42873
  Button,
@@ -43543,7 +43543,7 @@ function SimulationCanvas({
43543
43543
  ref: canvasRef,
43544
43544
  width,
43545
43545
  height,
43546
- className: "rounded-md block max-w-full h-auto"
43546
+ className: "rounded-container block max-w-full h-auto"
43547
43547
  }
43548
43548
  ) });
43549
43549
  }
@@ -43751,7 +43751,7 @@ function SimulatorBoard({
43751
43751
  backgroundPosition: "center"
43752
43752
  },
43753
43753
  children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", className: "p-4", children: [
43754
- entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
43754
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
43755
43755
  /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
43756
43756
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
43757
43757
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.description })
@@ -43802,8 +43802,8 @@ function SimulatorBoard({
43802
43802
  entity.outputUnit
43803
43803
  ] }),
43804
43804
  submitted && /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "xs", align: "center", children: [
43805
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: isCorrect ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "sm", className: isCorrect ? "text-green-600" : "text-red-600" }),
43806
- /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", className: isCorrect ? "text-green-600" : "text-red-600", children: isCorrect ? entity.successMessage ?? t("simulator.correct") : entity.failMessage ?? t("simulator.incorrect") })
43805
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: isCorrect ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "sm", className: isCorrect ? "text-success" : "text-error" }),
43806
+ /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", className: isCorrect ? "text-success" : "text-error", children: isCorrect ? entity.successMessage ?? t("simulator.correct") : entity.failMessage ?? t("simulator.incorrect") })
43807
43807
  ] }),
43808
43808
  /* @__PURE__ */ jsxRuntime.jsxs(Typography, { variant: "caption", className: "text-muted-foreground", children: [
43809
43809
  t("simulator.target"),
@@ -43816,7 +43816,7 @@ function SimulatorBoard({
43816
43816
  ")"
43817
43817
  ] })
43818
43818
  ] }) }),
43819
- showHint && entity.hint && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4 border-l-4 border-l-yellow-500", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.hint }) }),
43819
+ showHint && entity.hint && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.hint }) }),
43820
43820
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", justify: "center", children: [
43821
43821
  !submitted ? /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "primary", onClick: handleSubmit, children: [
43822
43822
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Play, size: "sm" }),
@@ -44217,7 +44217,7 @@ function StateNode2({
44217
44217
  position: "absolute",
44218
44218
  display: "flex",
44219
44219
  className: cn(
44220
- "items-center justify-center rounded-full border-3 transition-all cursor-pointer select-none",
44220
+ "items-center justify-center rounded-pill border-3 transition-all cursor-pointer select-none",
44221
44221
  "min-w-[80px] h-[80px] px-3",
44222
44222
  isCurrent && "bg-primary/20 border-primary shadow-lg shadow-primary/30 scale-110",
44223
44223
  isSelected && !isCurrent && "bg-accent/20 border-accent ring-2 ring-accent/50",
@@ -44530,7 +44530,7 @@ function StateArchitectBoard({
44530
44530
  backgroundPosition: "center"
44531
44531
  },
44532
44532
  children: [
44533
- entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
44533
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
44534
44534
  /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", children: [
44535
44535
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", className: "text-foreground", children: entity.title }),
44536
44536
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-muted-foreground", children: entity.description }),
@@ -44549,7 +44549,7 @@ function StateArchitectBoard({
44549
44549
  Box,
44550
44550
  {
44551
44551
  position: "relative",
44552
- className: "rounded-lg border border-border bg-background overflow-hidden",
44552
+ className: "rounded-container border border-border bg-background overflow-hidden",
44553
44553
  style: { width: GRAPH_W, height: GRAPH_H },
44554
44554
  children: [
44555
44555
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -44608,7 +44608,7 @@ function StateArchitectBoard({
44608
44608
  children: selectedState ? t("stateArchitect.addTransition", { state: selectedState }) : t("stateArchitect.addTransitionPrompt")
44609
44609
  }
44610
44610
  ) }),
44611
- transitions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", className: "p-3 rounded-lg bg-muted/50 border border-border", children: [
44611
+ transitions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", className: "p-3 rounded-container bg-muted/50 border border-border", children: [
44612
44612
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: "text-muted-foreground font-medium", children: t("stateArchitect.transitions", { count: transitions.length }) + ":" }),
44613
44613
  transitions.map((t2) => /* @__PURE__ */ jsxRuntime.jsxs(HStack, { className: "items-center text-xs", gap: "xs", children: [
44614
44614
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: "text-foreground", children: t2.from }),
@@ -44642,7 +44642,7 @@ function StateArchitectBoard({
44642
44642
  variables
44643
44643
  }
44644
44644
  ),
44645
- testResults.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: "p-3 rounded-lg bg-card border border-border", gap: "xs", children: [
44645
+ testResults.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: "p-3 rounded-container bg-card border border-border", gap: "xs", children: [
44646
44646
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-muted-foreground font-medium", children: t("stateArchitect.testResults") + ":" }),
44647
44647
  testResults.map((r, i) => /* @__PURE__ */ jsxRuntime.jsxs(HStack, { className: "items-center text-xs", gap: "xs", children: [
44648
44648
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: r.passed ? "text-success" : "text-error", children: r.passed ? "\u2714" : "\u2717" }),
@@ -44653,10 +44653,10 @@ function StateArchitectBoard({
44653
44653
  entity.showCodeView !== false && /* @__PURE__ */ jsxRuntime.jsx(CodeView, { data: codeData, label: "View Code" })
44654
44654
  ] })
44655
44655
  ] }),
44656
- playState === "success" && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-4 rounded-lg bg-success/20 border border-success text-center", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h5", className: "text-success", children: entity.successMessage || t("stateArchitect.allPassed") }) }),
44656
+ playState === "success" && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-4 rounded-container bg-success/20 border border-success text-center", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h5", className: "text-success", children: entity.successMessage || t("stateArchitect.allPassed") }) }),
44657
44657
  playState === "fail" && /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
44658
- /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-4 rounded-lg bg-warning/10 border border-warning/30 text-center", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body1", className: "text-foreground font-medium", children: t(ENCOURAGEMENT_KEYS3[Math.min(attempts - 1, ENCOURAGEMENT_KEYS3.length - 1)] ?? ENCOURAGEMENT_KEYS3[0]) }) }),
44659
- attempts >= 3 && entity.hint && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-3 rounded-lg bg-accent/10 border border-accent/30", children: /* @__PURE__ */ jsxRuntime.jsxs(HStack, { className: "items-start", gap: "xs", children: [
44658
+ /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-4 rounded-container bg-warning/10 border border-warning/30 text-center", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body1", className: "text-foreground font-medium", children: t(ENCOURAGEMENT_KEYS3[Math.min(attempts - 1, ENCOURAGEMENT_KEYS3.length - 1)] ?? ENCOURAGEMENT_KEYS3[0]) }) }),
44659
+ attempts >= 3 && entity.hint && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-3 rounded-container bg-accent/10 border border-accent/30", children: /* @__PURE__ */ jsxRuntime.jsxs(HStack, { className: "items-start", gap: "xs", children: [
44660
44660
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-accent font-bold shrink-0", children: "\u{1F4A1} " + t("game.hint") + ":" }),
44661
44661
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-foreground", children: entity.hint })
44662
44662
  ] }) })