@almadar/ui 5.9.6 → 5.9.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/avl/index.cjs +258 -235
- package/dist/avl/index.js +258 -235
- package/dist/components/index.cjs +230 -230
- package/dist/components/index.js +230 -230
- package/dist/providers/index.cjs +214 -214
- package/dist/providers/index.js +214 -214
- package/dist/runtime/index.cjs +258 -235
- package/dist/runtime/index.js +258 -235
- package/dist/runtime/orbitalsByTrait.d.ts +34 -0
- package/package.json +1 -1
package/dist/runtime/index.js
CHANGED
|
@@ -7096,7 +7096,7 @@ function HealthBar({
|
|
|
7096
7096
|
"div",
|
|
7097
7097
|
{
|
|
7098
7098
|
className: cn(
|
|
7099
|
-
"relative overflow-hidden rounded-full bg-
|
|
7099
|
+
"relative overflow-hidden rounded-full bg-muted",
|
|
7100
7100
|
sizes.bar,
|
|
7101
7101
|
"w-24",
|
|
7102
7102
|
className
|
|
@@ -7106,7 +7106,7 @@ function HealthBar({
|
|
|
7106
7106
|
{
|
|
7107
7107
|
className: cn(
|
|
7108
7108
|
"absolute inset-y-0 left-0 rounded-full",
|
|
7109
|
-
percentage > 66 ? "bg-
|
|
7109
|
+
percentage > 66 ? "bg-success" : percentage > 33 ? "bg-warning" : "bg-error",
|
|
7110
7110
|
animated && "transition-all duration-300"
|
|
7111
7111
|
),
|
|
7112
7112
|
style: { width: `${percentage}%` }
|
|
@@ -7128,7 +7128,7 @@ var init_HealthBar = __esm({
|
|
|
7128
7128
|
heartIcon = (filled, size) => /* @__PURE__ */ jsx(
|
|
7129
7129
|
"svg",
|
|
7130
7130
|
{
|
|
7131
|
-
className: cn("transition-all duration-200", size, filled ? "text-
|
|
7131
|
+
className: cn("transition-all duration-200", size, filled ? "text-error" : "text-muted-foreground"),
|
|
7132
7132
|
viewBox: "0 0 24 24",
|
|
7133
7133
|
fill: filled ? "currentColor" : "none",
|
|
7134
7134
|
stroke: "currentColor",
|
|
@@ -7192,7 +7192,7 @@ function ScoreDisplay({
|
|
|
7192
7192
|
),
|
|
7193
7193
|
children: [
|
|
7194
7194
|
icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: icon }),
|
|
7195
|
-
label && /* @__PURE__ */ jsx("span", { className: "text-
|
|
7195
|
+
label && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: label }),
|
|
7196
7196
|
/* @__PURE__ */ jsx("span", { className: "tabular-nums", children: formattedValue })
|
|
7197
7197
|
]
|
|
7198
7198
|
}
|
|
@@ -7305,8 +7305,8 @@ var init_ControlButton = __esm({
|
|
|
7305
7305
|
};
|
|
7306
7306
|
shapeMap = {
|
|
7307
7307
|
circle: "rounded-full",
|
|
7308
|
-
rounded: "rounded-
|
|
7309
|
-
square: "rounded-
|
|
7308
|
+
rounded: "rounded-interactive",
|
|
7309
|
+
square: "rounded-interactive"
|
|
7310
7310
|
};
|
|
7311
7311
|
variantMap = {
|
|
7312
7312
|
primary: "bg-primary text-primary-foreground border-primary hover:bg-primary-hover",
|
|
@@ -7474,12 +7474,12 @@ function TimerDisplay({
|
|
|
7474
7474
|
"div",
|
|
7475
7475
|
{
|
|
7476
7476
|
className: cn(
|
|
7477
|
-
"inline-flex items-center justify-center rounded-
|
|
7478
|
-
"bg-
|
|
7477
|
+
"inline-flex items-center justify-center rounded-container",
|
|
7478
|
+
"bg-card/80 border border-muted font-mono font-bold tabular-nums",
|
|
7479
7479
|
sizeMap4[size],
|
|
7480
|
-
running && "border-
|
|
7481
|
-
isLow && "text-
|
|
7482
|
-
!isLow && "text-
|
|
7480
|
+
running && "border-success/50",
|
|
7481
|
+
isLow && "text-error border-error/50 animate-pulse",
|
|
7482
|
+
!isLow && "text-foreground",
|
|
7483
7483
|
className
|
|
7484
7484
|
),
|
|
7485
7485
|
children: formatTime(seconds, format)
|
|
@@ -7512,17 +7512,17 @@ function ResourceCounter({
|
|
|
7512
7512
|
"div",
|
|
7513
7513
|
{
|
|
7514
7514
|
className: cn(
|
|
7515
|
-
"inline-flex items-center rounded-
|
|
7516
|
-
"bg-
|
|
7515
|
+
"inline-flex items-center rounded-container",
|
|
7516
|
+
"bg-card/80 border border-muted font-medium text-foreground",
|
|
7517
7517
|
sizes.wrapper,
|
|
7518
7518
|
className
|
|
7519
7519
|
),
|
|
7520
7520
|
children: [
|
|
7521
7521
|
icon && /* @__PURE__ */ jsx("span", { className: cn("flex-shrink-0", sizes.icon), children: icon }),
|
|
7522
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
7522
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: label }),
|
|
7523
7523
|
/* @__PURE__ */ jsxs("span", { className: cn("font-bold tabular-nums", color), children: [
|
|
7524
7524
|
value,
|
|
7525
|
-
max != null && /* @__PURE__ */ jsxs("span", { className: "text-
|
|
7525
|
+
max != null && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
|
|
7526
7526
|
"/",
|
|
7527
7527
|
max
|
|
7528
7528
|
] })
|
|
@@ -7563,18 +7563,18 @@ function ItemSlot({
|
|
|
7563
7563
|
disabled: !isClickable,
|
|
7564
7564
|
title: label,
|
|
7565
7565
|
className: cn(
|
|
7566
|
-
"relative flex items-center justify-center rounded-
|
|
7567
|
-
"bg-
|
|
7566
|
+
"relative flex items-center justify-center rounded-interactive border-2",
|
|
7567
|
+
"bg-card/80 transition-all duration-150",
|
|
7568
7568
|
sizeMap6[size],
|
|
7569
|
-
empty ? "border-
|
|
7569
|
+
empty ? "border-border bg-card/50" : rarityBorderMap[rarity],
|
|
7570
7570
|
!empty && rarityGlowMap[rarity],
|
|
7571
|
-
selected && "ring-2 ring-
|
|
7571
|
+
selected && "ring-2 ring-foreground ring-offset-1 ring-offset-background",
|
|
7572
7572
|
isClickable && !empty && "hover:brightness-125 cursor-pointer",
|
|
7573
|
-
isClickable && empty && "hover:border-
|
|
7573
|
+
isClickable && empty && "hover:border-muted cursor-pointer",
|
|
7574
7574
|
!isClickable && "cursor-default",
|
|
7575
7575
|
className
|
|
7576
7576
|
),
|
|
7577
|
-
children: empty ? /* @__PURE__ */ jsx("span", { className: "text-
|
|
7577
|
+
children: empty ? /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7578
7578
|
icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: icon }),
|
|
7579
7579
|
quantity != null && quantity > 1 && /* @__PURE__ */ jsx(
|
|
7580
7580
|
"span",
|
|
@@ -7582,7 +7582,7 @@ function ItemSlot({
|
|
|
7582
7582
|
className: cn(
|
|
7583
7583
|
"absolute -bottom-1 -right-1 flex items-center justify-center",
|
|
7584
7584
|
"min-w-[18px] h-[18px] rounded-full px-1",
|
|
7585
|
-
"bg-
|
|
7585
|
+
"bg-surface border border-muted text-xs font-bold text-foreground"
|
|
7586
7586
|
),
|
|
7587
7587
|
children: quantity
|
|
7588
7588
|
}
|
|
@@ -7602,18 +7602,18 @@ var init_ItemSlot = __esm({
|
|
|
7602
7602
|
lg: "w-18 h-18 text-3xl"
|
|
7603
7603
|
};
|
|
7604
7604
|
rarityBorderMap = {
|
|
7605
|
-
common: "border-
|
|
7606
|
-
uncommon: "border-
|
|
7607
|
-
rare: "border-
|
|
7608
|
-
epic: "border-
|
|
7609
|
-
legendary: "border-
|
|
7605
|
+
common: "border-muted",
|
|
7606
|
+
uncommon: "border-success",
|
|
7607
|
+
rare: "border-info",
|
|
7608
|
+
epic: "border-accent",
|
|
7609
|
+
legendary: "border-warning"
|
|
7610
7610
|
};
|
|
7611
7611
|
rarityGlowMap = {
|
|
7612
7612
|
common: "",
|
|
7613
7613
|
uncommon: "",
|
|
7614
|
-
rare: "shadow-
|
|
7615
|
-
epic: "shadow-
|
|
7616
|
-
legendary: "shadow-
|
|
7614
|
+
rare: "shadow-sm",
|
|
7615
|
+
epic: "shadow-lg",
|
|
7616
|
+
legendary: "shadow-lg"
|
|
7617
7617
|
};
|
|
7618
7618
|
ItemSlot.displayName = "ItemSlot";
|
|
7619
7619
|
}
|
|
@@ -7631,8 +7631,8 @@ function TurnIndicator({
|
|
|
7631
7631
|
"div",
|
|
7632
7632
|
{
|
|
7633
7633
|
className: cn(
|
|
7634
|
-
"inline-flex items-center rounded-
|
|
7635
|
-
"bg-
|
|
7634
|
+
"inline-flex items-center rounded-container",
|
|
7635
|
+
"bg-card/80 border border-muted font-medium text-foreground",
|
|
7636
7636
|
sizes.wrapper,
|
|
7637
7637
|
className
|
|
7638
7638
|
),
|
|
@@ -7640,19 +7640,19 @@ function TurnIndicator({
|
|
|
7640
7640
|
/* @__PURE__ */ jsxs("span", { className: "font-bold tabular-nums", children: [
|
|
7641
7641
|
"Turn ",
|
|
7642
7642
|
currentTurn,
|
|
7643
|
-
maxTurns != null && /* @__PURE__ */ jsxs("span", { className: "text-
|
|
7643
|
+
maxTurns != null && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
|
|
7644
7644
|
"/",
|
|
7645
7645
|
maxTurns
|
|
7646
7646
|
] })
|
|
7647
7647
|
] }),
|
|
7648
7648
|
phase && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7649
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
7650
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
7649
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "|" }),
|
|
7650
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: phase })
|
|
7651
7651
|
] }),
|
|
7652
7652
|
activeTeam && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7653
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
7654
|
-
/* @__PURE__ */ jsx("span", { className: cn("rounded-full bg-
|
|
7655
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
7653
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "|" }),
|
|
7654
|
+
/* @__PURE__ */ jsx("span", { className: cn("rounded-full bg-success/20", sizes.dot) }),
|
|
7655
|
+
/* @__PURE__ */ jsx("span", { className: "text-success", children: activeTeam })
|
|
7656
7656
|
] })
|
|
7657
7657
|
]
|
|
7658
7658
|
}
|
|
@@ -7671,10 +7671,10 @@ var init_TurnIndicator = __esm({
|
|
|
7671
7671
|
}
|
|
7672
7672
|
});
|
|
7673
7673
|
function getComboIntensity(combo) {
|
|
7674
|
-
if (combo >= 10) return "text-
|
|
7675
|
-
if (combo >= 7) return "text-
|
|
7676
|
-
if (combo >= 4) return "text-
|
|
7677
|
-
return "text-
|
|
7674
|
+
if (combo >= 10) return "text-error animate-pulse";
|
|
7675
|
+
if (combo >= 7) return "text-warning";
|
|
7676
|
+
if (combo >= 4) return "text-warning";
|
|
7677
|
+
return "text-foreground";
|
|
7678
7678
|
}
|
|
7679
7679
|
function getComboScale(combo) {
|
|
7680
7680
|
if (combo >= 10) return "scale-110";
|
|
@@ -7695,19 +7695,19 @@ function ComboCounter({
|
|
|
7695
7695
|
{
|
|
7696
7696
|
className: cn(
|
|
7697
7697
|
"inline-flex flex-col items-center justify-center",
|
|
7698
|
-
"rounded-
|
|
7698
|
+
"rounded-container bg-card/80 border border-muted px-3 py-1.5",
|
|
7699
7699
|
"transition-transform duration-200",
|
|
7700
7700
|
getComboScale(combo),
|
|
7701
7701
|
className
|
|
7702
7702
|
),
|
|
7703
7703
|
children: [
|
|
7704
7704
|
/* @__PURE__ */ jsx("span", { className: cn("font-black tabular-nums leading-none", sizes.combo, getComboIntensity(combo)), children: combo }),
|
|
7705
|
-
/* @__PURE__ */ jsx("span", { className: cn("font-bold uppercase tracking-wider text-
|
|
7706
|
-
multiplier != null && multiplier > 1 && /* @__PURE__ */ jsxs("span", { className: cn("font-bold text-
|
|
7705
|
+
/* @__PURE__ */ jsx("span", { className: cn("font-bold uppercase tracking-wider text-muted-foreground", sizes.label), children: "combo" }),
|
|
7706
|
+
multiplier != null && multiplier > 1 && /* @__PURE__ */ jsxs("span", { className: cn("font-bold text-warning tabular-nums", sizes.multiplier), children: [
|
|
7707
7707
|
"x",
|
|
7708
7708
|
multiplier.toFixed(1)
|
|
7709
7709
|
] }),
|
|
7710
|
-
streak != null && streak > 0 && /* @__PURE__ */ jsxs("span", { className: cn("text-
|
|
7710
|
+
streak != null && streak > 0 && /* @__PURE__ */ jsxs("span", { className: cn("text-muted-foreground tabular-nums", sizes.label), children: [
|
|
7711
7711
|
streak,
|
|
7712
7712
|
" streak"
|
|
7713
7713
|
] })
|
|
@@ -7743,8 +7743,8 @@ function XPBar({
|
|
|
7743
7743
|
"span",
|
|
7744
7744
|
{
|
|
7745
7745
|
className: cn(
|
|
7746
|
-
"flex-shrink-0 rounded-
|
|
7747
|
-
"bg-
|
|
7746
|
+
"flex-shrink-0 rounded-interactive font-bold",
|
|
7747
|
+
"bg-accent text-foreground border border-accent",
|
|
7748
7748
|
sizes.badge
|
|
7749
7749
|
),
|
|
7750
7750
|
children: [
|
|
@@ -7758,7 +7758,7 @@ function XPBar({
|
|
|
7758
7758
|
"div",
|
|
7759
7759
|
{
|
|
7760
7760
|
className: cn(
|
|
7761
|
-
"relative w-full overflow-hidden rounded-full bg-
|
|
7761
|
+
"relative w-full overflow-hidden rounded-full bg-muted border border-muted",
|
|
7762
7762
|
sizes.bar
|
|
7763
7763
|
),
|
|
7764
7764
|
children: /* @__PURE__ */ jsx(
|
|
@@ -7766,7 +7766,7 @@ function XPBar({
|
|
|
7766
7766
|
{
|
|
7767
7767
|
className: cn(
|
|
7768
7768
|
"absolute inset-y-0 left-0 rounded-full",
|
|
7769
|
-
"bg-gradient-to-r from-
|
|
7769
|
+
"bg-gradient-to-r from-accent to-info",
|
|
7770
7770
|
animated && "transition-all duration-500 ease-out"
|
|
7771
7771
|
),
|
|
7772
7772
|
style: { width: `${percentage}%` }
|
|
@@ -7774,7 +7774,7 @@ function XPBar({
|
|
|
7774
7774
|
)
|
|
7775
7775
|
}
|
|
7776
7776
|
),
|
|
7777
|
-
showLabel && /* @__PURE__ */ jsxs("span", { className: cn("text-
|
|
7777
|
+
showLabel && /* @__PURE__ */ jsxs("span", { className: cn("text-muted-foreground tabular-nums", sizes.text), children: [
|
|
7778
7778
|
current,
|
|
7779
7779
|
" / ",
|
|
7780
7780
|
max,
|
|
@@ -7810,7 +7810,7 @@ function WaypointMarker({
|
|
|
7810
7810
|
"div",
|
|
7811
7811
|
{
|
|
7812
7812
|
className: cn(
|
|
7813
|
-
"absolute rounded-full border-2 border-
|
|
7813
|
+
"absolute rounded-full border-2 border-info animate-ping opacity-50",
|
|
7814
7814
|
sizes.ring
|
|
7815
7815
|
)
|
|
7816
7816
|
}
|
|
@@ -7819,7 +7819,7 @@ function WaypointMarker({
|
|
|
7819
7819
|
"div",
|
|
7820
7820
|
{
|
|
7821
7821
|
className: cn(
|
|
7822
|
-
"absolute rounded-full border-2 border-
|
|
7822
|
+
"absolute rounded-full border-2 border-info",
|
|
7823
7823
|
sizes.ring
|
|
7824
7824
|
)
|
|
7825
7825
|
}
|
|
@@ -7830,9 +7830,9 @@ function WaypointMarker({
|
|
|
7830
7830
|
className: cn(
|
|
7831
7831
|
"relative flex items-center justify-center rounded-full transition-all duration-200",
|
|
7832
7832
|
sizes.dot,
|
|
7833
|
-
completed && "bg-
|
|
7834
|
-
active && !completed && "bg-
|
|
7835
|
-
!active && !completed && "bg-
|
|
7833
|
+
completed && "bg-success text-foreground",
|
|
7834
|
+
active && !completed && "bg-info text-foreground",
|
|
7835
|
+
!active && !completed && "bg-muted"
|
|
7836
7836
|
),
|
|
7837
7837
|
children: completed ? checkIcon : icon
|
|
7838
7838
|
}
|
|
@@ -7844,7 +7844,7 @@ function WaypointMarker({
|
|
|
7844
7844
|
className: cn(
|
|
7845
7845
|
"text-center whitespace-nowrap",
|
|
7846
7846
|
sizes.label,
|
|
7847
|
-
completed ? "text-
|
|
7847
|
+
completed ? "text-success" : active ? "text-info" : "text-muted-foreground"
|
|
7848
7848
|
),
|
|
7849
7849
|
children: label
|
|
7850
7850
|
}
|
|
@@ -7885,7 +7885,7 @@ function StatusEffect({
|
|
|
7885
7885
|
"div",
|
|
7886
7886
|
{
|
|
7887
7887
|
className: cn(
|
|
7888
|
-
"relative flex items-center justify-center rounded border-2",
|
|
7888
|
+
"relative flex items-center justify-center rounded-interactive border-2",
|
|
7889
7889
|
sizes.container,
|
|
7890
7890
|
variantStyles7[variant]
|
|
7891
7891
|
),
|
|
@@ -7896,7 +7896,7 @@ function StatusEffect({
|
|
|
7896
7896
|
"span",
|
|
7897
7897
|
{
|
|
7898
7898
|
className: cn(
|
|
7899
|
-
"absolute bottom-0 left-0 right-0 text-center font-mono font-bold text-
|
|
7899
|
+
"absolute bottom-0 left-0 right-0 text-center font-mono font-bold text-foreground bg-background/60 leading-tight",
|
|
7900
7900
|
sizes.timer
|
|
7901
7901
|
),
|
|
7902
7902
|
children: formatDuration(duration)
|
|
@@ -7909,7 +7909,7 @@ function StatusEffect({
|
|
|
7909
7909
|
"span",
|
|
7910
7910
|
{
|
|
7911
7911
|
className: cn(
|
|
7912
|
-
"absolute flex items-center justify-center rounded-full bg-
|
|
7912
|
+
"absolute flex items-center justify-center rounded-full bg-card text-foreground font-bold leading-none",
|
|
7913
7913
|
sizes.badge
|
|
7914
7914
|
),
|
|
7915
7915
|
children: stacks
|
|
@@ -7928,9 +7928,9 @@ var init_StatusEffect = __esm({
|
|
|
7928
7928
|
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" }
|
|
7929
7929
|
};
|
|
7930
7930
|
variantStyles7 = {
|
|
7931
|
-
buff: "border-
|
|
7932
|
-
debuff: "border-
|
|
7933
|
-
neutral: "border-
|
|
7931
|
+
buff: "border-success bg-success/20",
|
|
7932
|
+
debuff: "border-error bg-error/20",
|
|
7933
|
+
neutral: "border-muted bg-muted/20"
|
|
7934
7934
|
};
|
|
7935
7935
|
StatusEffect.displayName = "StatusEffect";
|
|
7936
7936
|
}
|
|
@@ -7969,10 +7969,10 @@ var init_DamageNumber = __esm({
|
|
|
7969
7969
|
lg: "text-2xl"
|
|
7970
7970
|
};
|
|
7971
7971
|
typeStyles = {
|
|
7972
|
-
damage: "text-
|
|
7973
|
-
heal: "text-
|
|
7974
|
-
crit: "text-
|
|
7975
|
-
miss: "text-
|
|
7972
|
+
damage: "text-error font-bold",
|
|
7973
|
+
heal: "text-success font-bold",
|
|
7974
|
+
crit: "text-warning font-extrabold",
|
|
7975
|
+
miss: "text-muted-foreground italic"
|
|
7976
7976
|
};
|
|
7977
7977
|
floatKeyframes = `
|
|
7978
7978
|
@keyframes damageFloat {
|
|
@@ -7995,12 +7995,12 @@ function DialogueBubble({
|
|
|
7995
7995
|
"div",
|
|
7996
7996
|
{
|
|
7997
7997
|
className: cn(
|
|
7998
|
-
"flex items-start gap-3 rounded-
|
|
7998
|
+
"flex items-start gap-3 rounded-container bg-background/80 backdrop-blur-sm px-4 py-3 border border-border/10",
|
|
7999
7999
|
position === "top" ? "rounded-bl-none" : "rounded-tl-none",
|
|
8000
8000
|
className
|
|
8001
8001
|
),
|
|
8002
8002
|
children: [
|
|
8003
|
-
portrait && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 w-12 h-12 rounded-full overflow-hidden border-2 border-
|
|
8003
|
+
portrait && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 w-12 h-12 rounded-full overflow-hidden border-2 border-warning/60", children: /* @__PURE__ */ jsx(
|
|
8004
8004
|
"img",
|
|
8005
8005
|
{
|
|
8006
8006
|
src: portrait,
|
|
@@ -8009,8 +8009,8 @@ function DialogueBubble({
|
|
|
8009
8009
|
}
|
|
8010
8010
|
) }),
|
|
8011
8011
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1 min-w-0", children: [
|
|
8012
|
-
speaker && /* @__PURE__ */ jsx("span", { className: "text-sm font-bold text-
|
|
8013
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm text-
|
|
8012
|
+
speaker && /* @__PURE__ */ jsx("span", { className: "text-sm font-bold text-warning", children: speaker }),
|
|
8013
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm text-foreground leading-relaxed", children: text })
|
|
8014
8014
|
] })
|
|
8015
8015
|
]
|
|
8016
8016
|
}
|
|
@@ -8037,7 +8037,7 @@ function ChoiceButton({
|
|
|
8037
8037
|
disabled,
|
|
8038
8038
|
onClick,
|
|
8039
8039
|
className: cn(
|
|
8040
|
-
"w-full text-left px-4 py-2.5 rounded-
|
|
8040
|
+
"w-full text-left px-4 py-2.5 rounded-interactive border transition-all duration-150",
|
|
8041
8041
|
"flex items-center gap-2",
|
|
8042
8042
|
selected ? "bg-accent/15 border-accent text-foreground" : "bg-muted/40 border-border text-foreground hover:bg-muted hover:border-border",
|
|
8043
8043
|
disabled && "opacity-40 cursor-not-allowed hover:bg-muted/40 hover:border-border",
|
|
@@ -8090,7 +8090,7 @@ function ActionButton({
|
|
|
8090
8090
|
disabled: isDisabled,
|
|
8091
8091
|
onClick,
|
|
8092
8092
|
className: cn(
|
|
8093
|
-
"relative inline-flex items-center gap-1.5 rounded-
|
|
8093
|
+
"relative inline-flex items-center gap-1.5 rounded-interactive border font-medium overflow-hidden transition-colors duration-150",
|
|
8094
8094
|
sizes.button,
|
|
8095
8095
|
variantStyles8[variant],
|
|
8096
8096
|
isDisabled && "opacity-60 cursor-not-allowed",
|
|
@@ -8133,9 +8133,9 @@ var init_ActionButton = __esm({
|
|
|
8133
8133
|
init_cn();
|
|
8134
8134
|
init_Icon();
|
|
8135
8135
|
sizeMap13 = {
|
|
8136
|
-
sm: { button: "px-3
|
|
8137
|
-
md: { button: "px-4
|
|
8138
|
-
lg: { button: "
|
|
8136
|
+
sm: { button: "h-button-sm px-3 text-xs", hotkey: "text-[9px] px-1", icon: "text-xs" },
|
|
8137
|
+
md: { button: "h-button-md px-4 text-sm", hotkey: "text-xs px-1.5", icon: "text-sm" },
|
|
8138
|
+
lg: { button: "h-button-lg px-5 text-base", hotkey: "text-xs px-2", icon: "text-base" }
|
|
8139
8139
|
};
|
|
8140
8140
|
variantStyles8 = {
|
|
8141
8141
|
primary: "bg-primary text-primary-foreground hover:bg-primary-hover border-primary",
|
|
@@ -8215,7 +8215,7 @@ function MiniMap({
|
|
|
8215
8215
|
"div",
|
|
8216
8216
|
{
|
|
8217
8217
|
className: cn(
|
|
8218
|
-
"relative inline-block border border-
|
|
8218
|
+
"relative inline-block border border-border/20 rounded-container",
|
|
8219
8219
|
className
|
|
8220
8220
|
),
|
|
8221
8221
|
children: /* @__PURE__ */ jsx(
|
|
@@ -10800,7 +10800,7 @@ function ActionTile({
|
|
|
10800
10800
|
{
|
|
10801
10801
|
display: "flex",
|
|
10802
10802
|
className: cn(
|
|
10803
|
-
"flex-col items-center gap-1 rounded-
|
|
10803
|
+
"flex-col items-center gap-1 rounded-container border-2 transition-all select-none",
|
|
10804
10804
|
config.px,
|
|
10805
10805
|
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",
|
|
10806
10806
|
className
|
|
@@ -12112,12 +12112,12 @@ function IsometricCanvas({
|
|
|
12112
12112
|
return /* @__PURE__ */ jsx(
|
|
12113
12113
|
Box,
|
|
12114
12114
|
{
|
|
12115
|
-
className: cn("relative w-full overflow-hidden rounded-
|
|
12115
|
+
className: cn("relative w-full overflow-hidden rounded-container", className),
|
|
12116
12116
|
style: { height: viewportSize.height },
|
|
12117
12117
|
"data-testid": "game-canvas-empty",
|
|
12118
|
-
children: /* @__PURE__ */ jsx(Box, { className: "flex items-center justify-center h-full bg-[var(--color-card)] rounded-
|
|
12118
|
+
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: [
|
|
12119
12119
|
/* @__PURE__ */ jsx(Icon, { name: "map", size: "xl" }),
|
|
12120
|
-
/* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-
|
|
12120
|
+
/* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-muted-foreground", children: t("canvas.emptyMessage") || "No map data loaded" })
|
|
12121
12121
|
] }) })
|
|
12122
12122
|
}
|
|
12123
12123
|
);
|
|
@@ -12515,19 +12515,19 @@ function BattleBoard({
|
|
|
12515
12515
|
}
|
|
12516
12516
|
)
|
|
12517
12517
|
] }),
|
|
12518
|
-
gameResult && (gameOverOverlay ? gameOverOverlay(ctx) : /* @__PURE__ */ jsx(Box, { className: "absolute inset-0 z-50 flex items-center justify-center bg-
|
|
12518
|
+
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: [
|
|
12519
12519
|
/* @__PURE__ */ jsx(
|
|
12520
12520
|
Typography,
|
|
12521
12521
|
{
|
|
12522
12522
|
variant: "h2",
|
|
12523
12523
|
className: cn(
|
|
12524
12524
|
"text-4xl font-black tracking-widest uppercase",
|
|
12525
|
-
gameResult === "victory" ? "text-
|
|
12525
|
+
gameResult === "victory" ? "text-warning" : "text-error"
|
|
12526
12526
|
),
|
|
12527
12527
|
children: gameResult === "victory" ? t("battle.victory") : t("battle.defeat")
|
|
12528
12528
|
}
|
|
12529
12529
|
),
|
|
12530
|
-
/* @__PURE__ */ jsxs(Typography, { variant: "body1", className: "text-
|
|
12530
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "body1", className: "text-muted-foreground", children: [
|
|
12531
12531
|
t("battle.turnsPlayed"),
|
|
12532
12532
|
": ",
|
|
12533
12533
|
currentTurn
|
|
@@ -17354,7 +17354,7 @@ function BuilderBoard({
|
|
|
17354
17354
|
backgroundPosition: "center"
|
|
17355
17355
|
},
|
|
17356
17356
|
children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "p-4", children: [
|
|
17357
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
17357
|
+
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,
|
|
17358
17358
|
/* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
17359
17359
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
|
|
17360
17360
|
/* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.description })
|
|
@@ -17392,7 +17392,7 @@ function BuilderBoard({
|
|
|
17392
17392
|
{
|
|
17393
17393
|
gap: "sm",
|
|
17394
17394
|
align: "center",
|
|
17395
|
-
className: `p-3 border-2 rounded ${result ? result.correct ? "border-
|
|
17395
|
+
className: `p-3 border-2 rounded ${result ? result.correct ? "border-success" : "border-error" : selectedComponent ? "border-dashed border-foreground cursor-pointer" : "border-border"}`,
|
|
17396
17396
|
onClick: () => handlePlaceComponent(slot.id),
|
|
17397
17397
|
children: [
|
|
17398
17398
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", className: "flex-1", children: [
|
|
@@ -17407,7 +17407,7 @@ function BuilderBoard({
|
|
|
17407
17407
|
] }) : null,
|
|
17408
17408
|
placedComp.label
|
|
17409
17409
|
] }),
|
|
17410
|
-
result && /* @__PURE__ */ jsx(Icon, { icon: result.correct ? CheckCircle : XCircle, size: "sm", className: result.correct ? "text-
|
|
17410
|
+
result && /* @__PURE__ */ jsx(Icon, { icon: result.correct ? CheckCircle : XCircle, size: "sm", className: result.correct ? "text-success" : "text-error" })
|
|
17411
17411
|
] }) : /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: t("builder.empty") })
|
|
17412
17412
|
]
|
|
17413
17413
|
},
|
|
@@ -17416,10 +17416,10 @@ function BuilderBoard({
|
|
|
17416
17416
|
}) })
|
|
17417
17417
|
] }) }),
|
|
17418
17418
|
submitted && /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", children: [
|
|
17419
|
-
/* @__PURE__ */ jsx(Icon, { icon: allCorrect ? CheckCircle : XCircle, size: "lg", className: allCorrect ? "text-
|
|
17419
|
+
/* @__PURE__ */ jsx(Icon, { icon: allCorrect ? CheckCircle : XCircle, size: "lg", className: allCorrect ? "text-success" : "text-error" }),
|
|
17420
17420
|
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "bold", children: allCorrect ? entity.successMessage ?? t("builder.success") : entity.failMessage ?? t("builder.incorrect") })
|
|
17421
17421
|
] }) }),
|
|
17422
|
-
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-
|
|
17422
|
+
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
|
|
17423
17423
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", justify: "center", children: [
|
|
17424
17424
|
!submitted ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleSubmit, disabled: !allPlaced, children: [
|
|
17425
17425
|
/* @__PURE__ */ jsx(Icon, { icon: Wrench, size: "sm" }),
|
|
@@ -18974,7 +18974,7 @@ function CanvasEffectEngine({
|
|
|
18974
18974
|
flash && /* @__PURE__ */ jsx(
|
|
18975
18975
|
Box,
|
|
18976
18976
|
{
|
|
18977
|
-
className: "absolute inset-0 z-20 pointer-events-none rounded-
|
|
18977
|
+
className: "absolute inset-0 z-20 pointer-events-none rounded-container",
|
|
18978
18978
|
style: { backgroundColor: flash.color, opacity: flash.alpha }
|
|
18979
18979
|
}
|
|
18980
18980
|
),
|
|
@@ -19042,7 +19042,7 @@ function EmojiEffect({
|
|
|
19042
19042
|
/* @__PURE__ */ jsx(
|
|
19043
19043
|
Box,
|
|
19044
19044
|
{
|
|
19045
|
-
className: "absolute rounded-
|
|
19045
|
+
className: "absolute rounded-pill animate-ping",
|
|
19046
19046
|
style: {
|
|
19047
19047
|
width: 48 * intensity,
|
|
19048
19048
|
height: 48 * intensity,
|
|
@@ -20859,7 +20859,7 @@ function ClassifierBoard({
|
|
|
20859
20859
|
backgroundPosition: "center"
|
|
20860
20860
|
},
|
|
20861
20861
|
children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "p-4", children: [
|
|
20862
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
20862
|
+
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,
|
|
20863
20863
|
/* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
20864
20864
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
|
|
20865
20865
|
/* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.description })
|
|
@@ -20874,7 +20874,7 @@ function ClassifierBoard({
|
|
|
20874
20874
|
/* @__PURE__ */ jsx(VStack, { gap: "md", children: categories.map((cat) => {
|
|
20875
20875
|
const catItems = items.filter((item) => assignments[item.id] === cat.id);
|
|
20876
20876
|
return /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
20877
|
-
cat.imageUrl && /* @__PURE__ */ jsx(Box, { className: "w-full h-16 overflow-hidden rounded-
|
|
20877
|
+
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" }) }),
|
|
20878
20878
|
/* @__PURE__ */ jsxs(HStack, { justify: "between", align: "center", children: [
|
|
20879
20879
|
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "bold", children: cat.label }),
|
|
20880
20880
|
/* @__PURE__ */ jsx(Badge, { size: "sm", children: catItems.length })
|
|
@@ -20885,12 +20885,12 @@ function ClassifierBoard({
|
|
|
20885
20885
|
Badge,
|
|
20886
20886
|
{
|
|
20887
20887
|
size: "sm",
|
|
20888
|
-
className: `cursor-pointer ${result ? result.correct ? "border-
|
|
20888
|
+
className: `cursor-pointer ${result ? result.correct ? "border-success bg-success/10" : "border-error bg-error/10" : ""}`,
|
|
20889
20889
|
onClick: () => handleUnassign(item.id),
|
|
20890
20890
|
children: [
|
|
20891
20891
|
item.iconUrl && /* @__PURE__ */ jsx("img", { src: item.iconUrl, alt: "", className: "w-3 h-3 object-contain inline-block" }),
|
|
20892
20892
|
item.label,
|
|
20893
|
-
result && /* @__PURE__ */ jsx(Icon, { icon: result.correct ? CheckCircle : XCircle, size: "xs", className: result.correct ? "text-
|
|
20893
|
+
result && /* @__PURE__ */ jsx(Icon, { icon: result.correct ? CheckCircle : XCircle, size: "xs", className: result.correct ? "text-success" : "text-error" })
|
|
20894
20894
|
]
|
|
20895
20895
|
},
|
|
20896
20896
|
item.id
|
|
@@ -20913,11 +20913,11 @@ function ClassifierBoard({
|
|
|
20913
20913
|
] }) }, cat.id);
|
|
20914
20914
|
}) }),
|
|
20915
20915
|
submitted && /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", children: [
|
|
20916
|
-
/* @__PURE__ */ jsx(Icon, { icon: allCorrect ? CheckCircle : XCircle, size: "lg", className: allCorrect ? "text-
|
|
20916
|
+
/* @__PURE__ */ jsx(Icon, { icon: allCorrect ? CheckCircle : XCircle, size: "lg", className: allCorrect ? "text-success" : "text-error" }),
|
|
20917
20917
|
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "bold", children: allCorrect ? entity.successMessage ?? t("classifier.allCorrect") : `${correctCount}/${items.length} ${t("classifier.correct")}` }),
|
|
20918
20918
|
!allCorrect && entity.failMessage && /* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-muted-foreground", children: entity.failMessage })
|
|
20919
20919
|
] }) }),
|
|
20920
|
-
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-
|
|
20920
|
+
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
|
|
20921
20921
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", justify: "center", children: [
|
|
20922
20922
|
!submitted ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleSubmit, disabled: !allAssigned, children: [
|
|
20923
20923
|
/* @__PURE__ */ jsx(Icon, { icon: Send, size: "sm" }),
|
|
@@ -21965,7 +21965,7 @@ function CraftingRecipe({
|
|
|
21965
21965
|
Box,
|
|
21966
21966
|
{
|
|
21967
21967
|
className: cn(
|
|
21968
|
-
"flex flex-wrap items-center gap-3 rounded-
|
|
21968
|
+
"flex flex-wrap items-center gap-3 rounded-container bg-muted/50 border border-border/50 p-3",
|
|
21969
21969
|
className
|
|
21970
21970
|
),
|
|
21971
21971
|
children: [
|
|
@@ -21982,10 +21982,10 @@ function CraftingRecipe({
|
|
|
21982
21982
|
className: cn(!hasSufficient && "opacity-50")
|
|
21983
21983
|
}
|
|
21984
21984
|
) }),
|
|
21985
|
-
index < inputs.length - 1 && /* @__PURE__ */ jsx(Icon, { name: "plus", size: "sm", className: "text-
|
|
21985
|
+
index < inputs.length - 1 && /* @__PURE__ */ jsx(Icon, { name: "plus", size: "sm", className: "text-muted-foreground" })
|
|
21986
21986
|
] }, index);
|
|
21987
21987
|
}) }),
|
|
21988
|
-
/* @__PURE__ */ jsx(Icon, { name: "arrow-right", size: "md", className: "text-
|
|
21988
|
+
/* @__PURE__ */ jsx(Icon, { name: "arrow-right", size: "md", className: "text-muted-foreground" }),
|
|
21989
21989
|
/* @__PURE__ */ jsx(
|
|
21990
21990
|
ItemSlot,
|
|
21991
21991
|
{
|
|
@@ -22073,7 +22073,7 @@ function DPad({
|
|
|
22073
22073
|
createButton("up"),
|
|
22074
22074
|
/* @__PURE__ */ jsx("div", {}),
|
|
22075
22075
|
createButton("left"),
|
|
22076
|
-
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "w-6 h-6 rounded-
|
|
22076
|
+
/* @__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" }) }),
|
|
22077
22077
|
createButton("right"),
|
|
22078
22078
|
/* @__PURE__ */ jsx("div", {}),
|
|
22079
22079
|
createButton("down"),
|
|
@@ -26180,7 +26180,7 @@ function StatBadge({
|
|
|
26180
26180
|
"div",
|
|
26181
26181
|
{
|
|
26182
26182
|
className: cn(
|
|
26183
|
-
"inline-flex items-center gap-2 rounded-
|
|
26183
|
+
"inline-flex items-center gap-2 rounded-container border backdrop-blur-sm",
|
|
26184
26184
|
sizeMap17[size] ?? sizeMap17.md,
|
|
26185
26185
|
variantMap2[variant] ?? variantMap2.default,
|
|
26186
26186
|
className
|
|
@@ -26326,10 +26326,10 @@ function QuestTracker({
|
|
|
26326
26326
|
Box,
|
|
26327
26327
|
{
|
|
26328
26328
|
className: cn(
|
|
26329
|
-
"flex items-start gap-3 rounded-
|
|
26330
|
-
isActive && !isCompleted && "bg-
|
|
26331
|
-
isCompleted && "bg-
|
|
26332
|
-
!isActive && !isCompleted && "bg-
|
|
26329
|
+
"flex items-start gap-3 rounded-container px-3 py-2 transition-colors",
|
|
26330
|
+
isActive && !isCompleted && "bg-info/20 border border-info/50",
|
|
26331
|
+
isCompleted && "bg-success/10 border border-success/30 opacity-70",
|
|
26332
|
+
!isActive && !isCompleted && "bg-muted/30 border border-border/30"
|
|
26333
26333
|
),
|
|
26334
26334
|
children: [
|
|
26335
26335
|
/* @__PURE__ */ jsx(Box, { className: "flex-shrink-0 pt-0.5", children: /* @__PURE__ */ jsx(
|
|
@@ -26347,9 +26347,9 @@ function QuestTracker({
|
|
|
26347
26347
|
variant: "body2",
|
|
26348
26348
|
className: cn(
|
|
26349
26349
|
"font-medium truncate",
|
|
26350
|
-
isCompleted && "line-through text-
|
|
26351
|
-
isActive && !isCompleted && "text-
|
|
26352
|
-
!isActive && !isCompleted && "text-
|
|
26350
|
+
isCompleted && "line-through text-muted-foreground",
|
|
26351
|
+
isActive && !isCompleted && "text-info",
|
|
26352
|
+
!isActive && !isCompleted && "text-muted-foreground"
|
|
26353
26353
|
),
|
|
26354
26354
|
children: quest.title
|
|
26355
26355
|
}
|
|
@@ -26367,7 +26367,7 @@ function QuestTracker({
|
|
|
26367
26367
|
Typography,
|
|
26368
26368
|
{
|
|
26369
26369
|
variant: "caption",
|
|
26370
|
-
className: "text-
|
|
26370
|
+
className: "text-muted-foreground mt-1",
|
|
26371
26371
|
children: [
|
|
26372
26372
|
quest.progress,
|
|
26373
26373
|
" / ",
|
|
@@ -26424,14 +26424,14 @@ function PowerupSlots({
|
|
|
26424
26424
|
{
|
|
26425
26425
|
className: cn(
|
|
26426
26426
|
"absolute -bottom-1 left-1/2 -translate-x-1/2",
|
|
26427
|
-
"rounded px-1 py-px",
|
|
26428
|
-
"bg-
|
|
26427
|
+
"rounded-interactive px-1 py-px",
|
|
26428
|
+
"bg-background/80 border border-border"
|
|
26429
26429
|
),
|
|
26430
26430
|
children: /* @__PURE__ */ jsx(
|
|
26431
26431
|
Typography,
|
|
26432
26432
|
{
|
|
26433
26433
|
variant: "caption",
|
|
26434
|
-
className: "text-[9px] font-mono font-bold text-
|
|
26434
|
+
className: "text-[9px] font-mono font-bold text-warning whitespace-nowrap",
|
|
26435
26435
|
children: formatTime2(powerup.remainingTime)
|
|
26436
26436
|
}
|
|
26437
26437
|
)
|
|
@@ -26553,7 +26553,7 @@ function HealthPanel({
|
|
|
26553
26553
|
Box,
|
|
26554
26554
|
{
|
|
26555
26555
|
className: cn(
|
|
26556
|
-
"rounded-
|
|
26556
|
+
"rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm",
|
|
26557
26557
|
sizes.padding,
|
|
26558
26558
|
className
|
|
26559
26559
|
),
|
|
@@ -26564,7 +26564,7 @@ function HealthPanel({
|
|
|
26564
26564
|
{
|
|
26565
26565
|
variant: "caption",
|
|
26566
26566
|
weight: "bold",
|
|
26567
|
-
className: "text-
|
|
26567
|
+
className: "text-muted-foreground uppercase tracking-wider",
|
|
26568
26568
|
children: label
|
|
26569
26569
|
}
|
|
26570
26570
|
),
|
|
@@ -26585,7 +26585,7 @@ function HealthPanel({
|
|
|
26585
26585
|
as: "span",
|
|
26586
26586
|
variant: "caption",
|
|
26587
26587
|
weight: "bold",
|
|
26588
|
-
className: "text-
|
|
26588
|
+
className: "text-info ml-1",
|
|
26589
26589
|
children: [
|
|
26590
26590
|
"+",
|
|
26591
26591
|
shield
|
|
@@ -26610,14 +26610,14 @@ function HealthPanel({
|
|
|
26610
26610
|
Box,
|
|
26611
26611
|
{
|
|
26612
26612
|
className: cn(
|
|
26613
|
-
"relative overflow-hidden rounded-
|
|
26613
|
+
"relative overflow-hidden rounded-container bg-muted",
|
|
26614
26614
|
size === "sm" ? "h-1" : size === "md" ? "h-1.5" : "h-2",
|
|
26615
26615
|
"w-full"
|
|
26616
26616
|
),
|
|
26617
26617
|
children: /* @__PURE__ */ jsx(
|
|
26618
26618
|
Box,
|
|
26619
26619
|
{
|
|
26620
|
-
className: "absolute inset-y-0 left-0 rounded-
|
|
26620
|
+
className: "absolute inset-y-0 left-0 rounded-container bg-info transition-all duration-300",
|
|
26621
26621
|
style: { width: `${Math.min(100, shield / max * 100)}%` }
|
|
26622
26622
|
}
|
|
26623
26623
|
)
|
|
@@ -26676,7 +26676,7 @@ function ScoreBoard({
|
|
|
26676
26676
|
Card,
|
|
26677
26677
|
{
|
|
26678
26678
|
className: cn(
|
|
26679
|
-
"bg-[var(--color-card)]/90 border-
|
|
26679
|
+
"bg-[var(--color-card)]/90 border-border backdrop-blur-sm",
|
|
26680
26680
|
className
|
|
26681
26681
|
),
|
|
26682
26682
|
children: /* @__PURE__ */ jsx(CardContent, { className: "p-3", children: /* @__PURE__ */ jsxs(Box, { className: "flex items-center gap-3 flex-wrap", children: [
|
|
@@ -26793,7 +26793,7 @@ function TurnPanel({
|
|
|
26793
26793
|
Box,
|
|
26794
26794
|
{
|
|
26795
26795
|
className: cn(
|
|
26796
|
-
"flex items-center gap-3 rounded-
|
|
26796
|
+
"flex items-center gap-3 rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm px-3 py-2",
|
|
26797
26797
|
className
|
|
26798
26798
|
),
|
|
26799
26799
|
children: [
|
|
@@ -26845,7 +26845,7 @@ function EnemyPlate({
|
|
|
26845
26845
|
Box,
|
|
26846
26846
|
{
|
|
26847
26847
|
className: cn(
|
|
26848
|
-
"inline-flex flex-col gap-1 rounded-
|
|
26848
|
+
"inline-flex flex-col gap-1 rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm px-3 py-1.5",
|
|
26849
26849
|
"min-w-[120px]",
|
|
26850
26850
|
className
|
|
26851
26851
|
),
|
|
@@ -26939,7 +26939,7 @@ function UnitCommandBar({
|
|
|
26939
26939
|
Box,
|
|
26940
26940
|
{
|
|
26941
26941
|
className: cn(
|
|
26942
|
-
"flex items-center gap-1.5 rounded-
|
|
26942
|
+
"flex items-center gap-1.5 rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm px-2 py-1.5",
|
|
26943
26943
|
className
|
|
26944
26944
|
),
|
|
26945
26945
|
children: commands.map((command, i) => /* @__PURE__ */ jsxs(Box, { className: "flex flex-col items-center gap-0.5", children: [
|
|
@@ -27024,8 +27024,8 @@ function GameHud({
|
|
|
27024
27024
|
className: cn(
|
|
27025
27025
|
"relative z-10",
|
|
27026
27026
|
positionMap[position],
|
|
27027
|
-
transparent && "bg-gradient-to-b from-
|
|
27028
|
-
position === "bottom" && "bg-gradient-to-t from-
|
|
27027
|
+
transparent && "bg-gradient-to-b from-background/50 to-transparent",
|
|
27028
|
+
position === "bottom" && "bg-gradient-to-t from-background/50 to-transparent",
|
|
27029
27029
|
className
|
|
27030
27030
|
),
|
|
27031
27031
|
children: /* @__PURE__ */ jsx("div", { className: "flex gap-4", children: stats.map((stat, i) => /* @__PURE__ */ jsx(StatBadge, { ...stat, size }, i)) })
|
|
@@ -27183,8 +27183,8 @@ function DialogueBox({
|
|
|
27183
27183
|
tabIndex: 0,
|
|
27184
27184
|
role: "dialog",
|
|
27185
27185
|
"aria-label": "Dialogue",
|
|
27186
|
-
children: /* @__PURE__ */ jsx("div", { className: "mx-4 my-4 bg-[var(--color-card)] bg-opacity-95 border-2 border-
|
|
27187
|
-
dialogue.portrait && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 p-4 border-r border-
|
|
27186
|
+
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: [
|
|
27187
|
+
dialogue.portrait && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 p-4 border-r border-border", children: /* @__PURE__ */ jsx(
|
|
27188
27188
|
"img",
|
|
27189
27189
|
{
|
|
27190
27190
|
src: dialogue.portrait,
|
|
@@ -27194,7 +27194,7 @@ function DialogueBox({
|
|
|
27194
27194
|
}
|
|
27195
27195
|
) }),
|
|
27196
27196
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 p-4", children: [
|
|
27197
|
-
/* @__PURE__ */ jsx("div", { className: "text-
|
|
27197
|
+
/* @__PURE__ */ jsx("div", { className: "text-warning font-bold mb-2", children: dialogue.speaker }),
|
|
27198
27198
|
/* @__PURE__ */ jsxs("div", { className: "text-[var(--color-foreground)] text-lg leading-relaxed min-h-[60px]", children: [
|
|
27199
27199
|
displayedText,
|
|
27200
27200
|
isTyping && /* @__PURE__ */ jsx("span", { className: "animate-pulse", children: "\u258C" })
|
|
@@ -27204,9 +27204,9 @@ function DialogueBox({
|
|
|
27204
27204
|
{
|
|
27205
27205
|
type: "button",
|
|
27206
27206
|
className: cn(
|
|
27207
|
-
"block w-full text-left px-4 py-2 rounded transition-colors",
|
|
27208
|
-
"hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-
|
|
27209
|
-
selectedChoice === index ? "bg-[var(--color-surface,#374151)] text-
|
|
27207
|
+
"block w-full text-left px-4 py-2 rounded-interactive transition-colors",
|
|
27208
|
+
"hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-warning",
|
|
27209
|
+
selectedChoice === index ? "bg-[var(--color-surface,#374151)] text-warning" : "bg-[var(--color-card)] text-[var(--color-foreground)]"
|
|
27210
27210
|
),
|
|
27211
27211
|
onClick: (e) => {
|
|
27212
27212
|
e.stopPropagation();
|
|
@@ -27214,7 +27214,7 @@ function DialogueBox({
|
|
|
27214
27214
|
onChoice?.(choice);
|
|
27215
27215
|
},
|
|
27216
27216
|
children: [
|
|
27217
|
-
/* @__PURE__ */ jsxs("span", { className: "text-
|
|
27217
|
+
/* @__PURE__ */ jsxs("span", { className: "text-muted-foreground mr-2", children: [
|
|
27218
27218
|
index + 1,
|
|
27219
27219
|
"."
|
|
27220
27220
|
] }),
|
|
@@ -27223,7 +27223,7 @@ function DialogueBox({
|
|
|
27223
27223
|
},
|
|
27224
27224
|
index
|
|
27225
27225
|
)) }),
|
|
27226
|
-
!isTyping && !dialogue.choices?.length && /* @__PURE__ */ jsx("div", { className: "mt-4 text-
|
|
27226
|
+
!isTyping && !dialogue.choices?.length && /* @__PURE__ */ jsx("div", { className: "mt-4 text-muted-foreground text-sm animate-pulse", children: "Press SPACE or click to continue..." })
|
|
27227
27227
|
] })
|
|
27228
27228
|
] }) })
|
|
27229
27229
|
}
|
|
@@ -27326,7 +27326,7 @@ function InventoryPanel({
|
|
|
27326
27326
|
/* @__PURE__ */ jsx(
|
|
27327
27327
|
"div",
|
|
27328
27328
|
{
|
|
27329
|
-
className: "grid gap-1 bg-[var(--color-card)] p-2 rounded-
|
|
27329
|
+
className: "grid gap-1 bg-[var(--color-card)] p-2 rounded-container border border-border",
|
|
27330
27330
|
style: {
|
|
27331
27331
|
gridTemplateColumns: `repeat(${safeColumns}, ${slotSize}px)`,
|
|
27332
27332
|
gridTemplateRows: `repeat(${rows}, ${slotSize}px)`
|
|
@@ -27338,8 +27338,8 @@ function InventoryPanel({
|
|
|
27338
27338
|
className: cn(
|
|
27339
27339
|
"relative flex items-center justify-center",
|
|
27340
27340
|
"bg-[var(--color-card)] border rounded transition-colors",
|
|
27341
|
-
"hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-
|
|
27342
|
-
selectedSlot === index ? "border-
|
|
27341
|
+
"hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-info",
|
|
27342
|
+
selectedSlot === index ? "border-warning bg-[var(--color-surface,#374151)]" : "border-muted"
|
|
27343
27343
|
),
|
|
27344
27344
|
style: { width: slotSize, height: slotSize },
|
|
27345
27345
|
onClick: () => handleSlotClick(index),
|
|
@@ -27358,8 +27358,8 @@ function InventoryPanel({
|
|
|
27358
27358
|
className: "w-8 h-8 object-contain",
|
|
27359
27359
|
style: { imageRendering: "pixelated" }
|
|
27360
27360
|
}
|
|
27361
|
-
) : /* @__PURE__ */ jsx("div", { className: "w-8 h-8 bg-
|
|
27362
|
-
item.quantity > 1 && /* @__PURE__ */ jsx("span", { className: "absolute bottom-0 right-0 bg-
|
|
27361
|
+
) : /* @__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() }),
|
|
27362
|
+
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 })
|
|
27363
27363
|
] })
|
|
27364
27364
|
},
|
|
27365
27365
|
index
|
|
@@ -27369,7 +27369,7 @@ function InventoryPanel({
|
|
|
27369
27369
|
showTooltips && hoveredItem && /* @__PURE__ */ jsxs(
|
|
27370
27370
|
"div",
|
|
27371
27371
|
{
|
|
27372
|
-
className: "fixed z-50 bg-[var(--color-card)] border border-
|
|
27372
|
+
className: "fixed z-50 bg-[var(--color-card)] border border-border rounded-container p-2 shadow-elevation-card pointer-events-none",
|
|
27373
27373
|
style: {
|
|
27374
27374
|
left: tooltipPosition.x,
|
|
27375
27375
|
top: tooltipPosition.y,
|
|
@@ -27377,8 +27377,8 @@ function InventoryPanel({
|
|
|
27377
27377
|
},
|
|
27378
27378
|
children: [
|
|
27379
27379
|
/* @__PURE__ */ jsx("div", { className: "font-semibold text-[var(--color-foreground)]", children: hoveredItem.name || hoveredItem.type }),
|
|
27380
|
-
hoveredItem.description && /* @__PURE__ */ jsx("div", { className: "text-sm text-
|
|
27381
|
-
/* @__PURE__ */ jsxs("div", { className: "text-xs text-
|
|
27380
|
+
hoveredItem.description && /* @__PURE__ */ jsx("div", { className: "text-sm text-muted-foreground mt-1", children: hoveredItem.description }),
|
|
27381
|
+
/* @__PURE__ */ jsxs("div", { className: "text-xs text-muted-foreground mt-1", children: [
|
|
27382
27382
|
"Quantity: ",
|
|
27383
27383
|
hoveredItem.quantity
|
|
27384
27384
|
] })
|
|
@@ -27456,7 +27456,7 @@ function GameMenu({
|
|
|
27456
27456
|
children: title
|
|
27457
27457
|
}
|
|
27458
27458
|
),
|
|
27459
|
-
subtitle && /* @__PURE__ */ jsx("p", { className: "mt-2 text-lg text-
|
|
27459
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "mt-2 text-lg text-muted-foreground tracking-widest uppercase", children: subtitle })
|
|
27460
27460
|
] }),
|
|
27461
27461
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4 w-full max-w-md", children: resolvedOptions.map((option, index) => /* @__PURE__ */ jsx(
|
|
27462
27462
|
"button",
|
|
@@ -27464,10 +27464,10 @@ function GameMenu({
|
|
|
27464
27464
|
onClick: () => handleOptionClick(option),
|
|
27465
27465
|
disabled: option.disabled,
|
|
27466
27466
|
className: cn(
|
|
27467
|
-
"w-full py-4 px-8 rounded-
|
|
27467
|
+
"w-full py-4 px-8 rounded-container border-2 font-bold text-lg",
|
|
27468
27468
|
"transition-all duration-200 transform",
|
|
27469
27469
|
"hover:scale-105 active:scale-95",
|
|
27470
|
-
"focus:outline-none focus:ring-4 focus:ring-
|
|
27470
|
+
"focus:outline-none focus:ring-4 focus:ring-foreground/25",
|
|
27471
27471
|
variantMap3[option.variant ?? "secondary"] ?? variantMap3.secondary,
|
|
27472
27472
|
option.disabled && "opacity-50 cursor-not-allowed hover:scale-100"
|
|
27473
27473
|
),
|
|
@@ -27479,8 +27479,8 @@ function GameMenu({
|
|
|
27479
27479
|
index
|
|
27480
27480
|
)) }),
|
|
27481
27481
|
/* @__PURE__ */ jsxs("div", { className: "absolute inset-0 pointer-events-none overflow-hidden", children: [
|
|
27482
|
-
/* @__PURE__ */ jsx("div", { className: "absolute top-1/4 left-1/4 w-64 h-64 bg-
|
|
27483
|
-
/* @__PURE__ */ jsx("div", { className: "absolute bottom-1/4 right-1/4 w-96 h-96 bg-
|
|
27482
|
+
/* @__PURE__ */ jsx("div", { className: "absolute top-1/4 left-1/4 w-64 h-64 bg-info/10 rounded-container blur-3xl" }),
|
|
27483
|
+
/* @__PURE__ */ jsx("div", { className: "absolute bottom-1/4 right-1/4 w-96 h-96 bg-accent/10 rounded-container blur-3xl" })
|
|
27484
27484
|
] })
|
|
27485
27485
|
]
|
|
27486
27486
|
}
|
|
@@ -27493,9 +27493,9 @@ var init_GameMenu = __esm({
|
|
|
27493
27493
|
init_cn();
|
|
27494
27494
|
init_useEventBus();
|
|
27495
27495
|
variantMap3 = {
|
|
27496
|
-
primary: "bg-[var(--color-primary)] hover:bg-
|
|
27497
|
-
secondary: "bg-[var(--color-surface,#374151)] hover:bg-
|
|
27498
|
-
ghost: "bg-transparent hover:bg-
|
|
27496
|
+
primary: "bg-[var(--color-primary)] hover:bg-info text-[var(--color-primary-foreground)] border-info shadow-lg shadow-info/25",
|
|
27497
|
+
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
27498
|
+
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
27499
27499
|
};
|
|
27500
27500
|
GameMenu.displayName = "GameMenu";
|
|
27501
27501
|
}
|
|
@@ -27563,13 +27563,13 @@ function GameOverScreen({
|
|
|
27563
27563
|
children: title
|
|
27564
27564
|
}
|
|
27565
27565
|
),
|
|
27566
|
-
message && /* @__PURE__ */ jsx("p", { className: "text-xl text-
|
|
27567
|
-
isNewHighScore && /* @__PURE__ */ jsx("div", { className: "mb-6 px-6 py-2 bg-
|
|
27566
|
+
message && /* @__PURE__ */ jsx("p", { className: "text-xl text-muted-foreground mb-8 text-center max-w-md", children: message }),
|
|
27567
|
+
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}" }) }),
|
|
27568
27568
|
stats.length > 0 && /* @__PURE__ */ jsx(
|
|
27569
27569
|
"div",
|
|
27570
27570
|
{
|
|
27571
27571
|
className: cn(
|
|
27572
|
-
"mb-8 p-6 rounded-
|
|
27572
|
+
"mb-8 p-6 rounded-container border-2 bg-background/30",
|
|
27573
27573
|
colors.accent
|
|
27574
27574
|
),
|
|
27575
27575
|
children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-4", children: stats.map((stat, index) => {
|
|
@@ -27578,7 +27578,7 @@ function GameOverScreen({
|
|
|
27578
27578
|
displayValue = formatTime3(displayValue);
|
|
27579
27579
|
}
|
|
27580
27580
|
return /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
27581
|
-
/* @__PURE__ */ jsx("div", { className: "text-
|
|
27581
|
+
/* @__PURE__ */ jsx("div", { className: "text-muted-foreground text-sm mb-1", children: stat.label }),
|
|
27582
27582
|
/* @__PURE__ */ jsxs("div", { className: "text-[var(--color-foreground)] text-2xl font-bold flex items-center justify-center gap-2", children: [
|
|
27583
27583
|
stat.icon && /* @__PURE__ */ jsx("span", { children: stat.icon }),
|
|
27584
27584
|
/* @__PURE__ */ jsx("span", { className: "tabular-nums", children: displayValue })
|
|
@@ -27592,10 +27592,10 @@ function GameOverScreen({
|
|
|
27592
27592
|
{
|
|
27593
27593
|
onClick: () => handleActionClick(action),
|
|
27594
27594
|
className: cn(
|
|
27595
|
-
"px-8 py-4 rounded-
|
|
27595
|
+
"px-8 py-4 rounded-container border-2 font-bold text-lg",
|
|
27596
27596
|
"transition-all duration-200",
|
|
27597
27597
|
"hover:scale-105 active:scale-95",
|
|
27598
|
-
"focus:outline-none focus:ring-4 focus:ring-
|
|
27598
|
+
"focus:outline-none focus:ring-4 focus:ring-foreground/25",
|
|
27599
27599
|
buttonVariants[action.variant ?? "secondary"]
|
|
27600
27600
|
),
|
|
27601
27601
|
children: action.label
|
|
@@ -27614,25 +27614,25 @@ var init_GameOverScreen = __esm({
|
|
|
27614
27614
|
init_useEventBus();
|
|
27615
27615
|
variantColors = {
|
|
27616
27616
|
victory: {
|
|
27617
|
-
bg: "from-
|
|
27618
|
-
title: "text-
|
|
27619
|
-
accent: "border-
|
|
27617
|
+
bg: "from-success/90 to-success/90",
|
|
27618
|
+
title: "text-success",
|
|
27619
|
+
accent: "border-success"
|
|
27620
27620
|
},
|
|
27621
27621
|
defeat: {
|
|
27622
|
-
bg: "from-
|
|
27623
|
-
title: "text-
|
|
27624
|
-
accent: "border-
|
|
27622
|
+
bg: "from-error/90 to-background/90",
|
|
27623
|
+
title: "text-error",
|
|
27624
|
+
accent: "border-error"
|
|
27625
27625
|
},
|
|
27626
27626
|
neutral: {
|
|
27627
|
-
bg: "from-
|
|
27628
|
-
title: "text-
|
|
27629
|
-
accent: "border-
|
|
27627
|
+
bg: "from-muted/90 to-background/90",
|
|
27628
|
+
title: "text-foreground",
|
|
27629
|
+
accent: "border-muted"
|
|
27630
27630
|
}
|
|
27631
27631
|
};
|
|
27632
27632
|
buttonVariants = {
|
|
27633
|
-
primary: "bg-[var(--color-primary)] hover:bg-
|
|
27634
|
-
secondary: "bg-[var(--color-surface,#374151)] hover:bg-
|
|
27635
|
-
ghost: "bg-transparent hover:bg-
|
|
27633
|
+
primary: "bg-[var(--color-primary)] hover:bg-info text-[var(--color-primary-foreground)] border-info",
|
|
27634
|
+
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
27635
|
+
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
27636
27636
|
};
|
|
27637
27637
|
GameOverScreen.displayName = "GameOverScreen";
|
|
27638
27638
|
}
|
|
@@ -27866,7 +27866,7 @@ function PlatformerCanvas({
|
|
|
27866
27866
|
{
|
|
27867
27867
|
ref: canvasRef,
|
|
27868
27868
|
style: { width: canvasWidth, height: canvasHeight },
|
|
27869
|
-
className: cn("block rounded-
|
|
27869
|
+
className: cn("block rounded-container border border-border/10", className),
|
|
27870
27870
|
"data-testid": "platformer-canvas",
|
|
27871
27871
|
tabIndex: 0
|
|
27872
27872
|
}
|
|
@@ -35271,7 +35271,7 @@ function DebuggerBoard({
|
|
|
35271
35271
|
backgroundPosition: "center"
|
|
35272
35272
|
},
|
|
35273
35273
|
children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "p-4", children: [
|
|
35274
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
35274
|
+
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,
|
|
35275
35275
|
/* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
35276
35276
|
/* @__PURE__ */ jsxs(HStack, { gap: "xs", align: "center", children: [
|
|
35277
35277
|
/* @__PURE__ */ jsx(Icon, { icon: Bug, size: "sm" }),
|
|
@@ -35284,11 +35284,11 @@ function DebuggerBoard({
|
|
|
35284
35284
|
const isFlagged = flaggedLines.has(line.id);
|
|
35285
35285
|
let lineStyle = "";
|
|
35286
35286
|
if (submitted) {
|
|
35287
|
-
if (line.isBug && isFlagged) lineStyle = "bg-
|
|
35288
|
-
else if (line.isBug && !isFlagged) lineStyle = "bg-
|
|
35289
|
-
else if (!line.isBug && isFlagged) lineStyle = "bg-
|
|
35287
|
+
if (line.isBug && isFlagged) lineStyle = "bg-success/10";
|
|
35288
|
+
else if (line.isBug && !isFlagged) lineStyle = "bg-warning/10";
|
|
35289
|
+
else if (!line.isBug && isFlagged) lineStyle = "bg-error/10";
|
|
35290
35290
|
} else if (isFlagged) {
|
|
35291
|
-
lineStyle = "bg-
|
|
35291
|
+
lineStyle = "bg-error/10";
|
|
35292
35292
|
}
|
|
35293
35293
|
return /* @__PURE__ */ jsxs(
|
|
35294
35294
|
HStack,
|
|
@@ -35301,8 +35301,8 @@ function DebuggerBoard({
|
|
|
35301
35301
|
/* @__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 }) }),
|
|
35302
35302
|
/* @__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 }) }),
|
|
35303
35303
|
/* @__PURE__ */ jsxs(Box, { className: "w-8 flex-shrink-0 flex items-center justify-center", children: [
|
|
35304
|
-
isFlagged && /* @__PURE__ */ jsx(Icon, { icon: Bug, size: "xs", className: "text-
|
|
35305
|
-
submitted && line.isBug && !isFlagged && /* @__PURE__ */ jsx(Icon, { icon: Bug, size: "xs", className: "text-
|
|
35304
|
+
isFlagged && /* @__PURE__ */ jsx(Icon, { icon: Bug, size: "xs", className: "text-error" }),
|
|
35305
|
+
submitted && line.isBug && !isFlagged && /* @__PURE__ */ jsx(Icon, { icon: Bug, size: "xs", className: "text-warning" })
|
|
35306
35306
|
] })
|
|
35307
35307
|
]
|
|
35308
35308
|
},
|
|
@@ -35317,7 +35317,7 @@ function DebuggerBoard({
|
|
|
35317
35317
|
{
|
|
35318
35318
|
icon: flaggedLines.has(line.id) ? CheckCircle : XCircle,
|
|
35319
35319
|
size: "xs",
|
|
35320
|
-
className: flaggedLines.has(line.id) ? "text-
|
|
35320
|
+
className: flaggedLines.has(line.id) ? "text-success mt-0.5" : "text-warning mt-0.5"
|
|
35321
35321
|
}
|
|
35322
35322
|
),
|
|
35323
35323
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", children: [
|
|
@@ -35326,7 +35326,7 @@ function DebuggerBoard({
|
|
|
35326
35326
|
] })
|
|
35327
35327
|
] }, line.id))
|
|
35328
35328
|
] }) }),
|
|
35329
|
-
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-
|
|
35329
|
+
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
|
|
35330
35330
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", justify: "center", children: [
|
|
35331
35331
|
!submitted ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleSubmit, disabled: flaggedLines.size === 0, children: [
|
|
35332
35332
|
/* @__PURE__ */ jsx(Icon, { icon: Send, size: "sm" }),
|
|
@@ -36049,7 +36049,7 @@ function LinearView({
|
|
|
36049
36049
|
className
|
|
36050
36050
|
}) {
|
|
36051
36051
|
const currentIdx = trait.states.indexOf(trait.currentState);
|
|
36052
|
-
return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-
|
|
36052
|
+
return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
|
|
36053
36053
|
trait.description && /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: trait.description }),
|
|
36054
36054
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
36055
36055
|
const isDone = i < currentIdx;
|
|
@@ -36071,10 +36071,10 @@ function LinearView({
|
|
|
36071
36071
|
{
|
|
36072
36072
|
display: "inline-flex",
|
|
36073
36073
|
className: cn(
|
|
36074
|
-
"items-center justify-center rounded-
|
|
36074
|
+
"items-center justify-center rounded-pill px-3 py-1 border-2 transition-all",
|
|
36075
36075
|
SIZE_CONFIG2[size || "md"].fontSize,
|
|
36076
36076
|
isDone && "bg-success/20 border-success text-success",
|
|
36077
|
-
isCurrent && "bg-primary/20 border-primary text-primary font-bold shadow-
|
|
36077
|
+
isCurrent && "bg-primary/20 border-primary text-primary font-bold shadow-elevation-card shadow-primary/20",
|
|
36078
36078
|
!isDone && !isCurrent && "bg-muted border-border text-muted-foreground"
|
|
36079
36079
|
),
|
|
36080
36080
|
children: [
|
|
@@ -36096,7 +36096,7 @@ function CompactView({
|
|
|
36096
36096
|
const { t } = useTranslate();
|
|
36097
36097
|
const config = SIZE_CONFIG2[size || "md"];
|
|
36098
36098
|
const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
|
|
36099
|
-
return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-
|
|
36099
|
+
return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
|
|
36100
36100
|
/* @__PURE__ */ jsxs(HStack, { className: "items-center justify-between", children: [
|
|
36101
36101
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground font-bold", children: trait.name }),
|
|
36102
36102
|
/* @__PURE__ */ jsx(StateIndicator, { state: trait.currentState, size: "sm", stateStyles })
|
|
@@ -36132,7 +36132,7 @@ function FullView({
|
|
|
36132
36132
|
const { t } = useTranslate();
|
|
36133
36133
|
const config = SIZE_CONFIG2[size || "md"];
|
|
36134
36134
|
const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
|
|
36135
|
-
return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-
|
|
36135
|
+
return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
|
|
36136
36136
|
/* @__PURE__ */ jsxs(HStack, { className: "items-center justify-between", children: [
|
|
36137
36137
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground font-bold", children: trait.name }),
|
|
36138
36138
|
/* @__PURE__ */ jsx(StateIndicator, { state: trait.currentState, size: "sm", stateStyles })
|
|
@@ -36146,9 +36146,9 @@ function FullView({
|
|
|
36146
36146
|
{
|
|
36147
36147
|
display: "flex",
|
|
36148
36148
|
className: cn(
|
|
36149
|
-
"items-center justify-center rounded-
|
|
36149
|
+
"items-center justify-center rounded-container border-2 transition-all px-2",
|
|
36150
36150
|
config.nodeSize,
|
|
36151
|
-
isCurrent && "bg-primary/20 border-primary shadow-
|
|
36151
|
+
isCurrent && "bg-primary/20 border-primary shadow-elevation-card shadow-primary/20",
|
|
36152
36152
|
!isCurrent && hasOutgoing && "bg-muted border-border hover:border-muted-foreground",
|
|
36153
36153
|
!isCurrent && !hasOutgoing && "bg-background border-border opacity-60",
|
|
36154
36154
|
onStateClick && "cursor-pointer"
|
|
@@ -36578,7 +36578,7 @@ function EventHandlerBoard({
|
|
|
36578
36578
|
backgroundPosition: "center"
|
|
36579
36579
|
},
|
|
36580
36580
|
children: [
|
|
36581
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
36581
|
+
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,
|
|
36582
36582
|
/* @__PURE__ */ jsxs(VStack, { gap: "xs", children: [
|
|
36583
36583
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-foreground", children: entity.title }),
|
|
36584
36584
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-muted-foreground", children: entity.description }),
|
|
@@ -36593,7 +36593,7 @@ function EventHandlerBoard({
|
|
|
36593
36593
|
Box,
|
|
36594
36594
|
{
|
|
36595
36595
|
className: cn(
|
|
36596
|
-
"p-3 rounded-
|
|
36596
|
+
"p-3 rounded-container border-2 cursor-pointer transition-all hover:scale-105",
|
|
36597
36597
|
selectedObjectId === obj.id ? "border-primary bg-primary/10" : "border-border bg-card hover:border-muted-foreground"
|
|
36598
36598
|
),
|
|
36599
36599
|
onClick: () => setSelectedObjectId(obj.id),
|
|
@@ -36615,10 +36615,10 @@ function EventHandlerBoard({
|
|
|
36615
36615
|
}
|
|
36616
36616
|
),
|
|
36617
36617
|
eventLog.length > 0 && /* @__PURE__ */ jsx(EventLog, { entries: eventLog }),
|
|
36618
|
-
playState === "success" && /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-
|
|
36618
|
+
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") }) }),
|
|
36619
36619
|
playState === "fail" && /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
36620
|
-
/* @__PURE__ */ jsx(Box, { className: "p-4 rounded-
|
|
36621
|
-
showHint && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-
|
|
36620
|
+
/* @__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) }) }),
|
|
36621
|
+
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: [
|
|
36622
36622
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-accent font-bold shrink-0", children: "\u{1F4A1} " + t("game.hint") + ":" }),
|
|
36623
36623
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground", children: entity.hint })
|
|
36624
36624
|
] }) })
|
|
@@ -39791,7 +39791,7 @@ function NegotiatorBoard({
|
|
|
39791
39791
|
backgroundPosition: "center"
|
|
39792
39792
|
},
|
|
39793
39793
|
children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "p-4", children: [
|
|
39794
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
39794
|
+
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,
|
|
39795
39795
|
/* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
39796
39796
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
|
|
39797
39797
|
/* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.description }),
|
|
@@ -39837,7 +39837,7 @@ function NegotiatorBoard({
|
|
|
39837
39837
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: "vs" }),
|
|
39838
39838
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", children: getActionLabel(round.opponentAction) }),
|
|
39839
39839
|
/* @__PURE__ */ jsx(Icon, { icon: ArrowRight, size: "xs" }),
|
|
39840
|
-
/* @__PURE__ */ jsxs(Typography, { variant: "caption", weight: "bold", className: "text-
|
|
39840
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "caption", weight: "bold", className: "text-success", children: [
|
|
39841
39841
|
"+",
|
|
39842
39842
|
round.playerPayoff
|
|
39843
39843
|
] }),
|
|
@@ -39848,7 +39848,7 @@ function NegotiatorBoard({
|
|
|
39848
39848
|
] }, round.round))
|
|
39849
39849
|
] }) }),
|
|
39850
39850
|
isComplete && /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", children: [
|
|
39851
|
-
/* @__PURE__ */ jsx(Icon, { icon: CheckCircle, size: "lg", className: won ? "text-
|
|
39851
|
+
/* @__PURE__ */ jsx(Icon, { icon: CheckCircle, size: "lg", className: won ? "text-success" : "text-error" }),
|
|
39852
39852
|
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "bold", children: won ? entity.successMessage ?? t("negotiator.success") : entity.failMessage ?? t("negotiator.failed") }),
|
|
39853
39853
|
/* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-muted-foreground", children: [
|
|
39854
39854
|
t("negotiator.finalScore"),
|
|
@@ -39858,7 +39858,7 @@ function NegotiatorBoard({
|
|
|
39858
39858
|
entity.targetScore
|
|
39859
39859
|
] })
|
|
39860
39860
|
] }) }),
|
|
39861
|
-
showHint && entity.hint && !won && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-
|
|
39861
|
+
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 }) }),
|
|
39862
39862
|
isComplete && !won && /* @__PURE__ */ jsx(HStack, { justify: "center", children: /* @__PURE__ */ jsx(Button, { variant: "primary", onClick: handleReset, children: t("negotiator.playAgain") }) })
|
|
39863
39863
|
] })
|
|
39864
39864
|
}
|
|
@@ -42462,7 +42462,7 @@ function TraitSlot({
|
|
|
42462
42462
|
display: "flex",
|
|
42463
42463
|
position: "relative",
|
|
42464
42464
|
className: cn(
|
|
42465
|
-
"items-center justify-center rounded-
|
|
42465
|
+
"items-center justify-center rounded-container transition-all duration-200 bg-card/50",
|
|
42466
42466
|
!locked && "cursor-pointer",
|
|
42467
42467
|
locked && "cursor-not-allowed opacity-50",
|
|
42468
42468
|
isEmpty && !locked && "border-2 border-dashed border-border hover:border-muted-foreground",
|
|
@@ -42478,7 +42478,7 @@ function TraitSlot({
|
|
|
42478
42478
|
style: {
|
|
42479
42479
|
width: config.box,
|
|
42480
42480
|
height: config.box,
|
|
42481
|
-
backgroundColor: catColor?.bg ||
|
|
42481
|
+
backgroundColor: catColor?.bg || void 0,
|
|
42482
42482
|
borderColor: isDragOver ? void 0 : feedback === "correct" ? "var(--color-success)" : feedback === "wrong" ? "var(--color-error)" : catColor?.border || void 0
|
|
42483
42483
|
},
|
|
42484
42484
|
onClick: handleClick,
|
|
@@ -42507,7 +42507,7 @@ function TraitSlot({
|
|
|
42507
42507
|
Box,
|
|
42508
42508
|
{
|
|
42509
42509
|
position: "absolute",
|
|
42510
|
-
className: "-top-1.5 -right-1.5 w-4 h-4 bg-error rounded-
|
|
42510
|
+
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",
|
|
42511
42511
|
onClick: handleRemove,
|
|
42512
42512
|
children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-foreground text-xs leading-none", children: "\xD7" })
|
|
42513
42513
|
}
|
|
@@ -42517,14 +42517,14 @@ function TraitSlot({
|
|
|
42517
42517
|
Box,
|
|
42518
42518
|
{
|
|
42519
42519
|
position: "absolute",
|
|
42520
|
-
className: "-bottom-1 -left-1 w-4 h-4 bg-card rounded-
|
|
42520
|
+
className: "-bottom-1 -left-1 w-4 h-4 bg-card rounded-pill flex items-center justify-center border border-border",
|
|
42521
42521
|
children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground text-xs", children: slotNumber })
|
|
42522
42522
|
}
|
|
42523
42523
|
),
|
|
42524
42524
|
showTooltip && isHovered && itemMachine && !isEmpty && equippedItem && /* @__PURE__ */ jsxs(
|
|
42525
42525
|
Box,
|
|
42526
42526
|
{
|
|
42527
|
-
className: "p-3 bg-background border border-border rounded-
|
|
42527
|
+
className: "p-3 bg-background border border-border rounded-container shadow-xl",
|
|
42528
42528
|
style: {
|
|
42529
42529
|
...getTooltipStyle(),
|
|
42530
42530
|
minWidth: 200,
|
|
@@ -42774,12 +42774,12 @@ function SequencerBoard({
|
|
|
42774
42774
|
backgroundPosition: "center"
|
|
42775
42775
|
},
|
|
42776
42776
|
children: [
|
|
42777
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
42777
|
+
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,
|
|
42778
42778
|
/* @__PURE__ */ jsxs(VStack, { gap: "xs", children: [
|
|
42779
42779
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-foreground", children: entity.title }),
|
|
42780
42780
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-muted-foreground", children: entity.description })
|
|
42781
42781
|
] }),
|
|
42782
|
-
showHint && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-
|
|
42782
|
+
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: [
|
|
42783
42783
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-accent font-bold shrink-0", children: "\u{1F4A1} " + t("game.hint") + ":" }),
|
|
42784
42784
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground", children: entity.hint })
|
|
42785
42785
|
] }) }),
|
|
@@ -42817,8 +42817,8 @@ function SequencerBoard({
|
|
|
42817
42817
|
label: t("sequencer.dragActions")
|
|
42818
42818
|
}
|
|
42819
42819
|
),
|
|
42820
|
-
hasFeedback && playState === "idle" && attempts > 0 && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-
|
|
42821
|
-
playState === "success" && /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-
|
|
42820
|
+
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) }) }),
|
|
42821
|
+
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") }) }),
|
|
42822
42822
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", children: [
|
|
42823
42823
|
/* @__PURE__ */ jsx(
|
|
42824
42824
|
Button,
|
|
@@ -43494,7 +43494,7 @@ function SimulationCanvas({
|
|
|
43494
43494
|
ref: canvasRef,
|
|
43495
43495
|
width,
|
|
43496
43496
|
height,
|
|
43497
|
-
className: "rounded-
|
|
43497
|
+
className: "rounded-container block max-w-full h-auto"
|
|
43498
43498
|
}
|
|
43499
43499
|
) });
|
|
43500
43500
|
}
|
|
@@ -43702,7 +43702,7 @@ function SimulatorBoard({
|
|
|
43702
43702
|
backgroundPosition: "center"
|
|
43703
43703
|
},
|
|
43704
43704
|
children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "p-4", children: [
|
|
43705
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
43705
|
+
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,
|
|
43706
43706
|
/* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
43707
43707
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
|
|
43708
43708
|
/* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.description })
|
|
@@ -43753,8 +43753,8 @@ function SimulatorBoard({
|
|
|
43753
43753
|
entity.outputUnit
|
|
43754
43754
|
] }),
|
|
43755
43755
|
submitted && /* @__PURE__ */ jsxs(HStack, { gap: "xs", align: "center", children: [
|
|
43756
|
-
/* @__PURE__ */ jsx(Icon, { icon: isCorrect ? CheckCircle : XCircle, size: "sm", className: isCorrect ? "text-
|
|
43757
|
-
/* @__PURE__ */ jsx(Typography, { variant: "body", className: isCorrect ? "text-
|
|
43756
|
+
/* @__PURE__ */ jsx(Icon, { icon: isCorrect ? CheckCircle : XCircle, size: "sm", className: isCorrect ? "text-success" : "text-error" }),
|
|
43757
|
+
/* @__PURE__ */ jsx(Typography, { variant: "body", className: isCorrect ? "text-success" : "text-error", children: isCorrect ? entity.successMessage ?? t("simulator.correct") : entity.failMessage ?? t("simulator.incorrect") })
|
|
43758
43758
|
] }),
|
|
43759
43759
|
/* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-muted-foreground", children: [
|
|
43760
43760
|
t("simulator.target"),
|
|
@@ -43767,7 +43767,7 @@ function SimulatorBoard({
|
|
|
43767
43767
|
")"
|
|
43768
43768
|
] })
|
|
43769
43769
|
] }) }),
|
|
43770
|
-
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-
|
|
43770
|
+
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
|
|
43771
43771
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", justify: "center", children: [
|
|
43772
43772
|
!submitted ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleSubmit, children: [
|
|
43773
43773
|
/* @__PURE__ */ jsx(Icon, { icon: Play, size: "sm" }),
|
|
@@ -44168,7 +44168,7 @@ function StateNode2({
|
|
|
44168
44168
|
position: "absolute",
|
|
44169
44169
|
display: "flex",
|
|
44170
44170
|
className: cn(
|
|
44171
|
-
"items-center justify-center rounded-
|
|
44171
|
+
"items-center justify-center rounded-pill border-3 transition-all cursor-pointer select-none",
|
|
44172
44172
|
"min-w-[80px] h-[80px] px-3",
|
|
44173
44173
|
isCurrent && "bg-primary/20 border-primary shadow-lg shadow-primary/30 scale-110",
|
|
44174
44174
|
isSelected && !isCurrent && "bg-accent/20 border-accent ring-2 ring-accent/50",
|
|
@@ -44481,7 +44481,7 @@ function StateArchitectBoard({
|
|
|
44481
44481
|
backgroundPosition: "center"
|
|
44482
44482
|
},
|
|
44483
44483
|
children: [
|
|
44484
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
44484
|
+
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,
|
|
44485
44485
|
/* @__PURE__ */ jsxs(VStack, { gap: "xs", children: [
|
|
44486
44486
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-foreground", children: entity.title }),
|
|
44487
44487
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-muted-foreground", children: entity.description }),
|
|
@@ -44500,7 +44500,7 @@ function StateArchitectBoard({
|
|
|
44500
44500
|
Box,
|
|
44501
44501
|
{
|
|
44502
44502
|
position: "relative",
|
|
44503
|
-
className: "rounded-
|
|
44503
|
+
className: "rounded-container border border-border bg-background overflow-hidden",
|
|
44504
44504
|
style: { width: GRAPH_W, height: GRAPH_H },
|
|
44505
44505
|
children: [
|
|
44506
44506
|
/* @__PURE__ */ jsxs(
|
|
@@ -44559,7 +44559,7 @@ function StateArchitectBoard({
|
|
|
44559
44559
|
children: selectedState ? t("stateArchitect.addTransition", { state: selectedState }) : t("stateArchitect.addTransitionPrompt")
|
|
44560
44560
|
}
|
|
44561
44561
|
) }),
|
|
44562
|
-
transitions.length > 0 && /* @__PURE__ */ jsxs(VStack, { gap: "xs", className: "p-3 rounded-
|
|
44562
|
+
transitions.length > 0 && /* @__PURE__ */ jsxs(VStack, { gap: "xs", className: "p-3 rounded-container bg-muted/50 border border-border", children: [
|
|
44563
44563
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground font-medium", children: t("stateArchitect.transitions", { count: transitions.length }) + ":" }),
|
|
44564
44564
|
transitions.map((t2) => /* @__PURE__ */ jsxs(HStack, { className: "items-center text-xs", gap: "xs", children: [
|
|
44565
44565
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-foreground", children: t2.from }),
|
|
@@ -44593,7 +44593,7 @@ function StateArchitectBoard({
|
|
|
44593
44593
|
variables
|
|
44594
44594
|
}
|
|
44595
44595
|
),
|
|
44596
|
-
testResults.length > 0 && /* @__PURE__ */ jsxs(VStack, { className: "p-3 rounded-
|
|
44596
|
+
testResults.length > 0 && /* @__PURE__ */ jsxs(VStack, { className: "p-3 rounded-container bg-card border border-border", gap: "xs", children: [
|
|
44597
44597
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-muted-foreground font-medium", children: t("stateArchitect.testResults") + ":" }),
|
|
44598
44598
|
testResults.map((r, i) => /* @__PURE__ */ jsxs(HStack, { className: "items-center text-xs", gap: "xs", children: [
|
|
44599
44599
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: r.passed ? "text-success" : "text-error", children: r.passed ? "\u2714" : "\u2717" }),
|
|
@@ -44604,10 +44604,10 @@ function StateArchitectBoard({
|
|
|
44604
44604
|
entity.showCodeView !== false && /* @__PURE__ */ jsx(CodeView, { data: codeData, label: "View Code" })
|
|
44605
44605
|
] })
|
|
44606
44606
|
] }),
|
|
44607
|
-
playState === "success" && /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-
|
|
44607
|
+
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") }) }),
|
|
44608
44608
|
playState === "fail" && /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
44609
|
-
/* @__PURE__ */ jsx(Box, { className: "p-4 rounded-
|
|
44610
|
-
attempts >= 3 && entity.hint && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-
|
|
44609
|
+
/* @__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]) }) }),
|
|
44610
|
+
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: [
|
|
44611
44611
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-accent font-bold shrink-0", children: "\u{1F4A1} " + t("game.hint") + ":" }),
|
|
44612
44612
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground", children: entity.hint })
|
|
44613
44613
|
] }) })
|
|
@@ -48495,6 +48495,40 @@ function collectEmbeddedTraits(schema) {
|
|
|
48495
48495
|
return out;
|
|
48496
48496
|
}
|
|
48497
48497
|
|
|
48498
|
+
// runtime/orbitalsByTrait.ts
|
|
48499
|
+
function buildOrbitalsByTrait(schema, resolvedPages = []) {
|
|
48500
|
+
const map = {};
|
|
48501
|
+
if (!schema?.orbitals) return map;
|
|
48502
|
+
const pagePathToOrbital = {};
|
|
48503
|
+
for (const orb of schema.orbitals) {
|
|
48504
|
+
for (const traitRef of orb.traits ?? []) {
|
|
48505
|
+
let traitName;
|
|
48506
|
+
if (typeof traitRef === "string") {
|
|
48507
|
+
const parts = traitRef.split(".");
|
|
48508
|
+
traitName = parts[parts.length - 1];
|
|
48509
|
+
} else if (typeof traitRef.ref === "string") {
|
|
48510
|
+
const parts = traitRef.ref.split(".");
|
|
48511
|
+
traitName = traitRef.name ?? parts[parts.length - 1];
|
|
48512
|
+
} else if (typeof traitRef.name === "string") {
|
|
48513
|
+
traitName = traitRef.name;
|
|
48514
|
+
}
|
|
48515
|
+
if (traitName) map[traitName] = orb.name;
|
|
48516
|
+
}
|
|
48517
|
+
for (const pg of orb.pages ?? []) {
|
|
48518
|
+
const path = typeof pg === "string" ? pg : pg?.path;
|
|
48519
|
+
if (path) pagePathToOrbital[path] = orb.name;
|
|
48520
|
+
}
|
|
48521
|
+
}
|
|
48522
|
+
for (const page of resolvedPages) {
|
|
48523
|
+
const orbital = page.path ? pagePathToOrbital[page.path] : void 0;
|
|
48524
|
+
if (!orbital) continue;
|
|
48525
|
+
for (const traitName of page.traitNames) {
|
|
48526
|
+
if (traitName && !(traitName in map)) map[traitName] = orbital;
|
|
48527
|
+
}
|
|
48528
|
+
}
|
|
48529
|
+
return map;
|
|
48530
|
+
}
|
|
48531
|
+
|
|
48498
48532
|
// runtime/OrbPreview.tsx
|
|
48499
48533
|
init_EntitySchemaContext();
|
|
48500
48534
|
|
|
@@ -49290,27 +49324,16 @@ function SchemaRunner({ schema, serverUrl, transport, mockData, pageName, onNavi
|
|
|
49290
49324
|
if (!orbitals) return [];
|
|
49291
49325
|
return orbitals.filter((o) => typeof o.name === "string").map((o) => o.name);
|
|
49292
49326
|
}, [schema]);
|
|
49293
|
-
const orbitalsByTrait = useMemo(
|
|
49294
|
-
|
|
49295
|
-
|
|
49296
|
-
|
|
49297
|
-
|
|
49298
|
-
|
|
49299
|
-
|
|
49300
|
-
|
|
49301
|
-
|
|
49302
|
-
|
|
49303
|
-
} else if ("ref" in traitRef && typeof traitRef.ref === "string") {
|
|
49304
|
-
const parts = traitRef.ref.split(".");
|
|
49305
|
-
traitName = traitRef.name ?? parts[parts.length - 1];
|
|
49306
|
-
} else if ("name" in traitRef && typeof traitRef.name === "string") {
|
|
49307
|
-
traitName = traitRef.name;
|
|
49308
|
-
}
|
|
49309
|
-
if (traitName) map[traitName] = orb.name;
|
|
49310
|
-
}
|
|
49311
|
-
}
|
|
49312
|
-
return map;
|
|
49313
|
-
}, [schema]);
|
|
49327
|
+
const orbitalsByTrait = useMemo(
|
|
49328
|
+
() => buildOrbitalsByTrait(
|
|
49329
|
+
schema,
|
|
49330
|
+
ir ? Array.from(ir.pages.values()).map((p2) => ({
|
|
49331
|
+
path: p2.path,
|
|
49332
|
+
traitNames: p2.traits.map((b) => b.trait.name)
|
|
49333
|
+
})) : []
|
|
49334
|
+
),
|
|
49335
|
+
[schema, ir]
|
|
49336
|
+
);
|
|
49314
49337
|
const traitLinkedEntitiesMap = useMemo(() => {
|
|
49315
49338
|
const map = /* @__PURE__ */ new Map();
|
|
49316
49339
|
if (ir) {
|