@almadar/ui 5.80.0 → 5.81.0
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 +297 -365
- package/dist/avl/index.js +297 -365
- package/dist/components/index.cjs +267 -335
- package/dist/components/index.js +267 -335
- package/dist/providers/index.cjs +297 -365
- package/dist/providers/index.js +297 -365
- package/dist/runtime/index.cjs +297 -365
- package/dist/runtime/index.js +297 -365
- package/package.json +1 -1
package/dist/providers/index.js
CHANGED
|
@@ -8357,6 +8357,38 @@ var init_shared = __esm({
|
|
|
8357
8357
|
init_canvasEffects();
|
|
8358
8358
|
}
|
|
8359
8359
|
});
|
|
8360
|
+
function GameIcon({ assetUrl, icon, size = "md", alt, className }) {
|
|
8361
|
+
const px = typeof size === "number" ? size : sizeMap[size];
|
|
8362
|
+
if (assetUrl?.url) {
|
|
8363
|
+
return /* @__PURE__ */ jsx(
|
|
8364
|
+
"img",
|
|
8365
|
+
{
|
|
8366
|
+
src: assetUrl.url,
|
|
8367
|
+
alt: alt ?? assetUrl.category ?? "",
|
|
8368
|
+
width: px,
|
|
8369
|
+
height: px,
|
|
8370
|
+
style: { imageRendering: "pixelated", objectFit: "contain", width: px, height: px },
|
|
8371
|
+
className: cn("flex-shrink-0", className)
|
|
8372
|
+
}
|
|
8373
|
+
);
|
|
8374
|
+
}
|
|
8375
|
+
const I = typeof icon === "string" ? resolveIcon(icon) : icon;
|
|
8376
|
+
return /* @__PURE__ */ jsx(I, { width: px, height: px, className: cn("flex-shrink-0", className) });
|
|
8377
|
+
}
|
|
8378
|
+
var sizeMap;
|
|
8379
|
+
var init_GameIcon = __esm({
|
|
8380
|
+
"components/game/2d/atoms/GameIcon.tsx"() {
|
|
8381
|
+
"use client";
|
|
8382
|
+
init_cn();
|
|
8383
|
+
init_Icon();
|
|
8384
|
+
sizeMap = {
|
|
8385
|
+
sm: 16,
|
|
8386
|
+
md: 24,
|
|
8387
|
+
lg: 32
|
|
8388
|
+
};
|
|
8389
|
+
GameIcon.displayName = "GameIcon";
|
|
8390
|
+
}
|
|
8391
|
+
});
|
|
8360
8392
|
function GameCard({
|
|
8361
8393
|
id,
|
|
8362
8394
|
cost,
|
|
@@ -8379,9 +8411,9 @@ function GameCard({
|
|
|
8379
8411
|
}, [disabled, id, onClick, clickEvent, eventBus]);
|
|
8380
8412
|
const artPx = artPxMap[size];
|
|
8381
8413
|
return /* @__PURE__ */ jsxs(
|
|
8382
|
-
|
|
8414
|
+
Button,
|
|
8383
8415
|
{
|
|
8384
|
-
|
|
8416
|
+
variant: "ghost",
|
|
8385
8417
|
onClick: handleClick,
|
|
8386
8418
|
disabled,
|
|
8387
8419
|
title: name,
|
|
@@ -8395,8 +8427,9 @@ function GameCard({
|
|
|
8395
8427
|
),
|
|
8396
8428
|
children: [
|
|
8397
8429
|
cost != null && /* @__PURE__ */ jsx(
|
|
8398
|
-
|
|
8430
|
+
Typography,
|
|
8399
8431
|
{
|
|
8432
|
+
as: "span",
|
|
8400
8433
|
className: cn(
|
|
8401
8434
|
"absolute -top-2 -left-2 flex items-center justify-center",
|
|
8402
8435
|
"min-w-[22px] h-[22px] rounded-full px-1",
|
|
@@ -8405,17 +8438,7 @@ function GameCard({
|
|
|
8405
8438
|
children: cost
|
|
8406
8439
|
}
|
|
8407
8440
|
),
|
|
8408
|
-
/* @__PURE__ */ jsx(Box, { className: "flex-1 flex items-center justify-center w-full", children: art ? /* @__PURE__ */ jsx(
|
|
8409
|
-
"img",
|
|
8410
|
-
{
|
|
8411
|
-
src: art.url,
|
|
8412
|
-
alt: name ?? id,
|
|
8413
|
-
width: artPx,
|
|
8414
|
-
height: artPx,
|
|
8415
|
-
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
8416
|
-
className: "flex-shrink-0"
|
|
8417
|
-
}
|
|
8418
|
-
) : /* @__PURE__ */ jsx(Box, { className: "rounded bg-muted/40", style: { width: artPx, height: artPx } }) }),
|
|
8441
|
+
/* @__PURE__ */ jsx(Box, { className: "flex-1 flex items-center justify-center w-full", children: art ? /* @__PURE__ */ jsx(GameIcon, { assetUrl: art, icon: "image", size: artPx, alt: name ?? id, className: "flex-shrink-0" }) : /* @__PURE__ */ jsx(Box, { className: "rounded bg-muted/40", style: { width: artPx, height: artPx } }) }),
|
|
8419
8442
|
name != null && /* @__PURE__ */ jsx(
|
|
8420
8443
|
Typography,
|
|
8421
8444
|
{
|
|
@@ -8425,8 +8448,8 @@ function GameCard({
|
|
|
8425
8448
|
}
|
|
8426
8449
|
),
|
|
8427
8450
|
(attack != null || defense != null) && /* @__PURE__ */ jsxs(Box, { className: "flex w-full items-center justify-between px-0.5 text-[10px] font-bold leading-none", children: [
|
|
8428
|
-
/* @__PURE__ */ jsx("span",
|
|
8429
|
-
/* @__PURE__ */ jsx("span",
|
|
8451
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", className: "text-error", children: attack != null ? `\u2694${attack}` : "" }),
|
|
8452
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", className: "text-info", children: defense != null ? `\u{1F6E1}${defense}` : "" })
|
|
8430
8453
|
] })
|
|
8431
8454
|
]
|
|
8432
8455
|
}
|
|
@@ -8439,7 +8462,9 @@ var init_GameCard = __esm({
|
|
|
8439
8462
|
init_cn();
|
|
8440
8463
|
init_useEventBus();
|
|
8441
8464
|
init_Box();
|
|
8465
|
+
init_Button();
|
|
8442
8466
|
init_Typography();
|
|
8467
|
+
init_GameIcon();
|
|
8443
8468
|
cardSizeMap = {
|
|
8444
8469
|
sm: "w-16 h-24",
|
|
8445
8470
|
md: "w-20 h-28",
|
|
@@ -8462,12 +8487,13 @@ function HealthBar({
|
|
|
8462
8487
|
frameAsset,
|
|
8463
8488
|
fillAsset
|
|
8464
8489
|
}) {
|
|
8465
|
-
const sizes =
|
|
8490
|
+
const sizes = sizeMap2[size];
|
|
8466
8491
|
const percentage = max > 0 ? Math.max(0, Math.min(100, current / max * 100)) : 0;
|
|
8467
8492
|
if (format === "hearts") {
|
|
8468
|
-
return /* @__PURE__ */ jsx(
|
|
8469
|
-
|
|
8493
|
+
return /* @__PURE__ */ jsx(Box, { className: cn("flex items-center gap-1", className), children: Array.from({ length: max }).map((_, i) => /* @__PURE__ */ jsx(
|
|
8494
|
+
Box,
|
|
8470
8495
|
{
|
|
8496
|
+
as: "span",
|
|
8471
8497
|
className: cn(animated && "transition-transform hover:scale-110"),
|
|
8472
8498
|
children: heartIcon(i < current, sizes.heart)
|
|
8473
8499
|
},
|
|
@@ -8476,10 +8502,12 @@ function HealthBar({
|
|
|
8476
8502
|
}
|
|
8477
8503
|
if (format === "bar") {
|
|
8478
8504
|
return /* @__PURE__ */ jsx(
|
|
8479
|
-
|
|
8505
|
+
Box,
|
|
8480
8506
|
{
|
|
8507
|
+
position: "relative",
|
|
8508
|
+
overflow: "hidden",
|
|
8481
8509
|
className: cn(
|
|
8482
|
-
"
|
|
8510
|
+
"rounded-full",
|
|
8483
8511
|
!frameAsset && "bg-muted",
|
|
8484
8512
|
sizes.bar,
|
|
8485
8513
|
"w-24",
|
|
@@ -8487,10 +8515,11 @@ function HealthBar({
|
|
|
8487
8515
|
),
|
|
8488
8516
|
style: frameAsset ? { backgroundImage: `url(${frameAsset.url})`, backgroundSize: "100% 100%" } : void 0,
|
|
8489
8517
|
children: /* @__PURE__ */ jsx(
|
|
8490
|
-
|
|
8518
|
+
Box,
|
|
8491
8519
|
{
|
|
8520
|
+
position: "absolute",
|
|
8492
8521
|
className: cn(
|
|
8493
|
-
"
|
|
8522
|
+
"inset-y-0 left-0 rounded-full",
|
|
8494
8523
|
!fillAsset && (percentage > 66 ? "bg-success" : percentage > 33 ? "bg-warning" : "bg-error"),
|
|
8495
8524
|
animated && "transition-all duration-300"
|
|
8496
8525
|
),
|
|
@@ -8504,10 +8533,11 @@ function HealthBar({
|
|
|
8504
8533
|
);
|
|
8505
8534
|
}
|
|
8506
8535
|
if (format === "progress") {
|
|
8507
|
-
return /* @__PURE__ */ jsxs(
|
|
8536
|
+
return /* @__PURE__ */ jsxs(Box, { className: cn("flex items-center gap-2", className), children: [
|
|
8508
8537
|
level != null && /* @__PURE__ */ jsxs(
|
|
8509
|
-
|
|
8538
|
+
Typography,
|
|
8510
8539
|
{
|
|
8540
|
+
as: "span",
|
|
8511
8541
|
className: cn(
|
|
8512
8542
|
"flex-shrink-0 rounded-interactive font-bold",
|
|
8513
8543
|
"bg-accent text-accent-foreground border border-accent",
|
|
@@ -8519,21 +8549,23 @@ function HealthBar({
|
|
|
8519
8549
|
]
|
|
8520
8550
|
}
|
|
8521
8551
|
),
|
|
8522
|
-
/* @__PURE__ */ jsxs(
|
|
8552
|
+
/* @__PURE__ */ jsxs(Box, { className: "flex-1 flex flex-col gap-0.5", children: [
|
|
8523
8553
|
/* @__PURE__ */ jsx(
|
|
8524
|
-
|
|
8554
|
+
Box,
|
|
8525
8555
|
{
|
|
8556
|
+
position: "relative",
|
|
8526
8557
|
className: cn(
|
|
8527
|
-
"
|
|
8558
|
+
"w-full overflow-hidden rounded-full",
|
|
8528
8559
|
!frameAsset && "bg-muted border border-muted",
|
|
8529
8560
|
sizes.bar
|
|
8530
8561
|
),
|
|
8531
8562
|
style: frameAsset ? { backgroundImage: `url(${frameAsset.url})`, backgroundSize: "100% 100%" } : void 0,
|
|
8532
8563
|
children: /* @__PURE__ */ jsx(
|
|
8533
|
-
|
|
8564
|
+
Box,
|
|
8534
8565
|
{
|
|
8566
|
+
position: "absolute",
|
|
8535
8567
|
className: cn(
|
|
8536
|
-
"
|
|
8568
|
+
"inset-y-0 left-0 rounded-full",
|
|
8537
8569
|
!fillAsset && "bg-gradient-to-r from-accent to-info",
|
|
8538
8570
|
animated && "transition-all duration-500 ease-out"
|
|
8539
8571
|
),
|
|
@@ -8545,7 +8577,7 @@ function HealthBar({
|
|
|
8545
8577
|
)
|
|
8546
8578
|
}
|
|
8547
8579
|
),
|
|
8548
|
-
showLabel && /* @__PURE__ */ jsxs("span",
|
|
8580
|
+
showLabel && /* @__PURE__ */ jsxs(Typography, { as: "span", className: cn("text-foreground/70 tabular-nums", sizes.label), children: [
|
|
8549
8581
|
current,
|
|
8550
8582
|
" / ",
|
|
8551
8583
|
max,
|
|
@@ -8554,16 +8586,18 @@ function HealthBar({
|
|
|
8554
8586
|
] })
|
|
8555
8587
|
] });
|
|
8556
8588
|
}
|
|
8557
|
-
return /* @__PURE__ */ jsxs("span",
|
|
8589
|
+
return /* @__PURE__ */ jsxs(Typography, { as: "span", className: cn("font-mono font-bold", sizes.text, className), children: [
|
|
8558
8590
|
current,
|
|
8559
8591
|
"/",
|
|
8560
8592
|
max
|
|
8561
8593
|
] });
|
|
8562
8594
|
}
|
|
8563
|
-
var heartIcon,
|
|
8595
|
+
var heartIcon, sizeMap2;
|
|
8564
8596
|
var init_HealthBar = __esm({
|
|
8565
8597
|
"components/game/2d/atoms/HealthBar.tsx"() {
|
|
8566
8598
|
init_cn();
|
|
8599
|
+
init_Box();
|
|
8600
|
+
init_Typography();
|
|
8567
8601
|
heartIcon = (filled, size) => /* @__PURE__ */ jsx(
|
|
8568
8602
|
"svg",
|
|
8569
8603
|
{
|
|
@@ -8575,7 +8609,7 @@ var init_HealthBar = __esm({
|
|
|
8575
8609
|
children: /* @__PURE__ */ jsx("path", { d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" })
|
|
8576
8610
|
}
|
|
8577
8611
|
);
|
|
8578
|
-
|
|
8612
|
+
sizeMap2 = {
|
|
8579
8613
|
sm: { heart: "w-4 h-4", bar: "h-2", text: "text-sm", label: "text-xs", badge: "text-xs px-1.5 py-0.5" },
|
|
8580
8614
|
md: { heart: "w-6 h-6", bar: "h-3", text: "text-base", label: "text-xs", badge: "text-xs px-2 py-0.5" },
|
|
8581
8615
|
lg: { heart: "w-8 h-8", bar: "h-4", text: "text-lg", label: "text-sm", badge: "text-sm px-2.5 py-1" }
|
|
@@ -8596,37 +8630,30 @@ function ScoreDisplay({
|
|
|
8596
8630
|
const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof score === "number" && !Number.isNaN(score) ? score : 0;
|
|
8597
8631
|
const formattedValue = new Intl.NumberFormat(locale).format(resolvedValue);
|
|
8598
8632
|
return /* @__PURE__ */ jsxs(
|
|
8599
|
-
|
|
8633
|
+
Box,
|
|
8600
8634
|
{
|
|
8601
8635
|
className: cn(
|
|
8602
8636
|
"flex items-center gap-2 font-bold",
|
|
8603
|
-
|
|
8637
|
+
sizeMap3[size],
|
|
8604
8638
|
className
|
|
8605
8639
|
),
|
|
8606
8640
|
children: [
|
|
8607
|
-
assetUrl ? /* @__PURE__ */ jsx(
|
|
8608
|
-
|
|
8609
|
-
|
|
8610
|
-
src: assetUrl.url,
|
|
8611
|
-
alt: "",
|
|
8612
|
-
width: 20,
|
|
8613
|
-
height: 20,
|
|
8614
|
-
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
8615
|
-
className: "flex-shrink-0"
|
|
8616
|
-
}
|
|
8617
|
-
) : icon ? /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }) : null,
|
|
8618
|
-
label && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: label }),
|
|
8619
|
-
/* @__PURE__ */ jsx("span", { className: "tabular-nums", children: formattedValue })
|
|
8641
|
+
assetUrl ? /* @__PURE__ */ jsx(GameIcon, { assetUrl, icon: "image", size: 20, className: "flex-shrink-0" }) : icon ? /* @__PURE__ */ jsx(Box, { as: "span", className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }) : null,
|
|
8642
|
+
label && /* @__PURE__ */ jsx(Typography, { as: "span", className: "text-muted-foreground", children: label }),
|
|
8643
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", className: "tabular-nums", children: formattedValue })
|
|
8620
8644
|
]
|
|
8621
8645
|
}
|
|
8622
8646
|
);
|
|
8623
8647
|
}
|
|
8624
|
-
var
|
|
8648
|
+
var sizeMap3, DEFAULT_ASSET_URL;
|
|
8625
8649
|
var init_ScoreDisplay = __esm({
|
|
8626
8650
|
"components/game/2d/atoms/ScoreDisplay.tsx"() {
|
|
8627
8651
|
init_cn();
|
|
8628
8652
|
init_Icon();
|
|
8629
|
-
|
|
8653
|
+
init_Box();
|
|
8654
|
+
init_Typography();
|
|
8655
|
+
init_GameIcon();
|
|
8656
|
+
sizeMap3 = {
|
|
8630
8657
|
sm: "text-sm",
|
|
8631
8658
|
md: "text-lg",
|
|
8632
8659
|
lg: "text-2xl",
|
|
@@ -8689,9 +8716,9 @@ function ControlButton({
|
|
|
8689
8716
|
[isPressed, releaseEvent, eventBus, onRelease]
|
|
8690
8717
|
);
|
|
8691
8718
|
return /* @__PURE__ */ jsx(
|
|
8692
|
-
|
|
8719
|
+
Button,
|
|
8693
8720
|
{
|
|
8694
|
-
|
|
8721
|
+
variant,
|
|
8695
8722
|
disabled,
|
|
8696
8723
|
onPointerDown: handlePointerDown,
|
|
8697
8724
|
onPointerUp: handlePointerUp,
|
|
@@ -8702,41 +8729,35 @@ function ControlButton({
|
|
|
8702
8729
|
"select-none touch-none",
|
|
8703
8730
|
"transition-all duration-100",
|
|
8704
8731
|
"active:scale-95",
|
|
8705
|
-
|
|
8732
|
+
sizeMap4[size] ?? sizeMap4.md,
|
|
8706
8733
|
shapeMap[shape] ?? shapeMap.circle,
|
|
8707
8734
|
variantMap[variant] ?? variantMap.secondary,
|
|
8708
8735
|
actualPressed && "scale-95 brightness-110 border-foreground",
|
|
8709
8736
|
disabled && "opacity-50 cursor-not-allowed",
|
|
8710
8737
|
className
|
|
8711
8738
|
),
|
|
8712
|
-
children: assetUrl ? /* @__PURE__ */ jsx(
|
|
8713
|
-
"img",
|
|
8714
|
-
{
|
|
8715
|
-
src: assetUrl.url,
|
|
8716
|
-
alt: "",
|
|
8717
|
-
width: 24,
|
|
8718
|
-
height: 24,
|
|
8719
|
-
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
8720
|
-
className: "flex-shrink-0"
|
|
8721
|
-
}
|
|
8722
|
-
) : icon ? /* @__PURE__ */ jsx("span", { className: "text-2xl", children: typeof icon === "string" ? /^[a-zA-Z0-9-]+$/.test(icon) ? (() => {
|
|
8739
|
+
children: assetUrl ? /* @__PURE__ */ jsx(GameIcon, { assetUrl, icon: "image", size: 24, className: "flex-shrink-0" }) : icon ? /* @__PURE__ */ jsx(Box, { as: "span", className: "text-2xl", children: typeof icon === "string" ? /^[a-zA-Z0-9-]+$/.test(icon) ? (() => {
|
|
8723
8740
|
const I = resolveIcon(icon);
|
|
8724
8741
|
return I ? /* @__PURE__ */ jsx(I, { className: "w-6 h-6" }) : null;
|
|
8725
8742
|
})() : icon : /* @__PURE__ */ (() => {
|
|
8726
8743
|
const I = icon;
|
|
8727
8744
|
return /* @__PURE__ */ jsx(I, { className: "w-6 h-6" });
|
|
8728
|
-
})() }) : label ? /* @__PURE__ */ jsx("span",
|
|
8745
|
+
})() }) : label ? /* @__PURE__ */ jsx(Typography, { as: "span", children: label }) : null
|
|
8729
8746
|
}
|
|
8730
8747
|
);
|
|
8731
8748
|
}
|
|
8732
|
-
var
|
|
8749
|
+
var sizeMap4, shapeMap, variantMap, DEFAULT_ASSET_URL2;
|
|
8733
8750
|
var init_ControlButton = __esm({
|
|
8734
8751
|
"components/game/2d/atoms/ControlButton.tsx"() {
|
|
8735
8752
|
"use client";
|
|
8736
8753
|
init_cn();
|
|
8737
8754
|
init_useEventBus();
|
|
8738
8755
|
init_Icon();
|
|
8739
|
-
|
|
8756
|
+
init_Button();
|
|
8757
|
+
init_Box();
|
|
8758
|
+
init_Typography();
|
|
8759
|
+
init_GameIcon();
|
|
8760
|
+
sizeMap4 = {
|
|
8740
8761
|
sm: "w-10 h-10 text-sm",
|
|
8741
8762
|
md: "w-14 h-14 text-base",
|
|
8742
8763
|
lg: "w-18 h-18 text-lg",
|
|
@@ -8806,12 +8827,12 @@ function Sprite({
|
|
|
8806
8827
|
onClick?.();
|
|
8807
8828
|
};
|
|
8808
8829
|
return /* @__PURE__ */ jsx(
|
|
8809
|
-
|
|
8830
|
+
Box,
|
|
8810
8831
|
{
|
|
8832
|
+
position: "absolute",
|
|
8811
8833
|
className,
|
|
8812
8834
|
onClick: action || onClick ? handleClick : void 0,
|
|
8813
8835
|
style: {
|
|
8814
|
-
position: "absolute",
|
|
8815
8836
|
width: frameWidth,
|
|
8816
8837
|
height: frameHeight,
|
|
8817
8838
|
backgroundImage: `url(${spritesheet.url})`,
|
|
@@ -8832,6 +8853,7 @@ var init_Sprite = __esm({
|
|
|
8832
8853
|
"components/game/2d/atoms/Sprite.tsx"() {
|
|
8833
8854
|
"use client";
|
|
8834
8855
|
init_useEventBus();
|
|
8856
|
+
init_Box();
|
|
8835
8857
|
init_spriteAnimation();
|
|
8836
8858
|
DEFAULT_SPRITESHEET = {
|
|
8837
8859
|
url: "https://almadar-kflow-assets.web.app/shared/isometric-blocks/Spritesheet/allTiles_sheet.png",
|
|
@@ -8868,17 +8890,7 @@ function StateIndicator({
|
|
|
8868
8890
|
className
|
|
8869
8891
|
),
|
|
8870
8892
|
children: [
|
|
8871
|
-
/* @__PURE__ */ jsx(Box, { as: "span", children: assetUrl ? /* @__PURE__ */ jsx(
|
|
8872
|
-
"img",
|
|
8873
|
-
{
|
|
8874
|
-
src: assetUrl.url,
|
|
8875
|
-
alt: displayLabel,
|
|
8876
|
-
width: 16,
|
|
8877
|
-
height: 16,
|
|
8878
|
-
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
8879
|
-
className: "flex-shrink-0"
|
|
8880
|
-
}
|
|
8881
|
-
) : typeof config.icon === "string" ? /^[a-zA-Z0-9-]+$/.test(config.icon) ? /* @__PURE__ */ jsx(Icon, { name: config.icon }) : config.icon : /* @__PURE__ */ jsx(Icon, { icon: config.icon }) }),
|
|
8893
|
+
/* @__PURE__ */ jsx(Box, { as: "span", children: assetUrl ? /* @__PURE__ */ jsx(GameIcon, { assetUrl, icon: "image", size: 16, alt: displayLabel, className: "flex-shrink-0" }) : typeof config.icon === "string" ? /^[a-zA-Z0-9-]+$/.test(config.icon) ? /* @__PURE__ */ jsx(Icon, { name: config.icon }) : config.icon : /* @__PURE__ */ jsx(Icon, { icon: config.icon }) }),
|
|
8882
8894
|
/* @__PURE__ */ jsx(Box, { as: "span", children: displayLabel })
|
|
8883
8895
|
]
|
|
8884
8896
|
}
|
|
@@ -8890,6 +8902,7 @@ var init_StateIndicator = __esm({
|
|
|
8890
8902
|
init_Box();
|
|
8891
8903
|
init_Icon();
|
|
8892
8904
|
init_cn();
|
|
8905
|
+
init_GameIcon();
|
|
8893
8906
|
DEFAULT_ASSET_URL3 = {
|
|
8894
8907
|
url: "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png",
|
|
8895
8908
|
role: "ui",
|
|
@@ -8943,29 +8956,31 @@ function TimerDisplay({
|
|
|
8943
8956
|
}) {
|
|
8944
8957
|
const isLow = lowThreshold != null && seconds <= lowThreshold && seconds > 0;
|
|
8945
8958
|
return /* @__PURE__ */ jsxs(
|
|
8946
|
-
|
|
8959
|
+
Box,
|
|
8947
8960
|
{
|
|
8948
8961
|
className: cn(
|
|
8949
8962
|
"inline-flex items-center gap-1 justify-center rounded-container",
|
|
8950
8963
|
"bg-card/80 border border-muted font-mono font-bold tabular-nums",
|
|
8951
|
-
|
|
8964
|
+
sizeMap5[size],
|
|
8952
8965
|
running && "border-success/50",
|
|
8953
8966
|
isLow && "text-error border-error/50 animate-pulse",
|
|
8954
8967
|
!isLow && "text-foreground",
|
|
8955
8968
|
className
|
|
8956
8969
|
),
|
|
8957
8970
|
children: [
|
|
8958
|
-
iconAsset && /* @__PURE__ */ jsx(
|
|
8971
|
+
iconAsset && /* @__PURE__ */ jsx(GameIcon, { assetUrl: iconAsset, icon: "image", size: 16, className: "w-4 h-4 object-contain flex-shrink-0" }),
|
|
8959
8972
|
formatTime(seconds, format)
|
|
8960
8973
|
]
|
|
8961
8974
|
}
|
|
8962
8975
|
);
|
|
8963
8976
|
}
|
|
8964
|
-
var
|
|
8977
|
+
var sizeMap5;
|
|
8965
8978
|
var init_TimerDisplay = __esm({
|
|
8966
8979
|
"components/game/2d/atoms/TimerDisplay.tsx"() {
|
|
8967
8980
|
init_cn();
|
|
8968
|
-
|
|
8981
|
+
init_Box();
|
|
8982
|
+
init_GameIcon();
|
|
8983
|
+
sizeMap5 = {
|
|
8969
8984
|
sm: "text-sm px-2 py-0.5",
|
|
8970
8985
|
md: "text-lg px-3 py-1",
|
|
8971
8986
|
lg: "text-2xl px-4 py-1.5"
|
|
@@ -8983,9 +8998,9 @@ function ResourceCounter({
|
|
|
8983
8998
|
size = "md",
|
|
8984
8999
|
className
|
|
8985
9000
|
}) {
|
|
8986
|
-
const sizes =
|
|
9001
|
+
const sizes = sizeMap6[size];
|
|
8987
9002
|
return /* @__PURE__ */ jsxs(
|
|
8988
|
-
|
|
9003
|
+
Box,
|
|
8989
9004
|
{
|
|
8990
9005
|
className: cn(
|
|
8991
9006
|
"inline-flex items-center rounded-container",
|
|
@@ -8994,21 +9009,11 @@ function ResourceCounter({
|
|
|
8994
9009
|
className
|
|
8995
9010
|
),
|
|
8996
9011
|
children: [
|
|
8997
|
-
assetUrl ? /* @__PURE__ */ jsx(
|
|
8998
|
-
|
|
8999
|
-
|
|
9000
|
-
src: assetUrl.url,
|
|
9001
|
-
alt: label,
|
|
9002
|
-
width: sizes.img,
|
|
9003
|
-
height: sizes.img,
|
|
9004
|
-
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
9005
|
-
className: "flex-shrink-0"
|
|
9006
|
-
}
|
|
9007
|
-
) : icon ? /* @__PURE__ */ jsx("span", { className: cn("flex-shrink-0", sizes.icon), children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }) : null,
|
|
9008
|
-
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: label }),
|
|
9009
|
-
/* @__PURE__ */ jsxs("span", { className: cn("font-bold tabular-nums", color && (color in colorTokenClasses2 ? colorTokenClasses2[color] : color)), children: [
|
|
9012
|
+
assetUrl ? /* @__PURE__ */ jsx(GameIcon, { assetUrl, icon: "image", size: sizes.img, alt: label, className: "flex-shrink-0" }) : icon ? /* @__PURE__ */ jsx(Box, { as: "span", className: cn("flex-shrink-0", sizes.icon), children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }) : null,
|
|
9013
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", className: "text-muted-foreground", children: label }),
|
|
9014
|
+
/* @__PURE__ */ jsxs(Typography, { as: "span", className: cn("font-bold tabular-nums", color && (color in colorTokenClasses2 ? colorTokenClasses2[color] : color)), children: [
|
|
9010
9015
|
value,
|
|
9011
|
-
max != null && /* @__PURE__ */ jsxs("span",
|
|
9016
|
+
max != null && /* @__PURE__ */ jsxs(Typography, { as: "span", className: "text-muted-foreground", children: [
|
|
9012
9017
|
"/",
|
|
9013
9018
|
max
|
|
9014
9019
|
] })
|
|
@@ -9017,11 +9022,14 @@ function ResourceCounter({
|
|
|
9017
9022
|
}
|
|
9018
9023
|
);
|
|
9019
9024
|
}
|
|
9020
|
-
var colorTokenClasses2, DEFAULT_ASSET_URL4,
|
|
9025
|
+
var colorTokenClasses2, DEFAULT_ASSET_URL4, sizeMap6;
|
|
9021
9026
|
var init_ResourceCounter = __esm({
|
|
9022
9027
|
"components/game/2d/atoms/ResourceCounter.tsx"() {
|
|
9023
9028
|
init_cn();
|
|
9024
9029
|
init_Icon();
|
|
9030
|
+
init_Box();
|
|
9031
|
+
init_Typography();
|
|
9032
|
+
init_GameIcon();
|
|
9025
9033
|
colorTokenClasses2 = {
|
|
9026
9034
|
primary: "text-primary",
|
|
9027
9035
|
secondary: "text-secondary",
|
|
@@ -9035,7 +9043,7 @@ var init_ResourceCounter = __esm({
|
|
|
9035
9043
|
role: "ui",
|
|
9036
9044
|
category: "coin"
|
|
9037
9045
|
};
|
|
9038
|
-
|
|
9046
|
+
sizeMap6 = {
|
|
9039
9047
|
sm: { wrapper: "text-xs gap-1 px-1.5 py-0.5", icon: "text-sm", img: 16 },
|
|
9040
9048
|
md: { wrapper: "text-sm gap-1.5 px-2 py-1", icon: "text-base", img: 20 },
|
|
9041
9049
|
lg: { wrapper: "text-base gap-2 px-3 py-1.5", icon: "text-lg", img: 28 }
|
|
@@ -9060,9 +9068,9 @@ function ItemSlot({
|
|
|
9060
9068
|
const isClickable = onClick != null || action != null;
|
|
9061
9069
|
const px = assetSizeMap[size];
|
|
9062
9070
|
return /* @__PURE__ */ jsx(
|
|
9063
|
-
|
|
9071
|
+
Button,
|
|
9064
9072
|
{
|
|
9065
|
-
|
|
9073
|
+
variant: "ghost",
|
|
9066
9074
|
onClick: () => {
|
|
9067
9075
|
if (action) eventBus.emit(`UI:${action}`, {});
|
|
9068
9076
|
onClick?.();
|
|
@@ -9072,7 +9080,7 @@ function ItemSlot({
|
|
|
9072
9080
|
className: cn(
|
|
9073
9081
|
"relative flex items-center justify-center rounded-interactive border-2",
|
|
9074
9082
|
"bg-card/80 transition-all duration-150",
|
|
9075
|
-
|
|
9083
|
+
sizeMap7[size],
|
|
9076
9084
|
empty ? "border-border bg-card/50" : rarityBorderMap[rarity],
|
|
9077
9085
|
!empty && rarityGlowMap[rarity],
|
|
9078
9086
|
selected && "ring-2 ring-foreground ring-offset-1 ring-offset-background",
|
|
@@ -9081,21 +9089,12 @@ function ItemSlot({
|
|
|
9081
9089
|
!isClickable && "cursor-default",
|
|
9082
9090
|
className
|
|
9083
9091
|
),
|
|
9084
|
-
children: empty ? /* @__PURE__ */ jsx("span",
|
|
9085
|
-
assetUrl ? /* @__PURE__ */ jsx(
|
|
9086
|
-
"img",
|
|
9087
|
-
{
|
|
9088
|
-
src: assetUrl?.url,
|
|
9089
|
-
alt: label,
|
|
9090
|
-
width: px,
|
|
9091
|
-
height: px,
|
|
9092
|
-
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
9093
|
-
className: "flex-shrink-0"
|
|
9094
|
-
}
|
|
9095
|
-
) : icon ? /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }) : null,
|
|
9092
|
+
children: empty ? /* @__PURE__ */ jsx(Typography, { as: "span", className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9093
|
+
assetUrl ? /* @__PURE__ */ jsx(GameIcon, { assetUrl, icon: "image", size: px, alt: label, className: "flex-shrink-0" }) : icon ? /* @__PURE__ */ jsx(Box, { as: "span", className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }) : null,
|
|
9096
9094
|
quantity != null && quantity > 1 && /* @__PURE__ */ jsx(
|
|
9097
|
-
|
|
9095
|
+
Typography,
|
|
9098
9096
|
{
|
|
9097
|
+
as: "span",
|
|
9099
9098
|
className: cn(
|
|
9100
9099
|
"absolute -bottom-1 -right-1 flex items-center justify-center",
|
|
9101
9100
|
"min-w-[18px] h-[18px] rounded-full px-1",
|
|
@@ -9108,14 +9107,18 @@ function ItemSlot({
|
|
|
9108
9107
|
}
|
|
9109
9108
|
);
|
|
9110
9109
|
}
|
|
9111
|
-
var
|
|
9110
|
+
var sizeMap7, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL5, assetSizeMap;
|
|
9112
9111
|
var init_ItemSlot = __esm({
|
|
9113
9112
|
"components/game/2d/atoms/ItemSlot.tsx"() {
|
|
9114
9113
|
"use client";
|
|
9115
9114
|
init_cn();
|
|
9116
9115
|
init_Icon();
|
|
9117
9116
|
init_useEventBus();
|
|
9118
|
-
|
|
9117
|
+
init_Button();
|
|
9118
|
+
init_Box();
|
|
9119
|
+
init_Typography();
|
|
9120
|
+
init_GameIcon();
|
|
9121
|
+
sizeMap7 = {
|
|
9119
9122
|
sm: "w-10 h-10 text-lg",
|
|
9120
9123
|
md: "w-14 h-14 text-2xl",
|
|
9121
9124
|
lg: "w-18 h-18 text-3xl"
|
|
@@ -9156,9 +9159,9 @@ function TurnIndicator({
|
|
|
9156
9159
|
size = "md",
|
|
9157
9160
|
className
|
|
9158
9161
|
}) {
|
|
9159
|
-
const sizes =
|
|
9162
|
+
const sizes = sizeMap8[size];
|
|
9160
9163
|
return /* @__PURE__ */ jsxs(
|
|
9161
|
-
|
|
9164
|
+
Box,
|
|
9162
9165
|
{
|
|
9163
9166
|
className: cn(
|
|
9164
9167
|
"inline-flex items-center rounded-container",
|
|
@@ -9167,42 +9170,35 @@ function TurnIndicator({
|
|
|
9167
9170
|
className
|
|
9168
9171
|
),
|
|
9169
9172
|
children: [
|
|
9170
|
-
/* @__PURE__ */ jsxs("span",
|
|
9173
|
+
/* @__PURE__ */ jsxs(Typography, { as: "span", className: "font-bold tabular-nums", children: [
|
|
9171
9174
|
"Turn ",
|
|
9172
9175
|
currentTurn,
|
|
9173
|
-
maxTurns != null && /* @__PURE__ */ jsxs("span",
|
|
9176
|
+
maxTurns != null && /* @__PURE__ */ jsxs(Typography, { as: "span", className: "text-muted-foreground", children: [
|
|
9174
9177
|
"/",
|
|
9175
9178
|
maxTurns
|
|
9176
9179
|
] })
|
|
9177
9180
|
] }),
|
|
9178
9181
|
phase && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9179
|
-
/* @__PURE__ */ jsx("span",
|
|
9180
|
-
/* @__PURE__ */ jsx("span",
|
|
9182
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", className: "text-muted-foreground", children: "|" }),
|
|
9183
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", className: "text-muted-foreground", children: phase })
|
|
9181
9184
|
] }),
|
|
9182
9185
|
activeTeam && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9183
|
-
/* @__PURE__ */ jsx("span",
|
|
9184
|
-
assetUrl ? /* @__PURE__ */ jsx(
|
|
9185
|
-
|
|
9186
|
-
{
|
|
9187
|
-
src: assetUrl.url,
|
|
9188
|
-
alt: "",
|
|
9189
|
-
width: 12,
|
|
9190
|
-
height: 12,
|
|
9191
|
-
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
9192
|
-
className: "flex-shrink-0"
|
|
9193
|
-
}
|
|
9194
|
-
) : /* @__PURE__ */ jsx("span", { className: cn("rounded-full bg-success/20", sizes.dot) }),
|
|
9195
|
-
/* @__PURE__ */ jsx("span", { className: "text-success", children: activeTeam })
|
|
9186
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", className: "text-muted-foreground", children: "|" }),
|
|
9187
|
+
assetUrl ? /* @__PURE__ */ jsx(GameIcon, { assetUrl, icon: "image", size: 12, className: "flex-shrink-0" }) : /* @__PURE__ */ jsx(Box, { as: "span", className: cn("rounded-full bg-success/20", sizes.dot) }),
|
|
9188
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", className: "text-success", children: activeTeam })
|
|
9196
9189
|
] })
|
|
9197
9190
|
]
|
|
9198
9191
|
}
|
|
9199
9192
|
);
|
|
9200
9193
|
}
|
|
9201
|
-
var
|
|
9194
|
+
var sizeMap8, DEFAULT_ASSET_URL6;
|
|
9202
9195
|
var init_TurnIndicator = __esm({
|
|
9203
9196
|
"components/game/2d/atoms/TurnIndicator.tsx"() {
|
|
9204
9197
|
init_cn();
|
|
9205
|
-
|
|
9198
|
+
init_Box();
|
|
9199
|
+
init_Typography();
|
|
9200
|
+
init_GameIcon();
|
|
9201
|
+
sizeMap8 = {
|
|
9206
9202
|
sm: { wrapper: "text-xs gap-1.5 px-2 py-0.5", dot: "w-1.5 h-1.5" },
|
|
9207
9203
|
md: { wrapper: "text-sm gap-2 px-3 py-1", dot: "w-2 h-2" },
|
|
9208
9204
|
lg: { wrapper: "text-base gap-2.5 px-4 py-1.5", dot: "w-2.5 h-2.5" }
|
|
@@ -9234,10 +9230,10 @@ function ComboCounter({
|
|
|
9234
9230
|
size = "md",
|
|
9235
9231
|
className
|
|
9236
9232
|
}) {
|
|
9237
|
-
const sizes =
|
|
9233
|
+
const sizes = sizeMap9[size];
|
|
9238
9234
|
if (combo <= 0) return null;
|
|
9239
9235
|
return /* @__PURE__ */ jsxs(
|
|
9240
|
-
|
|
9236
|
+
Box,
|
|
9241
9237
|
{
|
|
9242
9238
|
className: cn(
|
|
9243
9239
|
"inline-flex flex-col items-center justify-center",
|
|
@@ -9247,24 +9243,14 @@ function ComboCounter({
|
|
|
9247
9243
|
className
|
|
9248
9244
|
),
|
|
9249
9245
|
children: [
|
|
9250
|
-
assetUrl && /* @__PURE__ */ jsx(
|
|
9251
|
-
|
|
9252
|
-
|
|
9253
|
-
|
|
9254
|
-
alt: "combo",
|
|
9255
|
-
width: 24,
|
|
9256
|
-
height: 24,
|
|
9257
|
-
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
9258
|
-
className: "flex-shrink-0 mb-0.5"
|
|
9259
|
-
}
|
|
9260
|
-
),
|
|
9261
|
-
/* @__PURE__ */ jsx("span", { className: cn("font-black tabular-nums leading-none", sizes.combo, getComboIntensity(combo)), children: combo }),
|
|
9262
|
-
/* @__PURE__ */ jsx("span", { className: cn("font-bold uppercase tracking-wider text-muted-foreground", sizes.label), children: "combo" }),
|
|
9263
|
-
multiplier != null && multiplier > 1 && /* @__PURE__ */ jsxs("span", { className: cn("font-bold text-warning tabular-nums", sizes.multiplier), children: [
|
|
9246
|
+
assetUrl && /* @__PURE__ */ jsx(GameIcon, { assetUrl, icon: "image", size: 24, className: "flex-shrink-0 mb-0.5" }),
|
|
9247
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", className: cn("font-black tabular-nums leading-none", sizes.combo, getComboIntensity(combo)), children: combo }),
|
|
9248
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", className: cn("font-bold uppercase tracking-wider text-muted-foreground", sizes.label), children: "combo" }),
|
|
9249
|
+
multiplier != null && multiplier > 1 && /* @__PURE__ */ jsxs(Typography, { as: "span", className: cn("font-bold text-warning tabular-nums", sizes.multiplier), children: [
|
|
9264
9250
|
"x",
|
|
9265
9251
|
multiplier.toFixed(1)
|
|
9266
9252
|
] }),
|
|
9267
|
-
streak != null && streak > 0 && /* @__PURE__ */ jsxs("span",
|
|
9253
|
+
streak != null && streak > 0 && /* @__PURE__ */ jsxs(Typography, { as: "span", className: cn("text-muted-foreground tabular-nums", sizes.label), children: [
|
|
9268
9254
|
streak,
|
|
9269
9255
|
" streak"
|
|
9270
9256
|
] })
|
|
@@ -9272,16 +9258,19 @@ function ComboCounter({
|
|
|
9272
9258
|
}
|
|
9273
9259
|
);
|
|
9274
9260
|
}
|
|
9275
|
-
var DEFAULT_ASSET_URL7,
|
|
9261
|
+
var DEFAULT_ASSET_URL7, sizeMap9;
|
|
9276
9262
|
var init_ComboCounter = __esm({
|
|
9277
9263
|
"components/game/2d/atoms/ComboCounter.tsx"() {
|
|
9278
9264
|
init_cn();
|
|
9265
|
+
init_Box();
|
|
9266
|
+
init_Typography();
|
|
9267
|
+
init_GameIcon();
|
|
9279
9268
|
DEFAULT_ASSET_URL7 = {
|
|
9280
9269
|
url: "https://almadar-kflow-assets.web.app/shared/effects/flash/flash00.png",
|
|
9281
9270
|
role: "effect",
|
|
9282
9271
|
category: "effect"
|
|
9283
9272
|
};
|
|
9284
|
-
|
|
9273
|
+
sizeMap9 = {
|
|
9285
9274
|
sm: { combo: "text-lg", label: "text-xs", multiplier: "text-xs" },
|
|
9286
9275
|
md: { combo: "text-2xl", label: "text-xs", multiplier: "text-sm" },
|
|
9287
9276
|
lg: { combo: "text-4xl", label: "text-sm", multiplier: "text-base" }
|
|
@@ -9298,54 +9287,48 @@ function WaypointMarker({
|
|
|
9298
9287
|
size = "md",
|
|
9299
9288
|
className
|
|
9300
9289
|
}) {
|
|
9301
|
-
const sizes =
|
|
9302
|
-
return /* @__PURE__ */ jsxs(
|
|
9303
|
-
/* @__PURE__ */ jsxs(
|
|
9290
|
+
const sizes = sizeMap10[size];
|
|
9291
|
+
return /* @__PURE__ */ jsxs(Box, { className: cn("flex flex-col items-center", className), children: [
|
|
9292
|
+
/* @__PURE__ */ jsxs(Box, { className: "relative flex items-center justify-center", children: [
|
|
9304
9293
|
active && /* @__PURE__ */ jsx(
|
|
9305
|
-
|
|
9294
|
+
Box,
|
|
9306
9295
|
{
|
|
9296
|
+
position: "absolute",
|
|
9307
9297
|
className: cn(
|
|
9308
|
-
"
|
|
9298
|
+
"rounded-full border-2 border-info animate-ping opacity-50",
|
|
9309
9299
|
sizes.ring
|
|
9310
9300
|
)
|
|
9311
9301
|
}
|
|
9312
9302
|
),
|
|
9313
9303
|
active && /* @__PURE__ */ jsx(
|
|
9314
|
-
|
|
9304
|
+
Box,
|
|
9315
9305
|
{
|
|
9306
|
+
position: "absolute",
|
|
9316
9307
|
className: cn(
|
|
9317
|
-
"
|
|
9308
|
+
"rounded-full border-2 border-info",
|
|
9318
9309
|
sizes.ring
|
|
9319
9310
|
)
|
|
9320
9311
|
}
|
|
9321
9312
|
),
|
|
9322
9313
|
/* @__PURE__ */ jsx(
|
|
9323
|
-
|
|
9314
|
+
Box,
|
|
9324
9315
|
{
|
|
9316
|
+
position: "relative",
|
|
9325
9317
|
className: cn(
|
|
9326
|
-
"
|
|
9318
|
+
"flex items-center justify-center rounded-full transition-all duration-200",
|
|
9327
9319
|
sizes.dot,
|
|
9328
9320
|
completed && "bg-success text-foreground",
|
|
9329
9321
|
active && !completed && "bg-info text-foreground",
|
|
9330
9322
|
!active && !completed && "bg-muted"
|
|
9331
9323
|
),
|
|
9332
|
-
children: completed ? checkIcon : assetUrl ? /* @__PURE__ */ jsx(
|
|
9333
|
-
"img",
|
|
9334
|
-
{
|
|
9335
|
-
src: assetUrl.url,
|
|
9336
|
-
alt: label,
|
|
9337
|
-
width: sizes.img,
|
|
9338
|
-
height: sizes.img,
|
|
9339
|
-
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
9340
|
-
className: "flex-shrink-0"
|
|
9341
|
-
}
|
|
9342
|
-
) : icon ? typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) : null
|
|
9324
|
+
children: completed ? checkIcon : assetUrl ? /* @__PURE__ */ jsx(GameIcon, { assetUrl, icon: "image", size: sizes.img, alt: label, className: "flex-shrink-0" }) : icon ? typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) : null
|
|
9343
9325
|
}
|
|
9344
9326
|
)
|
|
9345
9327
|
] }),
|
|
9346
9328
|
label && /* @__PURE__ */ jsx(
|
|
9347
|
-
|
|
9329
|
+
Typography,
|
|
9348
9330
|
{
|
|
9331
|
+
as: "span",
|
|
9349
9332
|
className: cn(
|
|
9350
9333
|
"text-center whitespace-nowrap",
|
|
9351
9334
|
sizes.label,
|
|
@@ -9356,17 +9339,20 @@ function WaypointMarker({
|
|
|
9356
9339
|
)
|
|
9357
9340
|
] });
|
|
9358
9341
|
}
|
|
9359
|
-
var DEFAULT_ASSET_URL8,
|
|
9342
|
+
var DEFAULT_ASSET_URL8, sizeMap10, checkIcon;
|
|
9360
9343
|
var init_WaypointMarker = __esm({
|
|
9361
9344
|
"components/game/2d/atoms/WaypointMarker.tsx"() {
|
|
9362
9345
|
init_cn();
|
|
9363
9346
|
init_Icon();
|
|
9347
|
+
init_Box();
|
|
9348
|
+
init_Typography();
|
|
9349
|
+
init_GameIcon();
|
|
9364
9350
|
DEFAULT_ASSET_URL8 = {
|
|
9365
9351
|
url: "https://almadar-kflow-assets.web.app/shared/world-map/battle_marker.png",
|
|
9366
9352
|
role: "ui",
|
|
9367
9353
|
category: "waypoint"
|
|
9368
9354
|
};
|
|
9369
|
-
|
|
9355
|
+
sizeMap10 = {
|
|
9370
9356
|
sm: { dot: "w-4 h-4", ring: "w-6 h-6", label: "text-xs mt-1", img: 12 },
|
|
9371
9357
|
md: { dot: "w-6 h-6", ring: "w-8 h-8", label: "text-sm mt-1.5", img: 18 },
|
|
9372
9358
|
lg: { dot: "w-8 h-8", ring: "w-10 h-10", label: "text-base mt-2", img: 24 }
|
|
@@ -9391,32 +9377,24 @@ function StatusEffect({
|
|
|
9391
9377
|
size = "md",
|
|
9392
9378
|
className
|
|
9393
9379
|
}) {
|
|
9394
|
-
const sizes =
|
|
9395
|
-
return /* @__PURE__ */ jsxs("
|
|
9380
|
+
const sizes = sizeMap11[size];
|
|
9381
|
+
return /* @__PURE__ */ jsxs(Box, { position: "relative", className: cn("inline-flex flex-col items-center", className), children: [
|
|
9396
9382
|
/* @__PURE__ */ jsxs(
|
|
9397
|
-
|
|
9383
|
+
Box,
|
|
9398
9384
|
{
|
|
9385
|
+
position: "relative",
|
|
9399
9386
|
className: cn(
|
|
9400
|
-
"
|
|
9387
|
+
"flex items-center justify-center rounded-interactive border-2",
|
|
9401
9388
|
sizes.container,
|
|
9402
9389
|
variantStyles7[variant]
|
|
9403
9390
|
),
|
|
9404
9391
|
title: label,
|
|
9405
9392
|
children: [
|
|
9406
|
-
/* @__PURE__ */ jsx("span",
|
|
9407
|
-
"img",
|
|
9408
|
-
{
|
|
9409
|
-
src: assetUrl.url,
|
|
9410
|
-
alt: label,
|
|
9411
|
-
width: sizes.img,
|
|
9412
|
-
height: sizes.img,
|
|
9413
|
-
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
9414
|
-
className: "flex-shrink-0"
|
|
9415
|
-
}
|
|
9416
|
-
) : icon != null && typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, size: "sm" }) : icon != null ? /* @__PURE__ */ jsx(Icon, { icon, size: "sm" }) : null }),
|
|
9393
|
+
/* @__PURE__ */ jsx(Box, { as: "span", className: cn("flex items-center justify-center", sizes.icon), children: assetUrl ? /* @__PURE__ */ jsx(GameIcon, { assetUrl, icon: "image", size: sizes.img, alt: label, className: "flex-shrink-0" }) : icon != null && typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, size: "sm" }) : icon != null ? /* @__PURE__ */ jsx(Icon, { icon, size: "sm" }) : null }),
|
|
9417
9394
|
duration !== void 0 && /* @__PURE__ */ jsx(
|
|
9418
|
-
|
|
9395
|
+
Typography,
|
|
9419
9396
|
{
|
|
9397
|
+
as: "span",
|
|
9420
9398
|
className: cn(
|
|
9421
9399
|
"absolute bottom-0 left-0 right-0 text-center font-mono font-bold text-foreground bg-background/60 leading-tight",
|
|
9422
9400
|
sizes.timer
|
|
@@ -9428,8 +9406,9 @@ function StatusEffect({
|
|
|
9428
9406
|
}
|
|
9429
9407
|
),
|
|
9430
9408
|
stacks !== void 0 && stacks > 1 && /* @__PURE__ */ jsx(
|
|
9431
|
-
|
|
9409
|
+
Typography,
|
|
9432
9410
|
{
|
|
9411
|
+
as: "span",
|
|
9433
9412
|
className: cn(
|
|
9434
9413
|
"absolute flex items-center justify-center rounded-full bg-card text-foreground font-bold leading-none",
|
|
9435
9414
|
sizes.badge
|
|
@@ -9437,20 +9416,23 @@ function StatusEffect({
|
|
|
9437
9416
|
children: stacks
|
|
9438
9417
|
}
|
|
9439
9418
|
),
|
|
9440
|
-
label && /* @__PURE__ */ jsx("span",
|
|
9419
|
+
label && /* @__PURE__ */ jsx(Typography, { as: "span", className: "text-xs text-muted-foreground mt-0.5 text-center whitespace-nowrap", children: label })
|
|
9441
9420
|
] });
|
|
9442
9421
|
}
|
|
9443
|
-
var DEFAULT_ASSET_URL9,
|
|
9422
|
+
var DEFAULT_ASSET_URL9, sizeMap11, variantStyles7;
|
|
9444
9423
|
var init_StatusEffect = __esm({
|
|
9445
9424
|
"components/game/2d/atoms/StatusEffect.tsx"() {
|
|
9446
9425
|
init_cn();
|
|
9447
9426
|
init_Icon();
|
|
9427
|
+
init_Box();
|
|
9428
|
+
init_Typography();
|
|
9429
|
+
init_GameIcon();
|
|
9448
9430
|
DEFAULT_ASSET_URL9 = {
|
|
9449
9431
|
url: "https://almadar-kflow-assets.web.app/shared/effects/particles/flame_01.png",
|
|
9450
9432
|
role: "ui",
|
|
9451
9433
|
category: "effect"
|
|
9452
9434
|
};
|
|
9453
|
-
|
|
9435
|
+
sizeMap11 = {
|
|
9454
9436
|
sm: { container: "w-8 h-8", icon: "text-sm", badge: "text-xs -top-1 -right-1 w-4 h-4", timer: "text-[9px]", img: 20 },
|
|
9455
9437
|
md: { container: "w-10 h-10", icon: "text-base", badge: "text-xs -top-1 -right-1 w-5 h-5", timer: "text-xs", img: 28 },
|
|
9456
9438
|
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", img: 36 }
|
|
@@ -9474,38 +9456,31 @@ function DamageNumber({
|
|
|
9474
9456
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9475
9457
|
/* @__PURE__ */ jsx("style", { children: floatKeyframes }),
|
|
9476
9458
|
/* @__PURE__ */ jsxs(
|
|
9477
|
-
|
|
9459
|
+
Typography,
|
|
9478
9460
|
{
|
|
9461
|
+
as: "span",
|
|
9479
9462
|
className: cn(
|
|
9480
9463
|
"inline-flex items-center gap-0.5 font-mono select-none pointer-events-none",
|
|
9481
|
-
|
|
9464
|
+
sizeMap12[size],
|
|
9482
9465
|
typeStyles[type],
|
|
9483
9466
|
className
|
|
9484
9467
|
),
|
|
9485
9468
|
style: { animation: "damageFloat 1s ease-out forwards" },
|
|
9486
9469
|
children: [
|
|
9487
|
-
assetUrl && /* @__PURE__ */ jsx(
|
|
9488
|
-
"img",
|
|
9489
|
-
{
|
|
9490
|
-
src: assetUrl.url,
|
|
9491
|
-
alt: "",
|
|
9492
|
-
width: 14,
|
|
9493
|
-
height: 14,
|
|
9494
|
-
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
9495
|
-
className: "flex-shrink-0"
|
|
9496
|
-
}
|
|
9497
|
-
),
|
|
9470
|
+
assetUrl && /* @__PURE__ */ jsx(GameIcon, { assetUrl, icon: "image", size: 14, className: "flex-shrink-0" }),
|
|
9498
9471
|
displayText
|
|
9499
9472
|
]
|
|
9500
9473
|
}
|
|
9501
9474
|
)
|
|
9502
9475
|
] });
|
|
9503
9476
|
}
|
|
9504
|
-
var
|
|
9477
|
+
var sizeMap12, typeStyles, floatKeyframes, DEFAULT_ASSET_URL10;
|
|
9505
9478
|
var init_DamageNumber = __esm({
|
|
9506
9479
|
"components/game/2d/atoms/DamageNumber.tsx"() {
|
|
9507
9480
|
init_cn();
|
|
9508
|
-
|
|
9481
|
+
init_Typography();
|
|
9482
|
+
init_GameIcon();
|
|
9483
|
+
sizeMap12 = {
|
|
9509
9484
|
sm: "text-sm",
|
|
9510
9485
|
md: "text-lg",
|
|
9511
9486
|
lg: "text-2xl"
|
|
@@ -9539,7 +9514,7 @@ function DialogueBubble({
|
|
|
9539
9514
|
className
|
|
9540
9515
|
}) {
|
|
9541
9516
|
return /* @__PURE__ */ jsxs(
|
|
9542
|
-
|
|
9517
|
+
Box,
|
|
9543
9518
|
{
|
|
9544
9519
|
className: cn(
|
|
9545
9520
|
"flex items-start gap-3 rounded-container bg-background/80 backdrop-blur-sm px-4 py-3 border border-border/10",
|
|
@@ -9547,17 +9522,10 @@ function DialogueBubble({
|
|
|
9547
9522
|
className
|
|
9548
9523
|
),
|
|
9549
9524
|
children: [
|
|
9550
|
-
portrait && /* @__PURE__ */ jsx(
|
|
9551
|
-
|
|
9552
|
-
{
|
|
9553
|
-
|
|
9554
|
-
alt: speaker ?? "speaker",
|
|
9555
|
-
className: "w-full h-full object-cover"
|
|
9556
|
-
}
|
|
9557
|
-
) }),
|
|
9558
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1 min-w-0", children: [
|
|
9559
|
-
speaker && /* @__PURE__ */ jsx("span", { className: "text-sm font-bold text-warning", children: speaker }),
|
|
9560
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm text-foreground leading-relaxed", children: text })
|
|
9525
|
+
portrait && /* @__PURE__ */ jsx(Box, { className: "flex-shrink-0 w-12 h-12 rounded-full overflow-hidden border-2 border-warning/60", children: /* @__PURE__ */ jsx(GameIcon, { assetUrl: portrait, icon: "image", size: 48, alt: speaker ?? "speaker", className: "w-full h-full object-cover" }) }),
|
|
9526
|
+
/* @__PURE__ */ jsxs(Box, { className: "flex flex-col gap-1 min-w-0", children: [
|
|
9527
|
+
speaker && /* @__PURE__ */ jsx(Typography, { as: "span", className: "text-sm font-bold text-warning", children: speaker }),
|
|
9528
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", className: "text-sm text-foreground leading-relaxed", children: text })
|
|
9561
9529
|
] })
|
|
9562
9530
|
]
|
|
9563
9531
|
}
|
|
@@ -9567,6 +9535,9 @@ var DEFAULT_PORTRAIT;
|
|
|
9567
9535
|
var init_DialogueBubble = __esm({
|
|
9568
9536
|
"components/game/2d/atoms/DialogueBubble.tsx"() {
|
|
9569
9537
|
init_cn();
|
|
9538
|
+
init_Box();
|
|
9539
|
+
init_Typography();
|
|
9540
|
+
init_GameIcon();
|
|
9570
9541
|
DEFAULT_PORTRAIT = {
|
|
9571
9542
|
url: "https://almadar-kflow-assets.web.app/shared/characters/archetypes/04_hero.png",
|
|
9572
9543
|
role: "effect",
|
|
@@ -9588,11 +9559,11 @@ function ChoiceButton({
|
|
|
9588
9559
|
}) {
|
|
9589
9560
|
const eventBus = useEventBus();
|
|
9590
9561
|
return /* @__PURE__ */ jsxs(
|
|
9591
|
-
|
|
9562
|
+
Button,
|
|
9592
9563
|
{
|
|
9593
|
-
|
|
9564
|
+
variant: "ghost",
|
|
9594
9565
|
disabled,
|
|
9595
|
-
onClick: (
|
|
9566
|
+
onClick: () => {
|
|
9596
9567
|
if (action) eventBus.emit(`UI:${action}`, {});
|
|
9597
9568
|
onClick?.();
|
|
9598
9569
|
},
|
|
@@ -9605,8 +9576,9 @@ function ChoiceButton({
|
|
|
9605
9576
|
),
|
|
9606
9577
|
children: [
|
|
9607
9578
|
index !== void 0 && /* @__PURE__ */ jsxs(
|
|
9608
|
-
|
|
9579
|
+
Typography,
|
|
9609
9580
|
{
|
|
9581
|
+
as: "span",
|
|
9610
9582
|
className: cn(
|
|
9611
9583
|
"flex-shrink-0 font-mono font-bold text-sm",
|
|
9612
9584
|
selected ? "text-accent" : "text-muted-foreground"
|
|
@@ -9617,24 +9589,14 @@ function ChoiceButton({
|
|
|
9617
9589
|
]
|
|
9618
9590
|
}
|
|
9619
9591
|
),
|
|
9620
|
-
assetUrl ? /* @__PURE__ */ jsx(
|
|
9621
|
-
"img",
|
|
9622
|
-
{
|
|
9623
|
-
src: assetUrl.url,
|
|
9624
|
-
alt: "",
|
|
9625
|
-
width: 16,
|
|
9626
|
-
height: 16,
|
|
9627
|
-
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
9628
|
-
className: "flex-shrink-0"
|
|
9629
|
-
}
|
|
9630
|
-
) : icon ? /* @__PURE__ */ jsx("span", { className: "flex-shrink-0 text-sm", children: typeof icon === "string" ? (() => {
|
|
9592
|
+
assetUrl ? /* @__PURE__ */ jsx(GameIcon, { assetUrl, icon: "image", size: 16, className: "flex-shrink-0" }) : icon ? /* @__PURE__ */ jsx(Box, { as: "span", className: "flex-shrink-0 text-sm", children: typeof icon === "string" ? (() => {
|
|
9631
9593
|
const I = resolveIcon(icon);
|
|
9632
9594
|
return I ? /* @__PURE__ */ jsx(I, { className: "w-4 h-4" }) : null;
|
|
9633
9595
|
})() : /* @__PURE__ */ (() => {
|
|
9634
9596
|
const I = icon;
|
|
9635
9597
|
return /* @__PURE__ */ jsx(I, { className: "w-4 h-4" });
|
|
9636
9598
|
})() }) : null,
|
|
9637
|
-
/* @__PURE__ */ jsx("span",
|
|
9599
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", className: "text-sm leading-snug", children: text })
|
|
9638
9600
|
]
|
|
9639
9601
|
}
|
|
9640
9602
|
);
|
|
@@ -9644,6 +9606,10 @@ var init_ChoiceButton = __esm({
|
|
|
9644
9606
|
init_cn();
|
|
9645
9607
|
init_Icon();
|
|
9646
9608
|
init_useEventBus();
|
|
9609
|
+
init_Button();
|
|
9610
|
+
init_Box();
|
|
9611
|
+
init_Typography();
|
|
9612
|
+
init_GameIcon();
|
|
9647
9613
|
ChoiceButton.displayName = "ChoiceButton";
|
|
9648
9614
|
}
|
|
9649
9615
|
});
|
|
@@ -9661,16 +9627,16 @@ function ActionButton({
|
|
|
9661
9627
|
className
|
|
9662
9628
|
}) {
|
|
9663
9629
|
const eventBus = useEventBus();
|
|
9664
|
-
const sizes =
|
|
9630
|
+
const sizes = sizeMap13[size];
|
|
9665
9631
|
const onCooldown = cooldown > 0;
|
|
9666
9632
|
const isDisabled = disabled || onCooldown;
|
|
9667
9633
|
const cooldownDeg = Math.round(cooldown * 360);
|
|
9668
9634
|
return /* @__PURE__ */ jsxs(
|
|
9669
|
-
|
|
9635
|
+
Button,
|
|
9670
9636
|
{
|
|
9671
|
-
|
|
9637
|
+
variant: variant === "danger" ? "danger" : variant === "secondary" ? "secondary" : "primary",
|
|
9672
9638
|
disabled: isDisabled,
|
|
9673
|
-
onClick: (
|
|
9639
|
+
onClick: () => {
|
|
9674
9640
|
if (action) eventBus.emit(`UI:${action}`, {});
|
|
9675
9641
|
onClick?.();
|
|
9676
9642
|
},
|
|
@@ -9683,9 +9649,10 @@ function ActionButton({
|
|
|
9683
9649
|
),
|
|
9684
9650
|
children: [
|
|
9685
9651
|
onCooldown && /* @__PURE__ */ jsx(
|
|
9686
|
-
|
|
9652
|
+
Box,
|
|
9687
9653
|
{
|
|
9688
|
-
|
|
9654
|
+
position: "absolute",
|
|
9655
|
+
className: "inset-0 bg-foreground/40 pointer-events-none",
|
|
9689
9656
|
style: {
|
|
9690
9657
|
clipPath: `conic-gradient(from 0deg, transparent ${360 - cooldownDeg}deg, black ${360 - cooldownDeg}deg)`,
|
|
9691
9658
|
WebkitClipPath: `conic-gradient(from 0deg, transparent ${360 - cooldownDeg}deg, black ${360 - cooldownDeg}deg)`,
|
|
@@ -9693,27 +9660,18 @@ function ActionButton({
|
|
|
9693
9660
|
}
|
|
9694
9661
|
}
|
|
9695
9662
|
),
|
|
9696
|
-
assetUrl ? /* @__PURE__ */ jsx(
|
|
9697
|
-
"img",
|
|
9698
|
-
{
|
|
9699
|
-
src: assetUrl.url,
|
|
9700
|
-
alt: "",
|
|
9701
|
-
width: 16,
|
|
9702
|
-
height: 16,
|
|
9703
|
-
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
9704
|
-
className: cn("flex-shrink-0", sizes.icon)
|
|
9705
|
-
}
|
|
9706
|
-
) : icon ? /* @__PURE__ */ jsx("span", { className: cn("flex-shrink-0", sizes.icon), children: typeof icon === "string" ? (() => {
|
|
9663
|
+
assetUrl ? /* @__PURE__ */ jsx(GameIcon, { assetUrl, icon: "image", size: 16, className: cn("flex-shrink-0", sizes.icon) }) : icon ? /* @__PURE__ */ jsx(Box, { as: "span", className: cn("flex-shrink-0", sizes.icon), children: typeof icon === "string" ? (() => {
|
|
9707
9664
|
const I = resolveIcon(icon);
|
|
9708
9665
|
return I ? /* @__PURE__ */ jsx(I, { className: "w-4 h-4" }) : null;
|
|
9709
9666
|
})() : /* @__PURE__ */ (() => {
|
|
9710
9667
|
const I = icon;
|
|
9711
9668
|
return /* @__PURE__ */ jsx(I, { className: "w-4 h-4" });
|
|
9712
9669
|
})() }) : null,
|
|
9713
|
-
/* @__PURE__ */ jsx("span",
|
|
9670
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", className: "relative z-10", children: label }),
|
|
9714
9671
|
hotkey && /* @__PURE__ */ jsx(
|
|
9715
|
-
|
|
9672
|
+
Typography,
|
|
9716
9673
|
{
|
|
9674
|
+
as: "span",
|
|
9717
9675
|
className: cn(
|
|
9718
9676
|
"absolute top-0.5 right-0.5 bg-foreground/30 text-primary-foreground rounded font-mono leading-tight",
|
|
9719
9677
|
sizes.hotkey
|
|
@@ -9725,13 +9683,17 @@ function ActionButton({
|
|
|
9725
9683
|
}
|
|
9726
9684
|
);
|
|
9727
9685
|
}
|
|
9728
|
-
var
|
|
9686
|
+
var sizeMap13, variantStyles8, DEFAULT_ASSET_URL11;
|
|
9729
9687
|
var init_ActionButton = __esm({
|
|
9730
9688
|
"components/game/2d/atoms/ActionButton.tsx"() {
|
|
9731
9689
|
init_cn();
|
|
9732
9690
|
init_Icon();
|
|
9733
9691
|
init_useEventBus();
|
|
9734
|
-
|
|
9692
|
+
init_Button();
|
|
9693
|
+
init_Box();
|
|
9694
|
+
init_Typography();
|
|
9695
|
+
init_GameIcon();
|
|
9696
|
+
sizeMap13 = {
|
|
9735
9697
|
sm: { button: "h-button-sm px-3 text-xs", hotkey: "text-[9px] px-1", icon: "text-xs" },
|
|
9736
9698
|
md: { button: "h-button-md px-4 text-sm", hotkey: "text-xs px-1.5", icon: "text-sm" },
|
|
9737
9699
|
lg: { button: "h-button-lg px-5 text-base", hotkey: "text-xs px-2", icon: "text-base" }
|
|
@@ -9833,10 +9795,12 @@ function MiniMap({
|
|
|
9833
9795
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9834
9796
|
/* @__PURE__ */ jsx("style", { children: `@keyframes minimap-blink{0%,49%{opacity:1}50%,100%{opacity:0}}` }),
|
|
9835
9797
|
/* @__PURE__ */ jsxs(
|
|
9836
|
-
|
|
9798
|
+
Box,
|
|
9837
9799
|
{
|
|
9800
|
+
position: "relative",
|
|
9801
|
+
display: "inline-block",
|
|
9838
9802
|
className: cn(
|
|
9839
|
-
"
|
|
9803
|
+
"border border-border/20 rounded-container",
|
|
9840
9804
|
className
|
|
9841
9805
|
),
|
|
9842
9806
|
children: [
|
|
@@ -9851,10 +9815,10 @@ function MiniMap({
|
|
|
9851
9815
|
}
|
|
9852
9816
|
),
|
|
9853
9817
|
playerLeft !== null && playerTop !== null && /* @__PURE__ */ jsx(
|
|
9854
|
-
|
|
9818
|
+
Box,
|
|
9855
9819
|
{
|
|
9820
|
+
position: "absolute",
|
|
9856
9821
|
style: {
|
|
9857
|
-
position: "absolute",
|
|
9858
9822
|
left: playerLeft,
|
|
9859
9823
|
top: playerTop,
|
|
9860
9824
|
width: 3,
|
|
@@ -9875,6 +9839,7 @@ var init_MiniMap = __esm({
|
|
|
9875
9839
|
"components/game/2d/atoms/MiniMap.tsx"() {
|
|
9876
9840
|
"use client";
|
|
9877
9841
|
init_cn();
|
|
9842
|
+
init_Box();
|
|
9878
9843
|
DEFAULT_TILES = [
|
|
9879
9844
|
{ x: 10, y: 10, color: "#4ade80" },
|
|
9880
9845
|
{ x: 20, y: 15, color: "#4ade80" },
|
|
@@ -9892,38 +9857,6 @@ var init_MiniMap = __esm({
|
|
|
9892
9857
|
MiniMap.displayName = "MiniMap";
|
|
9893
9858
|
}
|
|
9894
9859
|
});
|
|
9895
|
-
function GameIcon({ assetUrl, icon, size = "md", alt, className }) {
|
|
9896
|
-
const px = typeof size === "number" ? size : sizeMap13[size];
|
|
9897
|
-
if (assetUrl?.url) {
|
|
9898
|
-
return /* @__PURE__ */ jsx(
|
|
9899
|
-
"img",
|
|
9900
|
-
{
|
|
9901
|
-
src: assetUrl.url,
|
|
9902
|
-
alt: alt ?? assetUrl.category ?? "",
|
|
9903
|
-
width: px,
|
|
9904
|
-
height: px,
|
|
9905
|
-
style: { imageRendering: "pixelated", objectFit: "contain", width: px, height: px },
|
|
9906
|
-
className: cn("flex-shrink-0", className)
|
|
9907
|
-
}
|
|
9908
|
-
);
|
|
9909
|
-
}
|
|
9910
|
-
const I = typeof icon === "string" ? resolveIcon(icon) : icon;
|
|
9911
|
-
return /* @__PURE__ */ jsx(I, { width: px, height: px, className: cn("flex-shrink-0", className) });
|
|
9912
|
-
}
|
|
9913
|
-
var sizeMap13;
|
|
9914
|
-
var init_GameIcon = __esm({
|
|
9915
|
-
"components/game/2d/atoms/GameIcon.tsx"() {
|
|
9916
|
-
"use client";
|
|
9917
|
-
init_cn();
|
|
9918
|
-
init_Icon();
|
|
9919
|
-
sizeMap13 = {
|
|
9920
|
-
sm: 16,
|
|
9921
|
-
md: 24,
|
|
9922
|
-
lg: 32
|
|
9923
|
-
};
|
|
9924
|
-
GameIcon.displayName = "GameIcon";
|
|
9925
|
-
}
|
|
9926
|
-
});
|
|
9927
9860
|
function ControlGrid({
|
|
9928
9861
|
kind,
|
|
9929
9862
|
buttons = DEFAULT_BUTTONS,
|
|
@@ -9984,22 +9917,22 @@ function ControlGrid({
|
|
|
9984
9917
|
},
|
|
9985
9918
|
d
|
|
9986
9919
|
);
|
|
9987
|
-
return /* @__PURE__ */ jsxs(
|
|
9988
|
-
/* @__PURE__ */ jsx(
|
|
9920
|
+
return /* @__PURE__ */ jsxs(Box, { className: cn("inline-grid grid-cols-3", ds.gap, ds.container, className), children: [
|
|
9921
|
+
/* @__PURE__ */ jsx(Box, {}),
|
|
9989
9922
|
dir("up"),
|
|
9990
|
-
/* @__PURE__ */ jsx(
|
|
9923
|
+
/* @__PURE__ */ jsx(Box, {}),
|
|
9991
9924
|
dir("left"),
|
|
9992
|
-
/* @__PURE__ */ jsx(
|
|
9925
|
+
/* @__PURE__ */ jsx(Box, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx(Box, { className: "w-6 h-6 rounded-interactive bg-muted border-2 border-muted-foreground" }) }),
|
|
9993
9926
|
dir("right"),
|
|
9994
|
-
/* @__PURE__ */ jsx(
|
|
9927
|
+
/* @__PURE__ */ jsx(Box, {}),
|
|
9995
9928
|
dir("down"),
|
|
9996
|
-
/* @__PURE__ */ jsx(
|
|
9929
|
+
/* @__PURE__ */ jsx(Box, {})
|
|
9997
9930
|
] });
|
|
9998
9931
|
}
|
|
9999
9932
|
if (layout === "diamond" && buttons.length === 4) {
|
|
10000
9933
|
const [top, right, bottom, left] = buttons;
|
|
10001
|
-
return /* @__PURE__ */ jsxs(
|
|
10002
|
-
/* @__PURE__ */ jsx(
|
|
9934
|
+
return /* @__PURE__ */ jsxs(Box, { className: cn(layoutClass.diamond, className), children: [
|
|
9935
|
+
/* @__PURE__ */ jsx(Box, {}),
|
|
10003
9936
|
/* @__PURE__ */ jsx(
|
|
10004
9937
|
ControlButton,
|
|
10005
9938
|
{
|
|
@@ -10014,7 +9947,7 @@ function ControlGrid({
|
|
|
10014
9947
|
disabled
|
|
10015
9948
|
}
|
|
10016
9949
|
),
|
|
10017
|
-
/* @__PURE__ */ jsx(
|
|
9950
|
+
/* @__PURE__ */ jsx(Box, {}),
|
|
10018
9951
|
/* @__PURE__ */ jsx(
|
|
10019
9952
|
ControlButton,
|
|
10020
9953
|
{
|
|
@@ -10029,7 +9962,7 @@ function ControlGrid({
|
|
|
10029
9962
|
disabled
|
|
10030
9963
|
}
|
|
10031
9964
|
),
|
|
10032
|
-
/* @__PURE__ */ jsx(
|
|
9965
|
+
/* @__PURE__ */ jsx(Box, {}),
|
|
10033
9966
|
/* @__PURE__ */ jsx(
|
|
10034
9967
|
ControlButton,
|
|
10035
9968
|
{
|
|
@@ -10044,7 +9977,7 @@ function ControlGrid({
|
|
|
10044
9977
|
disabled
|
|
10045
9978
|
}
|
|
10046
9979
|
),
|
|
10047
|
-
/* @__PURE__ */ jsx(
|
|
9980
|
+
/* @__PURE__ */ jsx(Box, {}),
|
|
10048
9981
|
/* @__PURE__ */ jsx(
|
|
10049
9982
|
ControlButton,
|
|
10050
9983
|
{
|
|
@@ -10059,10 +9992,10 @@ function ControlGrid({
|
|
|
10059
9992
|
disabled
|
|
10060
9993
|
}
|
|
10061
9994
|
),
|
|
10062
|
-
/* @__PURE__ */ jsx(
|
|
9995
|
+
/* @__PURE__ */ jsx(Box, {})
|
|
10063
9996
|
] });
|
|
10064
9997
|
}
|
|
10065
|
-
return /* @__PURE__ */ jsx(
|
|
9998
|
+
return /* @__PURE__ */ jsx(Box, { className: cn(layoutClass[layout], className), children: buttons.map((button) => /* @__PURE__ */ jsx(
|
|
10066
9999
|
ControlButton,
|
|
10067
10000
|
{
|
|
10068
10001
|
icon: button.icon,
|
|
@@ -10084,6 +10017,7 @@ var init_ControlGrid = __esm({
|
|
|
10084
10017
|
"use client";
|
|
10085
10018
|
init_cn();
|
|
10086
10019
|
init_useEventBus();
|
|
10020
|
+
init_Box();
|
|
10087
10021
|
init_ControlButton();
|
|
10088
10022
|
sizeKey = { sm: "sm", md: "md", lg: "lg" };
|
|
10089
10023
|
layoutClass = {
|
|
@@ -10128,7 +10062,7 @@ function StatBadge({
|
|
|
10128
10062
|
const numValue = typeof value === "number" ? value : parseInt(String(value), 10) || 0;
|
|
10129
10063
|
const resolvedAsset = iconUrl ?? assetUrl;
|
|
10130
10064
|
return /* @__PURE__ */ jsxs(
|
|
10131
|
-
|
|
10065
|
+
Box,
|
|
10132
10066
|
{
|
|
10133
10067
|
className: cn(
|
|
10134
10068
|
"inline-flex items-center gap-2 rounded-container border backdrop-blur-sm",
|
|
@@ -10137,18 +10071,8 @@ function StatBadge({
|
|
|
10137
10071
|
className
|
|
10138
10072
|
),
|
|
10139
10073
|
children: [
|
|
10140
|
-
resolvedAsset ? /* @__PURE__ */ jsx(
|
|
10141
|
-
|
|
10142
|
-
{
|
|
10143
|
-
src: resolvedAsset.url,
|
|
10144
|
-
alt: "",
|
|
10145
|
-
width: 16,
|
|
10146
|
-
height: 16,
|
|
10147
|
-
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
10148
|
-
className: "flex-shrink-0"
|
|
10149
|
-
}
|
|
10150
|
-
) : icon ? /* @__PURE__ */ jsx("span", { className: "flex-shrink-0 text-lg", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, className: "w-4 h-4" }) : /* @__PURE__ */ jsx(Icon, { icon, className: "w-4 h-4" }) }) : null,
|
|
10151
|
-
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground font-medium", children: label }),
|
|
10074
|
+
resolvedAsset ? /* @__PURE__ */ jsx(GameIcon, { assetUrl: resolvedAsset, icon: "image", size: 16, className: "flex-shrink-0" }) : icon ? /* @__PURE__ */ jsx(Box, { as: "span", className: "flex-shrink-0 text-lg", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, className: "w-4 h-4" }) : /* @__PURE__ */ jsx(Icon, { icon, className: "w-4 h-4" }) }) : null,
|
|
10075
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", className: "text-muted-foreground font-medium", children: label }),
|
|
10152
10076
|
format === "hearts" && max && /* @__PURE__ */ jsx(
|
|
10153
10077
|
HealthBar,
|
|
10154
10078
|
{
|
|
@@ -10174,7 +10098,7 @@ function StatBadge({
|
|
|
10174
10098
|
size: size === "lg" ? "md" : "sm"
|
|
10175
10099
|
}
|
|
10176
10100
|
),
|
|
10177
|
-
format === "text" && /* @__PURE__ */ jsx("span",
|
|
10101
|
+
format === "text" && /* @__PURE__ */ jsx(Typography, { as: "span", className: "font-bold text-foreground", children: value })
|
|
10178
10102
|
]
|
|
10179
10103
|
}
|
|
10180
10104
|
);
|
|
@@ -10184,6 +10108,9 @@ var init_StatBadge = __esm({
|
|
|
10184
10108
|
"components/game/2d/molecules/StatBadge.tsx"() {
|
|
10185
10109
|
init_cn();
|
|
10186
10110
|
init_Icon();
|
|
10111
|
+
init_Box();
|
|
10112
|
+
init_Typography();
|
|
10113
|
+
init_GameIcon();
|
|
10187
10114
|
init_HealthBar();
|
|
10188
10115
|
init_ScoreDisplay();
|
|
10189
10116
|
sizeMap14 = {
|
|
@@ -10361,9 +10288,9 @@ function GameHud({
|
|
|
10361
10288
|
if (position === "corners") {
|
|
10362
10289
|
const leftStats = stats.slice(0, Math.ceil(stats.length / 2));
|
|
10363
10290
|
const rightStats = stats.slice(Math.ceil(stats.length / 2));
|
|
10364
|
-
return /* @__PURE__ */ jsxs(
|
|
10365
|
-
/* @__PURE__ */ jsx(
|
|
10366
|
-
/* @__PURE__ */ jsx(
|
|
10291
|
+
return /* @__PURE__ */ jsxs(Box, { position: "relative", className: cn(positionMap[position], className), children: [
|
|
10292
|
+
/* @__PURE__ */ jsx(Box, { position: "absolute", className: "top-4 left-4 flex flex-col gap-2 pointer-events-auto", children: leftStats.map((stat, i) => /* @__PURE__ */ jsx(StatBadge, { ...stat, size }, i)) }),
|
|
10293
|
+
/* @__PURE__ */ jsx(Box, { position: "absolute", className: "top-4 right-4 flex flex-col gap-2 items-end pointer-events-auto", children: rightStats.map((stat, i) => /* @__PURE__ */ jsx(StatBadge, { ...stat, size }, i)) })
|
|
10367
10294
|
] });
|
|
10368
10295
|
}
|
|
10369
10296
|
if (position === "top" || position === "bottom") {
|
|
@@ -10372,7 +10299,7 @@ function GameHud({
|
|
|
10372
10299
|
const rightStats = stats.slice(mid);
|
|
10373
10300
|
const isTop = position === "top";
|
|
10374
10301
|
return /* @__PURE__ */ jsxs(
|
|
10375
|
-
|
|
10302
|
+
Box,
|
|
10376
10303
|
{
|
|
10377
10304
|
className: cn(
|
|
10378
10305
|
"flex items-center justify-between w-full",
|
|
@@ -10382,17 +10309,18 @@ function GameHud({
|
|
|
10382
10309
|
className
|
|
10383
10310
|
),
|
|
10384
10311
|
children: [
|
|
10385
|
-
/* @__PURE__ */ jsx(
|
|
10386
|
-
rightStats.length > 0 && /* @__PURE__ */ jsx(
|
|
10312
|
+
/* @__PURE__ */ jsx(Box, { className: "flex items-center gap-3 flex-shrink-0", children: leftStats.map((stat, i) => /* @__PURE__ */ jsx(StatBadge, { ...stat, size }, i)) }),
|
|
10313
|
+
rightStats.length > 0 && /* @__PURE__ */ jsx(Box, { className: "flex items-center gap-3 flex-shrink-0", children: rightStats.map((stat, i) => /* @__PURE__ */ jsx(StatBadge, { ...stat, size }, i)) })
|
|
10387
10314
|
]
|
|
10388
10315
|
}
|
|
10389
10316
|
);
|
|
10390
10317
|
}
|
|
10391
10318
|
return /* @__PURE__ */ jsx(
|
|
10392
|
-
|
|
10319
|
+
Box,
|
|
10393
10320
|
{
|
|
10321
|
+
position: "relative",
|
|
10394
10322
|
className: cn(
|
|
10395
|
-
"
|
|
10323
|
+
"z-10 flex items-center gap-4 px-4 py-2",
|
|
10396
10324
|
transparent ? "bg-black/30 backdrop-blur-sm" : "bg-surface/90 backdrop-blur-sm",
|
|
10397
10325
|
className
|
|
10398
10326
|
),
|
|
@@ -10404,6 +10332,7 @@ var positionMap, DEFAULT_HUD_STATS;
|
|
|
10404
10332
|
var init_GameHud = __esm({
|
|
10405
10333
|
"components/game/2d/molecules/GameHud.tsx"() {
|
|
10406
10334
|
init_cn();
|
|
10335
|
+
init_Box();
|
|
10407
10336
|
init_StatBadge();
|
|
10408
10337
|
positionMap = {
|
|
10409
10338
|
corners: "inset-0 pointer-events-none"
|
|
@@ -10444,7 +10373,7 @@ function GameMenu({
|
|
|
10444
10373
|
[eventBus, onSelect]
|
|
10445
10374
|
);
|
|
10446
10375
|
return /* @__PURE__ */ jsxs(
|
|
10447
|
-
|
|
10376
|
+
Box,
|
|
10448
10377
|
{
|
|
10449
10378
|
className: cn(
|
|
10450
10379
|
"min-h-screen w-full flex flex-col items-center justify-center p-8",
|
|
@@ -10454,18 +10383,12 @@ function GameMenu({
|
|
|
10454
10383
|
background: background ?? "linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f0e17 100%)"
|
|
10455
10384
|
},
|
|
10456
10385
|
children: [
|
|
10457
|
-
/* @__PURE__ */ jsxs(
|
|
10458
|
-
logo && /* @__PURE__ */ jsx(
|
|
10459
|
-
"img",
|
|
10460
|
-
{
|
|
10461
|
-
src: logo.url,
|
|
10462
|
-
alt: title,
|
|
10463
|
-
className: "h-24 w-auto mx-auto mb-6 drop-shadow-2xl"
|
|
10464
|
-
}
|
|
10465
|
-
),
|
|
10386
|
+
/* @__PURE__ */ jsxs(Box, { className: "text-center mb-12 animate-fade-in", children: [
|
|
10387
|
+
logo && /* @__PURE__ */ jsx(GameIcon, { assetUrl: logo, icon: "image", size: 96, alt: title, className: "h-24 w-auto mx-auto mb-6 drop-shadow-2xl" }),
|
|
10466
10388
|
/* @__PURE__ */ jsx(
|
|
10467
|
-
|
|
10389
|
+
Typography,
|
|
10468
10390
|
{
|
|
10391
|
+
variant: "h1",
|
|
10469
10392
|
className: "text-5xl md:text-7xl font-bold text-[var(--color-foreground)] tracking-tight",
|
|
10470
10393
|
style: {
|
|
10471
10394
|
textShadow: "0 4px 12px rgba(0,0,0,0.5)"
|
|
@@ -10473,9 +10396,9 @@ function GameMenu({
|
|
|
10473
10396
|
children: title
|
|
10474
10397
|
}
|
|
10475
10398
|
),
|
|
10476
|
-
subtitle && /* @__PURE__ */ jsx("
|
|
10399
|
+
subtitle && /* @__PURE__ */ jsx(Typography, { variant: "body", className: "mt-2 text-lg text-muted-foreground tracking-widest uppercase", children: subtitle })
|
|
10477
10400
|
] }),
|
|
10478
|
-
/* @__PURE__ */ jsx(
|
|
10401
|
+
/* @__PURE__ */ jsx(Box, { className: "flex flex-col gap-4 w-full max-w-md", children: resolvedOptions.map((option, index) => /* @__PURE__ */ jsx(
|
|
10479
10402
|
ChoiceButton,
|
|
10480
10403
|
{
|
|
10481
10404
|
text: option.label,
|
|
@@ -10486,9 +10409,9 @@ function GameMenu({
|
|
|
10486
10409
|
},
|
|
10487
10410
|
index
|
|
10488
10411
|
)) }),
|
|
10489
|
-
/* @__PURE__ */ jsxs(
|
|
10490
|
-
/* @__PURE__ */ jsx(
|
|
10491
|
-
/* @__PURE__ */ jsx(
|
|
10412
|
+
/* @__PURE__ */ jsxs(Box, { position: "absolute", className: "inset-0 pointer-events-none overflow-hidden", children: [
|
|
10413
|
+
/* @__PURE__ */ jsx(Box, { position: "absolute", className: "top-1/4 left-1/4 w-64 h-64 bg-info/10 rounded-container blur-3xl" }),
|
|
10414
|
+
/* @__PURE__ */ jsx(Box, { position: "absolute", className: "bottom-1/4 right-1/4 w-96 h-96 bg-accent/10 rounded-container blur-3xl" })
|
|
10492
10415
|
] })
|
|
10493
10416
|
]
|
|
10494
10417
|
}
|
|
@@ -10500,6 +10423,9 @@ var init_GameMenu = __esm({
|
|
|
10500
10423
|
"use client";
|
|
10501
10424
|
init_cn();
|
|
10502
10425
|
init_useEventBus();
|
|
10426
|
+
init_Box();
|
|
10427
|
+
init_Typography();
|
|
10428
|
+
init_GameIcon();
|
|
10503
10429
|
init_ChoiceButton();
|
|
10504
10430
|
DEFAULT_MENU_OPTIONS = [
|
|
10505
10431
|
{ label: "New Game", event: "NEW_GAME", variant: "primary" },
|
|
@@ -11919,10 +11845,11 @@ function Canvas2D({
|
|
|
11919
11845
|
}
|
|
11920
11846
|
}
|
|
11921
11847
|
),
|
|
11922
|
-
process.env.NODE_ENV !== "production" && /* @__PURE__ */ jsxs(
|
|
11848
|
+
process.env.NODE_ENV !== "production" && /* @__PURE__ */ jsxs(Box, { "data-game-actions": "", className: "sr-only", "aria-hidden": "true", children: [
|
|
11923
11849
|
tileClickEvent && /* @__PURE__ */ jsx(
|
|
11924
|
-
|
|
11850
|
+
Button,
|
|
11925
11851
|
{
|
|
11852
|
+
variant: "ghost",
|
|
11926
11853
|
"data-event": tileClickEvent,
|
|
11927
11854
|
"data-x": "0",
|
|
11928
11855
|
"data-y": "0",
|
|
@@ -11931,8 +11858,9 @@ function Canvas2D({
|
|
|
11931
11858
|
}
|
|
11932
11859
|
),
|
|
11933
11860
|
unitClickEvent && units && units.length > 0 && /* @__PURE__ */ jsx(
|
|
11934
|
-
|
|
11861
|
+
Button,
|
|
11935
11862
|
{
|
|
11863
|
+
variant: "ghost",
|
|
11936
11864
|
"data-event": unitClickEvent,
|
|
11937
11865
|
"data-unit-id": units[0].id,
|
|
11938
11866
|
onClick: () => eventBus.emit(`UI:${unitClickEvent}`, { unitId: units[0].id }),
|
|
@@ -11941,15 +11869,17 @@ function Canvas2D({
|
|
|
11941
11869
|
)
|
|
11942
11870
|
] }),
|
|
11943
11871
|
unitOverlays.map(({ unit, screenX, screenY }) => /* @__PURE__ */ jsxs(
|
|
11944
|
-
|
|
11872
|
+
Box,
|
|
11945
11873
|
{
|
|
11946
|
-
|
|
11874
|
+
position: "absolute",
|
|
11875
|
+
className: "pointer-events-none",
|
|
11947
11876
|
style: { left: Math.round(screenX), top: Math.round(screenY), transform: "translate(-50%, 0)", zIndex: 5 },
|
|
11948
11877
|
children: [
|
|
11949
11878
|
unit.name && /* @__PURE__ */ jsx(
|
|
11950
|
-
|
|
11879
|
+
Typography,
|
|
11951
11880
|
{
|
|
11952
|
-
|
|
11881
|
+
as: "span",
|
|
11882
|
+
className: "text-white text-xs font-bold px-1.5 py-0.5 rounded mb-0.5 whitespace-nowrap block",
|
|
11953
11883
|
style: { background: unit.team === "player" ? "rgba(59,130,246,0.9)" : unit.team === "enemy" ? "rgba(239,68,68,0.9)" : "rgba(107,114,128,0.9)" },
|
|
11954
11884
|
children: unit.name
|
|
11955
11885
|
}
|
|
@@ -11959,7 +11889,7 @@ function Canvas2D({
|
|
|
11959
11889
|
},
|
|
11960
11890
|
unit.id
|
|
11961
11891
|
)),
|
|
11962
|
-
showMinimap && /* @__PURE__ */ jsx(
|
|
11892
|
+
showMinimap && /* @__PURE__ */ jsx(Box, { position: "absolute", className: "bottom-2 right-2 pointer-events-none", style: { zIndex: 10 }, children: /* @__PURE__ */ jsx(
|
|
11963
11893
|
MiniMap,
|
|
11964
11894
|
{
|
|
11965
11895
|
tiles: miniMapTiles,
|
|
@@ -11981,6 +11911,7 @@ var init_Canvas2D = __esm({
|
|
|
11981
11911
|
init_cn();
|
|
11982
11912
|
init_useEventBus();
|
|
11983
11913
|
init_Box();
|
|
11914
|
+
init_Button();
|
|
11984
11915
|
init_Stack();
|
|
11985
11916
|
init_Icon();
|
|
11986
11917
|
init_Typography();
|
|
@@ -12312,7 +12243,7 @@ function GameAudioToggle({
|
|
|
12312
12243
|
onClick: handleToggle,
|
|
12313
12244
|
className: cn("text-lg leading-none px-2", className),
|
|
12314
12245
|
"aria-pressed": muted,
|
|
12315
|
-
children: activeAsset ? /* @__PURE__ */ jsx(
|
|
12246
|
+
children: activeAsset ? /* @__PURE__ */ jsx(GameIcon, { assetUrl: activeAsset, icon: "image", size: 20, alt: muted ? "Muted" : "Sound on", className: "w-5 h-5 object-contain" }) : muted ? "\u{1F507}" : "\u{1F50A}"
|
|
12316
12247
|
}
|
|
12317
12248
|
);
|
|
12318
12249
|
}
|
|
@@ -12322,6 +12253,7 @@ var init_GameAudioToggle = __esm({
|
|
|
12322
12253
|
init_atoms();
|
|
12323
12254
|
init_cn();
|
|
12324
12255
|
init_GameAudioProvider();
|
|
12256
|
+
init_GameIcon();
|
|
12325
12257
|
GameAudioToggle.displayName = "GameAudioToggle";
|
|
12326
12258
|
}
|
|
12327
12259
|
});
|