@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.
@@ -11501,7 +11501,7 @@ function HealthBar({
11501
11501
  "div",
11502
11502
  {
11503
11503
  className: cn(
11504
- "relative overflow-hidden rounded-full bg-gray-700",
11504
+ "relative overflow-hidden rounded-full bg-muted",
11505
11505
  sizes.bar,
11506
11506
  "w-24",
11507
11507
  className
@@ -11511,7 +11511,7 @@ function HealthBar({
11511
11511
  {
11512
11512
  className: cn(
11513
11513
  "absolute inset-y-0 left-0 rounded-full",
11514
- percentage > 66 ? "bg-green-500" : percentage > 33 ? "bg-yellow-500" : "bg-red-500",
11514
+ percentage > 66 ? "bg-success" : percentage > 33 ? "bg-warning" : "bg-error",
11515
11515
  animated && "transition-all duration-300"
11516
11516
  ),
11517
11517
  style: { width: `${percentage}%` }
@@ -11533,7 +11533,7 @@ var init_HealthBar = __esm({
11533
11533
  heartIcon = (filled, size) => /* @__PURE__ */ jsxRuntime.jsx(
11534
11534
  "svg",
11535
11535
  {
11536
- className: cn("transition-all duration-200", size, filled ? "text-red-500" : "text-gray-400"),
11536
+ className: cn("transition-all duration-200", size, filled ? "text-error" : "text-muted-foreground"),
11537
11537
  viewBox: "0 0 24 24",
11538
11538
  fill: filled ? "currentColor" : "none",
11539
11539
  stroke: "currentColor",
@@ -11597,7 +11597,7 @@ function ScoreDisplay({
11597
11597
  ),
11598
11598
  children: [
11599
11599
  icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: icon }),
11600
- label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children: label }),
11600
+ label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: label }),
11601
11601
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tabular-nums", children: formattedValue })
11602
11602
  ]
11603
11603
  }
@@ -11710,8 +11710,8 @@ var init_ControlButton = __esm({
11710
11710
  };
11711
11711
  shapeMap = {
11712
11712
  circle: "rounded-full",
11713
- rounded: "rounded-xl",
11714
- square: "rounded-md"
11713
+ rounded: "rounded-interactive",
11714
+ square: "rounded-interactive"
11715
11715
  };
11716
11716
  variantMap = {
11717
11717
  primary: "bg-primary text-primary-foreground border-primary hover:bg-primary-hover",
@@ -11879,12 +11879,12 @@ function TimerDisplay({
11879
11879
  "div",
11880
11880
  {
11881
11881
  className: cn(
11882
- "inline-flex items-center justify-center rounded-lg",
11883
- "bg-[var(--color-card)]/80 border border-gray-600 font-mono font-bold tabular-nums",
11882
+ "inline-flex items-center justify-center rounded-container",
11883
+ "bg-card/80 border border-muted font-mono font-bold tabular-nums",
11884
11884
  sizeMap4[size],
11885
- running && "border-green-500/50",
11886
- isLow && "text-red-400 border-red-500/50 animate-pulse",
11887
- !isLow && "text-[var(--color-foreground)]",
11885
+ running && "border-success/50",
11886
+ isLow && "text-error border-error/50 animate-pulse",
11887
+ !isLow && "text-foreground",
11888
11888
  className
11889
11889
  ),
11890
11890
  children: formatTime(seconds, format)
@@ -11917,17 +11917,17 @@ function ResourceCounter({
11917
11917
  "div",
11918
11918
  {
11919
11919
  className: cn(
11920
- "inline-flex items-center rounded-md",
11921
- "bg-[var(--color-card)]/80 border border-gray-600 font-medium text-[var(--color-foreground)]",
11920
+ "inline-flex items-center rounded-container",
11921
+ "bg-card/80 border border-muted font-medium text-foreground",
11922
11922
  sizes.wrapper,
11923
11923
  className
11924
11924
  ),
11925
11925
  children: [
11926
11926
  icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("flex-shrink-0", sizes.icon), children: icon }),
11927
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children: label }),
11927
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: label }),
11928
11928
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("font-bold tabular-nums", color), children: [
11929
11929
  value,
11930
- max != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-gray-500", children: [
11930
+ max != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
11931
11931
  "/",
11932
11932
  max
11933
11933
  ] })
@@ -11968,18 +11968,18 @@ function ItemSlot({
11968
11968
  disabled: !isClickable,
11969
11969
  title: label,
11970
11970
  className: cn(
11971
- "relative flex items-center justify-center rounded-lg border-2",
11972
- "bg-[var(--color-card)]/80 transition-all duration-150",
11971
+ "relative flex items-center justify-center rounded-interactive border-2",
11972
+ "bg-card/80 transition-all duration-150",
11973
11973
  sizeMap6[size],
11974
- empty ? "border-gray-700 bg-[var(--color-card)]/50" : rarityBorderMap[rarity],
11974
+ empty ? "border-border bg-card/50" : rarityBorderMap[rarity],
11975
11975
  !empty && rarityGlowMap[rarity],
11976
- selected && "ring-2 ring-white ring-offset-1 ring-offset-gray-900",
11976
+ selected && "ring-2 ring-foreground ring-offset-1 ring-offset-background",
11977
11977
  isClickable && !empty && "hover:brightness-125 cursor-pointer",
11978
- isClickable && empty && "hover:border-gray-500 cursor-pointer",
11978
+ isClickable && empty && "hover:border-muted cursor-pointer",
11979
11979
  !isClickable && "cursor-default",
11980
11980
  className
11981
11981
  ),
11982
- children: empty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-600 text-base", children: "+" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
11982
+ children: empty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
11983
11983
  icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: icon }),
11984
11984
  quantity != null && quantity > 1 && /* @__PURE__ */ jsxRuntime.jsx(
11985
11985
  "span",
@@ -11987,7 +11987,7 @@ function ItemSlot({
11987
11987
  className: cn(
11988
11988
  "absolute -bottom-1 -right-1 flex items-center justify-center",
11989
11989
  "min-w-[18px] h-[18px] rounded-full px-1",
11990
- "bg-[var(--color-surface,#374151)] border border-gray-500 text-xs font-bold text-[var(--color-foreground)]"
11990
+ "bg-surface border border-muted text-xs font-bold text-foreground"
11991
11991
  ),
11992
11992
  children: quantity
11993
11993
  }
@@ -12007,18 +12007,18 @@ var init_ItemSlot = __esm({
12007
12007
  lg: "w-18 h-18 text-3xl"
12008
12008
  };
12009
12009
  rarityBorderMap = {
12010
- common: "border-gray-500",
12011
- uncommon: "border-green-500",
12012
- rare: "border-blue-500",
12013
- epic: "border-purple-500",
12014
- legendary: "border-amber-400"
12010
+ common: "border-muted",
12011
+ uncommon: "border-success",
12012
+ rare: "border-info",
12013
+ epic: "border-accent",
12014
+ legendary: "border-warning"
12015
12015
  };
12016
12016
  rarityGlowMap = {
12017
12017
  common: "",
12018
12018
  uncommon: "",
12019
- rare: "shadow-[0_0_6px_rgba(59,130,246,0.3)]",
12020
- epic: "shadow-[0_0_8px_rgba(168,85,247,0.4)]",
12021
- legendary: "shadow-[0_0_10px_rgba(251,191,36,0.5)]"
12019
+ rare: "shadow-sm",
12020
+ epic: "shadow-lg",
12021
+ legendary: "shadow-lg"
12022
12022
  };
12023
12023
  ItemSlot.displayName = "ItemSlot";
12024
12024
  }
@@ -12036,8 +12036,8 @@ function TurnIndicator({
12036
12036
  "div",
12037
12037
  {
12038
12038
  className: cn(
12039
- "inline-flex items-center rounded-lg",
12040
- "bg-[var(--color-card)]/80 border border-gray-600 font-medium text-[var(--color-foreground)]",
12039
+ "inline-flex items-center rounded-container",
12040
+ "bg-card/80 border border-muted font-medium text-foreground",
12041
12041
  sizes.wrapper,
12042
12042
  className
12043
12043
  ),
@@ -12045,19 +12045,19 @@ function TurnIndicator({
12045
12045
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-bold tabular-nums", children: [
12046
12046
  "Turn ",
12047
12047
  currentTurn,
12048
- maxTurns != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-gray-400", children: [
12048
+ maxTurns != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
12049
12049
  "/",
12050
12050
  maxTurns
12051
12051
  ] })
12052
12052
  ] }),
12053
12053
  phase && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12054
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-600", children: "|" }),
12055
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-300", children: phase })
12054
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "|" }),
12055
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: phase })
12056
12056
  ] }),
12057
12057
  activeTeam && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12058
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-600", children: "|" }),
12059
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("rounded-full bg-green-500/20", sizes.dot) }),
12060
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-green-400", children: activeTeam })
12058
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "|" }),
12059
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("rounded-full bg-success/20", sizes.dot) }),
12060
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-success", children: activeTeam })
12061
12061
  ] })
12062
12062
  ]
12063
12063
  }
@@ -12076,10 +12076,10 @@ var init_TurnIndicator = __esm({
12076
12076
  }
12077
12077
  });
12078
12078
  function getComboIntensity(combo) {
12079
- if (combo >= 10) return "text-red-400 animate-pulse";
12080
- if (combo >= 7) return "text-orange-400";
12081
- if (combo >= 4) return "text-yellow-400";
12082
- return "text-[var(--color-foreground)]";
12079
+ if (combo >= 10) return "text-error animate-pulse";
12080
+ if (combo >= 7) return "text-warning";
12081
+ if (combo >= 4) return "text-warning";
12082
+ return "text-foreground";
12083
12083
  }
12084
12084
  function getComboScale(combo) {
12085
12085
  if (combo >= 10) return "scale-110";
@@ -12100,19 +12100,19 @@ function ComboCounter({
12100
12100
  {
12101
12101
  className: cn(
12102
12102
  "inline-flex flex-col items-center justify-center",
12103
- "rounded-xl bg-[var(--color-card)]/80 border border-gray-600 px-3 py-1.5",
12103
+ "rounded-container bg-card/80 border border-muted px-3 py-1.5",
12104
12104
  "transition-transform duration-200",
12105
12105
  getComboScale(combo),
12106
12106
  className
12107
12107
  ),
12108
12108
  children: [
12109
12109
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-black tabular-nums leading-none", sizes.combo, getComboIntensity(combo)), children: combo }),
12110
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-bold uppercase tracking-wider text-gray-400", sizes.label), children: "combo" }),
12111
- multiplier != null && multiplier > 1 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("font-bold text-amber-400 tabular-nums", sizes.multiplier), children: [
12110
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-bold uppercase tracking-wider text-muted-foreground", sizes.label), children: "combo" }),
12111
+ multiplier != null && multiplier > 1 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("font-bold text-warning tabular-nums", sizes.multiplier), children: [
12112
12112
  "x",
12113
12113
  multiplier.toFixed(1)
12114
12114
  ] }),
12115
- streak != null && streak > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("text-gray-500 tabular-nums", sizes.label), children: [
12115
+ streak != null && streak > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("text-muted-foreground tabular-nums", sizes.label), children: [
12116
12116
  streak,
12117
12117
  " streak"
12118
12118
  ] })
@@ -12148,8 +12148,8 @@ function XPBar({
12148
12148
  "span",
12149
12149
  {
12150
12150
  className: cn(
12151
- "flex-shrink-0 rounded-md font-bold",
12152
- "bg-indigo-600 text-white border border-indigo-400",
12151
+ "flex-shrink-0 rounded-interactive font-bold",
12152
+ "bg-accent text-foreground border border-accent",
12153
12153
  sizes.badge
12154
12154
  ),
12155
12155
  children: [
@@ -12163,7 +12163,7 @@ function XPBar({
12163
12163
  "div",
12164
12164
  {
12165
12165
  className: cn(
12166
- "relative w-full overflow-hidden rounded-full bg-gray-700 border border-gray-600",
12166
+ "relative w-full overflow-hidden rounded-full bg-muted border border-muted",
12167
12167
  sizes.bar
12168
12168
  ),
12169
12169
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -12171,7 +12171,7 @@ function XPBar({
12171
12171
  {
12172
12172
  className: cn(
12173
12173
  "absolute inset-y-0 left-0 rounded-full",
12174
- "bg-gradient-to-r from-indigo-600 to-purple-500",
12174
+ "bg-gradient-to-r from-accent to-info",
12175
12175
  animated && "transition-all duration-500 ease-out"
12176
12176
  ),
12177
12177
  style: { width: `${percentage}%` }
@@ -12179,7 +12179,7 @@ function XPBar({
12179
12179
  )
12180
12180
  }
12181
12181
  ),
12182
- showLabel && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("text-gray-400 tabular-nums", sizes.text), children: [
12182
+ showLabel && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("text-muted-foreground tabular-nums", sizes.text), children: [
12183
12183
  current,
12184
12184
  " / ",
12185
12185
  max,
@@ -12215,7 +12215,7 @@ function WaypointMarker({
12215
12215
  "div",
12216
12216
  {
12217
12217
  className: cn(
12218
- "absolute rounded-full border-2 border-blue-400 animate-ping opacity-50",
12218
+ "absolute rounded-full border-2 border-info animate-ping opacity-50",
12219
12219
  sizes.ring
12220
12220
  )
12221
12221
  }
@@ -12224,7 +12224,7 @@ function WaypointMarker({
12224
12224
  "div",
12225
12225
  {
12226
12226
  className: cn(
12227
- "absolute rounded-full border-2 border-blue-400",
12227
+ "absolute rounded-full border-2 border-info",
12228
12228
  sizes.ring
12229
12229
  )
12230
12230
  }
@@ -12235,9 +12235,9 @@ function WaypointMarker({
12235
12235
  className: cn(
12236
12236
  "relative flex items-center justify-center rounded-full transition-all duration-200",
12237
12237
  sizes.dot,
12238
- completed && "bg-green-500 text-white",
12239
- active && !completed && "bg-blue-500 text-white",
12240
- !active && !completed && "bg-gray-500"
12238
+ completed && "bg-success text-foreground",
12239
+ active && !completed && "bg-info text-foreground",
12240
+ !active && !completed && "bg-muted"
12241
12241
  ),
12242
12242
  children: completed ? checkIcon : icon
12243
12243
  }
@@ -12249,7 +12249,7 @@ function WaypointMarker({
12249
12249
  className: cn(
12250
12250
  "text-center whitespace-nowrap",
12251
12251
  sizes.label,
12252
- completed ? "text-green-400" : active ? "text-blue-400" : "text-gray-400"
12252
+ completed ? "text-success" : active ? "text-info" : "text-muted-foreground"
12253
12253
  ),
12254
12254
  children: label
12255
12255
  }
@@ -12290,7 +12290,7 @@ function StatusEffect({
12290
12290
  "div",
12291
12291
  {
12292
12292
  className: cn(
12293
- "relative flex items-center justify-center rounded border-2",
12293
+ "relative flex items-center justify-center rounded-interactive border-2",
12294
12294
  sizes.container,
12295
12295
  variantStyles7[variant]
12296
12296
  ),
@@ -12301,7 +12301,7 @@ function StatusEffect({
12301
12301
  "span",
12302
12302
  {
12303
12303
  className: cn(
12304
- "absolute bottom-0 left-0 right-0 text-center font-mono font-bold text-white bg-black/60 leading-tight",
12304
+ "absolute bottom-0 left-0 right-0 text-center font-mono font-bold text-foreground bg-background/60 leading-tight",
12305
12305
  sizes.timer
12306
12306
  ),
12307
12307
  children: formatDuration(duration)
@@ -12314,7 +12314,7 @@ function StatusEffect({
12314
12314
  "span",
12315
12315
  {
12316
12316
  className: cn(
12317
- "absolute flex items-center justify-center rounded-full bg-[var(--color-card)] text-[var(--color-foreground)] font-bold leading-none",
12317
+ "absolute flex items-center justify-center rounded-full bg-card text-foreground font-bold leading-none",
12318
12318
  sizes.badge
12319
12319
  ),
12320
12320
  children: stacks
@@ -12333,9 +12333,9 @@ var init_StatusEffect = __esm({
12333
12333
  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" }
12334
12334
  };
12335
12335
  variantStyles7 = {
12336
- buff: "border-green-500 bg-green-500/20",
12337
- debuff: "border-red-500 bg-red-500/20",
12338
- neutral: "border-gray-500 bg-gray-500/20"
12336
+ buff: "border-success bg-success/20",
12337
+ debuff: "border-error bg-error/20",
12338
+ neutral: "border-muted bg-muted/20"
12339
12339
  };
12340
12340
  StatusEffect.displayName = "StatusEffect";
12341
12341
  }
@@ -12374,10 +12374,10 @@ var init_DamageNumber = __esm({
12374
12374
  lg: "text-2xl"
12375
12375
  };
12376
12376
  typeStyles = {
12377
- damage: "text-red-500 font-bold",
12378
- heal: "text-green-500 font-bold",
12379
- crit: "text-orange-400 font-extrabold",
12380
- miss: "text-gray-400 italic"
12377
+ damage: "text-error font-bold",
12378
+ heal: "text-success font-bold",
12379
+ crit: "text-warning font-extrabold",
12380
+ miss: "text-muted-foreground italic"
12381
12381
  };
12382
12382
  floatKeyframes = `
12383
12383
  @keyframes damageFloat {
@@ -12400,12 +12400,12 @@ function DialogueBubble({
12400
12400
  "div",
12401
12401
  {
12402
12402
  className: cn(
12403
- "flex items-start gap-3 rounded-lg bg-black/80 backdrop-blur-sm px-4 py-3 border border-white/10",
12403
+ "flex items-start gap-3 rounded-container bg-background/80 backdrop-blur-sm px-4 py-3 border border-border/10",
12404
12404
  position === "top" ? "rounded-bl-none" : "rounded-tl-none",
12405
12405
  className
12406
12406
  ),
12407
12407
  children: [
12408
- 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(
12408
+ 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(
12409
12409
  "img",
12410
12410
  {
12411
12411
  src: portrait,
@@ -12414,8 +12414,8 @@ function DialogueBubble({
12414
12414
  }
12415
12415
  ) }),
12416
12416
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1 min-w-0", children: [
12417
- speaker && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold text-yellow-400", children: speaker }),
12418
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-[var(--color-foreground)] leading-relaxed", children: text })
12417
+ speaker && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold text-warning", children: speaker }),
12418
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-foreground leading-relaxed", children: text })
12419
12419
  ] })
12420
12420
  ]
12421
12421
  }
@@ -12442,7 +12442,7 @@ function ChoiceButton({
12442
12442
  disabled,
12443
12443
  onClick,
12444
12444
  className: cn(
12445
- "w-full text-left px-4 py-2.5 rounded-md border transition-all duration-150",
12445
+ "w-full text-left px-4 py-2.5 rounded-interactive border transition-all duration-150",
12446
12446
  "flex items-center gap-2",
12447
12447
  selected ? "bg-accent/15 border-accent text-foreground" : "bg-muted/40 border-border text-foreground hover:bg-muted hover:border-border",
12448
12448
  disabled && "opacity-40 cursor-not-allowed hover:bg-muted/40 hover:border-border",
@@ -12495,7 +12495,7 @@ function ActionButton({
12495
12495
  disabled: isDisabled,
12496
12496
  onClick,
12497
12497
  className: cn(
12498
- "relative inline-flex items-center gap-1.5 rounded-md border font-medium overflow-hidden transition-colors duration-150",
12498
+ "relative inline-flex items-center gap-1.5 rounded-interactive border font-medium overflow-hidden transition-colors duration-150",
12499
12499
  sizes.button,
12500
12500
  variantStyles8[variant],
12501
12501
  isDisabled && "opacity-60 cursor-not-allowed",
@@ -12538,9 +12538,9 @@ var init_ActionButton = __esm({
12538
12538
  init_cn();
12539
12539
  init_Icon();
12540
12540
  sizeMap13 = {
12541
- sm: { button: "px-3 py-1.5 text-xs", hotkey: "text-[9px] px-1", icon: "text-xs" },
12542
- md: { button: "px-4 py-2 text-sm", hotkey: "text-xs px-1.5", icon: "text-sm" },
12543
- lg: { button: "px-5 py-2.5 text-base", hotkey: "text-xs px-2", icon: "text-base" }
12541
+ sm: { button: "h-button-sm px-3 text-xs", hotkey: "text-[9px] px-1", icon: "text-xs" },
12542
+ md: { button: "h-button-md px-4 text-sm", hotkey: "text-xs px-1.5", icon: "text-sm" },
12543
+ lg: { button: "h-button-lg px-5 text-base", hotkey: "text-xs px-2", icon: "text-base" }
12544
12544
  };
12545
12545
  variantStyles8 = {
12546
12546
  primary: "bg-primary text-primary-foreground hover:bg-primary-hover border-primary",
@@ -12620,7 +12620,7 @@ function MiniMap({
12620
12620
  "div",
12621
12621
  {
12622
12622
  className: cn(
12623
- "relative inline-block border border-white/20 rounded",
12623
+ "relative inline-block border border-border/20 rounded-container",
12624
12624
  className
12625
12625
  ),
12626
12626
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -15336,7 +15336,7 @@ function ActionTile({
15336
15336
  {
15337
15337
  display: "flex",
15338
15338
  className: cn(
15339
- "flex-col items-center gap-1 rounded-lg border-2 transition-all select-none",
15339
+ "flex-col items-center gap-1 rounded-container border-2 transition-all select-none",
15340
15340
  config.px,
15341
15341
  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",
15342
15342
  className
@@ -16680,12 +16680,12 @@ function IsometricCanvas({
16680
16680
  return /* @__PURE__ */ jsxRuntime.jsx(
16681
16681
  Box,
16682
16682
  {
16683
- className: cn("relative w-full overflow-hidden rounded-lg", className),
16683
+ className: cn("relative w-full overflow-hidden rounded-container", className),
16684
16684
  style: { height: viewportSize.height },
16685
16685
  "data-testid": "game-canvas-empty",
16686
- 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: [
16686
+ 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: [
16687
16687
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "map", size: "xl" }),
16688
- /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", className: "text-slate-400", children: t("canvas.emptyMessage") || "No map data loaded" })
16688
+ /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", className: "text-muted-foreground", children: t("canvas.emptyMessage") || "No map data loaded" })
16689
16689
  ] }) })
16690
16690
  }
16691
16691
  );
@@ -17083,19 +17083,19 @@ function BattleBoard({
17083
17083
  }
17084
17084
  )
17085
17085
  ] }),
17086
- 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: [
17086
+ 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: [
17087
17087
  /* @__PURE__ */ jsxRuntime.jsx(
17088
17088
  Typography,
17089
17089
  {
17090
17090
  variant: "h2",
17091
17091
  className: cn(
17092
17092
  "text-4xl font-black tracking-widest uppercase",
17093
- gameResult === "victory" ? "text-yellow-400" : "text-red-500"
17093
+ gameResult === "victory" ? "text-warning" : "text-error"
17094
17094
  ),
17095
17095
  children: gameResult === "victory" ? t("battle.victory") : t("battle.defeat")
17096
17096
  }
17097
17097
  ),
17098
- /* @__PURE__ */ jsxRuntime.jsxs(Typography, { variant: "body1", className: "text-gray-300", children: [
17098
+ /* @__PURE__ */ jsxRuntime.jsxs(Typography, { variant: "body1", className: "text-muted-foreground", children: [
17099
17099
  t("battle.turnsPlayed"),
17100
17100
  ": ",
17101
17101
  currentTurn
@@ -21141,7 +21141,7 @@ function BuilderBoard({
21141
21141
  backgroundPosition: "center"
21142
21142
  },
21143
21143
  children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", className: "p-4", children: [
21144
- 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,
21144
+ 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,
21145
21145
  /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
21146
21146
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
21147
21147
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.description })
@@ -21179,7 +21179,7 @@ function BuilderBoard({
21179
21179
  {
21180
21180
  gap: "sm",
21181
21181
  align: "center",
21182
- className: `p-3 border-2 rounded ${result ? result.correct ? "border-green-500" : "border-red-500" : selectedComponent ? "border-dashed border-foreground cursor-pointer" : "border-border"}`,
21182
+ className: `p-3 border-2 rounded ${result ? result.correct ? "border-success" : "border-error" : selectedComponent ? "border-dashed border-foreground cursor-pointer" : "border-border"}`,
21183
21183
  onClick: () => handlePlaceComponent(slot.id),
21184
21184
  children: [
21185
21185
  /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", className: "flex-1", children: [
@@ -21194,7 +21194,7 @@ function BuilderBoard({
21194
21194
  ] }) : null,
21195
21195
  placedComp.label
21196
21196
  ] }),
21197
- result && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: result.correct ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "sm", className: result.correct ? "text-green-600" : "text-red-600" })
21197
+ result && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: result.correct ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "sm", className: result.correct ? "text-success" : "text-error" })
21198
21198
  ] }) : /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: t("builder.empty") })
21199
21199
  ]
21200
21200
  },
@@ -21203,10 +21203,10 @@ function BuilderBoard({
21203
21203
  }) })
21204
21204
  ] }) }),
21205
21205
  submitted && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", align: "center", children: [
21206
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: allCorrect ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "lg", className: allCorrect ? "text-green-600" : "text-red-600" }),
21206
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: allCorrect ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "lg", className: allCorrect ? "text-success" : "text-error" }),
21207
21207
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", weight: "bold", children: allCorrect ? entity.successMessage ?? t("builder.success") : entity.failMessage ?? t("builder.incorrect") })
21208
21208
  ] }) }),
21209
- 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 }) }),
21209
+ 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 }) }),
21210
21210
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", justify: "center", children: [
21211
21211
  !submitted ? /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "primary", onClick: handleSubmit, disabled: !allPlaced, children: [
21212
21212
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Wrench, size: "sm" }),
@@ -22828,7 +22828,7 @@ function CanvasEffectEngine({
22828
22828
  flash && /* @__PURE__ */ jsxRuntime.jsx(
22829
22829
  Box,
22830
22830
  {
22831
- className: "absolute inset-0 z-20 pointer-events-none rounded-lg",
22831
+ className: "absolute inset-0 z-20 pointer-events-none rounded-container",
22832
22832
  style: { backgroundColor: flash.color, opacity: flash.alpha }
22833
22833
  }
22834
22834
  ),
@@ -22896,7 +22896,7 @@ function EmojiEffect({
22896
22896
  /* @__PURE__ */ jsxRuntime.jsx(
22897
22897
  Box,
22898
22898
  {
22899
- className: "absolute rounded-full animate-ping",
22899
+ className: "absolute rounded-pill animate-ping",
22900
22900
  style: {
22901
22901
  width: 48 * intensity,
22902
22902
  height: 48 * intensity,
@@ -24713,7 +24713,7 @@ function ClassifierBoard({
24713
24713
  backgroundPosition: "center"
24714
24714
  },
24715
24715
  children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", className: "p-4", children: [
24716
- 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,
24716
+ 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,
24717
24717
  /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
24718
24718
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
24719
24719
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.description })
@@ -24728,7 +24728,7 @@ function ClassifierBoard({
24728
24728
  /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "md", children: categories.map((cat) => {
24729
24729
  const catItems = items.filter((item) => assignments[item.id] === cat.id);
24730
24730
  return /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
24731
- 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" }) }),
24731
+ 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" }) }),
24732
24732
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { justify: "between", align: "center", children: [
24733
24733
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", weight: "bold", children: cat.label }),
24734
24734
  /* @__PURE__ */ jsxRuntime.jsx(Badge, { size: "sm", children: catItems.length })
@@ -24739,12 +24739,12 @@ function ClassifierBoard({
24739
24739
  Badge,
24740
24740
  {
24741
24741
  size: "sm",
24742
- 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" : ""}`,
24742
+ className: `cursor-pointer ${result ? result.correct ? "border-success bg-success/10" : "border-error bg-error/10" : ""}`,
24743
24743
  onClick: () => handleUnassign(item.id),
24744
24744
  children: [
24745
24745
  item.iconUrl && /* @__PURE__ */ jsxRuntime.jsx("img", { src: item.iconUrl, alt: "", className: "w-3 h-3 object-contain inline-block" }),
24746
24746
  item.label,
24747
- result && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: result.correct ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "xs", className: result.correct ? "text-green-600" : "text-red-600" })
24747
+ result && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: result.correct ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "xs", className: result.correct ? "text-success" : "text-error" })
24748
24748
  ]
24749
24749
  },
24750
24750
  item.id
@@ -24767,11 +24767,11 @@ function ClassifierBoard({
24767
24767
  ] }) }, cat.id);
24768
24768
  }) }),
24769
24769
  submitted && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", align: "center", children: [
24770
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: allCorrect ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "lg", className: allCorrect ? "text-green-600" : "text-red-600" }),
24770
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: allCorrect ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "lg", className: allCorrect ? "text-success" : "text-error" }),
24771
24771
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", weight: "bold", children: allCorrect ? entity.successMessage ?? t("classifier.allCorrect") : `${correctCount}/${items.length} ${t("classifier.correct")}` }),
24772
24772
  !allCorrect && entity.failMessage && /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", className: "text-muted-foreground", children: entity.failMessage })
24773
24773
  ] }) }),
24774
- 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 }) }),
24774
+ 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 }) }),
24775
24775
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", justify: "center", children: [
24776
24776
  !submitted ? /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "primary", onClick: handleSubmit, disabled: !allAssigned, children: [
24777
24777
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Send, size: "sm" }),
@@ -25819,7 +25819,7 @@ function CraftingRecipe({
25819
25819
  Box,
25820
25820
  {
25821
25821
  className: cn(
25822
- "flex flex-wrap items-center gap-3 rounded-lg bg-gray-800/50 border border-gray-700/50 p-3",
25822
+ "flex flex-wrap items-center gap-3 rounded-container bg-muted/50 border border-border/50 p-3",
25823
25823
  className
25824
25824
  ),
25825
25825
  children: [
@@ -25836,10 +25836,10 @@ function CraftingRecipe({
25836
25836
  className: cn(!hasSufficient && "opacity-50")
25837
25837
  }
25838
25838
  ) }),
25839
- index < inputs.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "plus", size: "sm", className: "text-gray-500" })
25839
+ index < inputs.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "plus", size: "sm", className: "text-muted-foreground" })
25840
25840
  ] }, index);
25841
25841
  }) }),
25842
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "arrow-right", size: "md", className: "text-gray-400" }),
25842
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "arrow-right", size: "md", className: "text-muted-foreground" }),
25843
25843
  /* @__PURE__ */ jsxRuntime.jsx(
25844
25844
  ItemSlot,
25845
25845
  {
@@ -25927,7 +25927,7 @@ function DPad({
25927
25927
  createButton("up"),
25928
25928
  /* @__PURE__ */ jsxRuntime.jsx("div", {}),
25929
25929
  createButton("left"),
25930
- /* @__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" }) }),
25930
+ /* @__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" }) }),
25931
25931
  createButton("right"),
25932
25932
  /* @__PURE__ */ jsxRuntime.jsx("div", {}),
25933
25933
  createButton("down"),
@@ -30112,7 +30112,7 @@ function StatBadge({
30112
30112
  "div",
30113
30113
  {
30114
30114
  className: cn(
30115
- "inline-flex items-center gap-2 rounded-lg border backdrop-blur-sm",
30115
+ "inline-flex items-center gap-2 rounded-container border backdrop-blur-sm",
30116
30116
  sizeMap17[size] ?? sizeMap17.md,
30117
30117
  variantMap2[variant] ?? variantMap2.default,
30118
30118
  className
@@ -30258,10 +30258,10 @@ function QuestTracker({
30258
30258
  Box,
30259
30259
  {
30260
30260
  className: cn(
30261
- "flex items-start gap-3 rounded-lg px-3 py-2 transition-colors",
30262
- isActive && !isCompleted && "bg-blue-900/20 border border-blue-800/50",
30263
- isCompleted && "bg-green-900/10 border border-green-800/30 opacity-70",
30264
- !isActive && !isCompleted && "bg-gray-800/30 border border-gray-700/30"
30261
+ "flex items-start gap-3 rounded-container px-3 py-2 transition-colors",
30262
+ isActive && !isCompleted && "bg-info/20 border border-info/50",
30263
+ isCompleted && "bg-success/10 border border-success/30 opacity-70",
30264
+ !isActive && !isCompleted && "bg-muted/30 border border-border/30"
30265
30265
  ),
30266
30266
  children: [
30267
30267
  /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex-shrink-0 pt-0.5", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -30279,9 +30279,9 @@ function QuestTracker({
30279
30279
  variant: "body2",
30280
30280
  className: cn(
30281
30281
  "font-medium truncate",
30282
- isCompleted && "line-through text-gray-500",
30283
- isActive && !isCompleted && "text-blue-300",
30284
- !isActive && !isCompleted && "text-gray-300"
30282
+ isCompleted && "line-through text-muted-foreground",
30283
+ isActive && !isCompleted && "text-info",
30284
+ !isActive && !isCompleted && "text-muted-foreground"
30285
30285
  ),
30286
30286
  children: quest.title
30287
30287
  }
@@ -30299,7 +30299,7 @@ function QuestTracker({
30299
30299
  Typography,
30300
30300
  {
30301
30301
  variant: "caption",
30302
- className: "text-gray-500 mt-1",
30302
+ className: "text-muted-foreground mt-1",
30303
30303
  children: [
30304
30304
  quest.progress,
30305
30305
  " / ",
@@ -30356,14 +30356,14 @@ function PowerupSlots({
30356
30356
  {
30357
30357
  className: cn(
30358
30358
  "absolute -bottom-1 left-1/2 -translate-x-1/2",
30359
- "rounded px-1 py-px",
30360
- "bg-black/80 border border-gray-600"
30359
+ "rounded-interactive px-1 py-px",
30360
+ "bg-background/80 border border-border"
30361
30361
  ),
30362
30362
  children: /* @__PURE__ */ jsxRuntime.jsx(
30363
30363
  Typography,
30364
30364
  {
30365
30365
  variant: "caption",
30366
- className: "text-[9px] font-mono font-bold text-yellow-300 whitespace-nowrap",
30366
+ className: "text-[9px] font-mono font-bold text-warning whitespace-nowrap",
30367
30367
  children: formatTime2(powerup.remainingTime)
30368
30368
  }
30369
30369
  )
@@ -30485,7 +30485,7 @@ function HealthPanel({
30485
30485
  Box,
30486
30486
  {
30487
30487
  className: cn(
30488
- "rounded-lg bg-[var(--color-card)]/90 border border-gray-700 backdrop-blur-sm",
30488
+ "rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm",
30489
30489
  sizes.padding,
30490
30490
  className
30491
30491
  ),
@@ -30496,7 +30496,7 @@ function HealthPanel({
30496
30496
  {
30497
30497
  variant: "caption",
30498
30498
  weight: "bold",
30499
- className: "text-gray-300 uppercase tracking-wider",
30499
+ className: "text-muted-foreground uppercase tracking-wider",
30500
30500
  children: label
30501
30501
  }
30502
30502
  ),
@@ -30517,7 +30517,7 @@ function HealthPanel({
30517
30517
  as: "span",
30518
30518
  variant: "caption",
30519
30519
  weight: "bold",
30520
- className: "text-blue-400 ml-1",
30520
+ className: "text-info ml-1",
30521
30521
  children: [
30522
30522
  "+",
30523
30523
  shield
@@ -30542,14 +30542,14 @@ function HealthPanel({
30542
30542
  Box,
30543
30543
  {
30544
30544
  className: cn(
30545
- "relative overflow-hidden rounded-full bg-gray-700",
30545
+ "relative overflow-hidden rounded-container bg-muted",
30546
30546
  size === "sm" ? "h-1" : size === "md" ? "h-1.5" : "h-2",
30547
30547
  "w-full"
30548
30548
  ),
30549
30549
  children: /* @__PURE__ */ jsxRuntime.jsx(
30550
30550
  Box,
30551
30551
  {
30552
- className: "absolute inset-y-0 left-0 rounded-full bg-blue-500 transition-all duration-300",
30552
+ className: "absolute inset-y-0 left-0 rounded-container bg-info transition-all duration-300",
30553
30553
  style: { width: `${Math.min(100, shield / max * 100)}%` }
30554
30554
  }
30555
30555
  )
@@ -30608,7 +30608,7 @@ function ScoreBoard({
30608
30608
  Card,
30609
30609
  {
30610
30610
  className: cn(
30611
- "bg-[var(--color-card)]/90 border-gray-700 backdrop-blur-sm",
30611
+ "bg-[var(--color-card)]/90 border-border backdrop-blur-sm",
30612
30612
  className
30613
30613
  ),
30614
30614
  children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "p-3", children: /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "flex items-center gap-3 flex-wrap", children: [
@@ -30725,7 +30725,7 @@ function TurnPanel({
30725
30725
  Box,
30726
30726
  {
30727
30727
  className: cn(
30728
- "flex items-center gap-3 rounded-lg bg-[var(--color-card)]/90 border border-gray-700 backdrop-blur-sm px-3 py-2",
30728
+ "flex items-center gap-3 rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm px-3 py-2",
30729
30729
  className
30730
30730
  ),
30731
30731
  children: [
@@ -30777,7 +30777,7 @@ function EnemyPlate({
30777
30777
  Box,
30778
30778
  {
30779
30779
  className: cn(
30780
- "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",
30780
+ "inline-flex flex-col gap-1 rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm px-3 py-1.5",
30781
30781
  "min-w-[120px]",
30782
30782
  className
30783
30783
  ),
@@ -30871,7 +30871,7 @@ function UnitCommandBar({
30871
30871
  Box,
30872
30872
  {
30873
30873
  className: cn(
30874
- "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",
30874
+ "flex items-center gap-1.5 rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm px-2 py-1.5",
30875
30875
  className
30876
30876
  ),
30877
30877
  children: commands.map((command, i) => /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "flex flex-col items-center gap-0.5", children: [
@@ -30956,8 +30956,8 @@ function GameHud({
30956
30956
  className: cn(
30957
30957
  "relative z-10",
30958
30958
  positionMap[position],
30959
- transparent && "bg-gradient-to-b from-black/50 to-transparent",
30960
- position === "bottom" && "bg-gradient-to-t from-black/50 to-transparent",
30959
+ transparent && "bg-gradient-to-b from-background/50 to-transparent",
30960
+ position === "bottom" && "bg-gradient-to-t from-background/50 to-transparent",
30961
30961
  className
30962
30962
  ),
30963
30963
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-4", children: stats.map((stat, i) => /* @__PURE__ */ jsxRuntime.jsx(StatBadge, { ...stat, size }, i)) })
@@ -31115,8 +31115,8 @@ function DialogueBox({
31115
31115
  tabIndex: 0,
31116
31116
  role: "dialog",
31117
31117
  "aria-label": "Dialogue",
31118
- 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: [
31119
- dialogue.portrait && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 p-4 border-r border-gray-700", children: /* @__PURE__ */ jsxRuntime.jsx(
31118
+ 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: [
31119
+ dialogue.portrait && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 p-4 border-r border-border", children: /* @__PURE__ */ jsxRuntime.jsx(
31120
31120
  "img",
31121
31121
  {
31122
31122
  src: dialogue.portrait,
@@ -31126,7 +31126,7 @@ function DialogueBox({
31126
31126
  }
31127
31127
  ) }),
31128
31128
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 p-4", children: [
31129
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-yellow-400 font-bold mb-2", children: dialogue.speaker }),
31129
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-warning font-bold mb-2", children: dialogue.speaker }),
31130
31130
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-[var(--color-foreground)] text-lg leading-relaxed min-h-[60px]", children: [
31131
31131
  displayedText,
31132
31132
  isTyping && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "animate-pulse", children: "\u258C" })
@@ -31136,9 +31136,9 @@ function DialogueBox({
31136
31136
  {
31137
31137
  type: "button",
31138
31138
  className: cn(
31139
- "block w-full text-left px-4 py-2 rounded transition-colors",
31140
- "hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-yellow-400",
31141
- selectedChoice === index ? "bg-[var(--color-surface,#374151)] text-yellow-400" : "bg-[var(--color-card)] text-[var(--color-foreground)]"
31139
+ "block w-full text-left px-4 py-2 rounded-interactive transition-colors",
31140
+ "hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-warning",
31141
+ selectedChoice === index ? "bg-[var(--color-surface,#374151)] text-warning" : "bg-[var(--color-card)] text-[var(--color-foreground)]"
31142
31142
  ),
31143
31143
  onClick: (e) => {
31144
31144
  e.stopPropagation();
@@ -31146,7 +31146,7 @@ function DialogueBox({
31146
31146
  onChoice?.(choice);
31147
31147
  },
31148
31148
  children: [
31149
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-gray-500 mr-2", children: [
31149
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground mr-2", children: [
31150
31150
  index + 1,
31151
31151
  "."
31152
31152
  ] }),
@@ -31155,7 +31155,7 @@ function DialogueBox({
31155
31155
  },
31156
31156
  index
31157
31157
  )) }),
31158
- !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..." })
31158
+ !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..." })
31159
31159
  ] })
31160
31160
  ] }) })
31161
31161
  }
@@ -31258,7 +31258,7 @@ function InventoryPanel({
31258
31258
  /* @__PURE__ */ jsxRuntime.jsx(
31259
31259
  "div",
31260
31260
  {
31261
- className: "grid gap-1 bg-[var(--color-card)] p-2 rounded-lg border border-gray-700",
31261
+ className: "grid gap-1 bg-[var(--color-card)] p-2 rounded-container border border-border",
31262
31262
  style: {
31263
31263
  gridTemplateColumns: `repeat(${safeColumns}, ${slotSize}px)`,
31264
31264
  gridTemplateRows: `repeat(${rows}, ${slotSize}px)`
@@ -31270,8 +31270,8 @@ function InventoryPanel({
31270
31270
  className: cn(
31271
31271
  "relative flex items-center justify-center",
31272
31272
  "bg-[var(--color-card)] border rounded transition-colors",
31273
- "hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-blue-500",
31274
- selectedSlot === index ? "border-yellow-400 bg-[var(--color-surface,#374151)]" : "border-gray-600"
31273
+ "hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-info",
31274
+ selectedSlot === index ? "border-warning bg-[var(--color-surface,#374151)]" : "border-muted"
31275
31275
  ),
31276
31276
  style: { width: slotSize, height: slotSize },
31277
31277
  onClick: () => handleSlotClick(index),
@@ -31290,8 +31290,8 @@ function InventoryPanel({
31290
31290
  className: "w-8 h-8 object-contain",
31291
31291
  style: { imageRendering: "pixelated" }
31292
31292
  }
31293
- ) : /* @__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() }),
31294
- 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 })
31293
+ ) : /* @__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() }),
31294
+ 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 })
31295
31295
  ] })
31296
31296
  },
31297
31297
  index
@@ -31301,7 +31301,7 @@ function InventoryPanel({
31301
31301
  showTooltips && hoveredItem && /* @__PURE__ */ jsxRuntime.jsxs(
31302
31302
  "div",
31303
31303
  {
31304
- className: "fixed z-50 bg-[var(--color-card)] border border-gray-600 rounded-lg p-2 shadow-lg pointer-events-none",
31304
+ className: "fixed z-50 bg-[var(--color-card)] border border-border rounded-container p-2 shadow-elevation-card pointer-events-none",
31305
31305
  style: {
31306
31306
  left: tooltipPosition.x,
31307
31307
  top: tooltipPosition.y,
@@ -31309,8 +31309,8 @@ function InventoryPanel({
31309
31309
  },
31310
31310
  children: [
31311
31311
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-semibold text-[var(--color-foreground)]", children: hoveredItem.name || hoveredItem.type }),
31312
- hoveredItem.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-gray-400 mt-1", children: hoveredItem.description }),
31313
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-xs text-gray-500 mt-1", children: [
31312
+ hoveredItem.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-muted-foreground mt-1", children: hoveredItem.description }),
31313
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-xs text-muted-foreground mt-1", children: [
31314
31314
  "Quantity: ",
31315
31315
  hoveredItem.quantity
31316
31316
  ] })
@@ -31388,7 +31388,7 @@ function GameMenu({
31388
31388
  children: title
31389
31389
  }
31390
31390
  ),
31391
- subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-lg text-gray-400 tracking-widest uppercase", children: subtitle })
31391
+ subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-lg text-muted-foreground tracking-widest uppercase", children: subtitle })
31392
31392
  ] }),
31393
31393
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4 w-full max-w-md", children: resolvedOptions.map((option, index) => /* @__PURE__ */ jsxRuntime.jsx(
31394
31394
  "button",
@@ -31396,10 +31396,10 @@ function GameMenu({
31396
31396
  onClick: () => handleOptionClick(option),
31397
31397
  disabled: option.disabled,
31398
31398
  className: cn(
31399
- "w-full py-4 px-8 rounded-xl border-2 font-bold text-lg",
31399
+ "w-full py-4 px-8 rounded-container border-2 font-bold text-lg",
31400
31400
  "transition-all duration-200 transform",
31401
31401
  "hover:scale-105 active:scale-95",
31402
- "focus:outline-none focus:ring-4 focus:ring-white/25",
31402
+ "focus:outline-none focus:ring-4 focus:ring-foreground/25",
31403
31403
  variantMap3[option.variant ?? "secondary"] ?? variantMap3.secondary,
31404
31404
  option.disabled && "opacity-50 cursor-not-allowed hover:scale-100"
31405
31405
  ),
@@ -31411,8 +31411,8 @@ function GameMenu({
31411
31411
  index
31412
31412
  )) }),
31413
31413
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none overflow-hidden", children: [
31414
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-1/4 left-1/4 w-64 h-64 bg-blue-500/10 rounded-full blur-3xl" }),
31415
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute bottom-1/4 right-1/4 w-96 h-96 bg-purple-500/10 rounded-full blur-3xl" })
31414
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-1/4 left-1/4 w-64 h-64 bg-info/10 rounded-container blur-3xl" }),
31415
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute bottom-1/4 right-1/4 w-96 h-96 bg-accent/10 rounded-container blur-3xl" })
31416
31416
  ] })
31417
31417
  ]
31418
31418
  }
@@ -31425,9 +31425,9 @@ var init_GameMenu = __esm({
31425
31425
  init_cn();
31426
31426
  init_useEventBus();
31427
31427
  variantMap3 = {
31428
- primary: "bg-[var(--color-primary)] hover:bg-blue-500 text-[var(--color-primary-foreground)] border-blue-400 shadow-lg shadow-blue-500/25",
31429
- secondary: "bg-[var(--color-surface,#374151)] hover:bg-gray-600 text-[var(--color-foreground)] border-gray-500",
31430
- ghost: "bg-transparent hover:bg-white/10 text-[var(--color-foreground)] border-white/20"
31428
+ primary: "bg-[var(--color-primary)] hover:bg-info text-[var(--color-primary-foreground)] border-info shadow-lg shadow-info/25",
31429
+ secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
31430
+ ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
31431
31431
  };
31432
31432
  GameMenu.displayName = "GameMenu";
31433
31433
  }
@@ -31495,13 +31495,13 @@ function GameOverScreen({
31495
31495
  children: title
31496
31496
  }
31497
31497
  ),
31498
- message && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xl text-gray-300 mb-8 text-center max-w-md", children: message }),
31499
- 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}" }) }),
31498
+ message && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xl text-muted-foreground mb-8 text-center max-w-md", children: message }),
31499
+ 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}" }) }),
31500
31500
  stats.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
31501
31501
  "div",
31502
31502
  {
31503
31503
  className: cn(
31504
- "mb-8 p-6 rounded-xl border-2 bg-black/30",
31504
+ "mb-8 p-6 rounded-container border-2 bg-background/30",
31505
31505
  colors.accent
31506
31506
  ),
31507
31507
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-4", children: stats.map((stat, index) => {
@@ -31510,7 +31510,7 @@ function GameOverScreen({
31510
31510
  displayValue = formatTime3(displayValue);
31511
31511
  }
31512
31512
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
31513
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-gray-400 text-sm mb-1", children: stat.label }),
31513
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground text-sm mb-1", children: stat.label }),
31514
31514
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-[var(--color-foreground)] text-2xl font-bold flex items-center justify-center gap-2", children: [
31515
31515
  stat.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { children: stat.icon }),
31516
31516
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tabular-nums", children: displayValue })
@@ -31524,10 +31524,10 @@ function GameOverScreen({
31524
31524
  {
31525
31525
  onClick: () => handleActionClick(action),
31526
31526
  className: cn(
31527
- "px-8 py-4 rounded-xl border-2 font-bold text-lg",
31527
+ "px-8 py-4 rounded-container border-2 font-bold text-lg",
31528
31528
  "transition-all duration-200",
31529
31529
  "hover:scale-105 active:scale-95",
31530
- "focus:outline-none focus:ring-4 focus:ring-white/25",
31530
+ "focus:outline-none focus:ring-4 focus:ring-foreground/25",
31531
31531
  buttonVariants[action.variant ?? "secondary"]
31532
31532
  ),
31533
31533
  children: action.label
@@ -31546,25 +31546,25 @@ var init_GameOverScreen = __esm({
31546
31546
  init_useEventBus();
31547
31547
  variantColors = {
31548
31548
  victory: {
31549
- bg: "from-green-900/90 to-emerald-950/90",
31550
- title: "text-green-400",
31551
- accent: "border-green-500"
31549
+ bg: "from-success/90 to-success/90",
31550
+ title: "text-success",
31551
+ accent: "border-success"
31552
31552
  },
31553
31553
  defeat: {
31554
- bg: "from-red-900/90 to-gray-950/90",
31555
- title: "text-red-400",
31556
- accent: "border-red-500"
31554
+ bg: "from-error/90 to-background/90",
31555
+ title: "text-error",
31556
+ accent: "border-error"
31557
31557
  },
31558
31558
  neutral: {
31559
- bg: "from-gray-900/90 to-gray-950/90",
31560
- title: "text-white",
31561
- accent: "border-gray-500"
31559
+ bg: "from-muted/90 to-background/90",
31560
+ title: "text-foreground",
31561
+ accent: "border-muted"
31562
31562
  }
31563
31563
  };
31564
31564
  buttonVariants = {
31565
- primary: "bg-[var(--color-primary)] hover:bg-blue-500 text-[var(--color-primary-foreground)] border-blue-400",
31566
- secondary: "bg-[var(--color-surface,#374151)] hover:bg-gray-600 text-[var(--color-foreground)] border-gray-500",
31567
- ghost: "bg-transparent hover:bg-white/10 text-[var(--color-foreground)] border-white/20"
31565
+ primary: "bg-[var(--color-primary)] hover:bg-info text-[var(--color-primary-foreground)] border-info",
31566
+ secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
31567
+ ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
31568
31568
  };
31569
31569
  GameOverScreen.displayName = "GameOverScreen";
31570
31570
  }
@@ -31798,7 +31798,7 @@ function PlatformerCanvas({
31798
31798
  {
31799
31799
  ref: canvasRef,
31800
31800
  style: { width: canvasWidth, height: canvasHeight },
31801
- className: cn("block rounded-lg border border-white/10", className),
31801
+ className: cn("block rounded-container border border-border/10", className),
31802
31802
  "data-testid": "platformer-canvas",
31803
31803
  tabIndex: 0
31804
31804
  }
@@ -38938,7 +38938,7 @@ function DebuggerBoard({
38938
38938
  backgroundPosition: "center"
38939
38939
  },
38940
38940
  children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", className: "p-4", children: [
38941
- 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,
38941
+ 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,
38942
38942
  /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
38943
38943
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "xs", align: "center", children: [
38944
38944
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Bug, size: "sm" }),
@@ -38951,11 +38951,11 @@ function DebuggerBoard({
38951
38951
  const isFlagged = flaggedLines.has(line.id);
38952
38952
  let lineStyle = "";
38953
38953
  if (submitted) {
38954
- if (line.isBug && isFlagged) lineStyle = "bg-green-50 dark:bg-green-950";
38955
- else if (line.isBug && !isFlagged) lineStyle = "bg-yellow-50 dark:bg-yellow-950";
38956
- else if (!line.isBug && isFlagged) lineStyle = "bg-red-50 dark:bg-red-950";
38954
+ if (line.isBug && isFlagged) lineStyle = "bg-success/10";
38955
+ else if (line.isBug && !isFlagged) lineStyle = "bg-warning/10";
38956
+ else if (!line.isBug && isFlagged) lineStyle = "bg-error/10";
38957
38957
  } else if (isFlagged) {
38958
- lineStyle = "bg-red-50 dark:bg-red-950";
38958
+ lineStyle = "bg-error/10";
38959
38959
  }
38960
38960
  return /* @__PURE__ */ jsxRuntime.jsxs(
38961
38961
  HStack,
@@ -38968,8 +38968,8 @@ function DebuggerBoard({
38968
38968
  /* @__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 }) }),
38969
38969
  /* @__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 }) }),
38970
38970
  /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "w-8 flex-shrink-0 flex items-center justify-center", children: [
38971
- isFlagged && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Bug, size: "xs", className: "text-red-600" }),
38972
- submitted && line.isBug && !isFlagged && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Bug, size: "xs", className: "text-yellow-600" })
38971
+ isFlagged && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Bug, size: "xs", className: "text-error" }),
38972
+ submitted && line.isBug && !isFlagged && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Bug, size: "xs", className: "text-warning" })
38973
38973
  ] })
38974
38974
  ]
38975
38975
  },
@@ -38984,7 +38984,7 @@ function DebuggerBoard({
38984
38984
  {
38985
38985
  icon: flaggedLines.has(line.id) ? LucideIcons2.CheckCircle : LucideIcons2.XCircle,
38986
38986
  size: "xs",
38987
- className: flaggedLines.has(line.id) ? "text-green-600 mt-0.5" : "text-yellow-600 mt-0.5"
38987
+ className: flaggedLines.has(line.id) ? "text-success mt-0.5" : "text-warning mt-0.5"
38988
38988
  }
38989
38989
  ),
38990
38990
  /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", children: [
@@ -38993,7 +38993,7 @@ function DebuggerBoard({
38993
38993
  ] })
38994
38994
  ] }, line.id))
38995
38995
  ] }) }),
38996
- 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 }) }),
38996
+ 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 }) }),
38997
38997
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", justify: "center", children: [
38998
38998
  !submitted ? /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "primary", onClick: handleSubmit, disabled: flaggedLines.size === 0, children: [
38999
38999
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Send, size: "sm" }),
@@ -39716,7 +39716,7 @@ function LinearView({
39716
39716
  className
39717
39717
  }) {
39718
39718
  const currentIdx = trait.states.indexOf(trait.currentState);
39719
- return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-lg bg-card border border-border", className), gap: "sm", children: [
39719
+ return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
39720
39720
  trait.description && /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: trait.description }),
39721
39721
  /* @__PURE__ */ jsxRuntime.jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
39722
39722
  const isDone = i < currentIdx;
@@ -39738,10 +39738,10 @@ function LinearView({
39738
39738
  {
39739
39739
  display: "inline-flex",
39740
39740
  className: cn(
39741
- "items-center justify-center rounded-full px-3 py-1 border-2 transition-all",
39741
+ "items-center justify-center rounded-pill px-3 py-1 border-2 transition-all",
39742
39742
  SIZE_CONFIG2[size || "md"].fontSize,
39743
39743
  isDone && "bg-success/20 border-success text-success",
39744
- isCurrent && "bg-primary/20 border-primary text-primary font-bold shadow-md shadow-primary/20",
39744
+ isCurrent && "bg-primary/20 border-primary text-primary font-bold shadow-elevation-card shadow-primary/20",
39745
39745
  !isDone && !isCurrent && "bg-muted border-border text-muted-foreground"
39746
39746
  ),
39747
39747
  children: [
@@ -39763,7 +39763,7 @@ function CompactView({
39763
39763
  const { t } = useTranslate();
39764
39764
  const config = SIZE_CONFIG2[size || "md"];
39765
39765
  const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
39766
- return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-lg bg-card border border-border", className), gap: "sm", children: [
39766
+ return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
39767
39767
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { className: "items-center justify-between", children: [
39768
39768
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-foreground font-bold", children: trait.name }),
39769
39769
  /* @__PURE__ */ jsxRuntime.jsx(StateIndicator, { state: trait.currentState, size: "sm", stateStyles })
@@ -39799,7 +39799,7 @@ function FullView({
39799
39799
  const { t } = useTranslate();
39800
39800
  const config = SIZE_CONFIG2[size || "md"];
39801
39801
  const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
39802
- return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-lg bg-card border border-border", className), gap: "sm", children: [
39802
+ return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
39803
39803
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { className: "items-center justify-between", children: [
39804
39804
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-foreground font-bold", children: trait.name }),
39805
39805
  /* @__PURE__ */ jsxRuntime.jsx(StateIndicator, { state: trait.currentState, size: "sm", stateStyles })
@@ -39813,9 +39813,9 @@ function FullView({
39813
39813
  {
39814
39814
  display: "flex",
39815
39815
  className: cn(
39816
- "items-center justify-center rounded-md border-2 transition-all px-2",
39816
+ "items-center justify-center rounded-container border-2 transition-all px-2",
39817
39817
  config.nodeSize,
39818
- isCurrent && "bg-primary/20 border-primary shadow-md shadow-primary/20",
39818
+ isCurrent && "bg-primary/20 border-primary shadow-elevation-card shadow-primary/20",
39819
39819
  !isCurrent && hasOutgoing && "bg-muted border-border hover:border-muted-foreground",
39820
39820
  !isCurrent && !hasOutgoing && "bg-background border-border opacity-60",
39821
39821
  onStateClick && "cursor-pointer"
@@ -40245,7 +40245,7 @@ function EventHandlerBoard({
40245
40245
  backgroundPosition: "center"
40246
40246
  },
40247
40247
  children: [
40248
- 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,
40248
+ 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,
40249
40249
  /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", children: [
40250
40250
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", className: "text-foreground", children: entity.title }),
40251
40251
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-muted-foreground", children: entity.description }),
@@ -40260,7 +40260,7 @@ function EventHandlerBoard({
40260
40260
  Box,
40261
40261
  {
40262
40262
  className: cn(
40263
- "p-3 rounded-lg border-2 cursor-pointer transition-all hover:scale-105",
40263
+ "p-3 rounded-container border-2 cursor-pointer transition-all hover:scale-105",
40264
40264
  selectedObjectId === obj.id ? "border-primary bg-primary/10" : "border-border bg-card hover:border-muted-foreground"
40265
40265
  ),
40266
40266
  onClick: () => setSelectedObjectId(obj.id),
@@ -40282,10 +40282,10 @@ function EventHandlerBoard({
40282
40282
  }
40283
40283
  ),
40284
40284
  eventLog.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(EventLog, { entries: eventLog }),
40285
- 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") }) }),
40285
+ 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") }) }),
40286
40286
  playState === "fail" && /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
40287
- /* @__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) }) }),
40288
- 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: [
40287
+ /* @__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) }) }),
40288
+ 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: [
40289
40289
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-accent font-bold shrink-0", children: "\u{1F4A1} " + t("game.hint") + ":" }),
40290
40290
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-foreground", children: entity.hint })
40291
40291
  ] }) })
@@ -43458,7 +43458,7 @@ function NegotiatorBoard({
43458
43458
  backgroundPosition: "center"
43459
43459
  },
43460
43460
  children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", className: "p-4", children: [
43461
- 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,
43461
+ 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,
43462
43462
  /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
43463
43463
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
43464
43464
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.description }),
@@ -43504,7 +43504,7 @@ function NegotiatorBoard({
43504
43504
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: "vs" }),
43505
43505
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", children: getActionLabel(round.opponentAction) }),
43506
43506
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.ArrowRight, size: "xs" }),
43507
- /* @__PURE__ */ jsxRuntime.jsxs(Typography, { variant: "caption", weight: "bold", className: "text-green-600", children: [
43507
+ /* @__PURE__ */ jsxRuntime.jsxs(Typography, { variant: "caption", weight: "bold", className: "text-success", children: [
43508
43508
  "+",
43509
43509
  round.playerPayoff
43510
43510
  ] }),
@@ -43515,7 +43515,7 @@ function NegotiatorBoard({
43515
43515
  ] }, round.round))
43516
43516
  ] }) }),
43517
43517
  isComplete && /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", align: "center", children: [
43518
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.CheckCircle, size: "lg", className: won ? "text-green-600" : "text-red-600" }),
43518
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.CheckCircle, size: "lg", className: won ? "text-success" : "text-error" }),
43519
43519
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", weight: "bold", children: won ? entity.successMessage ?? t("negotiator.success") : entity.failMessage ?? t("negotiator.failed") }),
43520
43520
  /* @__PURE__ */ jsxRuntime.jsxs(Typography, { variant: "caption", className: "text-muted-foreground", children: [
43521
43521
  t("negotiator.finalScore"),
@@ -43525,7 +43525,7 @@ function NegotiatorBoard({
43525
43525
  entity.targetScore
43526
43526
  ] })
43527
43527
  ] }) }),
43528
- 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 }) }),
43528
+ 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 }) }),
43529
43529
  isComplete && !won && /* @__PURE__ */ jsxRuntime.jsx(HStack, { justify: "center", children: /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "primary", onClick: handleReset, children: t("negotiator.playAgain") }) })
43530
43530
  ] })
43531
43531
  }
@@ -46129,7 +46129,7 @@ function TraitSlot({
46129
46129
  display: "flex",
46130
46130
  position: "relative",
46131
46131
  className: cn(
46132
- "items-center justify-center rounded-lg transition-all duration-200",
46132
+ "items-center justify-center rounded-container transition-all duration-200 bg-card/50",
46133
46133
  !locked && "cursor-pointer",
46134
46134
  locked && "cursor-not-allowed opacity-50",
46135
46135
  isEmpty && !locked && "border-2 border-dashed border-border hover:border-muted-foreground",
@@ -46145,7 +46145,7 @@ function TraitSlot({
46145
46145
  style: {
46146
46146
  width: config.box,
46147
46147
  height: config.box,
46148
- backgroundColor: catColor?.bg || "rgba(30,41,59,0.5)",
46148
+ backgroundColor: catColor?.bg || void 0,
46149
46149
  borderColor: isDragOver ? void 0 : feedback === "correct" ? "var(--color-success)" : feedback === "wrong" ? "var(--color-error)" : catColor?.border || void 0
46150
46150
  },
46151
46151
  onClick: handleClick,
@@ -46174,7 +46174,7 @@ function TraitSlot({
46174
46174
  Box,
46175
46175
  {
46176
46176
  position: "absolute",
46177
- 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",
46177
+ 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",
46178
46178
  onClick: handleRemove,
46179
46179
  children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: "text-foreground text-xs leading-none", children: "\xD7" })
46180
46180
  }
@@ -46184,14 +46184,14 @@ function TraitSlot({
46184
46184
  Box,
46185
46185
  {
46186
46186
  position: "absolute",
46187
- className: "-bottom-1 -left-1 w-4 h-4 bg-card rounded-full flex items-center justify-center border border-border",
46187
+ className: "-bottom-1 -left-1 w-4 h-4 bg-card rounded-pill flex items-center justify-center border border-border",
46188
46188
  children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: "text-muted-foreground text-xs", children: slotNumber })
46189
46189
  }
46190
46190
  ),
46191
46191
  showTooltip && isHovered && itemMachine && !isEmpty && equippedItem && /* @__PURE__ */ jsxRuntime.jsxs(
46192
46192
  Box,
46193
46193
  {
46194
- className: "p-3 bg-background border border-border rounded-lg shadow-xl",
46194
+ className: "p-3 bg-background border border-border rounded-container shadow-xl",
46195
46195
  style: {
46196
46196
  ...getTooltipStyle(),
46197
46197
  minWidth: 200,
@@ -46441,12 +46441,12 @@ function SequencerBoard({
46441
46441
  backgroundPosition: "center"
46442
46442
  },
46443
46443
  children: [
46444
- 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,
46444
+ 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,
46445
46445
  /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", children: [
46446
46446
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", className: "text-foreground", children: entity.title }),
46447
46447
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-muted-foreground", children: entity.description })
46448
46448
  ] }),
46449
- 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: [
46449
+ 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: [
46450
46450
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-accent font-bold shrink-0", children: "\u{1F4A1} " + t("game.hint") + ":" }),
46451
46451
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-foreground", children: entity.hint })
46452
46452
  ] }) }),
@@ -46484,8 +46484,8 @@ function SequencerBoard({
46484
46484
  label: t("sequencer.dragActions")
46485
46485
  }
46486
46486
  ),
46487
- 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) }) }),
46488
- 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") }) }),
46487
+ 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) }) }),
46488
+ 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") }) }),
46489
46489
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", children: [
46490
46490
  /* @__PURE__ */ jsxRuntime.jsx(
46491
46491
  Button,
@@ -47161,7 +47161,7 @@ function SimulationCanvas({
47161
47161
  ref: canvasRef,
47162
47162
  width,
47163
47163
  height,
47164
- className: "rounded-md block max-w-full h-auto"
47164
+ className: "rounded-container block max-w-full h-auto"
47165
47165
  }
47166
47166
  ) });
47167
47167
  }
@@ -47369,7 +47369,7 @@ function SimulatorBoard({
47369
47369
  backgroundPosition: "center"
47370
47370
  },
47371
47371
  children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "lg", className: "p-4", children: [
47372
- 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,
47372
+ 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,
47373
47373
  /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
47374
47374
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
47375
47375
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", children: entity.description })
@@ -47420,8 +47420,8 @@ function SimulatorBoard({
47420
47420
  entity.outputUnit
47421
47421
  ] }),
47422
47422
  submitted && /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "xs", align: "center", children: [
47423
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: isCorrect ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "sm", className: isCorrect ? "text-green-600" : "text-red-600" }),
47424
- /* @__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") })
47423
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: isCorrect ? LucideIcons2.CheckCircle : LucideIcons2.XCircle, size: "sm", className: isCorrect ? "text-success" : "text-error" }),
47424
+ /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", className: isCorrect ? "text-success" : "text-error", children: isCorrect ? entity.successMessage ?? t("simulator.correct") : entity.failMessage ?? t("simulator.incorrect") })
47425
47425
  ] }),
47426
47426
  /* @__PURE__ */ jsxRuntime.jsxs(Typography, { variant: "caption", className: "text-muted-foreground", children: [
47427
47427
  t("simulator.target"),
@@ -47434,7 +47434,7 @@ function SimulatorBoard({
47434
47434
  ")"
47435
47435
  ] })
47436
47436
  ] }) }),
47437
- 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 }) }),
47437
+ 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 }) }),
47438
47438
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", justify: "center", children: [
47439
47439
  !submitted ? /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "primary", onClick: handleSubmit, children: [
47440
47440
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: LucideIcons2.Play, size: "sm" }),
@@ -47835,7 +47835,7 @@ function StateNode2({
47835
47835
  position: "absolute",
47836
47836
  display: "flex",
47837
47837
  className: cn(
47838
- "items-center justify-center rounded-full border-3 transition-all cursor-pointer select-none",
47838
+ "items-center justify-center rounded-pill border-3 transition-all cursor-pointer select-none",
47839
47839
  "min-w-[80px] h-[80px] px-3",
47840
47840
  isCurrent && "bg-primary/20 border-primary shadow-lg shadow-primary/30 scale-110",
47841
47841
  isSelected && !isCurrent && "bg-accent/20 border-accent ring-2 ring-accent/50",
@@ -48148,7 +48148,7 @@ function StateArchitectBoard({
48148
48148
  backgroundPosition: "center"
48149
48149
  },
48150
48150
  children: [
48151
- 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,
48151
+ 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,
48152
48152
  /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", children: [
48153
48153
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", className: "text-foreground", children: entity.title }),
48154
48154
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-muted-foreground", children: entity.description }),
@@ -48167,7 +48167,7 @@ function StateArchitectBoard({
48167
48167
  Box,
48168
48168
  {
48169
48169
  position: "relative",
48170
- className: "rounded-lg border border-border bg-background overflow-hidden",
48170
+ className: "rounded-container border border-border bg-background overflow-hidden",
48171
48171
  style: { width: GRAPH_W, height: GRAPH_H },
48172
48172
  children: [
48173
48173
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -48226,7 +48226,7 @@ function StateArchitectBoard({
48226
48226
  children: selectedState ? t("stateArchitect.addTransition", { state: selectedState }) : t("stateArchitect.addTransitionPrompt")
48227
48227
  }
48228
48228
  ) }),
48229
- transitions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", className: "p-3 rounded-lg bg-muted/50 border border-border", children: [
48229
+ transitions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", className: "p-3 rounded-container bg-muted/50 border border-border", children: [
48230
48230
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: "text-muted-foreground font-medium", children: t("stateArchitect.transitions", { count: transitions.length }) + ":" }),
48231
48231
  transitions.map((t2) => /* @__PURE__ */ jsxRuntime.jsxs(HStack, { className: "items-center text-xs", gap: "xs", children: [
48232
48232
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: "text-foreground", children: t2.from }),
@@ -48260,7 +48260,7 @@ function StateArchitectBoard({
48260
48260
  variables
48261
48261
  }
48262
48262
  ),
48263
- testResults.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: "p-3 rounded-lg bg-card border border-border", gap: "xs", children: [
48263
+ testResults.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: "p-3 rounded-container bg-card border border-border", gap: "xs", children: [
48264
48264
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-muted-foreground font-medium", children: t("stateArchitect.testResults") + ":" }),
48265
48265
  testResults.map((r2, i) => /* @__PURE__ */ jsxRuntime.jsxs(HStack, { className: "items-center text-xs", gap: "xs", children: [
48266
48266
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: r2.passed ? "text-success" : "text-error", children: r2.passed ? "\u2714" : "\u2717" }),
@@ -48271,10 +48271,10 @@ function StateArchitectBoard({
48271
48271
  entity.showCodeView !== false && /* @__PURE__ */ jsxRuntime.jsx(CodeView, { data: codeData, label: "View Code" })
48272
48272
  ] })
48273
48273
  ] }),
48274
- 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") }) }),
48274
+ 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") }) }),
48275
48275
  playState === "fail" && /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", children: [
48276
- /* @__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]) }) }),
48277
- 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: [
48276
+ /* @__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]) }) }),
48277
+ 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: [
48278
48278
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-accent font-bold shrink-0", children: "\u{1F4A1} " + t("game.hint") + ":" }),
48279
48279
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-foreground", children: entity.hint })
48280
48280
  ] }) })