@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/components/index.js
CHANGED
|
@@ -9215,7 +9215,7 @@ function ActionButton({
|
|
|
9215
9215
|
disabled: isDisabled,
|
|
9216
9216
|
onClick,
|
|
9217
9217
|
className: cn(
|
|
9218
|
-
"relative inline-flex items-center gap-1.5 rounded-
|
|
9218
|
+
"relative inline-flex items-center gap-1.5 rounded-interactive border font-medium overflow-hidden transition-colors duration-150",
|
|
9219
9219
|
sizes.button,
|
|
9220
9220
|
variantStyles7[variant],
|
|
9221
9221
|
isDisabled && "opacity-60 cursor-not-allowed",
|
|
@@ -9258,9 +9258,9 @@ var init_ActionButton = __esm({
|
|
|
9258
9258
|
init_cn();
|
|
9259
9259
|
init_Icon();
|
|
9260
9260
|
sizeMap = {
|
|
9261
|
-
sm: { button: "px-3
|
|
9262
|
-
md: { button: "px-4
|
|
9263
|
-
lg: { button: "
|
|
9261
|
+
sm: { button: "h-button-sm px-3 text-xs", hotkey: "text-[9px] px-1", icon: "text-xs" },
|
|
9262
|
+
md: { button: "h-button-md px-4 text-sm", hotkey: "text-xs px-1.5", icon: "text-sm" },
|
|
9263
|
+
lg: { button: "h-button-lg px-5 text-base", hotkey: "text-xs px-2", icon: "text-base" }
|
|
9264
9264
|
};
|
|
9265
9265
|
variantStyles7 = {
|
|
9266
9266
|
primary: "bg-primary text-primary-foreground hover:bg-primary-hover border-primary",
|
|
@@ -9363,8 +9363,8 @@ var init_ControlButton = __esm({
|
|
|
9363
9363
|
};
|
|
9364
9364
|
shapeMap = {
|
|
9365
9365
|
circle: "rounded-full",
|
|
9366
|
-
rounded: "rounded-
|
|
9367
|
-
square: "rounded-
|
|
9366
|
+
rounded: "rounded-interactive",
|
|
9367
|
+
square: "rounded-interactive"
|
|
9368
9368
|
};
|
|
9369
9369
|
variantMap = {
|
|
9370
9370
|
primary: "bg-primary text-primary-foreground border-primary hover:bg-primary-hover",
|
|
@@ -9525,7 +9525,7 @@ function ActionTile({
|
|
|
9525
9525
|
{
|
|
9526
9526
|
display: "flex",
|
|
9527
9527
|
className: cn(
|
|
9528
|
-
"flex-col items-center gap-1 rounded-
|
|
9528
|
+
"flex-col items-center gap-1 rounded-container border-2 transition-all select-none",
|
|
9529
9529
|
config.px,
|
|
9530
9530
|
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",
|
|
9531
9531
|
className
|
|
@@ -10736,12 +10736,12 @@ function IsometricCanvas({
|
|
|
10736
10736
|
return /* @__PURE__ */ jsx(
|
|
10737
10737
|
Box,
|
|
10738
10738
|
{
|
|
10739
|
-
className: cn("relative w-full overflow-hidden rounded-
|
|
10739
|
+
className: cn("relative w-full overflow-hidden rounded-container", className),
|
|
10740
10740
|
style: { height: viewportSize.height },
|
|
10741
10741
|
"data-testid": "game-canvas-empty",
|
|
10742
|
-
children: /* @__PURE__ */ jsx(Box, { className: "flex items-center justify-center h-full bg-[var(--color-card)] rounded-
|
|
10742
|
+
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: [
|
|
10743
10743
|
/* @__PURE__ */ jsx(Icon, { name: "map", size: "xl" }),
|
|
10744
|
-
/* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-
|
|
10744
|
+
/* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-muted-foreground", children: t("canvas.emptyMessage") || "No map data loaded" })
|
|
10745
10745
|
] }) })
|
|
10746
10746
|
}
|
|
10747
10747
|
);
|
|
@@ -11139,19 +11139,19 @@ function BattleBoard({
|
|
|
11139
11139
|
}
|
|
11140
11140
|
)
|
|
11141
11141
|
] }),
|
|
11142
|
-
gameResult && (gameOverOverlay ? gameOverOverlay(ctx) : /* @__PURE__ */ jsx(Box, { className: "absolute inset-0 z-50 flex items-center justify-center bg-
|
|
11142
|
+
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: [
|
|
11143
11143
|
/* @__PURE__ */ jsx(
|
|
11144
11144
|
Typography,
|
|
11145
11145
|
{
|
|
11146
11146
|
variant: "h2",
|
|
11147
11147
|
className: cn(
|
|
11148
11148
|
"text-4xl font-black tracking-widest uppercase",
|
|
11149
|
-
gameResult === "victory" ? "text-
|
|
11149
|
+
gameResult === "victory" ? "text-warning" : "text-error"
|
|
11150
11150
|
),
|
|
11151
11151
|
children: gameResult === "victory" ? t("battle.victory") : t("battle.defeat")
|
|
11152
11152
|
}
|
|
11153
11153
|
),
|
|
11154
|
-
/* @__PURE__ */ jsxs(Typography, { variant: "body1", className: "text-
|
|
11154
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "body1", className: "text-muted-foreground", children: [
|
|
11155
11155
|
t("battle.turnsPlayed"),
|
|
11156
11156
|
": ",
|
|
11157
11157
|
currentTurn
|
|
@@ -16028,7 +16028,7 @@ function BuilderBoard({
|
|
|
16028
16028
|
backgroundPosition: "center"
|
|
16029
16029
|
},
|
|
16030
16030
|
children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "p-4", children: [
|
|
16031
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
16031
|
+
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,
|
|
16032
16032
|
/* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
16033
16033
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
|
|
16034
16034
|
/* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.description })
|
|
@@ -16066,7 +16066,7 @@ function BuilderBoard({
|
|
|
16066
16066
|
{
|
|
16067
16067
|
gap: "sm",
|
|
16068
16068
|
align: "center",
|
|
16069
|
-
className: `p-3 border-2 rounded ${result ? result.correct ? "border-
|
|
16069
|
+
className: `p-3 border-2 rounded ${result ? result.correct ? "border-success" : "border-error" : selectedComponent ? "border-dashed border-foreground cursor-pointer" : "border-border"}`,
|
|
16070
16070
|
onClick: () => handlePlaceComponent(slot.id),
|
|
16071
16071
|
children: [
|
|
16072
16072
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", className: "flex-1", children: [
|
|
@@ -16081,7 +16081,7 @@ function BuilderBoard({
|
|
|
16081
16081
|
] }) : null,
|
|
16082
16082
|
placedComp.label
|
|
16083
16083
|
] }),
|
|
16084
|
-
result && /* @__PURE__ */ jsx(Icon, { icon: result.correct ? CheckCircle : XCircle, size: "sm", className: result.correct ? "text-
|
|
16084
|
+
result && /* @__PURE__ */ jsx(Icon, { icon: result.correct ? CheckCircle : XCircle, size: "sm", className: result.correct ? "text-success" : "text-error" })
|
|
16085
16085
|
] }) : /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: t("builder.empty") })
|
|
16086
16086
|
]
|
|
16087
16087
|
},
|
|
@@ -16090,10 +16090,10 @@ function BuilderBoard({
|
|
|
16090
16090
|
}) })
|
|
16091
16091
|
] }) }),
|
|
16092
16092
|
submitted && /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", children: [
|
|
16093
|
-
/* @__PURE__ */ jsx(Icon, { icon: allCorrect ? CheckCircle : XCircle, size: "lg", className: allCorrect ? "text-
|
|
16093
|
+
/* @__PURE__ */ jsx(Icon, { icon: allCorrect ? CheckCircle : XCircle, size: "lg", className: allCorrect ? "text-success" : "text-error" }),
|
|
16094
16094
|
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "bold", children: allCorrect ? entity.successMessage ?? t("builder.success") : entity.failMessage ?? t("builder.incorrect") })
|
|
16095
16095
|
] }) }),
|
|
16096
|
-
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-
|
|
16096
|
+
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
|
|
16097
16097
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", justify: "center", children: [
|
|
16098
16098
|
!submitted ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleSubmit, disabled: !allPlaced, children: [
|
|
16099
16099
|
/* @__PURE__ */ jsx(Icon, { icon: Wrench, size: "sm" }),
|
|
@@ -17715,7 +17715,7 @@ function CanvasEffectEngine({
|
|
|
17715
17715
|
flash && /* @__PURE__ */ jsx(
|
|
17716
17716
|
Box,
|
|
17717
17717
|
{
|
|
17718
|
-
className: "absolute inset-0 z-20 pointer-events-none rounded-
|
|
17718
|
+
className: "absolute inset-0 z-20 pointer-events-none rounded-container",
|
|
17719
17719
|
style: { backgroundColor: flash.color, opacity: flash.alpha }
|
|
17720
17720
|
}
|
|
17721
17721
|
),
|
|
@@ -17783,7 +17783,7 @@ function EmojiEffect({
|
|
|
17783
17783
|
/* @__PURE__ */ jsx(
|
|
17784
17784
|
Box,
|
|
17785
17785
|
{
|
|
17786
|
-
className: "absolute rounded-
|
|
17786
|
+
className: "absolute rounded-pill animate-ping",
|
|
17787
17787
|
style: {
|
|
17788
17788
|
width: 48 * intensity,
|
|
17789
17789
|
height: 48 * intensity,
|
|
@@ -19550,7 +19550,7 @@ function ChoiceButton({
|
|
|
19550
19550
|
disabled,
|
|
19551
19551
|
onClick,
|
|
19552
19552
|
className: cn(
|
|
19553
|
-
"w-full text-left px-4 py-2.5 rounded-
|
|
19553
|
+
"w-full text-left px-4 py-2.5 rounded-interactive border transition-all duration-150",
|
|
19554
19554
|
"flex items-center gap-2",
|
|
19555
19555
|
selected ? "bg-accent/15 border-accent text-foreground" : "bg-muted/40 border-border text-foreground hover:bg-muted hover:border-border",
|
|
19556
19556
|
disabled && "opacity-40 cursor-not-allowed hover:bg-muted/40 hover:border-border",
|
|
@@ -19646,7 +19646,7 @@ function ClassifierBoard({
|
|
|
19646
19646
|
backgroundPosition: "center"
|
|
19647
19647
|
},
|
|
19648
19648
|
children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "p-4", children: [
|
|
19649
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
19649
|
+
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,
|
|
19650
19650
|
/* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
19651
19651
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
|
|
19652
19652
|
/* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.description })
|
|
@@ -19661,7 +19661,7 @@ function ClassifierBoard({
|
|
|
19661
19661
|
/* @__PURE__ */ jsx(VStack, { gap: "md", children: categories.map((cat) => {
|
|
19662
19662
|
const catItems = items.filter((item) => assignments[item.id] === cat.id);
|
|
19663
19663
|
return /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
19664
|
-
cat.imageUrl && /* @__PURE__ */ jsx(Box, { className: "w-full h-16 overflow-hidden rounded-
|
|
19664
|
+
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" }) }),
|
|
19665
19665
|
/* @__PURE__ */ jsxs(HStack, { justify: "between", align: "center", children: [
|
|
19666
19666
|
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "bold", children: cat.label }),
|
|
19667
19667
|
/* @__PURE__ */ jsx(Badge, { size: "sm", children: catItems.length })
|
|
@@ -19672,12 +19672,12 @@ function ClassifierBoard({
|
|
|
19672
19672
|
Badge,
|
|
19673
19673
|
{
|
|
19674
19674
|
size: "sm",
|
|
19675
|
-
className: `cursor-pointer ${result ? result.correct ? "border-
|
|
19675
|
+
className: `cursor-pointer ${result ? result.correct ? "border-success bg-success/10" : "border-error bg-error/10" : ""}`,
|
|
19676
19676
|
onClick: () => handleUnassign(item.id),
|
|
19677
19677
|
children: [
|
|
19678
19678
|
item.iconUrl && /* @__PURE__ */ jsx("img", { src: item.iconUrl, alt: "", className: "w-3 h-3 object-contain inline-block" }),
|
|
19679
19679
|
item.label,
|
|
19680
|
-
result && /* @__PURE__ */ jsx(Icon, { icon: result.correct ? CheckCircle : XCircle, size: "xs", className: result.correct ? "text-
|
|
19680
|
+
result && /* @__PURE__ */ jsx(Icon, { icon: result.correct ? CheckCircle : XCircle, size: "xs", className: result.correct ? "text-success" : "text-error" })
|
|
19681
19681
|
]
|
|
19682
19682
|
},
|
|
19683
19683
|
item.id
|
|
@@ -19700,11 +19700,11 @@ function ClassifierBoard({
|
|
|
19700
19700
|
] }) }, cat.id);
|
|
19701
19701
|
}) }),
|
|
19702
19702
|
submitted && /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", children: [
|
|
19703
|
-
/* @__PURE__ */ jsx(Icon, { icon: allCorrect ? CheckCircle : XCircle, size: "lg", className: allCorrect ? "text-
|
|
19703
|
+
/* @__PURE__ */ jsx(Icon, { icon: allCorrect ? CheckCircle : XCircle, size: "lg", className: allCorrect ? "text-success" : "text-error" }),
|
|
19704
19704
|
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "bold", children: allCorrect ? entity.successMessage ?? t("classifier.allCorrect") : `${correctCount}/${items.length} ${t("classifier.correct")}` }),
|
|
19705
19705
|
!allCorrect && entity.failMessage && /* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-muted-foreground", children: entity.failMessage })
|
|
19706
19706
|
] }) }),
|
|
19707
|
-
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-
|
|
19707
|
+
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
|
|
19708
19708
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", justify: "center", children: [
|
|
19709
19709
|
!submitted ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleSubmit, disabled: !allAssigned, children: [
|
|
19710
19710
|
/* @__PURE__ */ jsx(Icon, { icon: Send, size: "sm" }),
|
|
@@ -20354,10 +20354,10 @@ var init_CombatLog = __esm({
|
|
|
20354
20354
|
}
|
|
20355
20355
|
});
|
|
20356
20356
|
function getComboIntensity(combo) {
|
|
20357
|
-
if (combo >= 10) return "text-
|
|
20358
|
-
if (combo >= 7) return "text-
|
|
20359
|
-
if (combo >= 4) return "text-
|
|
20360
|
-
return "text-
|
|
20357
|
+
if (combo >= 10) return "text-error animate-pulse";
|
|
20358
|
+
if (combo >= 7) return "text-warning";
|
|
20359
|
+
if (combo >= 4) return "text-warning";
|
|
20360
|
+
return "text-foreground";
|
|
20361
20361
|
}
|
|
20362
20362
|
function getComboScale(combo) {
|
|
20363
20363
|
if (combo >= 10) return "scale-110";
|
|
@@ -20378,19 +20378,19 @@ function ComboCounter({
|
|
|
20378
20378
|
{
|
|
20379
20379
|
className: cn(
|
|
20380
20380
|
"inline-flex flex-col items-center justify-center",
|
|
20381
|
-
"rounded-
|
|
20381
|
+
"rounded-container bg-card/80 border border-muted px-3 py-1.5",
|
|
20382
20382
|
"transition-transform duration-200",
|
|
20383
20383
|
getComboScale(combo),
|
|
20384
20384
|
className
|
|
20385
20385
|
),
|
|
20386
20386
|
children: [
|
|
20387
20387
|
/* @__PURE__ */ jsx("span", { className: cn("font-black tabular-nums leading-none", sizes.combo, getComboIntensity(combo)), children: combo }),
|
|
20388
|
-
/* @__PURE__ */ jsx("span", { className: cn("font-bold uppercase tracking-wider text-
|
|
20389
|
-
multiplier != null && multiplier > 1 && /* @__PURE__ */ jsxs("span", { className: cn("font-bold text-
|
|
20388
|
+
/* @__PURE__ */ jsx("span", { className: cn("font-bold uppercase tracking-wider text-muted-foreground", sizes.label), children: "combo" }),
|
|
20389
|
+
multiplier != null && multiplier > 1 && /* @__PURE__ */ jsxs("span", { className: cn("font-bold text-warning tabular-nums", sizes.multiplier), children: [
|
|
20390
20390
|
"x",
|
|
20391
20391
|
multiplier.toFixed(1)
|
|
20392
20392
|
] }),
|
|
20393
|
-
streak != null && streak > 0 && /* @__PURE__ */ jsxs("span", { className: cn("text-
|
|
20393
|
+
streak != null && streak > 0 && /* @__PURE__ */ jsxs("span", { className: cn("text-muted-foreground tabular-nums", sizes.label), children: [
|
|
20394
20394
|
streak,
|
|
20395
20395
|
" streak"
|
|
20396
20396
|
] })
|
|
@@ -20805,18 +20805,18 @@ function ItemSlot({
|
|
|
20805
20805
|
disabled: !isClickable,
|
|
20806
20806
|
title: label,
|
|
20807
20807
|
className: cn(
|
|
20808
|
-
"relative flex items-center justify-center rounded-
|
|
20809
|
-
"bg-
|
|
20808
|
+
"relative flex items-center justify-center rounded-interactive border-2",
|
|
20809
|
+
"bg-card/80 transition-all duration-150",
|
|
20810
20810
|
sizeMap5[size],
|
|
20811
|
-
empty ? "border-
|
|
20811
|
+
empty ? "border-border bg-card/50" : rarityBorderMap[rarity],
|
|
20812
20812
|
!empty && rarityGlowMap[rarity],
|
|
20813
|
-
selected && "ring-2 ring-
|
|
20813
|
+
selected && "ring-2 ring-foreground ring-offset-1 ring-offset-background",
|
|
20814
20814
|
isClickable && !empty && "hover:brightness-125 cursor-pointer",
|
|
20815
|
-
isClickable && empty && "hover:border-
|
|
20815
|
+
isClickable && empty && "hover:border-muted cursor-pointer",
|
|
20816
20816
|
!isClickable && "cursor-default",
|
|
20817
20817
|
className
|
|
20818
20818
|
),
|
|
20819
|
-
children: empty ? /* @__PURE__ */ jsx("span", { className: "text-
|
|
20819
|
+
children: empty ? /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
20820
20820
|
icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: icon }),
|
|
20821
20821
|
quantity != null && quantity > 1 && /* @__PURE__ */ jsx(
|
|
20822
20822
|
"span",
|
|
@@ -20824,7 +20824,7 @@ function ItemSlot({
|
|
|
20824
20824
|
className: cn(
|
|
20825
20825
|
"absolute -bottom-1 -right-1 flex items-center justify-center",
|
|
20826
20826
|
"min-w-[18px] h-[18px] rounded-full px-1",
|
|
20827
|
-
"bg-
|
|
20827
|
+
"bg-surface border border-muted text-xs font-bold text-foreground"
|
|
20828
20828
|
),
|
|
20829
20829
|
children: quantity
|
|
20830
20830
|
}
|
|
@@ -20844,18 +20844,18 @@ var init_ItemSlot = __esm({
|
|
|
20844
20844
|
lg: "w-18 h-18 text-3xl"
|
|
20845
20845
|
};
|
|
20846
20846
|
rarityBorderMap = {
|
|
20847
|
-
common: "border-
|
|
20848
|
-
uncommon: "border-
|
|
20849
|
-
rare: "border-
|
|
20850
|
-
epic: "border-
|
|
20851
|
-
legendary: "border-
|
|
20847
|
+
common: "border-muted",
|
|
20848
|
+
uncommon: "border-success",
|
|
20849
|
+
rare: "border-info",
|
|
20850
|
+
epic: "border-accent",
|
|
20851
|
+
legendary: "border-warning"
|
|
20852
20852
|
};
|
|
20853
20853
|
rarityGlowMap = {
|
|
20854
20854
|
common: "",
|
|
20855
20855
|
uncommon: "",
|
|
20856
|
-
rare: "shadow-
|
|
20857
|
-
epic: "shadow-
|
|
20858
|
-
legendary: "shadow-
|
|
20856
|
+
rare: "shadow-sm",
|
|
20857
|
+
epic: "shadow-lg",
|
|
20858
|
+
legendary: "shadow-lg"
|
|
20859
20859
|
};
|
|
20860
20860
|
ItemSlot.displayName = "ItemSlot";
|
|
20861
20861
|
}
|
|
@@ -20884,7 +20884,7 @@ function CraftingRecipe({
|
|
|
20884
20884
|
Box,
|
|
20885
20885
|
{
|
|
20886
20886
|
className: cn(
|
|
20887
|
-
"flex flex-wrap items-center gap-3 rounded-
|
|
20887
|
+
"flex flex-wrap items-center gap-3 rounded-container bg-muted/50 border border-border/50 p-3",
|
|
20888
20888
|
className
|
|
20889
20889
|
),
|
|
20890
20890
|
children: [
|
|
@@ -20901,10 +20901,10 @@ function CraftingRecipe({
|
|
|
20901
20901
|
className: cn(!hasSufficient && "opacity-50")
|
|
20902
20902
|
}
|
|
20903
20903
|
) }),
|
|
20904
|
-
index < inputs.length - 1 && /* @__PURE__ */ jsx(Icon, { name: "plus", size: "sm", className: "text-
|
|
20904
|
+
index < inputs.length - 1 && /* @__PURE__ */ jsx(Icon, { name: "plus", size: "sm", className: "text-muted-foreground" })
|
|
20905
20905
|
] }, index);
|
|
20906
20906
|
}) }),
|
|
20907
|
-
/* @__PURE__ */ jsx(Icon, { name: "arrow-right", size: "md", className: "text-
|
|
20907
|
+
/* @__PURE__ */ jsx(Icon, { name: "arrow-right", size: "md", className: "text-muted-foreground" }),
|
|
20908
20908
|
/* @__PURE__ */ jsx(
|
|
20909
20909
|
ItemSlot,
|
|
20910
20910
|
{
|
|
@@ -20992,7 +20992,7 @@ function DPad({
|
|
|
20992
20992
|
createButton("up"),
|
|
20993
20993
|
/* @__PURE__ */ jsx("div", {}),
|
|
20994
20994
|
createButton("left"),
|
|
20995
|
-
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "w-6 h-6 rounded-
|
|
20995
|
+
/* @__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" }) }),
|
|
20996
20996
|
createButton("right"),
|
|
20997
20997
|
/* @__PURE__ */ jsx("div", {}),
|
|
20998
20998
|
createButton("down"),
|
|
@@ -21054,10 +21054,10 @@ var init_DamageNumber = __esm({
|
|
|
21054
21054
|
lg: "text-2xl"
|
|
21055
21055
|
};
|
|
21056
21056
|
typeStyles = {
|
|
21057
|
-
damage: "text-
|
|
21058
|
-
heal: "text-
|
|
21059
|
-
crit: "text-
|
|
21060
|
-
miss: "text-
|
|
21057
|
+
damage: "text-error font-bold",
|
|
21058
|
+
heal: "text-success font-bold",
|
|
21059
|
+
crit: "text-warning font-extrabold",
|
|
21060
|
+
miss: "text-muted-foreground italic"
|
|
21061
21061
|
};
|
|
21062
21062
|
floatKeyframes = `
|
|
21063
21063
|
@keyframes damageFloat {
|
|
@@ -25245,7 +25245,7 @@ function HealthBar({
|
|
|
25245
25245
|
"div",
|
|
25246
25246
|
{
|
|
25247
25247
|
className: cn(
|
|
25248
|
-
"relative overflow-hidden rounded-full bg-
|
|
25248
|
+
"relative overflow-hidden rounded-full bg-muted",
|
|
25249
25249
|
sizes.bar,
|
|
25250
25250
|
"w-24",
|
|
25251
25251
|
className
|
|
@@ -25255,7 +25255,7 @@ function HealthBar({
|
|
|
25255
25255
|
{
|
|
25256
25256
|
className: cn(
|
|
25257
25257
|
"absolute inset-y-0 left-0 rounded-full",
|
|
25258
|
-
percentage > 66 ? "bg-
|
|
25258
|
+
percentage > 66 ? "bg-success" : percentage > 33 ? "bg-warning" : "bg-error",
|
|
25259
25259
|
animated && "transition-all duration-300"
|
|
25260
25260
|
),
|
|
25261
25261
|
style: { width: `${percentage}%` }
|
|
@@ -25277,7 +25277,7 @@ var init_HealthBar = __esm({
|
|
|
25277
25277
|
heartIcon = (filled, size) => /* @__PURE__ */ jsx(
|
|
25278
25278
|
"svg",
|
|
25279
25279
|
{
|
|
25280
|
-
className: cn("transition-all duration-200", size, filled ? "text-
|
|
25280
|
+
className: cn("transition-all duration-200", size, filled ? "text-error" : "text-muted-foreground"),
|
|
25281
25281
|
viewBox: "0 0 24 24",
|
|
25282
25282
|
fill: filled ? "currentColor" : "none",
|
|
25283
25283
|
stroke: "currentColor",
|
|
@@ -25341,7 +25341,7 @@ function ScoreDisplay({
|
|
|
25341
25341
|
),
|
|
25342
25342
|
children: [
|
|
25343
25343
|
icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: icon }),
|
|
25344
|
-
label && /* @__PURE__ */ jsx("span", { className: "text-
|
|
25344
|
+
label && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: label }),
|
|
25345
25345
|
/* @__PURE__ */ jsx("span", { className: "tabular-nums", children: formattedValue })
|
|
25346
25346
|
]
|
|
25347
25347
|
}
|
|
@@ -25379,7 +25379,7 @@ function StatBadge({
|
|
|
25379
25379
|
"div",
|
|
25380
25380
|
{
|
|
25381
25381
|
className: cn(
|
|
25382
|
-
"inline-flex items-center gap-2 rounded-
|
|
25382
|
+
"inline-flex items-center gap-2 rounded-container border backdrop-blur-sm",
|
|
25383
25383
|
sizeMap11[size] ?? sizeMap11.md,
|
|
25384
25384
|
variantMap2[variant] ?? variantMap2.default,
|
|
25385
25385
|
className
|
|
@@ -25528,7 +25528,7 @@ function WaypointMarker({
|
|
|
25528
25528
|
"div",
|
|
25529
25529
|
{
|
|
25530
25530
|
className: cn(
|
|
25531
|
-
"absolute rounded-full border-2 border-
|
|
25531
|
+
"absolute rounded-full border-2 border-info animate-ping opacity-50",
|
|
25532
25532
|
sizes.ring
|
|
25533
25533
|
)
|
|
25534
25534
|
}
|
|
@@ -25537,7 +25537,7 @@ function WaypointMarker({
|
|
|
25537
25537
|
"div",
|
|
25538
25538
|
{
|
|
25539
25539
|
className: cn(
|
|
25540
|
-
"absolute rounded-full border-2 border-
|
|
25540
|
+
"absolute rounded-full border-2 border-info",
|
|
25541
25541
|
sizes.ring
|
|
25542
25542
|
)
|
|
25543
25543
|
}
|
|
@@ -25548,9 +25548,9 @@ function WaypointMarker({
|
|
|
25548
25548
|
className: cn(
|
|
25549
25549
|
"relative flex items-center justify-center rounded-full transition-all duration-200",
|
|
25550
25550
|
sizes.dot,
|
|
25551
|
-
completed && "bg-
|
|
25552
|
-
active && !completed && "bg-
|
|
25553
|
-
!active && !completed && "bg-
|
|
25551
|
+
completed && "bg-success text-foreground",
|
|
25552
|
+
active && !completed && "bg-info text-foreground",
|
|
25553
|
+
!active && !completed && "bg-muted"
|
|
25554
25554
|
),
|
|
25555
25555
|
children: completed ? checkIcon : icon
|
|
25556
25556
|
}
|
|
@@ -25562,7 +25562,7 @@ function WaypointMarker({
|
|
|
25562
25562
|
className: cn(
|
|
25563
25563
|
"text-center whitespace-nowrap",
|
|
25564
25564
|
sizes.label,
|
|
25565
|
-
completed ? "text-
|
|
25565
|
+
completed ? "text-success" : active ? "text-info" : "text-muted-foreground"
|
|
25566
25566
|
),
|
|
25567
25567
|
children: label
|
|
25568
25568
|
}
|
|
@@ -25594,10 +25594,10 @@ function QuestTracker({
|
|
|
25594
25594
|
Box,
|
|
25595
25595
|
{
|
|
25596
25596
|
className: cn(
|
|
25597
|
-
"flex items-start gap-3 rounded-
|
|
25598
|
-
isActive && !isCompleted && "bg-
|
|
25599
|
-
isCompleted && "bg-
|
|
25600
|
-
!isActive && !isCompleted && "bg-
|
|
25597
|
+
"flex items-start gap-3 rounded-container px-3 py-2 transition-colors",
|
|
25598
|
+
isActive && !isCompleted && "bg-info/20 border border-info/50",
|
|
25599
|
+
isCompleted && "bg-success/10 border border-success/30 opacity-70",
|
|
25600
|
+
!isActive && !isCompleted && "bg-muted/30 border border-border/30"
|
|
25601
25601
|
),
|
|
25602
25602
|
children: [
|
|
25603
25603
|
/* @__PURE__ */ jsx(Box, { className: "flex-shrink-0 pt-0.5", children: /* @__PURE__ */ jsx(
|
|
@@ -25615,9 +25615,9 @@ function QuestTracker({
|
|
|
25615
25615
|
variant: "body2",
|
|
25616
25616
|
className: cn(
|
|
25617
25617
|
"font-medium truncate",
|
|
25618
|
-
isCompleted && "line-through text-
|
|
25619
|
-
isActive && !isCompleted && "text-
|
|
25620
|
-
!isActive && !isCompleted && "text-
|
|
25618
|
+
isCompleted && "line-through text-muted-foreground",
|
|
25619
|
+
isActive && !isCompleted && "text-info",
|
|
25620
|
+
!isActive && !isCompleted && "text-muted-foreground"
|
|
25621
25621
|
),
|
|
25622
25622
|
children: quest.title
|
|
25623
25623
|
}
|
|
@@ -25635,7 +25635,7 @@ function QuestTracker({
|
|
|
25635
25635
|
Typography,
|
|
25636
25636
|
{
|
|
25637
25637
|
variant: "caption",
|
|
25638
|
-
className: "text-
|
|
25638
|
+
className: "text-muted-foreground mt-1",
|
|
25639
25639
|
children: [
|
|
25640
25640
|
quest.progress,
|
|
25641
25641
|
" / ",
|
|
@@ -25692,14 +25692,14 @@ function PowerupSlots({
|
|
|
25692
25692
|
{
|
|
25693
25693
|
className: cn(
|
|
25694
25694
|
"absolute -bottom-1 left-1/2 -translate-x-1/2",
|
|
25695
|
-
"rounded px-1 py-px",
|
|
25696
|
-
"bg-
|
|
25695
|
+
"rounded-interactive px-1 py-px",
|
|
25696
|
+
"bg-background/80 border border-border"
|
|
25697
25697
|
),
|
|
25698
25698
|
children: /* @__PURE__ */ jsx(
|
|
25699
25699
|
Typography,
|
|
25700
25700
|
{
|
|
25701
25701
|
variant: "caption",
|
|
25702
|
-
className: "text-[9px] font-mono font-bold text-
|
|
25702
|
+
className: "text-[9px] font-mono font-bold text-warning whitespace-nowrap",
|
|
25703
25703
|
children: formatTime(powerup.remainingTime)
|
|
25704
25704
|
}
|
|
25705
25705
|
)
|
|
@@ -25821,7 +25821,7 @@ function HealthPanel({
|
|
|
25821
25821
|
Box,
|
|
25822
25822
|
{
|
|
25823
25823
|
className: cn(
|
|
25824
|
-
"rounded-
|
|
25824
|
+
"rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm",
|
|
25825
25825
|
sizes.padding,
|
|
25826
25826
|
className
|
|
25827
25827
|
),
|
|
@@ -25832,7 +25832,7 @@ function HealthPanel({
|
|
|
25832
25832
|
{
|
|
25833
25833
|
variant: "caption",
|
|
25834
25834
|
weight: "bold",
|
|
25835
|
-
className: "text-
|
|
25835
|
+
className: "text-muted-foreground uppercase tracking-wider",
|
|
25836
25836
|
children: label
|
|
25837
25837
|
}
|
|
25838
25838
|
),
|
|
@@ -25853,7 +25853,7 @@ function HealthPanel({
|
|
|
25853
25853
|
as: "span",
|
|
25854
25854
|
variant: "caption",
|
|
25855
25855
|
weight: "bold",
|
|
25856
|
-
className: "text-
|
|
25856
|
+
className: "text-info ml-1",
|
|
25857
25857
|
children: [
|
|
25858
25858
|
"+",
|
|
25859
25859
|
shield
|
|
@@ -25878,14 +25878,14 @@ function HealthPanel({
|
|
|
25878
25878
|
Box,
|
|
25879
25879
|
{
|
|
25880
25880
|
className: cn(
|
|
25881
|
-
"relative overflow-hidden rounded-
|
|
25881
|
+
"relative overflow-hidden rounded-container bg-muted",
|
|
25882
25882
|
size === "sm" ? "h-1" : size === "md" ? "h-1.5" : "h-2",
|
|
25883
25883
|
"w-full"
|
|
25884
25884
|
),
|
|
25885
25885
|
children: /* @__PURE__ */ jsx(
|
|
25886
25886
|
Box,
|
|
25887
25887
|
{
|
|
25888
|
-
className: "absolute inset-y-0 left-0 rounded-
|
|
25888
|
+
className: "absolute inset-y-0 left-0 rounded-container bg-info transition-all duration-300",
|
|
25889
25889
|
style: { width: `${Math.min(100, shield / max * 100)}%` }
|
|
25890
25890
|
}
|
|
25891
25891
|
)
|
|
@@ -25944,7 +25944,7 @@ function ScoreBoard({
|
|
|
25944
25944
|
Card,
|
|
25945
25945
|
{
|
|
25946
25946
|
className: cn(
|
|
25947
|
-
"bg-[var(--color-card)]/90 border-
|
|
25947
|
+
"bg-[var(--color-card)]/90 border-border backdrop-blur-sm",
|
|
25948
25948
|
className
|
|
25949
25949
|
),
|
|
25950
25950
|
children: /* @__PURE__ */ jsx(CardContent, { className: "p-3", children: /* @__PURE__ */ jsxs(Box, { className: "flex items-center gap-3 flex-wrap", children: [
|
|
@@ -26053,8 +26053,8 @@ function TurnIndicator({
|
|
|
26053
26053
|
"div",
|
|
26054
26054
|
{
|
|
26055
26055
|
className: cn(
|
|
26056
|
-
"inline-flex items-center rounded-
|
|
26057
|
-
"bg-
|
|
26056
|
+
"inline-flex items-center rounded-container",
|
|
26057
|
+
"bg-card/80 border border-muted font-medium text-foreground",
|
|
26058
26058
|
sizes.wrapper,
|
|
26059
26059
|
className
|
|
26060
26060
|
),
|
|
@@ -26062,19 +26062,19 @@ function TurnIndicator({
|
|
|
26062
26062
|
/* @__PURE__ */ jsxs("span", { className: "font-bold tabular-nums", children: [
|
|
26063
26063
|
"Turn ",
|
|
26064
26064
|
currentTurn,
|
|
26065
|
-
maxTurns != null && /* @__PURE__ */ jsxs("span", { className: "text-
|
|
26065
|
+
maxTurns != null && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
|
|
26066
26066
|
"/",
|
|
26067
26067
|
maxTurns
|
|
26068
26068
|
] })
|
|
26069
26069
|
] }),
|
|
26070
26070
|
phase && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
26071
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
26072
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
26071
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "|" }),
|
|
26072
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: phase })
|
|
26073
26073
|
] }),
|
|
26074
26074
|
activeTeam && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
26075
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
26076
|
-
/* @__PURE__ */ jsx("span", { className: cn("rounded-full bg-
|
|
26077
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
26075
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "|" }),
|
|
26076
|
+
/* @__PURE__ */ jsx("span", { className: cn("rounded-full bg-success/20", sizes.dot) }),
|
|
26077
|
+
/* @__PURE__ */ jsx("span", { className: "text-success", children: activeTeam })
|
|
26078
26078
|
] })
|
|
26079
26079
|
]
|
|
26080
26080
|
}
|
|
@@ -26113,7 +26113,7 @@ function TurnPanel({
|
|
|
26113
26113
|
Box,
|
|
26114
26114
|
{
|
|
26115
26115
|
className: cn(
|
|
26116
|
-
"flex items-center gap-3 rounded-
|
|
26116
|
+
"flex items-center gap-3 rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm px-3 py-2",
|
|
26117
26117
|
className
|
|
26118
26118
|
),
|
|
26119
26119
|
children: [
|
|
@@ -26165,7 +26165,7 @@ function EnemyPlate({
|
|
|
26165
26165
|
Box,
|
|
26166
26166
|
{
|
|
26167
26167
|
className: cn(
|
|
26168
|
-
"inline-flex flex-col gap-1 rounded-
|
|
26168
|
+
"inline-flex flex-col gap-1 rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm px-3 py-1.5",
|
|
26169
26169
|
"min-w-[120px]",
|
|
26170
26170
|
className
|
|
26171
26171
|
),
|
|
@@ -26259,7 +26259,7 @@ function UnitCommandBar({
|
|
|
26259
26259
|
Box,
|
|
26260
26260
|
{
|
|
26261
26261
|
className: cn(
|
|
26262
|
-
"flex items-center gap-1.5 rounded-
|
|
26262
|
+
"flex items-center gap-1.5 rounded-container bg-[var(--color-card)]/90 border border-border backdrop-blur-sm px-2 py-1.5",
|
|
26263
26263
|
className
|
|
26264
26264
|
),
|
|
26265
26265
|
children: commands.map((command, i) => /* @__PURE__ */ jsxs(Box, { className: "flex flex-col items-center gap-0.5", children: [
|
|
@@ -26344,8 +26344,8 @@ function GameHud({
|
|
|
26344
26344
|
className: cn(
|
|
26345
26345
|
"relative z-10",
|
|
26346
26346
|
positionMap[position],
|
|
26347
|
-
transparent && "bg-gradient-to-b from-
|
|
26348
|
-
position === "bottom" && "bg-gradient-to-t from-
|
|
26347
|
+
transparent && "bg-gradient-to-b from-background/50 to-transparent",
|
|
26348
|
+
position === "bottom" && "bg-gradient-to-t from-background/50 to-transparent",
|
|
26349
26349
|
className
|
|
26350
26350
|
),
|
|
26351
26351
|
children: /* @__PURE__ */ jsx("div", { className: "flex gap-4", children: stats.map((stat, i) => /* @__PURE__ */ jsx(StatBadge, { ...stat, size }, i)) })
|
|
@@ -26503,8 +26503,8 @@ function DialogueBox({
|
|
|
26503
26503
|
tabIndex: 0,
|
|
26504
26504
|
role: "dialog",
|
|
26505
26505
|
"aria-label": "Dialogue",
|
|
26506
|
-
children: /* @__PURE__ */ jsx("div", { className: "mx-4 my-4 bg-[var(--color-card)] bg-opacity-95 border-2 border-
|
|
26507
|
-
dialogue.portrait && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 p-4 border-r border-
|
|
26506
|
+
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: [
|
|
26507
|
+
dialogue.portrait && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 p-4 border-r border-border", children: /* @__PURE__ */ jsx(
|
|
26508
26508
|
"img",
|
|
26509
26509
|
{
|
|
26510
26510
|
src: dialogue.portrait,
|
|
@@ -26514,7 +26514,7 @@ function DialogueBox({
|
|
|
26514
26514
|
}
|
|
26515
26515
|
) }),
|
|
26516
26516
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 p-4", children: [
|
|
26517
|
-
/* @__PURE__ */ jsx("div", { className: "text-
|
|
26517
|
+
/* @__PURE__ */ jsx("div", { className: "text-warning font-bold mb-2", children: dialogue.speaker }),
|
|
26518
26518
|
/* @__PURE__ */ jsxs("div", { className: "text-[var(--color-foreground)] text-lg leading-relaxed min-h-[60px]", children: [
|
|
26519
26519
|
displayedText,
|
|
26520
26520
|
isTyping && /* @__PURE__ */ jsx("span", { className: "animate-pulse", children: "\u258C" })
|
|
@@ -26524,9 +26524,9 @@ function DialogueBox({
|
|
|
26524
26524
|
{
|
|
26525
26525
|
type: "button",
|
|
26526
26526
|
className: cn(
|
|
26527
|
-
"block w-full text-left px-4 py-2 rounded transition-colors",
|
|
26528
|
-
"hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-
|
|
26529
|
-
selectedChoice === index ? "bg-[var(--color-surface,#374151)] text-
|
|
26527
|
+
"block w-full text-left px-4 py-2 rounded-interactive transition-colors",
|
|
26528
|
+
"hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-warning",
|
|
26529
|
+
selectedChoice === index ? "bg-[var(--color-surface,#374151)] text-warning" : "bg-[var(--color-card)] text-[var(--color-foreground)]"
|
|
26530
26530
|
),
|
|
26531
26531
|
onClick: (e) => {
|
|
26532
26532
|
e.stopPropagation();
|
|
@@ -26534,7 +26534,7 @@ function DialogueBox({
|
|
|
26534
26534
|
onChoice?.(choice);
|
|
26535
26535
|
},
|
|
26536
26536
|
children: [
|
|
26537
|
-
/* @__PURE__ */ jsxs("span", { className: "text-
|
|
26537
|
+
/* @__PURE__ */ jsxs("span", { className: "text-muted-foreground mr-2", children: [
|
|
26538
26538
|
index + 1,
|
|
26539
26539
|
"."
|
|
26540
26540
|
] }),
|
|
@@ -26543,7 +26543,7 @@ function DialogueBox({
|
|
|
26543
26543
|
},
|
|
26544
26544
|
index
|
|
26545
26545
|
)) }),
|
|
26546
|
-
!isTyping && !dialogue.choices?.length && /* @__PURE__ */ jsx("div", { className: "mt-4 text-
|
|
26546
|
+
!isTyping && !dialogue.choices?.length && /* @__PURE__ */ jsx("div", { className: "mt-4 text-muted-foreground text-sm animate-pulse", children: "Press SPACE or click to continue..." })
|
|
26547
26547
|
] })
|
|
26548
26548
|
] }) })
|
|
26549
26549
|
}
|
|
@@ -26646,7 +26646,7 @@ function InventoryPanel({
|
|
|
26646
26646
|
/* @__PURE__ */ jsx(
|
|
26647
26647
|
"div",
|
|
26648
26648
|
{
|
|
26649
|
-
className: "grid gap-1 bg-[var(--color-card)] p-2 rounded-
|
|
26649
|
+
className: "grid gap-1 bg-[var(--color-card)] p-2 rounded-container border border-border",
|
|
26650
26650
|
style: {
|
|
26651
26651
|
gridTemplateColumns: `repeat(${safeColumns}, ${slotSize}px)`,
|
|
26652
26652
|
gridTemplateRows: `repeat(${rows}, ${slotSize}px)`
|
|
@@ -26658,8 +26658,8 @@ function InventoryPanel({
|
|
|
26658
26658
|
className: cn(
|
|
26659
26659
|
"relative flex items-center justify-center",
|
|
26660
26660
|
"bg-[var(--color-card)] border rounded transition-colors",
|
|
26661
|
-
"hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-
|
|
26662
|
-
selectedSlot === index ? "border-
|
|
26661
|
+
"hover:bg-[var(--color-surface,#374151)] focus:outline-none focus:ring-2 focus:ring-info",
|
|
26662
|
+
selectedSlot === index ? "border-warning bg-[var(--color-surface,#374151)]" : "border-muted"
|
|
26663
26663
|
),
|
|
26664
26664
|
style: { width: slotSize, height: slotSize },
|
|
26665
26665
|
onClick: () => handleSlotClick(index),
|
|
@@ -26678,8 +26678,8 @@ function InventoryPanel({
|
|
|
26678
26678
|
className: "w-8 h-8 object-contain",
|
|
26679
26679
|
style: { imageRendering: "pixelated" }
|
|
26680
26680
|
}
|
|
26681
|
-
) : /* @__PURE__ */ jsx("div", { className: "w-8 h-8 bg-
|
|
26682
|
-
item.quantity > 1 && /* @__PURE__ */ jsx("span", { className: "absolute bottom-0 right-0 bg-
|
|
26681
|
+
) : /* @__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() }),
|
|
26682
|
+
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 })
|
|
26683
26683
|
] })
|
|
26684
26684
|
},
|
|
26685
26685
|
index
|
|
@@ -26689,7 +26689,7 @@ function InventoryPanel({
|
|
|
26689
26689
|
showTooltips && hoveredItem && /* @__PURE__ */ jsxs(
|
|
26690
26690
|
"div",
|
|
26691
26691
|
{
|
|
26692
|
-
className: "fixed z-50 bg-[var(--color-card)] border border-
|
|
26692
|
+
className: "fixed z-50 bg-[var(--color-card)] border border-border rounded-container p-2 shadow-elevation-card pointer-events-none",
|
|
26693
26693
|
style: {
|
|
26694
26694
|
left: tooltipPosition.x,
|
|
26695
26695
|
top: tooltipPosition.y,
|
|
@@ -26697,8 +26697,8 @@ function InventoryPanel({
|
|
|
26697
26697
|
},
|
|
26698
26698
|
children: [
|
|
26699
26699
|
/* @__PURE__ */ jsx("div", { className: "font-semibold text-[var(--color-foreground)]", children: hoveredItem.name || hoveredItem.type }),
|
|
26700
|
-
hoveredItem.description && /* @__PURE__ */ jsx("div", { className: "text-sm text-
|
|
26701
|
-
/* @__PURE__ */ jsxs("div", { className: "text-xs text-
|
|
26700
|
+
hoveredItem.description && /* @__PURE__ */ jsx("div", { className: "text-sm text-muted-foreground mt-1", children: hoveredItem.description }),
|
|
26701
|
+
/* @__PURE__ */ jsxs("div", { className: "text-xs text-muted-foreground mt-1", children: [
|
|
26702
26702
|
"Quantity: ",
|
|
26703
26703
|
hoveredItem.quantity
|
|
26704
26704
|
] })
|
|
@@ -26776,7 +26776,7 @@ function GameMenu({
|
|
|
26776
26776
|
children: title
|
|
26777
26777
|
}
|
|
26778
26778
|
),
|
|
26779
|
-
subtitle && /* @__PURE__ */ jsx("p", { className: "mt-2 text-lg text-
|
|
26779
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "mt-2 text-lg text-muted-foreground tracking-widest uppercase", children: subtitle })
|
|
26780
26780
|
] }),
|
|
26781
26781
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4 w-full max-w-md", children: resolvedOptions.map((option, index) => /* @__PURE__ */ jsx(
|
|
26782
26782
|
"button",
|
|
@@ -26784,10 +26784,10 @@ function GameMenu({
|
|
|
26784
26784
|
onClick: () => handleOptionClick(option),
|
|
26785
26785
|
disabled: option.disabled,
|
|
26786
26786
|
className: cn(
|
|
26787
|
-
"w-full py-4 px-8 rounded-
|
|
26787
|
+
"w-full py-4 px-8 rounded-container border-2 font-bold text-lg",
|
|
26788
26788
|
"transition-all duration-200 transform",
|
|
26789
26789
|
"hover:scale-105 active:scale-95",
|
|
26790
|
-
"focus:outline-none focus:ring-4 focus:ring-
|
|
26790
|
+
"focus:outline-none focus:ring-4 focus:ring-foreground/25",
|
|
26791
26791
|
variantMap3[option.variant ?? "secondary"] ?? variantMap3.secondary,
|
|
26792
26792
|
option.disabled && "opacity-50 cursor-not-allowed hover:scale-100"
|
|
26793
26793
|
),
|
|
@@ -26799,8 +26799,8 @@ function GameMenu({
|
|
|
26799
26799
|
index
|
|
26800
26800
|
)) }),
|
|
26801
26801
|
/* @__PURE__ */ jsxs("div", { className: "absolute inset-0 pointer-events-none overflow-hidden", children: [
|
|
26802
|
-
/* @__PURE__ */ jsx("div", { className: "absolute top-1/4 left-1/4 w-64 h-64 bg-
|
|
26803
|
-
/* @__PURE__ */ jsx("div", { className: "absolute bottom-1/4 right-1/4 w-96 h-96 bg-
|
|
26802
|
+
/* @__PURE__ */ jsx("div", { className: "absolute top-1/4 left-1/4 w-64 h-64 bg-info/10 rounded-container blur-3xl" }),
|
|
26803
|
+
/* @__PURE__ */ jsx("div", { className: "absolute bottom-1/4 right-1/4 w-96 h-96 bg-accent/10 rounded-container blur-3xl" })
|
|
26804
26804
|
] })
|
|
26805
26805
|
]
|
|
26806
26806
|
}
|
|
@@ -26813,9 +26813,9 @@ var init_GameMenu = __esm({
|
|
|
26813
26813
|
init_cn();
|
|
26814
26814
|
init_useEventBus();
|
|
26815
26815
|
variantMap3 = {
|
|
26816
|
-
primary: "bg-[var(--color-primary)] hover:bg-
|
|
26817
|
-
secondary: "bg-[var(--color-surface,#374151)] hover:bg-
|
|
26818
|
-
ghost: "bg-transparent hover:bg-
|
|
26816
|
+
primary: "bg-[var(--color-primary)] hover:bg-info text-[var(--color-primary-foreground)] border-info shadow-lg shadow-info/25",
|
|
26817
|
+
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
26818
|
+
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
26819
26819
|
};
|
|
26820
26820
|
GameMenu.displayName = "GameMenu";
|
|
26821
26821
|
}
|
|
@@ -26883,13 +26883,13 @@ function GameOverScreen({
|
|
|
26883
26883
|
children: title
|
|
26884
26884
|
}
|
|
26885
26885
|
),
|
|
26886
|
-
message && /* @__PURE__ */ jsx("p", { className: "text-xl text-
|
|
26887
|
-
isNewHighScore && /* @__PURE__ */ jsx("div", { className: "mb-6 px-6 py-2 bg-
|
|
26886
|
+
message && /* @__PURE__ */ jsx("p", { className: "text-xl text-muted-foreground mb-8 text-center max-w-md", children: message }),
|
|
26887
|
+
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}" }) }),
|
|
26888
26888
|
stats.length > 0 && /* @__PURE__ */ jsx(
|
|
26889
26889
|
"div",
|
|
26890
26890
|
{
|
|
26891
26891
|
className: cn(
|
|
26892
|
-
"mb-8 p-6 rounded-
|
|
26892
|
+
"mb-8 p-6 rounded-container border-2 bg-background/30",
|
|
26893
26893
|
colors.accent
|
|
26894
26894
|
),
|
|
26895
26895
|
children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-4", children: stats.map((stat, index) => {
|
|
@@ -26898,7 +26898,7 @@ function GameOverScreen({
|
|
|
26898
26898
|
displayValue = formatTime2(displayValue);
|
|
26899
26899
|
}
|
|
26900
26900
|
return /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
26901
|
-
/* @__PURE__ */ jsx("div", { className: "text-
|
|
26901
|
+
/* @__PURE__ */ jsx("div", { className: "text-muted-foreground text-sm mb-1", children: stat.label }),
|
|
26902
26902
|
/* @__PURE__ */ jsxs("div", { className: "text-[var(--color-foreground)] text-2xl font-bold flex items-center justify-center gap-2", children: [
|
|
26903
26903
|
stat.icon && /* @__PURE__ */ jsx("span", { children: stat.icon }),
|
|
26904
26904
|
/* @__PURE__ */ jsx("span", { className: "tabular-nums", children: displayValue })
|
|
@@ -26912,10 +26912,10 @@ function GameOverScreen({
|
|
|
26912
26912
|
{
|
|
26913
26913
|
onClick: () => handleActionClick(action),
|
|
26914
26914
|
className: cn(
|
|
26915
|
-
"px-8 py-4 rounded-
|
|
26915
|
+
"px-8 py-4 rounded-container border-2 font-bold text-lg",
|
|
26916
26916
|
"transition-all duration-200",
|
|
26917
26917
|
"hover:scale-105 active:scale-95",
|
|
26918
|
-
"focus:outline-none focus:ring-4 focus:ring-
|
|
26918
|
+
"focus:outline-none focus:ring-4 focus:ring-foreground/25",
|
|
26919
26919
|
buttonVariants[action.variant ?? "secondary"]
|
|
26920
26920
|
),
|
|
26921
26921
|
children: action.label
|
|
@@ -26934,25 +26934,25 @@ var init_GameOverScreen = __esm({
|
|
|
26934
26934
|
init_useEventBus();
|
|
26935
26935
|
variantColors = {
|
|
26936
26936
|
victory: {
|
|
26937
|
-
bg: "from-
|
|
26938
|
-
title: "text-
|
|
26939
|
-
accent: "border-
|
|
26937
|
+
bg: "from-success/90 to-success/90",
|
|
26938
|
+
title: "text-success",
|
|
26939
|
+
accent: "border-success"
|
|
26940
26940
|
},
|
|
26941
26941
|
defeat: {
|
|
26942
|
-
bg: "from-
|
|
26943
|
-
title: "text-
|
|
26944
|
-
accent: "border-
|
|
26942
|
+
bg: "from-error/90 to-background/90",
|
|
26943
|
+
title: "text-error",
|
|
26944
|
+
accent: "border-error"
|
|
26945
26945
|
},
|
|
26946
26946
|
neutral: {
|
|
26947
|
-
bg: "from-
|
|
26948
|
-
title: "text-
|
|
26949
|
-
accent: "border-
|
|
26947
|
+
bg: "from-muted/90 to-background/90",
|
|
26948
|
+
title: "text-foreground",
|
|
26949
|
+
accent: "border-muted"
|
|
26950
26950
|
}
|
|
26951
26951
|
};
|
|
26952
26952
|
buttonVariants = {
|
|
26953
|
-
primary: "bg-[var(--color-primary)] hover:bg-
|
|
26954
|
-
secondary: "bg-[var(--color-surface,#374151)] hover:bg-
|
|
26955
|
-
ghost: "bg-transparent hover:bg-
|
|
26953
|
+
primary: "bg-[var(--color-primary)] hover:bg-info text-[var(--color-primary-foreground)] border-info",
|
|
26954
|
+
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
26955
|
+
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
26956
26956
|
};
|
|
26957
26957
|
GameOverScreen.displayName = "GameOverScreen";
|
|
26958
26958
|
}
|
|
@@ -27186,7 +27186,7 @@ function PlatformerCanvas({
|
|
|
27186
27186
|
{
|
|
27187
27187
|
ref: canvasRef,
|
|
27188
27188
|
style: { width: canvasWidth, height: canvasHeight },
|
|
27189
|
-
className: cn("block rounded-
|
|
27189
|
+
className: cn("block rounded-container border border-border/10", className),
|
|
27190
27190
|
"data-testid": "platformer-canvas",
|
|
27191
27191
|
tabIndex: 0
|
|
27192
27192
|
}
|
|
@@ -34853,7 +34853,7 @@ function DebuggerBoard({
|
|
|
34853
34853
|
backgroundPosition: "center"
|
|
34854
34854
|
},
|
|
34855
34855
|
children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "p-4", children: [
|
|
34856
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
34856
|
+
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,
|
|
34857
34857
|
/* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
34858
34858
|
/* @__PURE__ */ jsxs(HStack, { gap: "xs", align: "center", children: [
|
|
34859
34859
|
/* @__PURE__ */ jsx(Icon, { icon: Bug, size: "sm" }),
|
|
@@ -34866,11 +34866,11 @@ function DebuggerBoard({
|
|
|
34866
34866
|
const isFlagged = flaggedLines.has(line.id);
|
|
34867
34867
|
let lineStyle = "";
|
|
34868
34868
|
if (submitted) {
|
|
34869
|
-
if (line.isBug && isFlagged) lineStyle = "bg-
|
|
34870
|
-
else if (line.isBug && !isFlagged) lineStyle = "bg-
|
|
34871
|
-
else if (!line.isBug && isFlagged) lineStyle = "bg-
|
|
34869
|
+
if (line.isBug && isFlagged) lineStyle = "bg-success/10";
|
|
34870
|
+
else if (line.isBug && !isFlagged) lineStyle = "bg-warning/10";
|
|
34871
|
+
else if (!line.isBug && isFlagged) lineStyle = "bg-error/10";
|
|
34872
34872
|
} else if (isFlagged) {
|
|
34873
|
-
lineStyle = "bg-
|
|
34873
|
+
lineStyle = "bg-error/10";
|
|
34874
34874
|
}
|
|
34875
34875
|
return /* @__PURE__ */ jsxs(
|
|
34876
34876
|
HStack,
|
|
@@ -34883,8 +34883,8 @@ function DebuggerBoard({
|
|
|
34883
34883
|
/* @__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 }) }),
|
|
34884
34884
|
/* @__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 }) }),
|
|
34885
34885
|
/* @__PURE__ */ jsxs(Box, { className: "w-8 flex-shrink-0 flex items-center justify-center", children: [
|
|
34886
|
-
isFlagged && /* @__PURE__ */ jsx(Icon, { icon: Bug, size: "xs", className: "text-
|
|
34887
|
-
submitted && line.isBug && !isFlagged && /* @__PURE__ */ jsx(Icon, { icon: Bug, size: "xs", className: "text-
|
|
34886
|
+
isFlagged && /* @__PURE__ */ jsx(Icon, { icon: Bug, size: "xs", className: "text-error" }),
|
|
34887
|
+
submitted && line.isBug && !isFlagged && /* @__PURE__ */ jsx(Icon, { icon: Bug, size: "xs", className: "text-warning" })
|
|
34888
34888
|
] })
|
|
34889
34889
|
]
|
|
34890
34890
|
},
|
|
@@ -34899,7 +34899,7 @@ function DebuggerBoard({
|
|
|
34899
34899
|
{
|
|
34900
34900
|
icon: flaggedLines.has(line.id) ? CheckCircle : XCircle,
|
|
34901
34901
|
size: "xs",
|
|
34902
|
-
className: flaggedLines.has(line.id) ? "text-
|
|
34902
|
+
className: flaggedLines.has(line.id) ? "text-success mt-0.5" : "text-warning mt-0.5"
|
|
34903
34903
|
}
|
|
34904
34904
|
),
|
|
34905
34905
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", children: [
|
|
@@ -34908,7 +34908,7 @@ function DebuggerBoard({
|
|
|
34908
34908
|
] })
|
|
34909
34909
|
] }, line.id))
|
|
34910
34910
|
] }) }),
|
|
34911
|
-
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-
|
|
34911
|
+
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
|
|
34912
34912
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", justify: "center", children: [
|
|
34913
34913
|
!submitted ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleSubmit, disabled: flaggedLines.size === 0, children: [
|
|
34914
34914
|
/* @__PURE__ */ jsx(Icon, { icon: Send, size: "sm" }),
|
|
@@ -35392,12 +35392,12 @@ function DialogueBubble({
|
|
|
35392
35392
|
"div",
|
|
35393
35393
|
{
|
|
35394
35394
|
className: cn(
|
|
35395
|
-
"flex items-start gap-3 rounded-
|
|
35395
|
+
"flex items-start gap-3 rounded-container bg-background/80 backdrop-blur-sm px-4 py-3 border border-border/10",
|
|
35396
35396
|
position === "top" ? "rounded-bl-none" : "rounded-tl-none",
|
|
35397
35397
|
className
|
|
35398
35398
|
),
|
|
35399
35399
|
children: [
|
|
35400
|
-
portrait && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 w-12 h-12 rounded-full overflow-hidden border-2 border-
|
|
35400
|
+
portrait && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 w-12 h-12 rounded-full overflow-hidden border-2 border-warning/60", children: /* @__PURE__ */ jsx(
|
|
35401
35401
|
"img",
|
|
35402
35402
|
{
|
|
35403
35403
|
src: portrait,
|
|
@@ -35406,8 +35406,8 @@ function DialogueBubble({
|
|
|
35406
35406
|
}
|
|
35407
35407
|
) }),
|
|
35408
35408
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1 min-w-0", children: [
|
|
35409
|
-
speaker && /* @__PURE__ */ jsx("span", { className: "text-sm font-bold text-
|
|
35410
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm text-
|
|
35409
|
+
speaker && /* @__PURE__ */ jsx("span", { className: "text-sm font-bold text-warning", children: speaker }),
|
|
35410
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm text-foreground leading-relaxed", children: text })
|
|
35411
35411
|
] })
|
|
35412
35412
|
]
|
|
35413
35413
|
}
|
|
@@ -35726,7 +35726,7 @@ function LinearView({
|
|
|
35726
35726
|
className
|
|
35727
35727
|
}) {
|
|
35728
35728
|
const currentIdx = trait.states.indexOf(trait.currentState);
|
|
35729
|
-
return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-
|
|
35729
|
+
return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
|
|
35730
35730
|
trait.description && /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: trait.description }),
|
|
35731
35731
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
35732
35732
|
const isDone = i < currentIdx;
|
|
@@ -35748,10 +35748,10 @@ function LinearView({
|
|
|
35748
35748
|
{
|
|
35749
35749
|
display: "inline-flex",
|
|
35750
35750
|
className: cn(
|
|
35751
|
-
"items-center justify-center rounded-
|
|
35751
|
+
"items-center justify-center rounded-pill px-3 py-1 border-2 transition-all",
|
|
35752
35752
|
SIZE_CONFIG2[size || "md"].fontSize,
|
|
35753
35753
|
isDone && "bg-success/20 border-success text-success",
|
|
35754
|
-
isCurrent && "bg-primary/20 border-primary text-primary font-bold shadow-
|
|
35754
|
+
isCurrent && "bg-primary/20 border-primary text-primary font-bold shadow-elevation-card shadow-primary/20",
|
|
35755
35755
|
!isDone && !isCurrent && "bg-muted border-border text-muted-foreground"
|
|
35756
35756
|
),
|
|
35757
35757
|
children: [
|
|
@@ -35773,7 +35773,7 @@ function CompactView({
|
|
|
35773
35773
|
const { t } = useTranslate();
|
|
35774
35774
|
const config = SIZE_CONFIG2[size || "md"];
|
|
35775
35775
|
const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
|
|
35776
|
-
return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-
|
|
35776
|
+
return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
|
|
35777
35777
|
/* @__PURE__ */ jsxs(HStack, { className: "items-center justify-between", children: [
|
|
35778
35778
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground font-bold", children: trait.name }),
|
|
35779
35779
|
/* @__PURE__ */ jsx(StateIndicator, { state: trait.currentState, size: "sm", stateStyles })
|
|
@@ -35809,7 +35809,7 @@ function FullView({
|
|
|
35809
35809
|
const { t } = useTranslate();
|
|
35810
35810
|
const config = SIZE_CONFIG2[size || "md"];
|
|
35811
35811
|
const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
|
|
35812
|
-
return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-
|
|
35812
|
+
return /* @__PURE__ */ jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
|
|
35813
35813
|
/* @__PURE__ */ jsxs(HStack, { className: "items-center justify-between", children: [
|
|
35814
35814
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground font-bold", children: trait.name }),
|
|
35815
35815
|
/* @__PURE__ */ jsx(StateIndicator, { state: trait.currentState, size: "sm", stateStyles })
|
|
@@ -35823,9 +35823,9 @@ function FullView({
|
|
|
35823
35823
|
{
|
|
35824
35824
|
display: "flex",
|
|
35825
35825
|
className: cn(
|
|
35826
|
-
"items-center justify-center rounded-
|
|
35826
|
+
"items-center justify-center rounded-container border-2 transition-all px-2",
|
|
35827
35827
|
config.nodeSize,
|
|
35828
|
-
isCurrent && "bg-primary/20 border-primary shadow-
|
|
35828
|
+
isCurrent && "bg-primary/20 border-primary shadow-elevation-card shadow-primary/20",
|
|
35829
35829
|
!isCurrent && hasOutgoing && "bg-muted border-border hover:border-muted-foreground",
|
|
35830
35830
|
!isCurrent && !hasOutgoing && "bg-background border-border opacity-60",
|
|
35831
35831
|
onStateClick && "cursor-pointer"
|
|
@@ -36255,7 +36255,7 @@ function EventHandlerBoard({
|
|
|
36255
36255
|
backgroundPosition: "center"
|
|
36256
36256
|
},
|
|
36257
36257
|
children: [
|
|
36258
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
36258
|
+
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,
|
|
36259
36259
|
/* @__PURE__ */ jsxs(VStack, { gap: "xs", children: [
|
|
36260
36260
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-foreground", children: entity.title }),
|
|
36261
36261
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-muted-foreground", children: entity.description }),
|
|
@@ -36270,7 +36270,7 @@ function EventHandlerBoard({
|
|
|
36270
36270
|
Box,
|
|
36271
36271
|
{
|
|
36272
36272
|
className: cn(
|
|
36273
|
-
"p-3 rounded-
|
|
36273
|
+
"p-3 rounded-container border-2 cursor-pointer transition-all hover:scale-105",
|
|
36274
36274
|
selectedObjectId === obj.id ? "border-primary bg-primary/10" : "border-border bg-card hover:border-muted-foreground"
|
|
36275
36275
|
),
|
|
36276
36276
|
onClick: () => setSelectedObjectId(obj.id),
|
|
@@ -36292,10 +36292,10 @@ function EventHandlerBoard({
|
|
|
36292
36292
|
}
|
|
36293
36293
|
),
|
|
36294
36294
|
eventLog.length > 0 && /* @__PURE__ */ jsx(EventLog, { entries: eventLog }),
|
|
36295
|
-
playState === "success" && /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-
|
|
36295
|
+
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") }) }),
|
|
36296
36296
|
playState === "fail" && /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
36297
|
-
/* @__PURE__ */ jsx(Box, { className: "p-4 rounded-
|
|
36298
|
-
showHint && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-
|
|
36297
|
+
/* @__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) }) }),
|
|
36298
|
+
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: [
|
|
36299
36299
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-accent font-bold shrink-0", children: "\u{1F4A1} " + t("game.hint") + ":" }),
|
|
36300
36300
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground", children: entity.hint })
|
|
36301
36301
|
] }) })
|
|
@@ -39341,7 +39341,7 @@ function MiniMap({
|
|
|
39341
39341
|
"div",
|
|
39342
39342
|
{
|
|
39343
39343
|
className: cn(
|
|
39344
|
-
"relative inline-block border border-
|
|
39344
|
+
"relative inline-block border border-border/20 rounded-container",
|
|
39345
39345
|
className
|
|
39346
39346
|
),
|
|
39347
39347
|
children: /* @__PURE__ */ jsx(
|
|
@@ -39561,7 +39561,7 @@ function NegotiatorBoard({
|
|
|
39561
39561
|
backgroundPosition: "center"
|
|
39562
39562
|
},
|
|
39563
39563
|
children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "p-4", children: [
|
|
39564
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
39564
|
+
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,
|
|
39565
39565
|
/* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
39566
39566
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
|
|
39567
39567
|
/* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.description }),
|
|
@@ -39607,7 +39607,7 @@ function NegotiatorBoard({
|
|
|
39607
39607
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: "vs" }),
|
|
39608
39608
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", children: getActionLabel(round.opponentAction) }),
|
|
39609
39609
|
/* @__PURE__ */ jsx(Icon, { icon: ArrowRight, size: "xs" }),
|
|
39610
|
-
/* @__PURE__ */ jsxs(Typography, { variant: "caption", weight: "bold", className: "text-
|
|
39610
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "caption", weight: "bold", className: "text-success", children: [
|
|
39611
39611
|
"+",
|
|
39612
39612
|
round.playerPayoff
|
|
39613
39613
|
] }),
|
|
@@ -39618,7 +39618,7 @@ function NegotiatorBoard({
|
|
|
39618
39618
|
] }, round.round))
|
|
39619
39619
|
] }) }),
|
|
39620
39620
|
isComplete && /* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", children: [
|
|
39621
|
-
/* @__PURE__ */ jsx(Icon, { icon: CheckCircle, size: "lg", className: won ? "text-
|
|
39621
|
+
/* @__PURE__ */ jsx(Icon, { icon: CheckCircle, size: "lg", className: won ? "text-success" : "text-error" }),
|
|
39622
39622
|
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "bold", children: won ? entity.successMessage ?? t("negotiator.success") : entity.failMessage ?? t("negotiator.failed") }),
|
|
39623
39623
|
/* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-muted-foreground", children: [
|
|
39624
39624
|
t("negotiator.finalScore"),
|
|
@@ -39628,7 +39628,7 @@ function NegotiatorBoard({
|
|
|
39628
39628
|
entity.targetScore
|
|
39629
39629
|
] })
|
|
39630
39630
|
] }) }),
|
|
39631
|
-
showHint && entity.hint && !won && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-
|
|
39631
|
+
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 }) }),
|
|
39632
39632
|
isComplete && !won && /* @__PURE__ */ jsx(HStack, { justify: "center", children: /* @__PURE__ */ jsx(Button, { variant: "primary", onClick: handleReset, children: t("negotiator.playAgain") }) })
|
|
39633
39633
|
] })
|
|
39634
39634
|
}
|
|
@@ -40301,17 +40301,17 @@ function ResourceCounter({
|
|
|
40301
40301
|
"div",
|
|
40302
40302
|
{
|
|
40303
40303
|
className: cn(
|
|
40304
|
-
"inline-flex items-center rounded-
|
|
40305
|
-
"bg-
|
|
40304
|
+
"inline-flex items-center rounded-container",
|
|
40305
|
+
"bg-card/80 border border-muted font-medium text-foreground",
|
|
40306
40306
|
sizes.wrapper,
|
|
40307
40307
|
className
|
|
40308
40308
|
),
|
|
40309
40309
|
children: [
|
|
40310
40310
|
icon && /* @__PURE__ */ jsx("span", { className: cn("flex-shrink-0", sizes.icon), children: icon }),
|
|
40311
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
40311
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: label }),
|
|
40312
40312
|
/* @__PURE__ */ jsxs("span", { className: cn("font-bold tabular-nums", color), children: [
|
|
40313
40313
|
value,
|
|
40314
|
-
max != null && /* @__PURE__ */ jsxs("span", { className: "text-
|
|
40314
|
+
max != null && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
|
|
40315
40315
|
"/",
|
|
40316
40316
|
max
|
|
40317
40317
|
] })
|
|
@@ -42258,7 +42258,7 @@ function TraitSlot({
|
|
|
42258
42258
|
display: "flex",
|
|
42259
42259
|
position: "relative",
|
|
42260
42260
|
className: cn(
|
|
42261
|
-
"items-center justify-center rounded-
|
|
42261
|
+
"items-center justify-center rounded-container transition-all duration-200 bg-card/50",
|
|
42262
42262
|
!locked && "cursor-pointer",
|
|
42263
42263
|
locked && "cursor-not-allowed opacity-50",
|
|
42264
42264
|
isEmpty && !locked && "border-2 border-dashed border-border hover:border-muted-foreground",
|
|
@@ -42274,7 +42274,7 @@ function TraitSlot({
|
|
|
42274
42274
|
style: {
|
|
42275
42275
|
width: config.box,
|
|
42276
42276
|
height: config.box,
|
|
42277
|
-
backgroundColor: catColor?.bg ||
|
|
42277
|
+
backgroundColor: catColor?.bg || void 0,
|
|
42278
42278
|
borderColor: isDragOver ? void 0 : feedback === "correct" ? "var(--color-success)" : feedback === "wrong" ? "var(--color-error)" : catColor?.border || void 0
|
|
42279
42279
|
},
|
|
42280
42280
|
onClick: handleClick,
|
|
@@ -42303,7 +42303,7 @@ function TraitSlot({
|
|
|
42303
42303
|
Box,
|
|
42304
42304
|
{
|
|
42305
42305
|
position: "absolute",
|
|
42306
|
-
className: "-top-1.5 -right-1.5 w-4 h-4 bg-error rounded-
|
|
42306
|
+
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",
|
|
42307
42307
|
onClick: handleRemove,
|
|
42308
42308
|
children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-foreground text-xs leading-none", children: "\xD7" })
|
|
42309
42309
|
}
|
|
@@ -42313,14 +42313,14 @@ function TraitSlot({
|
|
|
42313
42313
|
Box,
|
|
42314
42314
|
{
|
|
42315
42315
|
position: "absolute",
|
|
42316
|
-
className: "-bottom-1 -left-1 w-4 h-4 bg-card rounded-
|
|
42316
|
+
className: "-bottom-1 -left-1 w-4 h-4 bg-card rounded-pill flex items-center justify-center border border-border",
|
|
42317
42317
|
children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground text-xs", children: slotNumber })
|
|
42318
42318
|
}
|
|
42319
42319
|
),
|
|
42320
42320
|
showTooltip && isHovered && itemMachine && !isEmpty && equippedItem && /* @__PURE__ */ jsxs(
|
|
42321
42321
|
Box,
|
|
42322
42322
|
{
|
|
42323
|
-
className: "p-3 bg-background border border-border rounded-
|
|
42323
|
+
className: "p-3 bg-background border border-border rounded-container shadow-xl",
|
|
42324
42324
|
style: {
|
|
42325
42325
|
...getTooltipStyle(),
|
|
42326
42326
|
minWidth: 200,
|
|
@@ -42570,12 +42570,12 @@ function SequencerBoard({
|
|
|
42570
42570
|
backgroundPosition: "center"
|
|
42571
42571
|
},
|
|
42572
42572
|
children: [
|
|
42573
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
42573
|
+
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,
|
|
42574
42574
|
/* @__PURE__ */ jsxs(VStack, { gap: "xs", children: [
|
|
42575
42575
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-foreground", children: entity.title }),
|
|
42576
42576
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-muted-foreground", children: entity.description })
|
|
42577
42577
|
] }),
|
|
42578
|
-
showHint && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-
|
|
42578
|
+
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: [
|
|
42579
42579
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-accent font-bold shrink-0", children: "\u{1F4A1} " + t("game.hint") + ":" }),
|
|
42580
42580
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground", children: entity.hint })
|
|
42581
42581
|
] }) }),
|
|
@@ -42613,8 +42613,8 @@ function SequencerBoard({
|
|
|
42613
42613
|
label: t("sequencer.dragActions")
|
|
42614
42614
|
}
|
|
42615
42615
|
),
|
|
42616
|
-
hasFeedback && playState === "idle" && attempts > 0 && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-
|
|
42617
|
-
playState === "success" && /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-
|
|
42616
|
+
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) }) }),
|
|
42617
|
+
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") }) }),
|
|
42618
42618
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", children: [
|
|
42619
42619
|
/* @__PURE__ */ jsx(
|
|
42620
42620
|
Button,
|
|
@@ -43290,7 +43290,7 @@ function SimulationCanvas({
|
|
|
43290
43290
|
ref: canvasRef,
|
|
43291
43291
|
width,
|
|
43292
43292
|
height,
|
|
43293
|
-
className: "rounded-
|
|
43293
|
+
className: "rounded-container block max-w-full h-auto"
|
|
43294
43294
|
}
|
|
43295
43295
|
) });
|
|
43296
43296
|
}
|
|
@@ -43498,7 +43498,7 @@ function SimulatorBoard({
|
|
|
43498
43498
|
backgroundPosition: "center"
|
|
43499
43499
|
},
|
|
43500
43500
|
children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", className: "p-4", children: [
|
|
43501
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
43501
|
+
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,
|
|
43502
43502
|
/* @__PURE__ */ jsx(Card, { className: "p-4", children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
43503
43503
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", weight: "bold", children: entity.title }),
|
|
43504
43504
|
/* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.description })
|
|
@@ -43549,8 +43549,8 @@ function SimulatorBoard({
|
|
|
43549
43549
|
entity.outputUnit
|
|
43550
43550
|
] }),
|
|
43551
43551
|
submitted && /* @__PURE__ */ jsxs(HStack, { gap: "xs", align: "center", children: [
|
|
43552
|
-
/* @__PURE__ */ jsx(Icon, { icon: isCorrect ? CheckCircle : XCircle, size: "sm", className: isCorrect ? "text-
|
|
43553
|
-
/* @__PURE__ */ jsx(Typography, { variant: "body", className: isCorrect ? "text-
|
|
43552
|
+
/* @__PURE__ */ jsx(Icon, { icon: isCorrect ? CheckCircle : XCircle, size: "sm", className: isCorrect ? "text-success" : "text-error" }),
|
|
43553
|
+
/* @__PURE__ */ jsx(Typography, { variant: "body", className: isCorrect ? "text-success" : "text-error", children: isCorrect ? entity.successMessage ?? t("simulator.correct") : entity.failMessage ?? t("simulator.incorrect") })
|
|
43554
43554
|
] }),
|
|
43555
43555
|
/* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-muted-foreground", children: [
|
|
43556
43556
|
t("simulator.target"),
|
|
@@ -43563,7 +43563,7 @@ function SimulatorBoard({
|
|
|
43563
43563
|
")"
|
|
43564
43564
|
] })
|
|
43565
43565
|
] }) }),
|
|
43566
|
-
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-
|
|
43566
|
+
showHint && entity.hint && /* @__PURE__ */ jsx(Card, { className: "p-4 border-l-4 border-l-warning", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: entity.hint }) }),
|
|
43567
43567
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", justify: "center", children: [
|
|
43568
43568
|
!submitted ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleSubmit, children: [
|
|
43569
43569
|
/* @__PURE__ */ jsx(Icon, { icon: Play, size: "sm" }),
|
|
@@ -44075,7 +44075,7 @@ function StateNode2({
|
|
|
44075
44075
|
position: "absolute",
|
|
44076
44076
|
display: "flex",
|
|
44077
44077
|
className: cn(
|
|
44078
|
-
"items-center justify-center rounded-
|
|
44078
|
+
"items-center justify-center rounded-pill border-3 transition-all cursor-pointer select-none",
|
|
44079
44079
|
"min-w-[80px] h-[80px] px-3",
|
|
44080
44080
|
isCurrent && "bg-primary/20 border-primary shadow-lg shadow-primary/30 scale-110",
|
|
44081
44081
|
isSelected && !isCurrent && "bg-accent/20 border-accent ring-2 ring-accent/50",
|
|
@@ -44388,7 +44388,7 @@ function StateArchitectBoard({
|
|
|
44388
44388
|
backgroundPosition: "center"
|
|
44389
44389
|
},
|
|
44390
44390
|
children: [
|
|
44391
|
-
entity.headerImage && !headerError ? /* @__PURE__ */ jsx(Box, { className: "w-full h-32 overflow-hidden rounded-
|
|
44391
|
+
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,
|
|
44392
44392
|
/* @__PURE__ */ jsxs(VStack, { gap: "xs", children: [
|
|
44393
44393
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-foreground", children: entity.title }),
|
|
44394
44394
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-muted-foreground", children: entity.description }),
|
|
@@ -44407,7 +44407,7 @@ function StateArchitectBoard({
|
|
|
44407
44407
|
Box,
|
|
44408
44408
|
{
|
|
44409
44409
|
position: "relative",
|
|
44410
|
-
className: "rounded-
|
|
44410
|
+
className: "rounded-container border border-border bg-background overflow-hidden",
|
|
44411
44411
|
style: { width: GRAPH_W, height: GRAPH_H },
|
|
44412
44412
|
children: [
|
|
44413
44413
|
/* @__PURE__ */ jsxs(
|
|
@@ -44466,7 +44466,7 @@ function StateArchitectBoard({
|
|
|
44466
44466
|
children: selectedState ? t("stateArchitect.addTransition", { state: selectedState }) : t("stateArchitect.addTransitionPrompt")
|
|
44467
44467
|
}
|
|
44468
44468
|
) }),
|
|
44469
|
-
transitions.length > 0 && /* @__PURE__ */ jsxs(VStack, { gap: "xs", className: "p-3 rounded-
|
|
44469
|
+
transitions.length > 0 && /* @__PURE__ */ jsxs(VStack, { gap: "xs", className: "p-3 rounded-container bg-muted/50 border border-border", children: [
|
|
44470
44470
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground font-medium", children: t("stateArchitect.transitions", { count: transitions.length }) + ":" }),
|
|
44471
44471
|
transitions.map((t2) => /* @__PURE__ */ jsxs(HStack, { className: "items-center text-xs", gap: "xs", children: [
|
|
44472
44472
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-foreground", children: t2.from }),
|
|
@@ -44500,7 +44500,7 @@ function StateArchitectBoard({
|
|
|
44500
44500
|
variables
|
|
44501
44501
|
}
|
|
44502
44502
|
),
|
|
44503
|
-
testResults.length > 0 && /* @__PURE__ */ jsxs(VStack, { className: "p-3 rounded-
|
|
44503
|
+
testResults.length > 0 && /* @__PURE__ */ jsxs(VStack, { className: "p-3 rounded-container bg-card border border-border", gap: "xs", children: [
|
|
44504
44504
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-muted-foreground font-medium", children: t("stateArchitect.testResults") + ":" }),
|
|
44505
44505
|
testResults.map((r, i) => /* @__PURE__ */ jsxs(HStack, { className: "items-center text-xs", gap: "xs", children: [
|
|
44506
44506
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: r.passed ? "text-success" : "text-error", children: r.passed ? "\u2714" : "\u2717" }),
|
|
@@ -44511,10 +44511,10 @@ function StateArchitectBoard({
|
|
|
44511
44511
|
entity.showCodeView !== false && /* @__PURE__ */ jsx(CodeView, { data: codeData, label: "View Code" })
|
|
44512
44512
|
] })
|
|
44513
44513
|
] }),
|
|
44514
|
-
playState === "success" && /* @__PURE__ */ jsx(Box, { className: "p-4 rounded-
|
|
44514
|
+
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") }) }),
|
|
44515
44515
|
playState === "fail" && /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
44516
|
-
/* @__PURE__ */ jsx(Box, { className: "p-4 rounded-
|
|
44517
|
-
attempts >= 3 && entity.hint && /* @__PURE__ */ jsx(Box, { className: "p-3 rounded-
|
|
44516
|
+
/* @__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]) }) }),
|
|
44517
|
+
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: [
|
|
44518
44518
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-accent font-bold shrink-0", children: "\u{1F4A1} " + t("game.hint") + ":" }),
|
|
44519
44519
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-foreground", children: entity.hint })
|
|
44520
44520
|
] }) })
|
|
@@ -44620,7 +44620,7 @@ function StatusEffect({
|
|
|
44620
44620
|
"div",
|
|
44621
44621
|
{
|
|
44622
44622
|
className: cn(
|
|
44623
|
-
"relative flex items-center justify-center rounded border-2",
|
|
44623
|
+
"relative flex items-center justify-center rounded-interactive border-2",
|
|
44624
44624
|
sizes.container,
|
|
44625
44625
|
variantStyles9[variant]
|
|
44626
44626
|
),
|
|
@@ -44631,7 +44631,7 @@ function StatusEffect({
|
|
|
44631
44631
|
"span",
|
|
44632
44632
|
{
|
|
44633
44633
|
className: cn(
|
|
44634
|
-
"absolute bottom-0 left-0 right-0 text-center font-mono font-bold text-
|
|
44634
|
+
"absolute bottom-0 left-0 right-0 text-center font-mono font-bold text-foreground bg-background/60 leading-tight",
|
|
44635
44635
|
sizes.timer
|
|
44636
44636
|
),
|
|
44637
44637
|
children: formatDuration(duration)
|
|
@@ -44644,7 +44644,7 @@ function StatusEffect({
|
|
|
44644
44644
|
"span",
|
|
44645
44645
|
{
|
|
44646
44646
|
className: cn(
|
|
44647
|
-
"absolute flex items-center justify-center rounded-full bg-
|
|
44647
|
+
"absolute flex items-center justify-center rounded-full bg-card text-foreground font-bold leading-none",
|
|
44648
44648
|
sizes.badge
|
|
44649
44649
|
),
|
|
44650
44650
|
children: stacks
|
|
@@ -44663,9 +44663,9 @@ var init_StatusEffect = __esm({
|
|
|
44663
44663
|
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" }
|
|
44664
44664
|
};
|
|
44665
44665
|
variantStyles9 = {
|
|
44666
|
-
buff: "border-
|
|
44667
|
-
debuff: "border-
|
|
44668
|
-
neutral: "border-
|
|
44666
|
+
buff: "border-success bg-success/20",
|
|
44667
|
+
debuff: "border-error bg-error/20",
|
|
44668
|
+
neutral: "border-muted bg-muted/20"
|
|
44669
44669
|
};
|
|
44670
44670
|
StatusEffect.displayName = "StatusEffect";
|
|
44671
44671
|
}
|
|
@@ -45278,12 +45278,12 @@ function TimerDisplay({
|
|
|
45278
45278
|
"div",
|
|
45279
45279
|
{
|
|
45280
45280
|
className: cn(
|
|
45281
|
-
"inline-flex items-center justify-center rounded-
|
|
45282
|
-
"bg-
|
|
45281
|
+
"inline-flex items-center justify-center rounded-container",
|
|
45282
|
+
"bg-card/80 border border-muted font-mono font-bold tabular-nums",
|
|
45283
45283
|
sizeMap17[size],
|
|
45284
|
-
running && "border-
|
|
45285
|
-
isLow && "text-
|
|
45286
|
-
!isLow && "text-
|
|
45284
|
+
running && "border-success/50",
|
|
45285
|
+
isLow && "text-error border-error/50 animate-pulse",
|
|
45286
|
+
!isLow && "text-foreground",
|
|
45287
45287
|
className
|
|
45288
45288
|
),
|
|
45289
45289
|
children: formatTime3(seconds, format)
|
|
@@ -46007,8 +46007,8 @@ function XPBar({
|
|
|
46007
46007
|
"span",
|
|
46008
46008
|
{
|
|
46009
46009
|
className: cn(
|
|
46010
|
-
"flex-shrink-0 rounded-
|
|
46011
|
-
"bg-
|
|
46010
|
+
"flex-shrink-0 rounded-interactive font-bold",
|
|
46011
|
+
"bg-accent text-foreground border border-accent",
|
|
46012
46012
|
sizes.badge
|
|
46013
46013
|
),
|
|
46014
46014
|
children: [
|
|
@@ -46022,7 +46022,7 @@ function XPBar({
|
|
|
46022
46022
|
"div",
|
|
46023
46023
|
{
|
|
46024
46024
|
className: cn(
|
|
46025
|
-
"relative w-full overflow-hidden rounded-full bg-
|
|
46025
|
+
"relative w-full overflow-hidden rounded-full bg-muted border border-muted",
|
|
46026
46026
|
sizes.bar
|
|
46027
46027
|
),
|
|
46028
46028
|
children: /* @__PURE__ */ jsx(
|
|
@@ -46030,7 +46030,7 @@ function XPBar({
|
|
|
46030
46030
|
{
|
|
46031
46031
|
className: cn(
|
|
46032
46032
|
"absolute inset-y-0 left-0 rounded-full",
|
|
46033
|
-
"bg-gradient-to-r from-
|
|
46033
|
+
"bg-gradient-to-r from-accent to-info",
|
|
46034
46034
|
animated && "transition-all duration-500 ease-out"
|
|
46035
46035
|
),
|
|
46036
46036
|
style: { width: `${percentage}%` }
|
|
@@ -46038,7 +46038,7 @@ function XPBar({
|
|
|
46038
46038
|
)
|
|
46039
46039
|
}
|
|
46040
46040
|
),
|
|
46041
|
-
showLabel && /* @__PURE__ */ jsxs("span", { className: cn("text-
|
|
46041
|
+
showLabel && /* @__PURE__ */ jsxs("span", { className: cn("text-muted-foreground tabular-nums", sizes.text), children: [
|
|
46042
46042
|
current,
|
|
46043
46043
|
" / ",
|
|
46044
46044
|
max,
|
|
@@ -48335,7 +48335,7 @@ function CollapsibleSection({ title, expanded, onToggle, children, className })
|
|
|
48335
48335
|
CollapsibleSection.displayName = "CollapsibleSection";
|
|
48336
48336
|
function EditorSlider({ label, value, min, max, step = 0.1, onChange, className }) {
|
|
48337
48337
|
return /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", className, children: [
|
|
48338
|
-
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "min-w-[80px] text-
|
|
48338
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "min-w-[80px] text-muted-foreground", children: label }),
|
|
48339
48339
|
/* @__PURE__ */ jsx(Box, { className: "flex-1", children: /* @__PURE__ */ jsx(
|
|
48340
48340
|
"input",
|
|
48341
48341
|
{
|
|
@@ -48345,22 +48345,22 @@ function EditorSlider({ label, value, min, max, step = 0.1, onChange, className
|
|
|
48345
48345
|
step,
|
|
48346
48346
|
value,
|
|
48347
48347
|
onChange: (e) => onChange(parseFloat(e.target.value)),
|
|
48348
|
-
className: "w-full h-1.5 bg-
|
|
48348
|
+
className: "w-full h-1.5 bg-muted rounded-interactive appearance-none cursor-pointer accent-primary"
|
|
48349
48349
|
}
|
|
48350
48350
|
) }),
|
|
48351
|
-
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "min-w-[40px] text-right text-
|
|
48351
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "min-w-[40px] text-right text-muted-foreground", children: typeof step === "number" && step < 1 ? value.toFixed(1) : value })
|
|
48352
48352
|
] });
|
|
48353
48353
|
}
|
|
48354
48354
|
EditorSlider.displayName = "EditorSlider";
|
|
48355
48355
|
function EditorSelect({ label, value, options, onChange, className }) {
|
|
48356
48356
|
return /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", className, children: [
|
|
48357
|
-
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "min-w-[80px] text-
|
|
48357
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "min-w-[80px] text-muted-foreground", children: label }),
|
|
48358
48358
|
/* @__PURE__ */ jsx(Box, { className: "flex-1", children: /* @__PURE__ */ jsx(
|
|
48359
48359
|
"select",
|
|
48360
48360
|
{
|
|
48361
48361
|
value,
|
|
48362
48362
|
onChange: (e) => onChange(e.target.value),
|
|
48363
|
-
className: "w-full px-2 py-1 text-xs bg-
|
|
48363
|
+
className: "w-full px-2 py-1 text-xs bg-muted text-foreground border border-muted rounded cursor-pointer",
|
|
48364
48364
|
children: options.map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, children: opt.label }, opt.value))
|
|
48365
48365
|
}
|
|
48366
48366
|
) })
|
|
@@ -48369,14 +48369,14 @@ function EditorSelect({ label, value, options, onChange, className }) {
|
|
|
48369
48369
|
EditorSelect.displayName = "EditorSelect";
|
|
48370
48370
|
function EditorCheckbox({ label, checked, onChange, className }) {
|
|
48371
48371
|
return /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", className, children: [
|
|
48372
|
-
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "min-w-[80px] text-
|
|
48372
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "min-w-[80px] text-muted-foreground", children: label }),
|
|
48373
48373
|
/* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(
|
|
48374
48374
|
"input",
|
|
48375
48375
|
{
|
|
48376
48376
|
type: "checkbox",
|
|
48377
48377
|
checked,
|
|
48378
48378
|
onChange: (e) => onChange(e.target.checked),
|
|
48379
|
-
className: "w-4 h-4 accent-
|
|
48379
|
+
className: "w-4 h-4 accent-primary cursor-pointer"
|
|
48380
48380
|
}
|
|
48381
48381
|
) })
|
|
48382
48382
|
] });
|
|
@@ -48384,7 +48384,7 @@ function EditorCheckbox({ label, checked, onChange, className }) {
|
|
|
48384
48384
|
EditorCheckbox.displayName = "EditorCheckbox";
|
|
48385
48385
|
function EditorTextInput({ label, value, onChange, placeholder, className }) {
|
|
48386
48386
|
return /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", className, children: [
|
|
48387
|
-
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "min-w-[80px] text-
|
|
48387
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "min-w-[80px] text-muted-foreground", children: label }),
|
|
48388
48388
|
/* @__PURE__ */ jsx(Box, { className: "flex-1", children: /* @__PURE__ */ jsx(
|
|
48389
48389
|
"input",
|
|
48390
48390
|
{
|
|
@@ -48392,30 +48392,30 @@ function EditorTextInput({ label, value, onChange, placeholder, className }) {
|
|
|
48392
48392
|
value,
|
|
48393
48393
|
onChange: (e) => onChange(e.target.value),
|
|
48394
48394
|
placeholder,
|
|
48395
|
-
className: "w-full px-2 py-1 text-xs bg-
|
|
48395
|
+
className: "w-full px-2 py-1 text-xs bg-muted text-foreground border border-muted rounded"
|
|
48396
48396
|
}
|
|
48397
48397
|
) })
|
|
48398
48398
|
] });
|
|
48399
48399
|
}
|
|
48400
48400
|
EditorTextInput.displayName = "EditorTextInput";
|
|
48401
48401
|
function StatusBar({ hoveredTile, mode, gridSize, unitCount, featureCount, className }) {
|
|
48402
|
-
return /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", className: `px-3 py-1.5 bg-
|
|
48402
|
+
return /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", className: `px-3 py-1.5 bg-background border-t border-border ${className ?? ""}`, children: [
|
|
48403
48403
|
/* @__PURE__ */ jsx(Badge, { variant: "info", size: "sm", children: mode }),
|
|
48404
|
-
/* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-
|
|
48404
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-muted-foreground", children: [
|
|
48405
48405
|
"Tile: ",
|
|
48406
48406
|
hoveredTile ? `(${hoveredTile.x}, ${hoveredTile.y})` : "\u2014"
|
|
48407
48407
|
] }),
|
|
48408
|
-
gridSize && /* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-
|
|
48408
|
+
gridSize && /* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-muted-foreground", children: [
|
|
48409
48409
|
"Grid: ",
|
|
48410
48410
|
gridSize.width,
|
|
48411
48411
|
"x",
|
|
48412
48412
|
gridSize.height
|
|
48413
48413
|
] }),
|
|
48414
|
-
unitCount !== void 0 && /* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-
|
|
48414
|
+
unitCount !== void 0 && /* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-muted-foreground", children: [
|
|
48415
48415
|
"Units: ",
|
|
48416
48416
|
unitCount
|
|
48417
48417
|
] }),
|
|
48418
|
-
featureCount !== void 0 && /* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-
|
|
48418
|
+
featureCount !== void 0 && /* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-muted-foreground", children: [
|
|
48419
48419
|
"Features: ",
|
|
48420
48420
|
featureCount
|
|
48421
48421
|
] })
|
|
@@ -48427,8 +48427,8 @@ function TerrainPalette({ terrains, selectedTerrain, onSelect, className }) {
|
|
|
48427
48427
|
Box,
|
|
48428
48428
|
{
|
|
48429
48429
|
onClick: () => onSelect(terrain),
|
|
48430
|
-
className: `w-8 h-8 rounded cursor-pointer border-2 transition-all ${selectedTerrain === terrain ? "border-
|
|
48431
|
-
style: { backgroundColor: TERRAIN_COLORS[terrain] || "
|
|
48430
|
+
className: `w-8 h-8 rounded cursor-pointer border-2 transition-all ${selectedTerrain === terrain ? "border-foreground scale-110 shadow-lg" : "border-muted hover:border-muted-foreground"}`,
|
|
48431
|
+
style: { backgroundColor: TERRAIN_COLORS[terrain] || "var(--color-muted)" },
|
|
48432
48432
|
title: terrain
|
|
48433
48433
|
},
|
|
48434
48434
|
terrain
|