@almadar/ui 5.9.5 → 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.
@@ -6721,7 +6721,7 @@ function HealthBar({
6721
6721
  "div",
6722
6722
  {
6723
6723
  className: cn(
6724
- "relative overflow-hidden rounded-full bg-gray-700",
6724
+ "relative overflow-hidden rounded-full bg-muted",
6725
6725
  sizes.bar,
6726
6726
  "w-24",
6727
6727
  className
@@ -6731,7 +6731,7 @@ function HealthBar({
6731
6731
  {
6732
6732
  className: cn(
6733
6733
  "absolute inset-y-0 left-0 rounded-full",
6734
- percentage > 66 ? "bg-green-500" : percentage > 33 ? "bg-yellow-500" : "bg-red-500",
6734
+ percentage > 66 ? "bg-success" : percentage > 33 ? "bg-warning" : "bg-error",
6735
6735
  animated && "transition-all duration-300"
6736
6736
  ),
6737
6737
  style: { width: `${percentage}%` }
@@ -6753,7 +6753,7 @@ var init_HealthBar = __esm({
6753
6753
  heartIcon = (filled, size) => /* @__PURE__ */ jsx(
6754
6754
  "svg",
6755
6755
  {
6756
- className: cn("transition-all duration-200", size, filled ? "text-red-500" : "text-gray-400"),
6756
+ className: cn("transition-all duration-200", size, filled ? "text-error" : "text-muted-foreground"),
6757
6757
  viewBox: "0 0 24 24",
6758
6758
  fill: filled ? "currentColor" : "none",
6759
6759
  stroke: "currentColor",
@@ -6817,7 +6817,7 @@ function ScoreDisplay({
6817
6817
  ),
6818
6818
  children: [
6819
6819
  icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: icon }),
6820
- label && /* @__PURE__ */ jsx("span", { className: "text-gray-400", children: label }),
6820
+ label && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: label }),
6821
6821
  /* @__PURE__ */ jsx("span", { className: "tabular-nums", children: formattedValue })
6822
6822
  ]
6823
6823
  }
@@ -6930,8 +6930,8 @@ var init_ControlButton = __esm({
6930
6930
  };
6931
6931
  shapeMap = {
6932
6932
  circle: "rounded-full",
6933
- rounded: "rounded-xl",
6934
- square: "rounded-md"
6933
+ rounded: "rounded-interactive",
6934
+ square: "rounded-interactive"
6935
6935
  };
6936
6936
  variantMap = {
6937
6937
  primary: "bg-primary text-primary-foreground border-primary hover:bg-primary-hover",
@@ -7099,12 +7099,12 @@ function TimerDisplay({
7099
7099
  "div",
7100
7100
  {
7101
7101
  className: cn(
7102
- "inline-flex items-center justify-center rounded-lg",
7103
- "bg-[var(--color-card)]/80 border border-gray-600 font-mono font-bold tabular-nums",
7102
+ "inline-flex items-center justify-center rounded-container",
7103
+ "bg-card/80 border border-muted font-mono font-bold tabular-nums",
7104
7104
  sizeMap4[size],
7105
- running && "border-green-500/50",
7106
- isLow && "text-red-400 border-red-500/50 animate-pulse",
7107
- !isLow && "text-[var(--color-foreground)]",
7105
+ running && "border-success/50",
7106
+ isLow && "text-error border-error/50 animate-pulse",
7107
+ !isLow && "text-foreground",
7108
7108
  className
7109
7109
  ),
7110
7110
  children: formatTime(seconds, format)
@@ -7137,17 +7137,17 @@ function ResourceCounter({
7137
7137
  "div",
7138
7138
  {
7139
7139
  className: cn(
7140
- "inline-flex items-center rounded-md",
7141
- "bg-[var(--color-card)]/80 border border-gray-600 font-medium text-[var(--color-foreground)]",
7140
+ "inline-flex items-center rounded-container",
7141
+ "bg-card/80 border border-muted font-medium text-foreground",
7142
7142
  sizes.wrapper,
7143
7143
  className
7144
7144
  ),
7145
7145
  children: [
7146
7146
  icon && /* @__PURE__ */ jsx("span", { className: cn("flex-shrink-0", sizes.icon), children: icon }),
7147
- /* @__PURE__ */ jsx("span", { className: "text-gray-400", children: label }),
7147
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: label }),
7148
7148
  /* @__PURE__ */ jsxs("span", { className: cn("font-bold tabular-nums", color), children: [
7149
7149
  value,
7150
- max != null && /* @__PURE__ */ jsxs("span", { className: "text-gray-500", children: [
7150
+ max != null && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
7151
7151
  "/",
7152
7152
  max
7153
7153
  ] })
@@ -7188,18 +7188,18 @@ function ItemSlot({
7188
7188
  disabled: !isClickable,
7189
7189
  title: label,
7190
7190
  className: cn(
7191
- "relative flex items-center justify-center rounded-lg border-2",
7192
- "bg-[var(--color-card)]/80 transition-all duration-150",
7191
+ "relative flex items-center justify-center rounded-interactive border-2",
7192
+ "bg-card/80 transition-all duration-150",
7193
7193
  sizeMap6[size],
7194
- empty ? "border-gray-700 bg-[var(--color-card)]/50" : rarityBorderMap[rarity],
7194
+ empty ? "border-border bg-card/50" : rarityBorderMap[rarity],
7195
7195
  !empty && rarityGlowMap[rarity],
7196
- selected && "ring-2 ring-white ring-offset-1 ring-offset-gray-900",
7196
+ selected && "ring-2 ring-foreground ring-offset-1 ring-offset-background",
7197
7197
  isClickable && !empty && "hover:brightness-125 cursor-pointer",
7198
- isClickable && empty && "hover:border-gray-500 cursor-pointer",
7198
+ isClickable && empty && "hover:border-muted cursor-pointer",
7199
7199
  !isClickable && "cursor-default",
7200
7200
  className
7201
7201
  ),
7202
- children: empty ? /* @__PURE__ */ jsx("span", { className: "text-gray-600 text-base", children: "+" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
7202
+ children: empty ? /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
7203
7203
  icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: icon }),
7204
7204
  quantity != null && quantity > 1 && /* @__PURE__ */ jsx(
7205
7205
  "span",
@@ -7207,7 +7207,7 @@ function ItemSlot({
7207
7207
  className: cn(
7208
7208
  "absolute -bottom-1 -right-1 flex items-center justify-center",
7209
7209
  "min-w-[18px] h-[18px] rounded-full px-1",
7210
- "bg-[var(--color-surface,#374151)] border border-gray-500 text-xs font-bold text-[var(--color-foreground)]"
7210
+ "bg-surface border border-muted text-xs font-bold text-foreground"
7211
7211
  ),
7212
7212
  children: quantity
7213
7213
  }
@@ -7227,18 +7227,18 @@ var init_ItemSlot = __esm({
7227
7227
  lg: "w-18 h-18 text-3xl"
7228
7228
  };
7229
7229
  rarityBorderMap = {
7230
- common: "border-gray-500",
7231
- uncommon: "border-green-500",
7232
- rare: "border-blue-500",
7233
- epic: "border-purple-500",
7234
- legendary: "border-amber-400"
7230
+ common: "border-muted",
7231
+ uncommon: "border-success",
7232
+ rare: "border-info",
7233
+ epic: "border-accent",
7234
+ legendary: "border-warning"
7235
7235
  };
7236
7236
  rarityGlowMap = {
7237
7237
  common: "",
7238
7238
  uncommon: "",
7239
- rare: "shadow-[0_0_6px_rgba(59,130,246,0.3)]",
7240
- epic: "shadow-[0_0_8px_rgba(168,85,247,0.4)]",
7241
- legendary: "shadow-[0_0_10px_rgba(251,191,36,0.5)]"
7239
+ rare: "shadow-sm",
7240
+ epic: "shadow-lg",
7241
+ legendary: "shadow-lg"
7242
7242
  };
7243
7243
  ItemSlot.displayName = "ItemSlot";
7244
7244
  }
@@ -7256,8 +7256,8 @@ function TurnIndicator({
7256
7256
  "div",
7257
7257
  {
7258
7258
  className: cn(
7259
- "inline-flex items-center rounded-lg",
7260
- "bg-[var(--color-card)]/80 border border-gray-600 font-medium text-[var(--color-foreground)]",
7259
+ "inline-flex items-center rounded-container",
7260
+ "bg-card/80 border border-muted font-medium text-foreground",
7261
7261
  sizes.wrapper,
7262
7262
  className
7263
7263
  ),
@@ -7265,19 +7265,19 @@ function TurnIndicator({
7265
7265
  /* @__PURE__ */ jsxs("span", { className: "font-bold tabular-nums", children: [
7266
7266
  "Turn ",
7267
7267
  currentTurn,
7268
- maxTurns != null && /* @__PURE__ */ jsxs("span", { className: "text-gray-400", children: [
7268
+ maxTurns != null && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
7269
7269
  "/",
7270
7270
  maxTurns
7271
7271
  ] })
7272
7272
  ] }),
7273
7273
  phase && /* @__PURE__ */ jsxs(Fragment, { children: [
7274
- /* @__PURE__ */ jsx("span", { className: "text-gray-600", children: "|" }),
7275
- /* @__PURE__ */ jsx("span", { className: "text-gray-300", children: phase })
7274
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "|" }),
7275
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: phase })
7276
7276
  ] }),
7277
7277
  activeTeam && /* @__PURE__ */ jsxs(Fragment, { children: [
7278
- /* @__PURE__ */ jsx("span", { className: "text-gray-600", children: "|" }),
7279
- /* @__PURE__ */ jsx("span", { className: cn("rounded-full bg-green-500/20", sizes.dot) }),
7280
- /* @__PURE__ */ jsx("span", { className: "text-green-400", children: activeTeam })
7278
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "|" }),
7279
+ /* @__PURE__ */ jsx("span", { className: cn("rounded-full bg-success/20", sizes.dot) }),
7280
+ /* @__PURE__ */ jsx("span", { className: "text-success", children: activeTeam })
7281
7281
  ] })
7282
7282
  ]
7283
7283
  }
@@ -7296,10 +7296,10 @@ var init_TurnIndicator = __esm({
7296
7296
  }
7297
7297
  });
7298
7298
  function getComboIntensity(combo) {
7299
- if (combo >= 10) return "text-red-400 animate-pulse";
7300
- if (combo >= 7) return "text-orange-400";
7301
- if (combo >= 4) return "text-yellow-400";
7302
- return "text-[var(--color-foreground)]";
7299
+ if (combo >= 10) return "text-error animate-pulse";
7300
+ if (combo >= 7) return "text-warning";
7301
+ if (combo >= 4) return "text-warning";
7302
+ return "text-foreground";
7303
7303
  }
7304
7304
  function getComboScale(combo) {
7305
7305
  if (combo >= 10) return "scale-110";
@@ -7320,19 +7320,19 @@ function ComboCounter({
7320
7320
  {
7321
7321
  className: cn(
7322
7322
  "inline-flex flex-col items-center justify-center",
7323
- "rounded-xl bg-[var(--color-card)]/80 border border-gray-600 px-3 py-1.5",
7323
+ "rounded-container bg-card/80 border border-muted px-3 py-1.5",
7324
7324
  "transition-transform duration-200",
7325
7325
  getComboScale(combo),
7326
7326
  className
7327
7327
  ),
7328
7328
  children: [
7329
7329
  /* @__PURE__ */ jsx("span", { className: cn("font-black tabular-nums leading-none", sizes.combo, getComboIntensity(combo)), children: combo }),
7330
- /* @__PURE__ */ jsx("span", { className: cn("font-bold uppercase tracking-wider text-gray-400", sizes.label), children: "combo" }),
7331
- multiplier != null && multiplier > 1 && /* @__PURE__ */ jsxs("span", { className: cn("font-bold text-amber-400 tabular-nums", sizes.multiplier), children: [
7330
+ /* @__PURE__ */ jsx("span", { className: cn("font-bold uppercase tracking-wider text-muted-foreground", sizes.label), children: "combo" }),
7331
+ multiplier != null && multiplier > 1 && /* @__PURE__ */ jsxs("span", { className: cn("font-bold text-warning tabular-nums", sizes.multiplier), children: [
7332
7332
  "x",
7333
7333
  multiplier.toFixed(1)
7334
7334
  ] }),
7335
- streak != null && streak > 0 && /* @__PURE__ */ jsxs("span", { className: cn("text-gray-500 tabular-nums", sizes.label), children: [
7335
+ streak != null && streak > 0 && /* @__PURE__ */ jsxs("span", { className: cn("text-muted-foreground tabular-nums", sizes.label), children: [
7336
7336
  streak,
7337
7337
  " streak"
7338
7338
  ] })
@@ -7368,8 +7368,8 @@ function XPBar({
7368
7368
  "span",
7369
7369
  {
7370
7370
  className: cn(
7371
- "flex-shrink-0 rounded-md font-bold",
7372
- "bg-indigo-600 text-white border border-indigo-400",
7371
+ "flex-shrink-0 rounded-interactive font-bold",
7372
+ "bg-accent text-foreground border border-accent",
7373
7373
  sizes.badge
7374
7374
  ),
7375
7375
  children: [
@@ -7383,7 +7383,7 @@ function XPBar({
7383
7383
  "div",
7384
7384
  {
7385
7385
  className: cn(
7386
- "relative w-full overflow-hidden rounded-full bg-gray-700 border border-gray-600",
7386
+ "relative w-full overflow-hidden rounded-full bg-muted border border-muted",
7387
7387
  sizes.bar
7388
7388
  ),
7389
7389
  children: /* @__PURE__ */ jsx(
@@ -7391,7 +7391,7 @@ function XPBar({
7391
7391
  {
7392
7392
  className: cn(
7393
7393
  "absolute inset-y-0 left-0 rounded-full",
7394
- "bg-gradient-to-r from-indigo-600 to-purple-500",
7394
+ "bg-gradient-to-r from-accent to-info",
7395
7395
  animated && "transition-all duration-500 ease-out"
7396
7396
  ),
7397
7397
  style: { width: `${percentage}%` }
@@ -7399,7 +7399,7 @@ function XPBar({
7399
7399
  )
7400
7400
  }
7401
7401
  ),
7402
- showLabel && /* @__PURE__ */ jsxs("span", { className: cn("text-gray-400 tabular-nums", sizes.text), children: [
7402
+ showLabel && /* @__PURE__ */ jsxs("span", { className: cn("text-muted-foreground tabular-nums", sizes.text), children: [
7403
7403
  current,
7404
7404
  " / ",
7405
7405
  max,
@@ -7435,7 +7435,7 @@ function WaypointMarker({
7435
7435
  "div",
7436
7436
  {
7437
7437
  className: cn(
7438
- "absolute rounded-full border-2 border-blue-400 animate-ping opacity-50",
7438
+ "absolute rounded-full border-2 border-info animate-ping opacity-50",
7439
7439
  sizes.ring
7440
7440
  )
7441
7441
  }
@@ -7444,7 +7444,7 @@ function WaypointMarker({
7444
7444
  "div",
7445
7445
  {
7446
7446
  className: cn(
7447
- "absolute rounded-full border-2 border-blue-400",
7447
+ "absolute rounded-full border-2 border-info",
7448
7448
  sizes.ring
7449
7449
  )
7450
7450
  }
@@ -7455,9 +7455,9 @@ function WaypointMarker({
7455
7455
  className: cn(
7456
7456
  "relative flex items-center justify-center rounded-full transition-all duration-200",
7457
7457
  sizes.dot,
7458
- completed && "bg-green-500 text-white",
7459
- active && !completed && "bg-blue-500 text-white",
7460
- !active && !completed && "bg-gray-500"
7458
+ completed && "bg-success text-foreground",
7459
+ active && !completed && "bg-info text-foreground",
7460
+ !active && !completed && "bg-muted"
7461
7461
  ),
7462
7462
  children: completed ? checkIcon : icon
7463
7463
  }
@@ -7469,7 +7469,7 @@ function WaypointMarker({
7469
7469
  className: cn(
7470
7470
  "text-center whitespace-nowrap",
7471
7471
  sizes.label,
7472
- completed ? "text-green-400" : active ? "text-blue-400" : "text-gray-400"
7472
+ completed ? "text-success" : active ? "text-info" : "text-muted-foreground"
7473
7473
  ),
7474
7474
  children: label
7475
7475
  }
@@ -7510,7 +7510,7 @@ function StatusEffect({
7510
7510
  "div",
7511
7511
  {
7512
7512
  className: cn(
7513
- "relative flex items-center justify-center rounded border-2",
7513
+ "relative flex items-center justify-center rounded-interactive border-2",
7514
7514
  sizes.container,
7515
7515
  variantStyles7[variant]
7516
7516
  ),
@@ -7521,7 +7521,7 @@ function StatusEffect({
7521
7521
  "span",
7522
7522
  {
7523
7523
  className: cn(
7524
- "absolute bottom-0 left-0 right-0 text-center font-mono font-bold text-white bg-black/60 leading-tight",
7524
+ "absolute bottom-0 left-0 right-0 text-center font-mono font-bold text-foreground bg-background/60 leading-tight",
7525
7525
  sizes.timer
7526
7526
  ),
7527
7527
  children: formatDuration(duration)
@@ -7534,7 +7534,7 @@ function StatusEffect({
7534
7534
  "span",
7535
7535
  {
7536
7536
  className: cn(
7537
- "absolute flex items-center justify-center rounded-full bg-[var(--color-card)] text-[var(--color-foreground)] font-bold leading-none",
7537
+ "absolute flex items-center justify-center rounded-full bg-card text-foreground font-bold leading-none",
7538
7538
  sizes.badge
7539
7539
  ),
7540
7540
  children: stacks
@@ -7553,9 +7553,9 @@ var init_StatusEffect = __esm({
7553
7553
  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" }
7554
7554
  };
7555
7555
  variantStyles7 = {
7556
- buff: "border-green-500 bg-green-500/20",
7557
- debuff: "border-red-500 bg-red-500/20",
7558
- neutral: "border-gray-500 bg-gray-500/20"
7556
+ buff: "border-success bg-success/20",
7557
+ debuff: "border-error bg-error/20",
7558
+ neutral: "border-muted bg-muted/20"
7559
7559
  };
7560
7560
  StatusEffect.displayName = "StatusEffect";
7561
7561
  }
@@ -7594,10 +7594,10 @@ var init_DamageNumber = __esm({
7594
7594
  lg: "text-2xl"
7595
7595
  };
7596
7596
  typeStyles = {
7597
- damage: "text-red-500 font-bold",
7598
- heal: "text-green-500 font-bold",
7599
- crit: "text-orange-400 font-extrabold",
7600
- miss: "text-gray-400 italic"
7597
+ damage: "text-error font-bold",
7598
+ heal: "text-success font-bold",
7599
+ crit: "text-warning font-extrabold",
7600
+ miss: "text-muted-foreground italic"
7601
7601
  };
7602
7602
  floatKeyframes = `
7603
7603
  @keyframes damageFloat {
@@ -7620,12 +7620,12 @@ function DialogueBubble({
7620
7620
  "div",
7621
7621
  {
7622
7622
  className: cn(
7623
- "flex items-start gap-3 rounded-lg bg-black/80 backdrop-blur-sm px-4 py-3 border border-white/10",
7623
+ "flex items-start gap-3 rounded-container bg-background/80 backdrop-blur-sm px-4 py-3 border border-border/10",
7624
7624
  position === "top" ? "rounded-bl-none" : "rounded-tl-none",
7625
7625
  className
7626
7626
  ),
7627
7627
  children: [
7628
- portrait && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 w-12 h-12 rounded-full overflow-hidden border-2 border-yellow-400/60", children: /* @__PURE__ */ jsx(
7628
+ portrait && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 w-12 h-12 rounded-full overflow-hidden border-2 border-warning/60", children: /* @__PURE__ */ jsx(
7629
7629
  "img",
7630
7630
  {
7631
7631
  src: portrait,
@@ -7634,8 +7634,8 @@ function DialogueBubble({
7634
7634
  }
7635
7635
  ) }),
7636
7636
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1 min-w-0", children: [
7637
- speaker && /* @__PURE__ */ jsx("span", { className: "text-sm font-bold text-yellow-400", children: speaker }),
7638
- /* @__PURE__ */ jsx("span", { className: "text-sm text-[var(--color-foreground)] leading-relaxed", children: text })
7637
+ speaker && /* @__PURE__ */ jsx("span", { className: "text-sm font-bold text-warning", children: speaker }),
7638
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-foreground leading-relaxed", children: text })
7639
7639
  ] })
7640
7640
  ]
7641
7641
  }
@@ -7662,7 +7662,7 @@ function ChoiceButton({
7662
7662
  disabled,
7663
7663
  onClick,
7664
7664
  className: cn(
7665
- "w-full text-left px-4 py-2.5 rounded-md border transition-all duration-150",
7665
+ "w-full text-left px-4 py-2.5 rounded-interactive border transition-all duration-150",
7666
7666
  "flex items-center gap-2",
7667
7667
  selected ? "bg-accent/15 border-accent text-foreground" : "bg-muted/40 border-border text-foreground hover:bg-muted hover:border-border",
7668
7668
  disabled && "opacity-40 cursor-not-allowed hover:bg-muted/40 hover:border-border",
@@ -7715,7 +7715,7 @@ function ActionButton({
7715
7715
  disabled: isDisabled,
7716
7716
  onClick,
7717
7717
  className: cn(
7718
- "relative inline-flex items-center gap-1.5 rounded-md border font-medium overflow-hidden transition-colors duration-150",
7718
+ "relative inline-flex items-center gap-1.5 rounded-interactive border font-medium overflow-hidden transition-colors duration-150",
7719
7719
  sizes.button,
7720
7720
  variantStyles8[variant],
7721
7721
  isDisabled && "opacity-60 cursor-not-allowed",
@@ -7758,9 +7758,9 @@ var init_ActionButton = __esm({
7758
7758
  init_cn();
7759
7759
  init_Icon();
7760
7760
  sizeMap13 = {
7761
- sm: { button: "px-3 py-1.5 text-xs", hotkey: "text-[9px] px-1", icon: "text-xs" },
7762
- md: { button: "px-4 py-2 text-sm", hotkey: "text-xs px-1.5", icon: "text-sm" },
7763
- lg: { button: "px-5 py-2.5 text-base", hotkey: "text-xs px-2", icon: "text-base" }
7761
+ sm: { button: "h-button-sm px-3 text-xs", hotkey: "text-[9px] px-1", icon: "text-xs" },
7762
+ md: { button: "h-button-md px-4 text-sm", hotkey: "text-xs px-1.5", icon: "text-sm" },
7763
+ lg: { button: "h-button-lg px-5 text-base", hotkey: "text-xs px-2", icon: "text-base" }
7764
7764
  };
7765
7765
  variantStyles8 = {
7766
7766
  primary: "bg-primary text-primary-foreground hover:bg-primary-hover border-primary",
@@ -7840,7 +7840,7 @@ function MiniMap({
7840
7840
  "div",
7841
7841
  {
7842
7842
  className: cn(
7843
- "relative inline-block border border-white/20 rounded",
7843
+ "relative inline-block border border-border/20 rounded-container",
7844
7844
  className
7845
7845
  ),
7846
7846
  children: /* @__PURE__ */ jsx(
@@ -10912,7 +10912,7 @@ function ActionTile({
10912
10912
  {
10913
10913
  display: "flex",
10914
10914
  className: cn(
10915
- "flex-col items-center gap-1 rounded-lg border-2 transition-all select-none",
10915
+ "flex-col items-center gap-1 rounded-container border-2 transition-all select-none",
10916
10916
  config.px,
10917
10917
  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",
10918
10918
  className
@@ -12212,12 +12212,12 @@ function IsometricCanvas({
12212
12212
  return /* @__PURE__ */ jsx(
12213
12213
  Box,
12214
12214
  {
12215
- className: cn("relative w-full overflow-hidden rounded-lg", className),
12215
+ className: cn("relative w-full overflow-hidden rounded-container", className),
12216
12216
  style: { height: viewportSize.height },
12217
12217
  "data-testid": "game-canvas-empty",
12218
- children: /* @__PURE__ */ jsx(Box, { className: "flex items-center justify-center h-full bg-[var(--color-card)] rounded-lg", children: /* @__PURE__ */ jsxs(Stack, { direction: "vertical", gap: "md", align: "center", children: [
12218
+ children: /* @__PURE__ */ jsx(Box, { className: "flex items-center justify-center h-full bg-[var(--color-card)] rounded-container", children: /* @__PURE__ */ jsxs(Stack, { direction: "vertical", gap: "md", align: "center", children: [
12219
12219
  /* @__PURE__ */ jsx(Icon, { name: "map", size: "xl" }),
12220
- /* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-slate-400", children: t("canvas.emptyMessage") || "No map data loaded" })
12220
+ /* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-muted-foreground", children: t("canvas.emptyMessage") || "No map data loaded" })
12221
12221
  ] }) })
12222
12222
  }
12223
12223
  );
@@ -12615,19 +12615,19 @@ function BattleBoard({
12615
12615
  }
12616
12616
  )
12617
12617
  ] }),
12618
- gameResult && (gameOverOverlay ? gameOverOverlay(ctx) : /* @__PURE__ */ jsx(Box, { className: "absolute inset-0 z-50 flex items-center justify-center bg-black/70 backdrop-blur-sm rounded-xl", children: /* @__PURE__ */ jsxs(VStack, { className: "text-center p-8", gap: "lg", children: [
12618
+ gameResult && (gameOverOverlay ? gameOverOverlay(ctx) : /* @__PURE__ */ jsx(Box, { className: "absolute inset-0 z-50 flex items-center justify-center bg-background/70 backdrop-blur-sm rounded-container", children: /* @__PURE__ */ jsxs(VStack, { className: "text-center p-8", gap: "lg", children: [
12619
12619
  /* @__PURE__ */ jsx(
12620
12620
  Typography,
12621
12621
  {
12622
12622
  variant: "h2",
12623
12623
  className: cn(
12624
12624
  "text-4xl font-black tracking-widest uppercase",
12625
- gameResult === "victory" ? "text-yellow-400" : "text-red-500"
12625
+ gameResult === "victory" ? "text-warning" : "text-error"
12626
12626
  ),
12627
12627
  children: gameResult === "victory" ? t("battle.victory") : t("battle.defeat")
12628
12628
  }
12629
12629
  ),
12630
- /* @__PURE__ */ jsxs(Typography, { variant: "body1", className: "text-gray-300", children: [
12630
+ /* @__PURE__ */ jsxs(Typography, { variant: "body1", className: "text-muted-foreground", children: [
12631
12631
  t("battle.turnsPlayed"),
12632
12632
  ": ",
12633
12633
  currentTurn
@@ -17504,7 +17504,7 @@ function BuilderBoard({
17504
17504
  backgroundPosition: "center"
17505
17505
  },
17506
17506
  children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "p-4", children: [
17507
- entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
17507
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
17508
17508
  /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
17509
17509
  /* @__PURE__ */ jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
17510
17510
  /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.description })
@@ -17542,7 +17542,7 @@ function BuilderBoard({
17542
17542
  {
17543
17543
  gap: "sm",
17544
17544
  align: "center",
17545
- className: `p-3 border-2 rounded ${result ? result.correct ? "border-green-500" : "border-red-500" : selectedComponent ? "border-dashed border-foreground cursor-pointer" : "border-border"}`,
17545
+ className: `p-3 border-2 rounded ${result ? result.correct ? "border-success" : "border-error" : selectedComponent ? "border-dashed border-foreground cursor-pointer" : "border-border"}`,
17546
17546
  onClick: () => handlePlaceComponent(slot.id),
17547
17547
  children: [
17548
17548
  /* @__PURE__ */ jsxs(VStack, { gap: "none", className: "flex-1", children: [
@@ -17557,7 +17557,7 @@ function BuilderBoard({
17557
17557
  ] }) : null,
17558
17558
  placedComp.label
17559
17559
  ] }),
17560
- result && /* @__PURE__ */ jsx(Icon, { icon: result.correct ? CheckCircle : XCircle, size: "sm", className: result.correct ? "text-green-600" : "text-red-600" })
17560
+ result && /* @__PURE__ */ jsx(Icon, { icon: result.correct ? CheckCircle : XCircle, size: "sm", className: result.correct ? "text-success" : "text-error" })
17561
17561
  ] }) : /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: t("builder.empty") })
17562
17562
  ]
17563
17563
  },
@@ -17566,10 +17566,10 @@ function BuilderBoard({
17566
17566
  }) })
17567
17567
  ] }) }),
17568
17568
  submitted && /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", children: [
17569
- /* @__PURE__ */ jsx(Icon, { icon: allCorrect ? CheckCircle : XCircle, size: "lg", className: allCorrect ? "text-green-600" : "text-red-600" }),
17569
+ /* @__PURE__ */ jsx(Icon, { icon: allCorrect ? CheckCircle : XCircle, size: "lg", className: allCorrect ? "text-success" : "text-error" }),
17570
17570
  /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "bold", children: allCorrect ? entity.successMessage ?? t("builder.success") : entity.failMessage ?? t("builder.incorrect") })
17571
17571
  ] }) }),
17572
- showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-yellow-500", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
17572
+ showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
17573
17573
  /* @__PURE__ */ jsxs(HStack, { gap: "sm", justify: "center", children: [
17574
17574
  !submitted ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleSubmit, disabled: !allPlaced, children: [
17575
17575
  /* @__PURE__ */ jsx(Icon, { icon: Wrench, size: "sm" }),
@@ -19191,7 +19191,7 @@ function CanvasEffectEngine({
19191
19191
  flash && /* @__PURE__ */ jsx(
19192
19192
  Box,
19193
19193
  {
19194
- className: "absolute inset-0 z-20 pointer-events-none rounded-lg",
19194
+ className: "absolute inset-0 z-20 pointer-events-none rounded-container",
19195
19195
  style: { backgroundColor: flash.color, opacity: flash.alpha }
19196
19196
  }
19197
19197
  ),
@@ -19259,7 +19259,7 @@ function EmojiEffect({
19259
19259
  /* @__PURE__ */ jsx(
19260
19260
  Box,
19261
19261
  {
19262
- className: "absolute rounded-full animate-ping",
19262
+ className: "absolute rounded-pill animate-ping",
19263
19263
  style: {
19264
19264
  width: 48 * intensity,
19265
19265
  height: 48 * intensity,
@@ -21076,7 +21076,7 @@ function ClassifierBoard({
21076
21076
  backgroundPosition: "center"
21077
21077
  },
21078
21078
  children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "p-4", children: [
21079
- entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
21079
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
21080
21080
  /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
21081
21081
  /* @__PURE__ */ jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
21082
21082
  /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.description })
@@ -21091,7 +21091,7 @@ function ClassifierBoard({
21091
21091
  /* @__PURE__ */ jsx(VStack, { gap: "md", children: categories.map((cat) => {
21092
21092
  const catItems = items.filter((item) => assignments[item.id] === cat.id);
21093
21093
  return /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
21094
- cat.imageUrl && /* @__PURE__ */ jsx(Box, { className: "w-full h-16 overflow-hidden rounded-md", children: /* @__PURE__ */ jsx("img", { src: cat.imageUrl, alt: "", className: "w-full h-full object-cover" }) }),
21094
+ cat.imageUrl && /* @__PURE__ */ jsx(Box, { className: "w-full h-16 overflow-hidden rounded-container", children: /* @__PURE__ */ jsx("img", { src: cat.imageUrl, alt: "", className: "w-full h-full object-cover" }) }),
21095
21095
  /* @__PURE__ */ jsxs(HStack, { justify: "between", align: "center", children: [
21096
21096
  /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "bold", children: cat.label }),
21097
21097
  /* @__PURE__ */ jsx(Badge, { size: "sm", children: catItems.length })
@@ -21102,12 +21102,12 @@ function ClassifierBoard({
21102
21102
  Badge,
21103
21103
  {
21104
21104
  size: "sm",
21105
- 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" : ""}`,
21105
+ className: `cursor-pointer ${result ? result.correct ? "border-success bg-success/10" : "border-error bg-error/10" : ""}`,
21106
21106
  onClick: () => handleUnassign(item.id),
21107
21107
  children: [
21108
21108
  item.iconUrl && /* @__PURE__ */ jsx("img", { src: item.iconUrl, alt: "", className: "w-3 h-3 object-contain inline-block" }),
21109
21109
  item.label,
21110
- result && /* @__PURE__ */ jsx(Icon, { icon: result.correct ? CheckCircle : XCircle, size: "xs", className: result.correct ? "text-green-600" : "text-red-600" })
21110
+ result && /* @__PURE__ */ jsx(Icon, { icon: result.correct ? CheckCircle : XCircle, size: "xs", className: result.correct ? "text-success" : "text-error" })
21111
21111
  ]
21112
21112
  },
21113
21113
  item.id
@@ -21130,11 +21130,11 @@ function ClassifierBoard({
21130
21130
  ] }) }, cat.id);
21131
21131
  }) }),
21132
21132
  submitted && /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", children: [
21133
- /* @__PURE__ */ jsx(Icon, { icon: allCorrect ? CheckCircle : XCircle, size: "lg", className: allCorrect ? "text-green-600" : "text-red-600" }),
21133
+ /* @__PURE__ */ jsx(Icon, { icon: allCorrect ? CheckCircle : XCircle, size: "lg", className: allCorrect ? "text-success" : "text-error" }),
21134
21134
  /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "bold", children: allCorrect ? entity.successMessage ?? t("classifier.allCorrect") : `${correctCount}/${items.length} ${t("classifier.correct")}` }),
21135
21135
  !allCorrect && entity.failMessage && /* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-muted-foreground", children: entity.failMessage })
21136
21136
  ] }) }),
21137
- showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-yellow-500", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
21137
+ showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
21138
21138
  /* @__PURE__ */ jsxs(HStack, { gap: "sm", justify: "center", children: [
21139
21139
  !submitted ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleSubmit, disabled: !allAssigned, children: [
21140
21140
  /* @__PURE__ */ jsx(Icon, { icon: Send, size: "sm" }),
@@ -22182,7 +22182,7 @@ function CraftingRecipe({
22182
22182
  Box,
22183
22183
  {
22184
22184
  className: cn(
22185
- "flex flex-wrap items-center gap-3 rounded-lg bg-gray-800/50 border border-gray-700/50 p-3",
22185
+ "flex flex-wrap items-center gap-3 rounded-container bg-muted/50 border border-border/50 p-3",
22186
22186
  className
22187
22187
  ),
22188
22188
  children: [
@@ -22199,10 +22199,10 @@ function CraftingRecipe({
22199
22199
  className: cn(!hasSufficient && "opacity-50")
22200
22200
  }
22201
22201
  ) }),
22202
- index < inputs.length - 1 && /* @__PURE__ */ jsx(Icon, { name: "plus", size: "sm", className: "text-gray-500" })
22202
+ index < inputs.length - 1 && /* @__PURE__ */ jsx(Icon, { name: "plus", size: "sm", className: "text-muted-foreground" })
22203
22203
  ] }, index);
22204
22204
  }) }),
22205
- /* @__PURE__ */ jsx(Icon, { name: "arrow-right", size: "md", className: "text-gray-400" }),
22205
+ /* @__PURE__ */ jsx(Icon, { name: "arrow-right", size: "md", className: "text-muted-foreground" }),
22206
22206
  /* @__PURE__ */ jsx(
22207
22207
  ItemSlot,
22208
22208
  {
@@ -22290,7 +22290,7 @@ function DPad({
22290
22290
  createButton("up"),
22291
22291
  /* @__PURE__ */ jsx("div", {}),
22292
22292
  createButton("left"),
22293
- /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "w-6 h-6 rounded-full bg-gray-700 border-2 border-gray-600" }) }),
22293
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "w-6 h-6 rounded-interactive bg-muted border-2 border-muted-foreground" }) }),
22294
22294
  createButton("right"),
22295
22295
  /* @__PURE__ */ jsx("div", {}),
22296
22296
  createButton("down"),
@@ -26475,7 +26475,7 @@ function StatBadge({
26475
26475
  "div",
26476
26476
  {
26477
26477
  className: cn(
26478
- "inline-flex items-center gap-2 rounded-lg border backdrop-blur-sm",
26478
+ "inline-flex items-center gap-2 rounded-container border backdrop-blur-sm",
26479
26479
  sizeMap17[size] ?? sizeMap17.md,
26480
26480
  variantMap2[variant] ?? variantMap2.default,
26481
26481
  className
@@ -26621,10 +26621,10 @@ function QuestTracker({
26621
26621
  Box,
26622
26622
  {
26623
26623
  className: cn(
26624
- "flex items-start gap-3 rounded-lg px-3 py-2 transition-colors",
26625
- isActive && !isCompleted && "bg-blue-900/20 border border-blue-800/50",
26626
- isCompleted && "bg-green-900/10 border border-green-800/30 opacity-70",
26627
- !isActive && !isCompleted && "bg-gray-800/30 border border-gray-700/30"
26624
+ "flex items-start gap-3 rounded-container px-3 py-2 transition-colors",
26625
+ isActive && !isCompleted && "bg-info/20 border border-info/50",
26626
+ isCompleted && "bg-success/10 border border-success/30 opacity-70",
26627
+ !isActive && !isCompleted && "bg-muted/30 border border-border/30"
26628
26628
  ),
26629
26629
  children: [
26630
26630
  /* @__PURE__ */ jsx(Box, { className: "flex-shrink-0 pt-0.5", children: /* @__PURE__ */ jsx(
@@ -26642,9 +26642,9 @@ function QuestTracker({
26642
26642
  variant: "body2",
26643
26643
  className: cn(
26644
26644
  "font-medium truncate",
26645
- isCompleted && "line-through text-gray-500",
26646
- isActive && !isCompleted && "text-blue-300",
26647
- !isActive && !isCompleted && "text-gray-300"
26645
+ isCompleted && "line-through text-muted-foreground",
26646
+ isActive && !isCompleted && "text-info",
26647
+ !isActive && !isCompleted && "text-muted-foreground"
26648
26648
  ),
26649
26649
  children: quest.title
26650
26650
  }
@@ -26662,7 +26662,7 @@ function QuestTracker({
26662
26662
  Typography,
26663
26663
  {
26664
26664
  variant: "caption",
26665
- className: "text-gray-500 mt-1",
26665
+ className: "text-muted-foreground mt-1",
26666
26666
  children: [
26667
26667
  quest.progress,
26668
26668
  " / ",
@@ -26719,14 +26719,14 @@ function PowerupSlots({
26719
26719
  {
26720
26720
  className: cn(
26721
26721
  "absolute -bottom-1 left-1/2 -translate-x-1/2",
26722
- "rounded px-1 py-px",
26723
- "bg-black/80 border border-gray-600"
26722
+ "rounded-interactive px-1 py-px",
26723
+ "bg-background/80 border border-border"
26724
26724
  ),
26725
26725
  children: /* @__PURE__ */ jsx(
26726
26726
  Typography,
26727
26727
  {
26728
26728
  variant: "caption",
26729
- className: "text-[9px] font-mono font-bold text-yellow-300 whitespace-nowrap",
26729
+ className: "text-[9px] font-mono font-bold text-warning whitespace-nowrap",
26730
26730
  children: formatTime2(powerup.remainingTime)
26731
26731
  }
26732
26732
  )
@@ -26759,6 +26759,8 @@ function GameCanvas2D({
26759
26759
  height = 600,
26760
26760
  onDraw,
26761
26761
  onTick,
26762
+ tickEvent,
26763
+ drawEvent,
26762
26764
  fps = 60,
26763
26765
  className
26764
26766
  }) {
@@ -26766,10 +26768,17 @@ function GameCanvas2D({
26766
26768
  const rafRef = React86.useRef(0);
26767
26769
  const frameRef = React86.useRef(0);
26768
26770
  const lastTimeRef = React86.useRef(0);
26771
+ const emit = useEmitEvent();
26769
26772
  const onDrawRef = React86.useRef(onDraw);
26770
26773
  onDrawRef.current = onDraw;
26771
26774
  const onTickRef = React86.useRef(onTick);
26772
26775
  onTickRef.current = onTick;
26776
+ const tickEventRef = React86.useRef(tickEvent);
26777
+ tickEventRef.current = tickEvent;
26778
+ const drawEventRef = React86.useRef(drawEvent);
26779
+ drawEventRef.current = drawEvent;
26780
+ const emitRef = React86.useRef(emit);
26781
+ emitRef.current = emit;
26773
26782
  React86.useEffect(() => {
26774
26783
  const canvas = canvasRef.current;
26775
26784
  if (!canvas) return;
@@ -26786,8 +26795,15 @@ function GameCanvas2D({
26786
26795
  if (elapsed >= interval) {
26787
26796
  const dt = elapsed / 1e3;
26788
26797
  lastTimeRef.current = timestamp - elapsed % interval;
26798
+ const frame = frameRef.current;
26789
26799
  onTickRef.current?.(dt);
26790
- onDrawRef.current?.(ctx, frameRef.current);
26800
+ if (tickEventRef.current) {
26801
+ emitRef.current(tickEventRef.current, { dt, frame });
26802
+ }
26803
+ onDrawRef.current?.(ctx, frame);
26804
+ if (drawEventRef.current) {
26805
+ emitRef.current(drawEventRef.current, { frame });
26806
+ }
26791
26807
  frameRef.current += 1;
26792
26808
  }
26793
26809
  rafRef.current = requestAnimationFrame(loop);
@@ -26813,6 +26829,7 @@ var init_GameCanvas2D = __esm({
26813
26829
  "use client";
26814
26830
  init_cn();
26815
26831
  init_Box();
26832
+ init_useEventBus();
26816
26833
  GameCanvas2D.displayName = "GameCanvas2D";
26817
26834
  }
26818
26835
  });
@@ -26831,7 +26848,7 @@ function HealthPanel({
26831
26848
  Box,
26832
26849
  {
26833
26850
  className: cn(
26834
- "rounded-lg bg-[var(--color-card)]/90 border border-gray-700 backdrop-blur-sm",
26851
+ "rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm",
26835
26852
  sizes.padding,
26836
26853
  className
26837
26854
  ),
@@ -26842,7 +26859,7 @@ function HealthPanel({
26842
26859
  {
26843
26860
  variant: "caption",
26844
26861
  weight: "bold",
26845
- className: "text-gray-300 uppercase tracking-wider",
26862
+ className: "text-muted-foreground uppercase tracking-wider",
26846
26863
  children: label
26847
26864
  }
26848
26865
  ),
@@ -26863,7 +26880,7 @@ function HealthPanel({
26863
26880
  as: "span",
26864
26881
  variant: "caption",
26865
26882
  weight: "bold",
26866
- className: "text-blue-400 ml-1",
26883
+ className: "text-info ml-1",
26867
26884
  children: [
26868
26885
  "+",
26869
26886
  shield
@@ -26888,14 +26905,14 @@ function HealthPanel({
26888
26905
  Box,
26889
26906
  {
26890
26907
  className: cn(
26891
- "relative overflow-hidden rounded-full bg-gray-700",
26908
+ "relative overflow-hidden rounded-container bg-muted",
26892
26909
  size === "sm" ? "h-1" : size === "md" ? "h-1.5" : "h-2",
26893
26910
  "w-full"
26894
26911
  ),
26895
26912
  children: /* @__PURE__ */ jsx(
26896
26913
  Box,
26897
26914
  {
26898
- className: "absolute inset-y-0 left-0 rounded-full bg-blue-500 transition-all duration-300",
26915
+ className: "absolute inset-y-0 left-0 rounded-container bg-info transition-all duration-300",
26899
26916
  style: { width: `${Math.min(100, shield / max * 100)}%` }
26900
26917
  }
26901
26918
  )
@@ -26954,7 +26971,7 @@ function ScoreBoard({
26954
26971
  Card,
26955
26972
  {
26956
26973
  className: cn(
26957
- "bg-[var(--color-card)]/90 border-gray-700 backdrop-blur-sm",
26974
+ "bg-[var(--color-card)]/90 border-border backdrop-blur-sm",
26958
26975
  className
26959
26976
  ),
26960
26977
  children: /* @__PURE__ */ jsx(CardContent, { className: "p-3", children: /* @__PURE__ */ jsxs(Box, { className: "flex items-center gap-3 flex-wrap", children: [
@@ -27071,7 +27088,7 @@ function TurnPanel({
27071
27088
  Box,
27072
27089
  {
27073
27090
  className: cn(
27074
- "flex items-center gap-3 rounded-lg bg-[var(--color-card)]/90 border border-gray-700 backdrop-blur-sm px-3 py-2",
27091
+ "flex items-center gap-3 rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm px-3 py-2",
27075
27092
  className
27076
27093
  ),
27077
27094
  children: [
@@ -27123,7 +27140,7 @@ function EnemyPlate({
27123
27140
  Box,
27124
27141
  {
27125
27142
  className: cn(
27126
- "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",
27143
+ "inline-flex flex-col gap-1 rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm px-3 py-1.5",
27127
27144
  "min-w-[120px]",
27128
27145
  className
27129
27146
  ),
@@ -27217,7 +27234,7 @@ function UnitCommandBar({
27217
27234
  Box,
27218
27235
  {
27219
27236
  className: cn(
27220
- "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",
27237
+ "flex items-center gap-1.5 rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm px-2 py-1.5",
27221
27238
  className
27222
27239
  ),
27223
27240
  children: commands.map((command, i) => /* @__PURE__ */ jsxs(Box, { className: "flex flex-col items-center gap-0.5", children: [
@@ -27302,8 +27319,8 @@ function GameHud({
27302
27319
  className: cn(
27303
27320
  "relative z-10",
27304
27321
  positionMap[position],
27305
- transparent && "bg-gradient-to-b from-black/50 to-transparent",
27306
- position === "bottom" && "bg-gradient-to-t from-black/50 to-transparent",
27322
+ transparent && "bg-gradient-to-b from-background/50 to-transparent",
27323
+ position === "bottom" && "bg-gradient-to-t from-background/50 to-transparent",
27307
27324
  className
27308
27325
  ),
27309
27326
  children: /* @__PURE__ */ jsx("div", { className: "flex gap-4", children: stats.map((stat, i) => /* @__PURE__ */ jsx(StatBadge, { ...stat, size }, i)) })
@@ -27461,8 +27478,8 @@ function DialogueBox({
27461
27478
  tabIndex: 0,
27462
27479
  role: "dialog",
27463
27480
  "aria-label": "Dialogue",
27464
- children: /* @__PURE__ */ 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__ */ jsxs("div", { className: "flex", children: [
27465
- dialogue.portrait && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 p-4 border-r border-gray-700", children: /* @__PURE__ */ jsx(
27481
+ children: /* @__PURE__ */ jsx("div", { className: "mx-4 my-4 bg-[var(--color-card)] bg-opacity-95 border-2 border-border rounded-container overflow-hidden", children: /* @__PURE__ */ jsxs("div", { className: "flex", children: [
27482
+ dialogue.portrait && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 p-4 border-r border-border", children: /* @__PURE__ */ jsx(
27466
27483
  "img",
27467
27484
  {
27468
27485
  src: dialogue.portrait,
@@ -27472,7 +27489,7 @@ function DialogueBox({
27472
27489
  }
27473
27490
  ) }),
27474
27491
  /* @__PURE__ */ jsxs("div", { className: "flex-1 p-4", children: [
27475
- /* @__PURE__ */ jsx("div", { className: "text-yellow-400 font-bold mb-2", children: dialogue.speaker }),
27492
+ /* @__PURE__ */ jsx("div", { className: "text-warning font-bold mb-2", children: dialogue.speaker }),
27476
27493
  /* @__PURE__ */ jsxs("div", { className: "text-[var(--color-foreground)] text-lg leading-relaxed min-h-[60px]", children: [
27477
27494
  displayedText,
27478
27495
  isTyping && /* @__PURE__ */ jsx("span", { className: "animate-pulse", children: "\u258C" })
@@ -27482,9 +27499,9 @@ function DialogueBox({
27482
27499
  {
27483
27500
  type: "button",
27484
27501
  className: cn(
27485
- "block w-full text-left px-4 py-2 rounded transition-colors",
27486
- "hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-yellow-400",
27487
- selectedChoice === index ? "bg-[var(--color-surface,#374151)] text-yellow-400" : "bg-[var(--color-card)] text-[var(--color-foreground)]"
27502
+ "block w-full text-left px-4 py-2 rounded-interactive transition-colors",
27503
+ "hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-warning",
27504
+ selectedChoice === index ? "bg-[var(--color-surface,#374151)] text-warning" : "bg-[var(--color-card)] text-[var(--color-foreground)]"
27488
27505
  ),
27489
27506
  onClick: (e) => {
27490
27507
  e.stopPropagation();
@@ -27492,7 +27509,7 @@ function DialogueBox({
27492
27509
  onChoice?.(choice);
27493
27510
  },
27494
27511
  children: [
27495
- /* @__PURE__ */ jsxs("span", { className: "text-gray-500 mr-2", children: [
27512
+ /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground mr-2", children: [
27496
27513
  index + 1,
27497
27514
  "."
27498
27515
  ] }),
@@ -27501,7 +27518,7 @@ function DialogueBox({
27501
27518
  },
27502
27519
  index
27503
27520
  )) }),
27504
- !isTyping && !dialogue.choices?.length && /* @__PURE__ */ jsx("div", { className: "mt-4 text-gray-500 text-sm animate-pulse", children: "Press SPACE or click to continue..." })
27521
+ !isTyping && !dialogue.choices?.length && /* @__PURE__ */ jsx("div", { className: "mt-4 text-muted-foreground text-sm animate-pulse", children: "Press SPACE or click to continue..." })
27505
27522
  ] })
27506
27523
  ] }) })
27507
27524
  }
@@ -27604,7 +27621,7 @@ function InventoryPanel({
27604
27621
  /* @__PURE__ */ jsx(
27605
27622
  "div",
27606
27623
  {
27607
- className: "grid gap-1 bg-[var(--color-card)] p-2 rounded-lg border border-gray-700",
27624
+ className: "grid gap-1 bg-[var(--color-card)] p-2 rounded-container border border-border",
27608
27625
  style: {
27609
27626
  gridTemplateColumns: `repeat(${safeColumns}, ${slotSize}px)`,
27610
27627
  gridTemplateRows: `repeat(${rows}, ${slotSize}px)`
@@ -27616,8 +27633,8 @@ function InventoryPanel({
27616
27633
  className: cn(
27617
27634
  "relative flex items-center justify-center",
27618
27635
  "bg-[var(--color-card)] border rounded transition-colors",
27619
- "hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-blue-500",
27620
- selectedSlot === index ? "border-yellow-400 bg-[var(--color-surface,#374151)]" : "border-gray-600"
27636
+ "hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-info",
27637
+ selectedSlot === index ? "border-warning bg-[var(--color-surface,#374151)]" : "border-muted"
27621
27638
  ),
27622
27639
  style: { width: slotSize, height: slotSize },
27623
27640
  onClick: () => handleSlotClick(index),
@@ -27636,8 +27653,8 @@ function InventoryPanel({
27636
27653
  className: "w-8 h-8 object-contain",
27637
27654
  style: { imageRendering: "pixelated" }
27638
27655
  }
27639
- ) : /* @__PURE__ */ 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() }),
27640
- item.quantity > 1 && /* @__PURE__ */ jsx("span", { className: "absolute bottom-0 right-0 bg-black bg-opacity-70 text-white text-xs px-1 rounded-tl", children: item.quantity })
27656
+ ) : /* @__PURE__ */ 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() }),
27657
+ item.quantity > 1 && /* @__PURE__ */ jsx("span", { className: "absolute bottom-0 right-0 bg-background/70 text-foreground text-xs px-1 rounded-tl", children: item.quantity })
27641
27658
  ] })
27642
27659
  },
27643
27660
  index
@@ -27647,7 +27664,7 @@ function InventoryPanel({
27647
27664
  showTooltips && hoveredItem && /* @__PURE__ */ jsxs(
27648
27665
  "div",
27649
27666
  {
27650
- className: "fixed z-50 bg-[var(--color-card)] border border-gray-600 rounded-lg p-2 shadow-lg pointer-events-none",
27667
+ className: "fixed z-50 bg-[var(--color-card)] border border-border rounded-container p-2 shadow-elevation-card pointer-events-none",
27651
27668
  style: {
27652
27669
  left: tooltipPosition.x,
27653
27670
  top: tooltipPosition.y,
@@ -27655,8 +27672,8 @@ function InventoryPanel({
27655
27672
  },
27656
27673
  children: [
27657
27674
  /* @__PURE__ */ jsx("div", { className: "font-semibold text-[var(--color-foreground)]", children: hoveredItem.name || hoveredItem.type }),
27658
- hoveredItem.description && /* @__PURE__ */ jsx("div", { className: "text-sm text-gray-400 mt-1", children: hoveredItem.description }),
27659
- /* @__PURE__ */ jsxs("div", { className: "text-xs text-gray-500 mt-1", children: [
27675
+ hoveredItem.description && /* @__PURE__ */ jsx("div", { className: "text-sm text-muted-foreground mt-1", children: hoveredItem.description }),
27676
+ /* @__PURE__ */ jsxs("div", { className: "text-xs text-muted-foreground mt-1", children: [
27660
27677
  "Quantity: ",
27661
27678
  hoveredItem.quantity
27662
27679
  ] })
@@ -27734,7 +27751,7 @@ function GameMenu({
27734
27751
  children: title
27735
27752
  }
27736
27753
  ),
27737
- subtitle && /* @__PURE__ */ jsx("p", { className: "mt-2 text-lg text-gray-400 tracking-widest uppercase", children: subtitle })
27754
+ subtitle && /* @__PURE__ */ jsx("p", { className: "mt-2 text-lg text-muted-foreground tracking-widest uppercase", children: subtitle })
27738
27755
  ] }),
27739
27756
  /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4 w-full max-w-md", children: resolvedOptions.map((option, index) => /* @__PURE__ */ jsx(
27740
27757
  "button",
@@ -27742,10 +27759,10 @@ function GameMenu({
27742
27759
  onClick: () => handleOptionClick(option),
27743
27760
  disabled: option.disabled,
27744
27761
  className: cn(
27745
- "w-full py-4 px-8 rounded-xl border-2 font-bold text-lg",
27762
+ "w-full py-4 px-8 rounded-container border-2 font-bold text-lg",
27746
27763
  "transition-all duration-200 transform",
27747
27764
  "hover:scale-105 active:scale-95",
27748
- "focus:outline-none focus:ring-4 focus:ring-white/25",
27765
+ "focus:outline-none focus:ring-4 focus:ring-foreground/25",
27749
27766
  variantMap3[option.variant ?? "secondary"] ?? variantMap3.secondary,
27750
27767
  option.disabled && "opacity-50 cursor-not-allowed hover:scale-100"
27751
27768
  ),
@@ -27757,8 +27774,8 @@ function GameMenu({
27757
27774
  index
27758
27775
  )) }),
27759
27776
  /* @__PURE__ */ jsxs("div", { className: "absolute inset-0 pointer-events-none overflow-hidden", children: [
27760
- /* @__PURE__ */ jsx("div", { className: "absolute top-1/4 left-1/4 w-64 h-64 bg-blue-500/10 rounded-full blur-3xl" }),
27761
- /* @__PURE__ */ jsx("div", { className: "absolute bottom-1/4 right-1/4 w-96 h-96 bg-purple-500/10 rounded-full blur-3xl" })
27777
+ /* @__PURE__ */ jsx("div", { className: "absolute top-1/4 left-1/4 w-64 h-64 bg-info/10 rounded-container blur-3xl" }),
27778
+ /* @__PURE__ */ jsx("div", { className: "absolute bottom-1/4 right-1/4 w-96 h-96 bg-accent/10 rounded-container blur-3xl" })
27762
27779
  ] })
27763
27780
  ]
27764
27781
  }
@@ -27771,9 +27788,9 @@ var init_GameMenu = __esm({
27771
27788
  init_cn();
27772
27789
  init_useEventBus();
27773
27790
  variantMap3 = {
27774
- primary: "bg-[var(--color-primary)] hover:bg-blue-500 text-[var(--color-primary-foreground)] border-blue-400 shadow-lg shadow-blue-500/25",
27775
- secondary: "bg-[var(--color-surface,#374151)] hover:bg-gray-600 text-[var(--color-foreground)] border-gray-500",
27776
- ghost: "bg-transparent hover:bg-white/10 text-[var(--color-foreground)] border-white/20"
27791
+ primary: "bg-[var(--color-primary)] hover:bg-info text-[var(--color-primary-foreground)] border-info shadow-lg shadow-info/25",
27792
+ secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
27793
+ ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
27777
27794
  };
27778
27795
  GameMenu.displayName = "GameMenu";
27779
27796
  }
@@ -27841,13 +27858,13 @@ function GameOverScreen({
27841
27858
  children: title
27842
27859
  }
27843
27860
  ),
27844
- message && /* @__PURE__ */ jsx("p", { className: "text-xl text-gray-300 mb-8 text-center max-w-md", children: message }),
27845
- isNewHighScore && /* @__PURE__ */ jsx("div", { className: "mb-6 px-6 py-2 bg-yellow-500/20 border-2 border-yellow-500 rounded-full animate-pulse", children: /* @__PURE__ */ jsx("span", { className: "text-yellow-400 font-bold text-lg tracking-wide", children: "\u{1F3C6} NEW HIGH SCORE! \u{1F3C6}" }) }),
27861
+ message && /* @__PURE__ */ jsx("p", { className: "text-xl text-muted-foreground mb-8 text-center max-w-md", children: message }),
27862
+ isNewHighScore && /* @__PURE__ */ jsx("div", { className: "mb-6 px-6 py-2 bg-warning/20 border-2 border-warning rounded-container animate-pulse", children: /* @__PURE__ */ jsx("span", { className: "text-warning font-bold text-lg tracking-wide", children: "\u{1F3C6} NEW HIGH SCORE! \u{1F3C6}" }) }),
27846
27863
  stats.length > 0 && /* @__PURE__ */ jsx(
27847
27864
  "div",
27848
27865
  {
27849
27866
  className: cn(
27850
- "mb-8 p-6 rounded-xl border-2 bg-black/30",
27867
+ "mb-8 p-6 rounded-container border-2 bg-background/30",
27851
27868
  colors.accent
27852
27869
  ),
27853
27870
  children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-4", children: stats.map((stat, index) => {
@@ -27856,7 +27873,7 @@ function GameOverScreen({
27856
27873
  displayValue = formatTime3(displayValue);
27857
27874
  }
27858
27875
  return /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
27859
- /* @__PURE__ */ jsx("div", { className: "text-gray-400 text-sm mb-1", children: stat.label }),
27876
+ /* @__PURE__ */ jsx("div", { className: "text-muted-foreground text-sm mb-1", children: stat.label }),
27860
27877
  /* @__PURE__ */ jsxs("div", { className: "text-[var(--color-foreground)] text-2xl font-bold flex items-center justify-center gap-2", children: [
27861
27878
  stat.icon && /* @__PURE__ */ jsx("span", { children: stat.icon }),
27862
27879
  /* @__PURE__ */ jsx("span", { className: "tabular-nums", children: displayValue })
@@ -27870,10 +27887,10 @@ function GameOverScreen({
27870
27887
  {
27871
27888
  onClick: () => handleActionClick(action),
27872
27889
  className: cn(
27873
- "px-8 py-4 rounded-xl border-2 font-bold text-lg",
27890
+ "px-8 py-4 rounded-container border-2 font-bold text-lg",
27874
27891
  "transition-all duration-200",
27875
27892
  "hover:scale-105 active:scale-95",
27876
- "focus:outline-none focus:ring-4 focus:ring-white/25",
27893
+ "focus:outline-none focus:ring-4 focus:ring-foreground/25",
27877
27894
  buttonVariants[action.variant ?? "secondary"]
27878
27895
  ),
27879
27896
  children: action.label
@@ -27892,25 +27909,25 @@ var init_GameOverScreen = __esm({
27892
27909
  init_useEventBus();
27893
27910
  variantColors = {
27894
27911
  victory: {
27895
- bg: "from-green-900/90 to-emerald-950/90",
27896
- title: "text-green-400",
27897
- accent: "border-green-500"
27912
+ bg: "from-success/90 to-success/90",
27913
+ title: "text-success",
27914
+ accent: "border-success"
27898
27915
  },
27899
27916
  defeat: {
27900
- bg: "from-red-900/90 to-gray-950/90",
27901
- title: "text-red-400",
27902
- accent: "border-red-500"
27917
+ bg: "from-error/90 to-background/90",
27918
+ title: "text-error",
27919
+ accent: "border-error"
27903
27920
  },
27904
27921
  neutral: {
27905
- bg: "from-gray-900/90 to-gray-950/90",
27906
- title: "text-white",
27907
- accent: "border-gray-500"
27922
+ bg: "from-muted/90 to-background/90",
27923
+ title: "text-foreground",
27924
+ accent: "border-muted"
27908
27925
  }
27909
27926
  };
27910
27927
  buttonVariants = {
27911
- primary: "bg-[var(--color-primary)] hover:bg-blue-500 text-[var(--color-primary-foreground)] border-blue-400",
27912
- secondary: "bg-[var(--color-surface,#374151)] hover:bg-gray-600 text-[var(--color-foreground)] border-gray-500",
27913
- ghost: "bg-transparent hover:bg-white/10 text-[var(--color-foreground)] border-white/20"
27928
+ primary: "bg-[var(--color-primary)] hover:bg-info text-[var(--color-primary-foreground)] border-info",
27929
+ secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
27930
+ ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
27914
27931
  };
27915
27932
  GameOverScreen.displayName = "GameOverScreen";
27916
27933
  }
@@ -28144,7 +28161,7 @@ function PlatformerCanvas({
28144
28161
  {
28145
28162
  ref: canvasRef,
28146
28163
  style: { width: canvasWidth, height: canvasHeight },
28147
- className: cn("block rounded-lg border border-white/10", className),
28164
+ className: cn("block rounded-container border border-border/10", className),
28148
28165
  "data-testid": "platformer-canvas",
28149
28166
  tabIndex: 0
28150
28167
  }
@@ -35687,7 +35704,7 @@ function DebuggerBoard({
35687
35704
  backgroundPosition: "center"
35688
35705
  },
35689
35706
  children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "p-4", children: [
35690
- entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
35707
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
35691
35708
  /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
35692
35709
  /* @__PURE__ */ jsxs(HStack, { gap: "xs", align: "center", children: [
35693
35710
  /* @__PURE__ */ jsx(Icon, { icon: Bug, size: "sm" }),
@@ -35700,11 +35717,11 @@ function DebuggerBoard({
35700
35717
  const isFlagged = flaggedLines.has(line.id);
35701
35718
  let lineStyle = "";
35702
35719
  if (submitted) {
35703
- if (line.isBug && isFlagged) lineStyle = "bg-green-50 dark:bg-green-950";
35704
- else if (line.isBug && !isFlagged) lineStyle = "bg-yellow-50 dark:bg-yellow-950";
35705
- else if (!line.isBug && isFlagged) lineStyle = "bg-red-50 dark:bg-red-950";
35720
+ if (line.isBug && isFlagged) lineStyle = "bg-success/10";
35721
+ else if (line.isBug && !isFlagged) lineStyle = "bg-warning/10";
35722
+ else if (!line.isBug && isFlagged) lineStyle = "bg-error/10";
35706
35723
  } else if (isFlagged) {
35707
- lineStyle = "bg-red-50 dark:bg-red-950";
35724
+ lineStyle = "bg-error/10";
35708
35725
  }
35709
35726
  return /* @__PURE__ */ jsxs(
35710
35727
  HStack,
@@ -35717,8 +35734,8 @@ function DebuggerBoard({
35717
35734
  /* @__PURE__ */ jsx(Box, { className: "w-10 flex-shrink-0 flex items-center justify-center border-r border-border text-muted-foreground", children: /* @__PURE__ */ jsx(Typography, { variant: "caption", children: i + 1 }) }),
35718
35735
  /* @__PURE__ */ jsx(Box, { className: "flex-1 px-3 py-1.5 font-mono text-sm whitespace-pre", children: /* @__PURE__ */ jsx(Typography, { variant: "body", className: "font-mono text-sm", children: line.content }) }),
35719
35736
  /* @__PURE__ */ jsxs(Box, { className: "w-8 flex-shrink-0 flex items-center justify-center", children: [
35720
- isFlagged && /* @__PURE__ */ jsx(Icon, { icon: Bug, size: "xs", className: "text-red-600" }),
35721
- submitted && line.isBug && !isFlagged && /* @__PURE__ */ jsx(Icon, { icon: Bug, size: "xs", className: "text-yellow-600" })
35737
+ isFlagged && /* @__PURE__ */ jsx(Icon, { icon: Bug, size: "xs", className: "text-error" }),
35738
+ submitted && line.isBug && !isFlagged && /* @__PURE__ */ jsx(Icon, { icon: Bug, size: "xs", className: "text-warning" })
35722
35739
  ] })
35723
35740
  ]
35724
35741
  },
@@ -35733,7 +35750,7 @@ function DebuggerBoard({
35733
35750
  {
35734
35751
  icon: flaggedLines.has(line.id) ? CheckCircle : XCircle,
35735
35752
  size: "xs",
35736
- className: flaggedLines.has(line.id) ? "text-green-600 mt-0.5" : "text-yellow-600 mt-0.5"
35753
+ className: flaggedLines.has(line.id) ? "text-success mt-0.5" : "text-warning mt-0.5"
35737
35754
  }
35738
35755
  ),
35739
35756
  /* @__PURE__ */ jsxs(VStack, { gap: "none", children: [
@@ -35742,7 +35759,7 @@ function DebuggerBoard({
35742
35759
  ] })
35743
35760
  ] }, line.id))
35744
35761
  ] }) }),
35745
- showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-yellow-500", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
35762
+ showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
35746
35763
  /* @__PURE__ */ jsxs(HStack, { gap: "sm", justify: "center", children: [
35747
35764
  !submitted ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleSubmit, disabled: flaggedLines.size === 0, children: [
35748
35765
  /* @__PURE__ */ jsx(Icon, { icon: Send, size: "sm" }),
@@ -36465,7 +36482,7 @@ function LinearView({
36465
36482
  className
36466
36483
  }) {
36467
36484
  const currentIdx = trait.states.indexOf(trait.currentState);
36468
- return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-lg bg-card border border-border", className), gap: "sm", children: [
36485
+ return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
36469
36486
  trait.description && /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: trait.description }),
36470
36487
  /* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
36471
36488
  const isDone = i < currentIdx;
@@ -36487,10 +36504,10 @@ function LinearView({
36487
36504
  {
36488
36505
  display: "inline-flex",
36489
36506
  className: cn(
36490
- "items-center justify-center rounded-full px-3 py-1 border-2 transition-all",
36507
+ "items-center justify-center rounded-pill px-3 py-1 border-2 transition-all",
36491
36508
  SIZE_CONFIG2[size || "md"].fontSize,
36492
36509
  isDone && "bg-success/20 border-success text-success",
36493
- isCurrent && "bg-primary/20 border-primary text-primary font-bold shadow-md shadow-primary/20",
36510
+ isCurrent && "bg-primary/20 border-primary text-primary font-bold shadow-elevation-card shadow-primary/20",
36494
36511
  !isDone && !isCurrent && "bg-muted border-border text-muted-foreground"
36495
36512
  ),
36496
36513
  children: [
@@ -36512,7 +36529,7 @@ function CompactView({
36512
36529
  const { t } = useTranslate();
36513
36530
  const config = SIZE_CONFIG2[size || "md"];
36514
36531
  const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
36515
- return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-lg bg-card border border-border", className), gap: "sm", children: [
36532
+ return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
36516
36533
  /* @__PURE__ */ jsxs(HStack, { className: "items-center justify-between", children: [
36517
36534
  /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground font-bold", children: trait.name }),
36518
36535
  /* @__PURE__ */ jsx(StateIndicator, { state: trait.currentState, size: "sm", stateStyles })
@@ -36548,7 +36565,7 @@ function FullView({
36548
36565
  const { t } = useTranslate();
36549
36566
  const config = SIZE_CONFIG2[size || "md"];
36550
36567
  const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
36551
- return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-lg bg-card border border-border", className), gap: "sm", children: [
36568
+ return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
36552
36569
  /* @__PURE__ */ jsxs(HStack, { className: "items-center justify-between", children: [
36553
36570
  /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground font-bold", children: trait.name }),
36554
36571
  /* @__PURE__ */ jsx(StateIndicator, { state: trait.currentState, size: "sm", stateStyles })
@@ -36562,9 +36579,9 @@ function FullView({
36562
36579
  {
36563
36580
  display: "flex",
36564
36581
  className: cn(
36565
- "items-center justify-center rounded-md border-2 transition-all px-2",
36582
+ "items-center justify-center rounded-container border-2 transition-all px-2",
36566
36583
  config.nodeSize,
36567
- isCurrent && "bg-primary/20 border-primary shadow-md shadow-primary/20",
36584
+ isCurrent && "bg-primary/20 border-primary shadow-elevation-card shadow-primary/20",
36568
36585
  !isCurrent && hasOutgoing && "bg-muted border-border hover:border-muted-foreground",
36569
36586
  !isCurrent && !hasOutgoing && "bg-background border-border opacity-60",
36570
36587
  onStateClick && "cursor-pointer"
@@ -36994,7 +37011,7 @@ function EventHandlerBoard({
36994
37011
  backgroundPosition: "center"
36995
37012
  },
36996
37013
  children: [
36997
- entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
37014
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
36998
37015
  /* @__PURE__ */ jsxs(VStack, { gap: "xs", children: [
36999
37016
  /* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-foreground", children: entity.title }),
37000
37017
  /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-muted-foreground", children: entity.description }),
@@ -37009,7 +37026,7 @@ function EventHandlerBoard({
37009
37026
  Box,
37010
37027
  {
37011
37028
  className: cn(
37012
- "p-3 rounded-lg border-2 cursor-pointer transition-all hover:scale-105",
37029
+ "p-3 rounded-container border-2 cursor-pointer transition-all hover:scale-105",
37013
37030
  selectedObjectId === obj.id ? "border-primary bg-primary/10" : "border-border bg-card hover:border-muted-foreground"
37014
37031
  ),
37015
37032
  onClick: () => setSelectedObjectId(obj.id),
@@ -37031,10 +37048,10 @@ function EventHandlerBoard({
37031
37048
  }
37032
37049
  ),
37033
37050
  eventLog.length > 0 && /* @__PURE__ */ jsx(EventLog, { entries: eventLog }),
37034
- playState === "success" && /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-lg bg-success/20 border border-success text-center", children: /* @__PURE__ */ jsx(Typography, { variant: "h5", className: "text-success", children: entity.successMessage || t("eventHandler.chainComplete") }) }),
37051
+ playState === "success" && /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-container bg-success/20 border border-success text-center", children: /* @__PURE__ */ jsx(Typography, { variant: "h5", className: "text-success", children: entity.successMessage || t("eventHandler.chainComplete") }) }),
37035
37052
  playState === "fail" && /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
37036
- /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-lg bg-warning/10 border border-warning/30 text-center", children: /* @__PURE__ */ jsx(Typography, { variant: "body1", className: "text-foreground font-medium", children: t(encourageKey) }) }),
37037
- showHint && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-lg bg-accent/10 border border-accent/30", children: /* @__PURE__ */ jsxs(HStack, { className: "items-start", gap: "xs", children: [
37053
+ /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-container bg-warning/10 border border-warning/30 text-center", children: /* @__PURE__ */ jsx(Typography, { variant: "body1", className: "text-foreground font-medium", children: t(encourageKey) }) }),
37054
+ showHint && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-container bg-accent/10 border border-accent/30", children: /* @__PURE__ */ jsxs(HStack, { className: "items-start", gap: "xs", children: [
37038
37055
  /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-accent font-bold shrink-0", children: "\u{1F4A1} " + t("game.hint") + ":" }),
37039
37056
  /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground", children: entity.hint })
37040
37057
  ] }) })
@@ -40207,7 +40224,7 @@ function NegotiatorBoard({
40207
40224
  backgroundPosition: "center"
40208
40225
  },
40209
40226
  children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "p-4", children: [
40210
- entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
40227
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
40211
40228
  /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
40212
40229
  /* @__PURE__ */ jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
40213
40230
  /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.description }),
@@ -40253,7 +40270,7 @@ function NegotiatorBoard({
40253
40270
  /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: "vs" }),
40254
40271
  /* @__PURE__ */ jsx(Typography, { variant: "caption", children: getActionLabel(round.opponentAction) }),
40255
40272
  /* @__PURE__ */ jsx(Icon, { icon: ArrowRight, size: "xs" }),
40256
- /* @__PURE__ */ jsxs(Typography, { variant: "caption", weight: "bold", className: "text-green-600", children: [
40273
+ /* @__PURE__ */ jsxs(Typography, { variant: "caption", weight: "bold", className: "text-success", children: [
40257
40274
  "+",
40258
40275
  round.playerPayoff
40259
40276
  ] }),
@@ -40264,7 +40281,7 @@ function NegotiatorBoard({
40264
40281
  ] }, round.round))
40265
40282
  ] }) }),
40266
40283
  isComplete && /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", children: [
40267
- /* @__PURE__ */ jsx(Icon, { icon: CheckCircle, size: "lg", className: won ? "text-green-600" : "text-red-600" }),
40284
+ /* @__PURE__ */ jsx(Icon, { icon: CheckCircle, size: "lg", className: won ? "text-success" : "text-error" }),
40268
40285
  /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "bold", children: won ? entity.successMessage ?? t("negotiator.success") : entity.failMessage ?? t("negotiator.failed") }),
40269
40286
  /* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-muted-foreground", children: [
40270
40287
  t("negotiator.finalScore"),
@@ -40274,7 +40291,7 @@ function NegotiatorBoard({
40274
40291
  entity.targetScore
40275
40292
  ] })
40276
40293
  ] }) }),
40277
- showHint && entity.hint && !won && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-yellow-500", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
40294
+ showHint && entity.hint && !won && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
40278
40295
  isComplete && !won && /* @__PURE__ */ jsx(HStack, { justify: "center", children: /* @__PURE__ */ jsx(Button, { variant: "primary", onClick: handleReset, children: t("negotiator.playAgain") }) })
40279
40296
  ] })
40280
40297
  }
@@ -42859,7 +42876,7 @@ function TraitSlot({
42859
42876
  display: "flex",
42860
42877
  position: "relative",
42861
42878
  className: cn(
42862
- "items-center justify-center rounded-lg transition-all duration-200",
42879
+ "items-center justify-center rounded-container transition-all duration-200 bg-card/50",
42863
42880
  !locked && "cursor-pointer",
42864
42881
  locked && "cursor-not-allowed opacity-50",
42865
42882
  isEmpty && !locked && "border-2 border-dashed border-border hover:border-muted-foreground",
@@ -42875,7 +42892,7 @@ function TraitSlot({
42875
42892
  style: {
42876
42893
  width: config.box,
42877
42894
  height: config.box,
42878
- backgroundColor: catColor?.bg || "rgba(30,41,59,0.5)",
42895
+ backgroundColor: catColor?.bg || void 0,
42879
42896
  borderColor: isDragOver ? void 0 : feedback === "correct" ? "var(--color-success)" : feedback === "wrong" ? "var(--color-error)" : catColor?.border || void 0
42880
42897
  },
42881
42898
  onClick: handleClick,
@@ -42904,7 +42921,7 @@ function TraitSlot({
42904
42921
  Box,
42905
42922
  {
42906
42923
  position: "absolute",
42907
- 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",
42924
+ 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",
42908
42925
  onClick: handleRemove,
42909
42926
  children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-foreground text-xs leading-none", children: "\xD7" })
42910
42927
  }
@@ -42914,14 +42931,14 @@ function TraitSlot({
42914
42931
  Box,
42915
42932
  {
42916
42933
  position: "absolute",
42917
- className: "-bottom-1 -left-1 w-4 h-4 bg-card rounded-full flex items-center justify-center border border-border",
42934
+ className: "-bottom-1 -left-1 w-4 h-4 bg-card rounded-pill flex items-center justify-center border border-border",
42918
42935
  children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground text-xs", children: slotNumber })
42919
42936
  }
42920
42937
  ),
42921
42938
  showTooltip && isHovered && itemMachine && !isEmpty && equippedItem && /* @__PURE__ */ jsxs(
42922
42939
  Box,
42923
42940
  {
42924
- className: "p-3 bg-background border border-border rounded-lg shadow-xl",
42941
+ className: "p-3 bg-background border border-border rounded-container shadow-xl",
42925
42942
  style: {
42926
42943
  ...getTooltipStyle(),
42927
42944
  minWidth: 200,
@@ -43171,12 +43188,12 @@ function SequencerBoard({
43171
43188
  backgroundPosition: "center"
43172
43189
  },
43173
43190
  children: [
43174
- entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
43191
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
43175
43192
  /* @__PURE__ */ jsxs(VStack, { gap: "xs", children: [
43176
43193
  /* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-foreground", children: entity.title }),
43177
43194
  /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-muted-foreground", children: entity.description })
43178
43195
  ] }),
43179
- showHint && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-lg bg-accent/10 border border-accent/30", children: /* @__PURE__ */ jsxs(HStack, { className: "items-start", gap: "xs", children: [
43196
+ showHint && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-container bg-accent/10 border border-accent/30", children: /* @__PURE__ */ jsxs(HStack, { className: "items-start", gap: "xs", children: [
43180
43197
  /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-accent font-bold shrink-0", children: "\u{1F4A1} " + t("game.hint") + ":" }),
43181
43198
  /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground", children: entity.hint })
43182
43199
  ] }) }),
@@ -43214,8 +43231,8 @@ function SequencerBoard({
43214
43231
  label: t("sequencer.dragActions")
43215
43232
  }
43216
43233
  ),
43217
- hasFeedback && playState === "idle" && attempts > 0 && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-lg bg-warning/10 border border-warning/30 text-center", children: /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground", children: t(encourageKey) }) }),
43218
- playState === "success" && /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-lg bg-success/20 border border-success text-center", children: /* @__PURE__ */ jsx(Typography, { variant: "h5", className: "text-success", children: entity.successMessage || t("sequencer.levelComplete") }) }),
43234
+ hasFeedback && playState === "idle" && attempts > 0 && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-container bg-warning/10 border border-warning/30 text-center", children: /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground", children: t(encourageKey) }) }),
43235
+ playState === "success" && /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-container bg-success/20 border border-success text-center", children: /* @__PURE__ */ jsx(Typography, { variant: "h5", className: "text-success", children: entity.successMessage || t("sequencer.levelComplete") }) }),
43219
43236
  /* @__PURE__ */ jsxs(HStack, { gap: "sm", children: [
43220
43237
  /* @__PURE__ */ jsx(
43221
43238
  Button,
@@ -43891,7 +43908,7 @@ function SimulationCanvas({
43891
43908
  ref: canvasRef,
43892
43909
  width,
43893
43910
  height,
43894
- className: "rounded-md block max-w-full h-auto"
43911
+ className: "rounded-container block max-w-full h-auto"
43895
43912
  }
43896
43913
  ) });
43897
43914
  }
@@ -44099,7 +44116,7 @@ function SimulatorBoard({
44099
44116
  backgroundPosition: "center"
44100
44117
  },
44101
44118
  children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "p-4", children: [
44102
- entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
44119
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
44103
44120
  /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
44104
44121
  /* @__PURE__ */ jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
44105
44122
  /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.description })
@@ -44150,8 +44167,8 @@ function SimulatorBoard({
44150
44167
  entity.outputUnit
44151
44168
  ] }),
44152
44169
  submitted && /* @__PURE__ */ jsxs(HStack, { gap: "xs", align: "center", children: [
44153
- /* @__PURE__ */ jsx(Icon, { icon: isCorrect ? CheckCircle : XCircle, size: "sm", className: isCorrect ? "text-green-600" : "text-red-600" }),
44154
- /* @__PURE__ */ jsx(Typography, { variant: "body", className: isCorrect ? "text-green-600" : "text-red-600", children: isCorrect ? entity.successMessage ?? t("simulator.correct") : entity.failMessage ?? t("simulator.incorrect") })
44170
+ /* @__PURE__ */ jsx(Icon, { icon: isCorrect ? CheckCircle : XCircle, size: "sm", className: isCorrect ? "text-success" : "text-error" }),
44171
+ /* @__PURE__ */ jsx(Typography, { variant: "body", className: isCorrect ? "text-success" : "text-error", children: isCorrect ? entity.successMessage ?? t("simulator.correct") : entity.failMessage ?? t("simulator.incorrect") })
44155
44172
  ] }),
44156
44173
  /* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-muted-foreground", children: [
44157
44174
  t("simulator.target"),
@@ -44164,7 +44181,7 @@ function SimulatorBoard({
44164
44181
  ")"
44165
44182
  ] })
44166
44183
  ] }) }),
44167
- showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-yellow-500", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
44184
+ showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
44168
44185
  /* @__PURE__ */ jsxs(HStack, { gap: "sm", justify: "center", children: [
44169
44186
  !submitted ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleSubmit, children: [
44170
44187
  /* @__PURE__ */ jsx(Icon, { icon: Play, size: "sm" }),
@@ -44565,7 +44582,7 @@ function StateNode2({
44565
44582
  position: "absolute",
44566
44583
  display: "flex",
44567
44584
  className: cn(
44568
- "items-center justify-center rounded-full border-3 transition-all cursor-pointer select-none",
44585
+ "items-center justify-center rounded-pill border-3 transition-all cursor-pointer select-none",
44569
44586
  "min-w-[80px] h-[80px] px-3",
44570
44587
  isCurrent && "bg-primary/20 border-primary shadow-lg shadow-primary/30 scale-110",
44571
44588
  isSelected && !isCurrent && "bg-accent/20 border-accent ring-2 ring-accent/50",
@@ -44878,7 +44895,7 @@ function StateArchitectBoard({
44878
44895
  backgroundPosition: "center"
44879
44896
  },
44880
44897
  children: [
44881
- entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-lg", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-lg bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
44898
+ entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-container", children: /* @__PURE__ */ jsx("img", { src: entity.headerImage, alt: "", onError: () => setHeaderError(true), className: "w-full h-full object-cover" }) }) : entity.headerImage && headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 rounded-container bg-gradient-to-br from-muted to-accent opacity-60" }) : null,
44882
44899
  /* @__PURE__ */ jsxs(VStack, { gap: "xs", children: [
44883
44900
  /* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-foreground", children: entity.title }),
44884
44901
  /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-muted-foreground", children: entity.description }),
@@ -44897,7 +44914,7 @@ function StateArchitectBoard({
44897
44914
  Box,
44898
44915
  {
44899
44916
  position: "relative",
44900
- className: "rounded-lg border border-border bg-background overflow-hidden",
44917
+ className: "rounded-container border border-border bg-background overflow-hidden",
44901
44918
  style: { width: GRAPH_W, height: GRAPH_H },
44902
44919
  children: [
44903
44920
  /* @__PURE__ */ jsxs(
@@ -44956,7 +44973,7 @@ function StateArchitectBoard({
44956
44973
  children: selectedState ? t("stateArchitect.addTransition", { state: selectedState }) : t("stateArchitect.addTransitionPrompt")
44957
44974
  }
44958
44975
  ) }),
44959
- transitions.length > 0 && /* @__PURE__ */ jsxs(VStack, { gap: "xs", className: "p-3 rounded-lg bg-muted/50 border border-border", children: [
44976
+ transitions.length > 0 && /* @__PURE__ */ jsxs(VStack, { gap: "xs", className: "p-3 rounded-container bg-muted/50 border border-border", children: [
44960
44977
  /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground font-medium", children: t("stateArchitect.transitions", { count: transitions.length }) + ":" }),
44961
44978
  transitions.map((t2) => /* @__PURE__ */ jsxs(HStack, { className: "items-center text-xs", gap: "xs", children: [
44962
44979
  /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-foreground", children: t2.from }),
@@ -44990,7 +45007,7 @@ function StateArchitectBoard({
44990
45007
  variables
44991
45008
  }
44992
45009
  ),
44993
- testResults.length > 0 && /* @__PURE__ */ jsxs(VStack, { className: "p-3 rounded-lg bg-card border border-border", gap: "xs", children: [
45010
+ testResults.length > 0 && /* @__PURE__ */ jsxs(VStack, { className: "p-3 rounded-container bg-card border border-border", gap: "xs", children: [
44994
45011
  /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-muted-foreground font-medium", children: t("stateArchitect.testResults") + ":" }),
44995
45012
  testResults.map((r, i) => /* @__PURE__ */ jsxs(HStack, { className: "items-center text-xs", gap: "xs", children: [
44996
45013
  /* @__PURE__ */ jsx(Typography, { variant: "caption", className: r.passed ? "text-success" : "text-error", children: r.passed ? "\u2714" : "\u2717" }),
@@ -45001,10 +45018,10 @@ function StateArchitectBoard({
45001
45018
  entity.showCodeView !== false && /* @__PURE__ */ jsx(CodeView, { data: codeData, label: "View Code" })
45002
45019
  ] })
45003
45020
  ] }),
45004
- playState === "success" && /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-lg bg-success/20 border border-success text-center", children: /* @__PURE__ */ jsx(Typography, { variant: "h5", className: "text-success", children: entity.successMessage || t("stateArchitect.allPassed") }) }),
45021
+ playState === "success" && /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-container bg-success/20 border border-success text-center", children: /* @__PURE__ */ jsx(Typography, { variant: "h5", className: "text-success", children: entity.successMessage || t("stateArchitect.allPassed") }) }),
45005
45022
  playState === "fail" && /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
45006
- /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-lg bg-warning/10 border border-warning/30 text-center", children: /* @__PURE__ */ jsx(Typography, { variant: "body1", className: "text-foreground font-medium", children: t(ENCOURAGEMENT_KEYS3[Math.min(attempts - 1, ENCOURAGEMENT_KEYS3.length - 1)] ?? ENCOURAGEMENT_KEYS3[0]) }) }),
45007
- attempts >= 3 && entity.hint && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-lg bg-accent/10 border border-accent/30", children: /* @__PURE__ */ jsxs(HStack, { className: "items-start", gap: "xs", children: [
45023
+ /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-container bg-warning/10 border border-warning/30 text-center", children: /* @__PURE__ */ jsx(Typography, { variant: "body1", className: "text-foreground font-medium", children: t(ENCOURAGEMENT_KEYS3[Math.min(attempts - 1, ENCOURAGEMENT_KEYS3.length - 1)] ?? ENCOURAGEMENT_KEYS3[0]) }) }),
45024
+ attempts >= 3 && entity.hint && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-container bg-accent/10 border border-accent/30", children: /* @__PURE__ */ jsxs(HStack, { className: "items-start", gap: "xs", children: [
45008
45025
  /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-accent font-bold shrink-0", children: "\u{1F4A1} " + t("game.hint") + ":" }),
45009
45026
  /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground", children: entity.hint })
45010
45027
  ] }) })