@almadar/ui 5.103.0 → 5.105.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 +168 -88
- package/dist/avl/index.css +3 -3
- package/dist/avl/index.js +168 -88
- package/dist/components/core/atoms/AtlasImage.d.ts +2 -2
- package/dist/components/core/atoms/FlipContainer.d.ts +1 -1
- package/dist/components/core/molecules/Card.d.ts +1 -1
- package/dist/components/core/molecules/Chart.d.ts +3 -3
- package/dist/components/core/molecules/DataGrid.d.ts +1 -1
- package/dist/components/core/molecules/DataList.d.ts +1 -1
- package/dist/components/core/molecules/DocPagination.d.ts +8 -1
- package/dist/components/core/molecules/DocSearch.d.ts +8 -1
- package/dist/components/core/molecules/FlipCard.d.ts +1 -1
- package/dist/components/core/molecules/LineChart.d.ts +3 -1
- package/dist/components/core/molecules/MapView.d.ts +18 -1
- package/dist/components/core/molecules/SortableList.d.ts +1 -1
- package/dist/components/core/molecules/TableView.d.ts +1 -1
- package/dist/components/core/organisms/DataTable.d.ts +7 -3
- package/dist/components/core/organisms/debug/RuntimeDebugger.d.ts +10 -1
- package/dist/components/core/organisms/debug/tabs/EntitiesTab.d.ts +2 -1
- package/dist/components/core/organisms/debug/tabs/EventDispatcherTab.d.ts +2 -1
- package/dist/components/core/organisms/debug/tabs/EventFlowTab.d.ts +6 -1
- package/dist/components/core/organisms/debug/tabs/GuardsPanel.d.ts +6 -1
- package/dist/components/core/organisms/debug/tabs/ServerBridgeTab.d.ts +12 -1
- package/dist/components/core/organisms/debug/tabs/TicksTab.d.ts +2 -1
- package/dist/components/core/organisms/debug/tabs/TraitsTab.d.ts +2 -1
- package/dist/components/core/organisms/debug/tabs/TransitionTimeline.d.ts +11 -1
- package/dist/components/core/organisms/debug/tabs/VerificationTab.d.ts +8 -1
- package/dist/components/game/2d/atoms/ActionButton.d.ts +2 -1
- package/dist/components/game/2d/atoms/ChoiceButton.d.ts +2 -1
- package/dist/components/game/2d/atoms/ComboCounter.d.ts +2 -1
- package/dist/components/game/2d/atoms/ControlButton.d.ts +2 -1
- package/dist/components/game/2d/atoms/DamageNumber.d.ts +2 -1
- package/dist/components/game/2d/atoms/DialogueBubble.d.ts +2 -1
- package/dist/components/game/2d/atoms/GameIcon.d.ts +2 -1
- package/dist/components/game/2d/atoms/HealthBar.d.ts +2 -1
- package/dist/components/game/2d/atoms/ItemSlot.d.ts +2 -1
- package/dist/components/game/2d/atoms/MiniMap.d.ts +2 -1
- package/dist/components/game/2d/atoms/ResourceCounter.d.ts +2 -1
- package/dist/components/game/2d/atoms/ScoreDisplay.d.ts +2 -1
- package/dist/components/game/2d/atoms/StatusEffect.d.ts +2 -1
- package/dist/components/game/2d/atoms/TimerDisplay.d.ts +2 -1
- package/dist/components/game/2d/atoms/TurnIndicator.d.ts +2 -1
- package/dist/components/game/2d/atoms/WaypointMarker.d.ts +2 -1
- package/dist/components/game/2d/molecules/Canvas2D.d.ts +6 -5
- package/dist/components/game/2d/molecules/GameHud.d.ts +2 -1
- package/dist/components/game/2d/molecules/GameMenu.d.ts +2 -1
- package/dist/components/game/2d/molecules/InventoryGrid.d.ts +2 -1
- package/dist/components/game/2d/molecules/ResourceBar.d.ts +2 -1
- package/dist/components/game/2d/molecules/SideCanvas2D.d.ts +36 -0
- package/dist/components/game/2d/molecules/StatBadge.d.ts +2 -1
- package/dist/components/game/3d/atoms/EventMarker3D.d.ts +17 -0
- package/dist/components/game/3d/atoms/SpriteBillboard3D.d.ts +18 -0
- package/dist/components/game/3d/index.cjs +539 -496
- package/dist/components/game/3d/index.js +367 -324
- package/dist/components/game/3d/molecules/FeatureMesh3D.d.ts +21 -0
- package/dist/components/game/3d/molecules/GameCamera3D.d.ts +35 -0
- package/dist/components/game/3d/molecules/Lighting3D.d.ts +10 -2
- package/dist/components/game/3d/molecules/SideScene3D.d.ts +31 -0
- package/dist/components/game/3d/molecules/TileMesh3D.d.ts +28 -0
- package/dist/components/game/3d/molecules/UnitMesh3D.d.ts +29 -0
- package/dist/components/game/shared/game3dTheme.d.ts +55 -0
- package/dist/components/game/shared/isometric.d.ts +38 -0
- package/dist/components/game/shared/isometricTypes.d.ts +4 -0
- package/dist/components/game/shared/lib/editorUtils.d.ts +8 -8
- package/dist/components/index.cjs +156 -83
- package/dist/components/index.css +3 -3
- package/dist/components/index.js +160 -87
- package/dist/hooks/useGitHub.d.ts +7 -7
- package/dist/marketing/index.cjs +2 -2
- package/dist/marketing/index.js +2 -2
- package/dist/providers/EventBusProvider.d.ts +1 -1
- package/dist/providers/SelectionProvider.d.ts +1 -1
- package/dist/providers/ServerBridge.d.ts +1 -1
- package/dist/providers/index.cjs +164 -84
- package/dist/providers/index.css +3 -3
- package/dist/providers/index.js +164 -84
- package/dist/runtime/index.cjs +164 -84
- package/dist/runtime/index.css +3 -3
- package/dist/runtime/index.js +164 -84
- package/package.json +10 -15
package/dist/components/index.js
CHANGED
|
@@ -10276,9 +10276,9 @@ var init_BiologyCanvas = __esm({
|
|
|
10276
10276
|
}
|
|
10277
10277
|
});
|
|
10278
10278
|
|
|
10279
|
-
// node_modules/katex/dist/katex.min.css
|
|
10279
|
+
// node_modules/.pnpm/katex@0.16.47/node_modules/katex/dist/katex.min.css
|
|
10280
10280
|
var init_katex_min = __esm({
|
|
10281
|
-
"node_modules/katex/dist/katex.min.css"() {
|
|
10281
|
+
"node_modules/.pnpm/katex@0.16.47/node_modules/katex/dist/katex.min.css"() {
|
|
10282
10282
|
}
|
|
10283
10283
|
});
|
|
10284
10284
|
var Tabs;
|
|
@@ -16315,7 +16315,7 @@ function screenToIso(screenX, screenY, scale, baseOffsetX, layout = "isometric")
|
|
|
16315
16315
|
const tileY = (screenY / (scaledFloorHeight / 2) - adjustedX / (scaledTileWidth / 2)) / 2;
|
|
16316
16316
|
return { x: Math.round(tileX), y: Math.round(tileY) };
|
|
16317
16317
|
}
|
|
16318
|
-
var TILE_WIDTH, TILE_HEIGHT, FLOOR_HEIGHT, DIAMOND_TOP_Y, FEATURE_COLORS;
|
|
16318
|
+
var TILE_WIDTH, TILE_HEIGHT, FLOOR_HEIGHT, DIAMOND_TOP_Y, FEATURE_COLORS, TERRAIN_COLORS, TEAM_COLORS, TEAM_SHADOW_COLORS, HIGHLIGHT_COLORS, SELECTION_RING_COLOR, GRID_STROKE_COLOR, BACKGROUND_FALLBACK_COLOR, MINIMAP_TERRAIN_COLORS, MINIMAP_UNIT_COLORS, UNIT_LABEL_BG_COLORS, SIDE_PLATFORM_COLORS, SIDE_PLAYER_COLOR, SIDE_PLAYER_EYE_COLOR, SIDE_SKY_GRADIENT_TOP, SIDE_SKY_GRADIENT_BOTTOM, SIDE_GRID_COLOR, SIDE_FX_COLOR, SIDE_PLATFORM_BEVEL_COLOR, SIDE_PLATFORM_SHADOW_COLOR, SIDE_HAZARD_STRIPE_COLOR, SIDE_GOAL_GLOW_COLOR, DEFAULT_BG_COLOR;
|
|
16319
16319
|
var init_isometric = __esm({
|
|
16320
16320
|
"components/game/shared/isometric.ts"() {
|
|
16321
16321
|
TILE_WIDTH = 256;
|
|
@@ -16332,9 +16332,70 @@ var init_isometric = __esm({
|
|
|
16332
16332
|
mountain: "#78716c",
|
|
16333
16333
|
default: "#9ca3af"
|
|
16334
16334
|
};
|
|
16335
|
+
TERRAIN_COLORS = {
|
|
16336
|
+
water: "#3b82f6",
|
|
16337
|
+
mountain: "#78716c",
|
|
16338
|
+
stone: "#9ca3af",
|
|
16339
|
+
default: "#4ade80"
|
|
16340
|
+
};
|
|
16341
|
+
TEAM_COLORS = {
|
|
16342
|
+
player: "#3b82f6",
|
|
16343
|
+
enemy: "#ef4444",
|
|
16344
|
+
neutral: "#6b7280",
|
|
16345
|
+
default: "#6b7280"
|
|
16346
|
+
};
|
|
16347
|
+
TEAM_SHADOW_COLORS = {
|
|
16348
|
+
player: "rgba(0,150,255,0.6)",
|
|
16349
|
+
default: "rgba(255,50,50,0.6)"
|
|
16350
|
+
};
|
|
16351
|
+
HIGHLIGHT_COLORS = {
|
|
16352
|
+
hover: "rgba(255,255,255,0.15)",
|
|
16353
|
+
validMove: "rgba(74,222,128,0.25)",
|
|
16354
|
+
attack: "rgba(239,68,68,0.35)"
|
|
16355
|
+
};
|
|
16356
|
+
SELECTION_RING_COLOR = "rgba(0,200,255,0.8)";
|
|
16357
|
+
GRID_STROKE_COLOR = "rgba(0,0,0,0.2)";
|
|
16358
|
+
BACKGROUND_FALLBACK_COLOR = "#1a1a2e";
|
|
16359
|
+
MINIMAP_TERRAIN_COLORS = {
|
|
16360
|
+
water: "#3b82f6",
|
|
16361
|
+
mountain: "#78716c",
|
|
16362
|
+
default: "#4ade80"
|
|
16363
|
+
};
|
|
16364
|
+
MINIMAP_UNIT_COLORS = {
|
|
16365
|
+
player: "#60a5fa",
|
|
16366
|
+
enemy: "#f87171",
|
|
16367
|
+
neutral: "#9ca3af",
|
|
16368
|
+
default: "#9ca3af"
|
|
16369
|
+
};
|
|
16370
|
+
UNIT_LABEL_BG_COLORS = {
|
|
16371
|
+
player: "rgba(59,130,246,0.9)",
|
|
16372
|
+
enemy: "rgba(239,68,68,0.9)",
|
|
16373
|
+
neutral: "rgba(107,114,128,0.9)",
|
|
16374
|
+
default: "rgba(107,114,128,0.9)"
|
|
16375
|
+
};
|
|
16376
|
+
SIDE_PLATFORM_COLORS = {
|
|
16377
|
+
ground: "#4a7c59",
|
|
16378
|
+
platform: "#7c6b4a",
|
|
16379
|
+
hazard: "#c0392b",
|
|
16380
|
+
goal: "#f1c40f"
|
|
16381
|
+
};
|
|
16382
|
+
SIDE_PLAYER_COLOR = "#3498db";
|
|
16383
|
+
SIDE_PLAYER_EYE_COLOR = "#ffffff";
|
|
16384
|
+
SIDE_SKY_GRADIENT_TOP = "#1a1a2e";
|
|
16385
|
+
SIDE_SKY_GRADIENT_BOTTOM = "#16213e";
|
|
16386
|
+
SIDE_GRID_COLOR = "rgba(255, 255, 255, 0.03)";
|
|
16387
|
+
SIDE_FX_COLOR = "#ffe066";
|
|
16388
|
+
SIDE_PLATFORM_BEVEL_COLOR = "rgba(255,255,255,0.15)";
|
|
16389
|
+
SIDE_PLATFORM_SHADOW_COLOR = "rgba(0,0,0,0.3)";
|
|
16390
|
+
SIDE_HAZARD_STRIPE_COLOR = "#e74c3c";
|
|
16391
|
+
SIDE_GOAL_GLOW_COLOR = "rgba(241, 196, 15, 0.5)";
|
|
16392
|
+
DEFAULT_BG_COLOR = "#5c94fc";
|
|
16335
16393
|
}
|
|
16336
16394
|
});
|
|
16337
|
-
function
|
|
16395
|
+
function normalizeBackdrop(bg) {
|
|
16396
|
+
return typeof bg === "string" ? { url: bg, role: "decoration", category: "background" } : bg;
|
|
16397
|
+
}
|
|
16398
|
+
function SideCanvas2D({
|
|
16338
16399
|
player,
|
|
16339
16400
|
platforms,
|
|
16340
16401
|
worldWidth,
|
|
@@ -16343,7 +16404,7 @@ function SideView({
|
|
|
16343
16404
|
canvasHeight,
|
|
16344
16405
|
follow,
|
|
16345
16406
|
bgColor,
|
|
16346
|
-
backgroundImage,
|
|
16407
|
+
backgroundImage: backgroundImageRaw,
|
|
16347
16408
|
playerSprite,
|
|
16348
16409
|
tileSprites,
|
|
16349
16410
|
effects,
|
|
@@ -16351,27 +16412,22 @@ function SideView({
|
|
|
16351
16412
|
keyUpMap,
|
|
16352
16413
|
className
|
|
16353
16414
|
}) {
|
|
16415
|
+
const backgroundImage = normalizeBackdrop(backgroundImageRaw);
|
|
16354
16416
|
const canvasRef = useRef(null);
|
|
16355
16417
|
const eventBus = useEventBus();
|
|
16356
16418
|
const keysRef = useRef(/* @__PURE__ */ new Set());
|
|
16357
|
-
const
|
|
16358
|
-
|
|
16359
|
-
|
|
16360
|
-
if (
|
|
16361
|
-
|
|
16362
|
-
|
|
16363
|
-
|
|
16364
|
-
|
|
16365
|
-
}
|
|
16366
|
-
if (!cached) {
|
|
16367
|
-
const img = new Image();
|
|
16368
|
-
img.crossOrigin = "anonymous";
|
|
16369
|
-
img.src = url;
|
|
16370
|
-
img.onload = () => setLoadedImages((prev) => new Set(prev).add(url));
|
|
16371
|
-
imageCache2.current.set(url, img);
|
|
16419
|
+
const spriteUrls = useMemo(() => {
|
|
16420
|
+
const urls = [];
|
|
16421
|
+
if (backgroundImage?.url) urls.push(backgroundImage.url);
|
|
16422
|
+
if (playerSprite?.url) urls.push(playerSprite.url);
|
|
16423
|
+
if (tileSprites) {
|
|
16424
|
+
for (const asset of Object.values(tileSprites)) {
|
|
16425
|
+
if (asset?.url) urls.push(asset.url);
|
|
16426
|
+
}
|
|
16372
16427
|
}
|
|
16373
|
-
return
|
|
16374
|
-
}, [
|
|
16428
|
+
return urls;
|
|
16429
|
+
}, [backgroundImage, playerSprite, tileSprites]);
|
|
16430
|
+
const { getImage } = useImageCache(spriteUrls);
|
|
16375
16431
|
useEffect(() => {
|
|
16376
16432
|
if (typeof window === "undefined") return;
|
|
16377
16433
|
const canvas = canvasRef.current;
|
|
@@ -16484,7 +16540,7 @@ function SideView({
|
|
|
16484
16540
|
camX = Math.max(0, Math.min(px - cw / 2, ww - cw));
|
|
16485
16541
|
camY = Math.max(0, Math.min(py - ch / 2 - 50, wh - ch));
|
|
16486
16542
|
}
|
|
16487
|
-
const bgImage = bgImg ?
|
|
16543
|
+
const bgImage = bgImg ? getImage(bgImg.url) : void 0;
|
|
16488
16544
|
const bgSrc = bgImage ? resolveAssetSource(bgImage, bgImg, NOOP) : null;
|
|
16489
16545
|
if (bgSrc) {
|
|
16490
16546
|
blit(ctx, bgSrc, 0, 0, cw, ch);
|
|
@@ -16495,12 +16551,12 @@ function SideView({
|
|
|
16495
16551
|
ctx.fillRect(0, 0, cw, ch);
|
|
16496
16552
|
} else {
|
|
16497
16553
|
const grad = ctx.createLinearGradient(0, 0, 0, ch);
|
|
16498
|
-
grad.addColorStop(0,
|
|
16499
|
-
grad.addColorStop(1,
|
|
16554
|
+
grad.addColorStop(0, SIDE_SKY_GRADIENT_TOP);
|
|
16555
|
+
grad.addColorStop(1, SIDE_SKY_GRADIENT_BOTTOM);
|
|
16500
16556
|
ctx.fillStyle = grad;
|
|
16501
16557
|
ctx.fillRect(0, 0, cw, ch);
|
|
16502
16558
|
}
|
|
16503
|
-
ctx.strokeStyle =
|
|
16559
|
+
ctx.strokeStyle = SIDE_GRID_COLOR;
|
|
16504
16560
|
ctx.lineWidth = 1;
|
|
16505
16561
|
const gridSize = 32;
|
|
16506
16562
|
for (let gx = -camX % gridSize; gx < cw; gx += gridSize) {
|
|
@@ -16520,7 +16576,7 @@ function SideView({
|
|
|
16520
16576
|
const platY = plat.y - camY;
|
|
16521
16577
|
const platType = plat.type ?? "ground";
|
|
16522
16578
|
const spriteAsset = tSprites?.[platType];
|
|
16523
|
-
const tileImg = spriteAsset ?
|
|
16579
|
+
const tileImg = spriteAsset ? getImage(spriteAsset.url) : void 0;
|
|
16524
16580
|
const tileSrc = tileImg ? resolveAssetSource(tileImg, spriteAsset, NOOP) : null;
|
|
16525
16581
|
if (tileSrc) {
|
|
16526
16582
|
const originX = tileSrc.rect ? tileSrc.rect.sx : 0;
|
|
@@ -16535,15 +16591,15 @@ function SideView({
|
|
|
16535
16591
|
ctx.drawImage(tileImg, originX, originY, srcW, tileH, platX + tx, platY, drawW, plat.height);
|
|
16536
16592
|
}
|
|
16537
16593
|
} else {
|
|
16538
|
-
const color =
|
|
16594
|
+
const color = SIDE_PLATFORM_COLORS[platType] ?? SIDE_PLATFORM_COLORS.ground;
|
|
16539
16595
|
ctx.fillStyle = color;
|
|
16540
16596
|
ctx.fillRect(platX, platY, plat.width, plat.height);
|
|
16541
|
-
ctx.fillStyle =
|
|
16597
|
+
ctx.fillStyle = SIDE_PLATFORM_BEVEL_COLOR;
|
|
16542
16598
|
ctx.fillRect(platX, platY, plat.width, 3);
|
|
16543
|
-
ctx.fillStyle =
|
|
16599
|
+
ctx.fillStyle = SIDE_PLATFORM_SHADOW_COLOR;
|
|
16544
16600
|
ctx.fillRect(platX, platY + plat.height - 2, plat.width, 2);
|
|
16545
16601
|
if (platType === "hazard") {
|
|
16546
|
-
ctx.strokeStyle =
|
|
16602
|
+
ctx.strokeStyle = SIDE_HAZARD_STRIPE_COLOR;
|
|
16547
16603
|
ctx.lineWidth = 2;
|
|
16548
16604
|
for (let sx = platX; sx < platX + plat.width; sx += 12) {
|
|
16549
16605
|
ctx.beginPath();
|
|
@@ -16553,7 +16609,7 @@ function SideView({
|
|
|
16553
16609
|
}
|
|
16554
16610
|
}
|
|
16555
16611
|
if (platType === "goal") {
|
|
16556
|
-
ctx.fillStyle =
|
|
16612
|
+
ctx.fillStyle = SIDE_GOAL_GLOW_COLOR;
|
|
16557
16613
|
ctx.beginPath();
|
|
16558
16614
|
ctx.arc(platX + plat.width / 2, platY - 10, 8, 0, Math.PI * 2);
|
|
16559
16615
|
ctx.fill();
|
|
@@ -16565,7 +16621,7 @@ function SideView({
|
|
|
16565
16621
|
const ppx = px - camX;
|
|
16566
16622
|
const ppy = py - camY;
|
|
16567
16623
|
const facingRight = auth.facingRight ?? true;
|
|
16568
|
-
const playerImg = pSprite ?
|
|
16624
|
+
const playerImg = pSprite ? getImage(pSprite.url) : void 0;
|
|
16569
16625
|
const playerSrc = playerImg ? resolveAssetSource(playerImg, pSprite, NOOP) : null;
|
|
16570
16626
|
if (playerSrc) {
|
|
16571
16627
|
ctx.save();
|
|
@@ -16578,7 +16634,7 @@ function SideView({
|
|
|
16578
16634
|
}
|
|
16579
16635
|
ctx.restore();
|
|
16580
16636
|
} else {
|
|
16581
|
-
ctx.fillStyle =
|
|
16637
|
+
ctx.fillStyle = SIDE_PLAYER_COLOR;
|
|
16582
16638
|
const radius = Math.min(pw, ph) * 0.25;
|
|
16583
16639
|
ctx.beginPath();
|
|
16584
16640
|
ctx.moveTo(ppx + radius, ppy);
|
|
@@ -16594,7 +16650,7 @@ function SideView({
|
|
|
16594
16650
|
const eyeY = ppy + ph * 0.3;
|
|
16595
16651
|
const eyeSize = 3;
|
|
16596
16652
|
const eyeOffsetX = facingRight ? pw * 0.55 : pw * 0.2;
|
|
16597
|
-
ctx.fillStyle =
|
|
16653
|
+
ctx.fillStyle = SIDE_PLAYER_EYE_COLOR;
|
|
16598
16654
|
ctx.beginPath();
|
|
16599
16655
|
ctx.arc(ppx + eyeOffsetX, eyeY, eyeSize, 0, Math.PI * 2);
|
|
16600
16656
|
ctx.fill();
|
|
@@ -16608,7 +16664,7 @@ function SideView({
|
|
|
16608
16664
|
const alpha = Math.min(1, fx.ttl / 4);
|
|
16609
16665
|
const prev = ctx.globalAlpha;
|
|
16610
16666
|
ctx.globalAlpha = alpha;
|
|
16611
|
-
ctx.fillStyle =
|
|
16667
|
+
ctx.fillStyle = SIDE_FX_COLOR;
|
|
16612
16668
|
ctx.beginPath();
|
|
16613
16669
|
ctx.arc(fxScreenX, fxScreenY, 12, 0, Math.PI * 2);
|
|
16614
16670
|
ctx.fill();
|
|
@@ -16616,7 +16672,7 @@ function SideView({
|
|
|
16616
16672
|
}
|
|
16617
16673
|
};
|
|
16618
16674
|
return interp.startLoop(drawFrame);
|
|
16619
|
-
}, [interp.startLoop,
|
|
16675
|
+
}, [interp.startLoop, getImage]);
|
|
16620
16676
|
return /* @__PURE__ */ jsx(
|
|
16621
16677
|
"canvas",
|
|
16622
16678
|
{
|
|
@@ -16628,6 +16684,33 @@ function SideView({
|
|
|
16628
16684
|
}
|
|
16629
16685
|
);
|
|
16630
16686
|
}
|
|
16687
|
+
var NOOP;
|
|
16688
|
+
var init_SideCanvas2D = __esm({
|
|
16689
|
+
"components/game/2d/molecules/SideCanvas2D.tsx"() {
|
|
16690
|
+
"use client";
|
|
16691
|
+
init_cn();
|
|
16692
|
+
init_useEventBus();
|
|
16693
|
+
init_useImageCache();
|
|
16694
|
+
init_atlasSlice();
|
|
16695
|
+
init_useRenderInterpolation();
|
|
16696
|
+
init_verificationRegistry();
|
|
16697
|
+
init_isometric();
|
|
16698
|
+
NOOP = () => {
|
|
16699
|
+
};
|
|
16700
|
+
SideCanvas2D.displayName = "SideCanvas2D";
|
|
16701
|
+
}
|
|
16702
|
+
});
|
|
16703
|
+
function normalizeBackdrop2(bg) {
|
|
16704
|
+
return typeof bg === "string" ? { url: bg, role: "decoration", category: "background" } : bg;
|
|
16705
|
+
}
|
|
16706
|
+
function resolveTileFallbackColor(tile) {
|
|
16707
|
+
const override = tile.color;
|
|
16708
|
+
return override ?? TERRAIN_COLORS[tile.terrain ?? ""] ?? TERRAIN_COLORS.default;
|
|
16709
|
+
}
|
|
16710
|
+
function resolveUnitTeamColor(unit) {
|
|
16711
|
+
const override = unit.tint;
|
|
16712
|
+
return override ?? TEAM_COLORS[unit.team ?? ""] ?? TEAM_COLORS.default;
|
|
16713
|
+
}
|
|
16631
16714
|
function Canvas2D({
|
|
16632
16715
|
// Closed-circuit
|
|
16633
16716
|
className,
|
|
@@ -16642,7 +16725,7 @@ function Canvas2D({
|
|
|
16642
16725
|
effects: _effectsPropRaw = [],
|
|
16643
16726
|
platforms,
|
|
16644
16727
|
player,
|
|
16645
|
-
backgroundImage,
|
|
16728
|
+
backgroundImage: backgroundImageRaw,
|
|
16646
16729
|
// Interaction state
|
|
16647
16730
|
selectedUnitId = null,
|
|
16648
16731
|
validMoves = [],
|
|
@@ -16677,12 +16760,13 @@ function Canvas2D({
|
|
|
16677
16760
|
// Side-view asset resolution
|
|
16678
16761
|
playerSprite,
|
|
16679
16762
|
tileSprites,
|
|
16680
|
-
bgColor =
|
|
16763
|
+
bgColor = DEFAULT_BG_COLOR,
|
|
16681
16764
|
worldWidth = 800,
|
|
16682
16765
|
worldHeight = 400,
|
|
16683
16766
|
// Remote asset loading
|
|
16684
16767
|
assetManifest
|
|
16685
16768
|
}) {
|
|
16769
|
+
const backgroundImage = normalizeBackdrop2(backgroundImageRaw);
|
|
16686
16770
|
const isSide = projection === "side";
|
|
16687
16771
|
const isFree = projection === "free";
|
|
16688
16772
|
const flatLike = projection === "hex" || projection === "flat" || isFree;
|
|
@@ -16866,7 +16950,7 @@ function Canvas2D({
|
|
|
16866
16950
|
return sortedTiles.map((t2) => ({
|
|
16867
16951
|
x: t2.x,
|
|
16868
16952
|
y: t2.y,
|
|
16869
|
-
color: t2.terrain
|
|
16953
|
+
color: MINIMAP_TERRAIN_COLORS[t2.terrain ?? ""] ?? MINIMAP_TERRAIN_COLORS.default
|
|
16870
16954
|
}));
|
|
16871
16955
|
}, [showMinimap, sortedTiles]);
|
|
16872
16956
|
const miniMapUnits = useMemo(() => {
|
|
@@ -16874,7 +16958,7 @@ function Canvas2D({
|
|
|
16874
16958
|
return units.filter((u) => u.position).map((u) => ({
|
|
16875
16959
|
x: u.position.x,
|
|
16876
16960
|
y: u.position.y,
|
|
16877
|
-
color: u.team
|
|
16961
|
+
color: MINIMAP_UNIT_COLORS[u.team ?? ""] ?? MINIMAP_UNIT_COLORS.default,
|
|
16878
16962
|
isPlayer: u.team === "player"
|
|
16879
16963
|
}));
|
|
16880
16964
|
}, [showMinimap, units]);
|
|
@@ -16911,7 +16995,7 @@ function Canvas2D({
|
|
|
16911
16995
|
}
|
|
16912
16996
|
}
|
|
16913
16997
|
} else {
|
|
16914
|
-
ctx.fillStyle =
|
|
16998
|
+
ctx.fillStyle = BACKGROUND_FALLBACK_COLOR;
|
|
16915
16999
|
ctx.fillRect(0, 0, viewportSize.width, viewportSize.height);
|
|
16916
17000
|
}
|
|
16917
17001
|
if (sortedTiles.length === 0 && units.length === 0 && features.length === 0) return;
|
|
@@ -16941,15 +17025,15 @@ function Canvas2D({
|
|
|
16941
17025
|
} else if (img && img.naturalWidth === 0) {
|
|
16942
17026
|
ctx.drawImage(img, pos.x, pos.y, scaledTileWidth, scaledTileHeight);
|
|
16943
17027
|
} else if (squareGrid) {
|
|
16944
|
-
ctx.fillStyle = tile
|
|
17028
|
+
ctx.fillStyle = resolveTileFallbackColor(tile);
|
|
16945
17029
|
ctx.fillRect(pos.x, pos.y, scaledTileWidth, scaledTileWidth);
|
|
16946
|
-
ctx.strokeStyle =
|
|
17030
|
+
ctx.strokeStyle = GRID_STROKE_COLOR;
|
|
16947
17031
|
ctx.lineWidth = 1;
|
|
16948
17032
|
ctx.strokeRect(pos.x, pos.y, scaledTileWidth, scaledTileWidth);
|
|
16949
17033
|
} else {
|
|
16950
17034
|
const centerX = pos.x + scaledTileWidth / 2;
|
|
16951
17035
|
const topY = pos.y + scaledDiamondTopY;
|
|
16952
|
-
ctx.fillStyle = tile
|
|
17036
|
+
ctx.fillStyle = resolveTileFallbackColor(tile);
|
|
16953
17037
|
ctx.beginPath();
|
|
16954
17038
|
ctx.moveTo(centerX, topY);
|
|
16955
17039
|
ctx.lineTo(pos.x + scaledTileWidth, topY + scaledFloorHeight / 2);
|
|
@@ -16957,7 +17041,7 @@ function Canvas2D({
|
|
|
16957
17041
|
ctx.lineTo(pos.x, topY + scaledFloorHeight / 2);
|
|
16958
17042
|
ctx.closePath();
|
|
16959
17043
|
ctx.fill();
|
|
16960
|
-
ctx.strokeStyle =
|
|
17044
|
+
ctx.strokeStyle = GRID_STROKE_COLOR;
|
|
16961
17045
|
ctx.lineWidth = 1;
|
|
16962
17046
|
ctx.stroke();
|
|
16963
17047
|
}
|
|
@@ -16978,11 +17062,11 @@ function Canvas2D({
|
|
|
16978
17062
|
ctx.fill();
|
|
16979
17063
|
};
|
|
16980
17064
|
if (hoveredTile && hoveredTile.x === tile.x && hoveredTile.y === tile.y) {
|
|
16981
|
-
drawHighlight(
|
|
17065
|
+
drawHighlight(HIGHLIGHT_COLORS.hover);
|
|
16982
17066
|
}
|
|
16983
17067
|
const tileKey = `${tile.x},${tile.y}`;
|
|
16984
|
-
if (validMoveSet.has(tileKey)) drawHighlight(
|
|
16985
|
-
if (attackTargetSet.has(tileKey)) drawHighlight(
|
|
17068
|
+
if (validMoveSet.has(tileKey)) drawHighlight(HIGHLIGHT_COLORS.validMove);
|
|
17069
|
+
if (attackTargetSet.has(tileKey)) drawHighlight(HIGHLIGHT_COLORS.attack);
|
|
16986
17070
|
if (debug2) {
|
|
16987
17071
|
const centerX = pos.x + scaledTileWidth / 2;
|
|
16988
17072
|
const centerY = squareGrid ? pos.y + scaledTileWidth / 2 : pos.y + scaledFloorHeight / 2 + scaledDiamondTopY;
|
|
@@ -17056,9 +17140,9 @@ function Canvas2D({
|
|
|
17056
17140
|
const maxUnitW = scaledTileWidth * spriteMaxWidthRatio * unitScale;
|
|
17057
17141
|
const unitIsSheet = unit.spriteSheet?.url !== void 0;
|
|
17058
17142
|
const unitSrc = img && !unitIsSheet ? resolveAssetSource(img, unitAsset, bumpAtlas) : null;
|
|
17059
|
-
const SHEET_ROWS = 5;
|
|
17060
17143
|
const sheetFrameW = img ? img.naturalWidth / SHEET_COLUMNS : 0;
|
|
17061
|
-
const sheetFrameH = img ? img.naturalHeight /
|
|
17144
|
+
const sheetFrameH = img ? img.naturalHeight / LEGACY_SHEET_ROWS : 0;
|
|
17145
|
+
const legacyFrame = frameRect(0, 0, SHEET_COLUMNS, sheetFrameW, sheetFrameH);
|
|
17062
17146
|
const frameW = unitIsSheet ? sheetFrameW : img?.naturalWidth ?? 1;
|
|
17063
17147
|
const frameH = unitIsSheet ? sheetFrameH : img?.naturalHeight ?? 1;
|
|
17064
17148
|
const ar = unitIsSheet ? sheetFrameW / (sheetFrameH || 1) : unitSrc ? unitSrc.aspect : frameW / (frameH || 1);
|
|
@@ -17076,17 +17160,16 @@ function Canvas2D({
|
|
|
17076
17160
|
ctx.globalAlpha = 0.25;
|
|
17077
17161
|
if (img) {
|
|
17078
17162
|
if (unitIsSheet) {
|
|
17079
|
-
ctx.drawImage(img,
|
|
17163
|
+
ctx.drawImage(img, legacyFrame.sx, legacyFrame.sy, legacyFrame.sw, legacyFrame.sh, ghostCenterX - drawW / 2, ghostGroundY - drawH, drawW, drawH);
|
|
17080
17164
|
} else if (unitSrc) {
|
|
17081
17165
|
blit(ctx, unitSrc, ghostCenterX - drawW / 2, ghostGroundY - drawH, drawW, drawH);
|
|
17082
17166
|
} else {
|
|
17083
17167
|
ctx.drawImage(img, ghostCenterX - drawW / 2, ghostGroundY - drawH, drawW, drawH);
|
|
17084
17168
|
}
|
|
17085
17169
|
} else {
|
|
17086
|
-
const color = unit.team === "player" ? "#3b82f6" : unit.team === "enemy" ? "#ef4444" : "#6b7280";
|
|
17087
17170
|
ctx.beginPath();
|
|
17088
17171
|
ctx.arc(ghostCenterX, ghostGroundY - 16 * scale, 20 * scale, 0, Math.PI * 2);
|
|
17089
|
-
ctx.fillStyle =
|
|
17172
|
+
ctx.fillStyle = resolveUnitTeamColor(unit);
|
|
17090
17173
|
ctx.fill();
|
|
17091
17174
|
}
|
|
17092
17175
|
ctx.restore();
|
|
@@ -17094,7 +17177,7 @@ function Canvas2D({
|
|
|
17094
17177
|
if (isSelected) {
|
|
17095
17178
|
ctx.beginPath();
|
|
17096
17179
|
ctx.ellipse(centerX, groundY, drawW / 2 + 4 * scale, 12 * scale, 0, 0, Math.PI * 2);
|
|
17097
|
-
ctx.strokeStyle =
|
|
17180
|
+
ctx.strokeStyle = SELECTION_RING_COLOR;
|
|
17098
17181
|
ctx.lineWidth = 3;
|
|
17099
17182
|
ctx.stroke();
|
|
17100
17183
|
}
|
|
@@ -17111,7 +17194,7 @@ function Canvas2D({
|
|
|
17111
17194
|
const spriteY = groundY - fDrawH - (frame.applyBreathing ? breatheOffset : 0);
|
|
17112
17195
|
ctx.save();
|
|
17113
17196
|
if (unit.team) {
|
|
17114
|
-
ctx.shadowColor = unit.team
|
|
17197
|
+
ctx.shadowColor = TEAM_SHADOW_COLORS[unit.team] ?? TEAM_SHADOW_COLORS.default;
|
|
17115
17198
|
ctx.shadowBlur = 12 * scale;
|
|
17116
17199
|
}
|
|
17117
17200
|
if (frame.flipX) {
|
|
@@ -17126,7 +17209,7 @@ function Canvas2D({
|
|
|
17126
17209
|
const spriteY = groundY - drawH - breatheOffset;
|
|
17127
17210
|
const drawUnit = (x) => {
|
|
17128
17211
|
if (unitIsSheet) {
|
|
17129
|
-
ctx.drawImage(img,
|
|
17212
|
+
ctx.drawImage(img, legacyFrame.sx, legacyFrame.sy, legacyFrame.sw, legacyFrame.sh, x, spriteY, drawW, drawH);
|
|
17130
17213
|
} else if (unitSrc) {
|
|
17131
17214
|
blit(ctx, unitSrc, x, spriteY, drawW, drawH);
|
|
17132
17215
|
} else {
|
|
@@ -17135,7 +17218,7 @@ function Canvas2D({
|
|
|
17135
17218
|
};
|
|
17136
17219
|
if (unit.team) {
|
|
17137
17220
|
ctx.save();
|
|
17138
|
-
ctx.shadowColor = unit.team
|
|
17221
|
+
ctx.shadowColor = TEAM_SHADOW_COLORS[unit.team] ?? TEAM_SHADOW_COLORS.default;
|
|
17139
17222
|
ctx.shadowBlur = 12 * scale;
|
|
17140
17223
|
drawUnit(centerX - drawW / 2);
|
|
17141
17224
|
ctx.restore();
|
|
@@ -17143,10 +17226,9 @@ function Canvas2D({
|
|
|
17143
17226
|
drawUnit(centerX - drawW / 2);
|
|
17144
17227
|
}
|
|
17145
17228
|
} else {
|
|
17146
|
-
const color = unit.team === "player" ? "#3b82f6" : unit.team === "enemy" ? "#ef4444" : "#6b7280";
|
|
17147
17229
|
ctx.beginPath();
|
|
17148
17230
|
ctx.arc(centerX, groundY - 20 * scale - breatheOffset, 20 * scale, 0, Math.PI * 2);
|
|
17149
|
-
ctx.fillStyle =
|
|
17231
|
+
ctx.fillStyle = resolveUnitTeamColor(unit);
|
|
17150
17232
|
ctx.fill();
|
|
17151
17233
|
ctx.strokeStyle = "rgba(255,255,255,0.8)";
|
|
17152
17234
|
ctx.lineWidth = 2;
|
|
@@ -17385,7 +17467,7 @@ function Canvas2D({
|
|
|
17385
17467
|
}
|
|
17386
17468
|
if (isSide) {
|
|
17387
17469
|
return /* @__PURE__ */ jsx(Box, { ref: containerRef, className: cn("relative overflow-hidden w-full h-full", className), children: /* @__PURE__ */ jsx(
|
|
17388
|
-
|
|
17470
|
+
SideCanvas2D,
|
|
17389
17471
|
{
|
|
17390
17472
|
player,
|
|
17391
17473
|
platforms: platforms && platforms.length ? platforms : DEFAULT_PLATFORMS,
|
|
@@ -17483,7 +17565,7 @@ function Canvas2D({
|
|
|
17483
17565
|
{
|
|
17484
17566
|
as: "span",
|
|
17485
17567
|
className: "text-white text-xs font-bold px-1.5 py-0.5 rounded mb-0.5 whitespace-nowrap block",
|
|
17486
|
-
style: { background: unit.team
|
|
17568
|
+
style: { background: UNIT_LABEL_BG_COLORS[unit.team ?? ""] ?? UNIT_LABEL_BG_COLORS.default },
|
|
17487
17569
|
children: unit.name
|
|
17488
17570
|
}
|
|
17489
17571
|
),
|
|
@@ -17507,7 +17589,7 @@ function Canvas2D({
|
|
|
17507
17589
|
}
|
|
17508
17590
|
);
|
|
17509
17591
|
}
|
|
17510
|
-
var
|
|
17592
|
+
var LEGACY_SHEET_ROWS, DEFAULT_PLATFORMS;
|
|
17511
17593
|
var init_Canvas2D = __esm({
|
|
17512
17594
|
"components/game/2d/molecules/Canvas2D.tsx"() {
|
|
17513
17595
|
"use client";
|
|
@@ -17529,19 +17611,9 @@ var init_Canvas2D = __esm({
|
|
|
17529
17611
|
init_verificationRegistry();
|
|
17530
17612
|
init_isometric();
|
|
17531
17613
|
init_spriteSheetConstants();
|
|
17532
|
-
|
|
17533
|
-
|
|
17534
|
-
|
|
17535
|
-
hazard: "#c0392b",
|
|
17536
|
-
goal: "#f1c40f"
|
|
17537
|
-
};
|
|
17538
|
-
NOOP = () => {
|
|
17539
|
-
};
|
|
17540
|
-
PLAYER_COLOR = "#3498db";
|
|
17541
|
-
PLAYER_EYE_COLOR = "#ffffff";
|
|
17542
|
-
SKY_GRADIENT_TOP = "#1a1a2e";
|
|
17543
|
-
SKY_GRADIENT_BOTTOM = "#16213e";
|
|
17544
|
-
GRID_COLOR = "rgba(255, 255, 255, 0.03)";
|
|
17614
|
+
init_spriteAnimation();
|
|
17615
|
+
init_SideCanvas2D();
|
|
17616
|
+
LEGACY_SHEET_ROWS = Object.keys(SPRITE_SHEET_LAYOUT).length;
|
|
17545
17617
|
DEFAULT_PLATFORMS = [
|
|
17546
17618
|
{ x: 0, y: 368, width: 800, height: 32, type: "ground" },
|
|
17547
17619
|
{ x: 150, y: 280, width: 160, height: 16, type: "platform" },
|
|
@@ -26722,8 +26794,9 @@ var init_LineChart = __esm({
|
|
|
26722
26794
|
const safeData = data ?? [];
|
|
26723
26795
|
const sortedData = useMemo(() => {
|
|
26724
26796
|
if (safeData.length === 0) return [];
|
|
26797
|
+
if (!safeData.some((d) => d.date != null)) return [...safeData];
|
|
26725
26798
|
return [...safeData].sort(
|
|
26726
|
-
(a, b) => new Date(a.date).getTime() - new Date(b.date).getTime()
|
|
26799
|
+
(a, b) => new Date(a.date ?? 0).getTime() - new Date(b.date ?? 0).getTime()
|
|
26727
26800
|
);
|
|
26728
26801
|
}, [safeData]);
|
|
26729
26802
|
const points = useMemo(() => {
|
|
@@ -29348,7 +29421,7 @@ function TerrainPalette({ terrains, selectedTerrain, onSelect, className }) {
|
|
|
29348
29421
|
{
|
|
29349
29422
|
onClick: () => onSelect(terrain),
|
|
29350
29423
|
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"}`,
|
|
29351
|
-
style: { backgroundColor:
|
|
29424
|
+
style: { backgroundColor: TERRAIN_COLORS2[terrain] || "var(--color-muted)" },
|
|
29352
29425
|
title: terrain
|
|
29353
29426
|
},
|
|
29354
29427
|
terrain
|
|
@@ -29367,7 +29440,7 @@ function EditorToolbar({ mode, onModeChange, className }) {
|
|
|
29367
29440
|
m
|
|
29368
29441
|
)) });
|
|
29369
29442
|
}
|
|
29370
|
-
var
|
|
29443
|
+
var TERRAIN_COLORS2, FEATURE_TYPES, MODE_LABELS;
|
|
29371
29444
|
var init_editorUtils = __esm({
|
|
29372
29445
|
"components/game/shared/lib/editorUtils.tsx"() {
|
|
29373
29446
|
init_Box();
|
|
@@ -29376,7 +29449,7 @@ var init_editorUtils = __esm({
|
|
|
29376
29449
|
init_Button();
|
|
29377
29450
|
init_Badge();
|
|
29378
29451
|
init_GameIcon();
|
|
29379
|
-
|
|
29452
|
+
TERRAIN_COLORS2 = {
|
|
29380
29453
|
grass: "#4a7c3f",
|
|
29381
29454
|
dirt: "#8b6c42",
|
|
29382
29455
|
stone: "#7a7a7a",
|
|
@@ -32162,13 +32235,13 @@ var init_MapView = __esm({
|
|
|
32162
32235
|
shadowSize: [41, 41]
|
|
32163
32236
|
});
|
|
32164
32237
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
32165
|
-
const { useEffect:
|
|
32238
|
+
const { useEffect: useEffect71, useRef: useRef67, useCallback: useCallback114, useState: useState108 } = React75__default;
|
|
32166
32239
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
32167
32240
|
const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
32168
32241
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
32169
32242
|
const map = useMap();
|
|
32170
|
-
const prevRef =
|
|
32171
|
-
|
|
32243
|
+
const prevRef = useRef67({ centerLat, centerLng, zoom });
|
|
32244
|
+
useEffect71(() => {
|
|
32172
32245
|
const prev = prevRef.current;
|
|
32173
32246
|
if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
|
|
32174
32247
|
map.setView([centerLat, centerLng], zoom);
|
|
@@ -32179,7 +32252,7 @@ var init_MapView = __esm({
|
|
|
32179
32252
|
}
|
|
32180
32253
|
function MapClickHandler({ onMapClick }) {
|
|
32181
32254
|
const map = useMap();
|
|
32182
|
-
|
|
32255
|
+
useEffect71(() => {
|
|
32183
32256
|
if (!onMapClick) return;
|
|
32184
32257
|
const handler = (e) => {
|
|
32185
32258
|
onMapClick(e.latlng.lat, e.latlng.lng);
|
|
@@ -32208,7 +32281,7 @@ var init_MapView = __esm({
|
|
|
32208
32281
|
}) {
|
|
32209
32282
|
const eventBus = useEventBus2();
|
|
32210
32283
|
const [clickedPosition, setClickedPosition] = useState108(null);
|
|
32211
|
-
const handleMapClick =
|
|
32284
|
+
const handleMapClick = useCallback114((lat, lng) => {
|
|
32212
32285
|
if (showClickedPin) {
|
|
32213
32286
|
setClickedPosition({ lat, lng });
|
|
32214
32287
|
}
|
|
@@ -32217,7 +32290,7 @@ var init_MapView = __esm({
|
|
|
32217
32290
|
eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
|
|
32218
32291
|
}
|
|
32219
32292
|
}, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
|
|
32220
|
-
const handleMarkerClick =
|
|
32293
|
+
const handleMarkerClick = useCallback114((marker) => {
|
|
32221
32294
|
onMarkerClick?.(marker);
|
|
32222
32295
|
if (markerClickEvent) {
|
|
32223
32296
|
eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
|
|
@@ -51912,4 +51985,4 @@ function useGitHubBranches(owner, repo, enabled = true) {
|
|
|
51912
51985
|
});
|
|
51913
51986
|
}
|
|
51914
51987
|
|
|
51915
|
-
export { ALL_PRESETS, ALMADAR_DND_MIME, AR_BOOK_FIELDS, AboutPageTemplate, Accordion, ActionButton, Card2 as ActionCard, ActionPalette, ActionTile, ActivationBlock, Alert, AlgorithmCanvas, AnimatedCounter, AnimatedGraphic, AnimatedReveal, ArticleSection, Aside, AssetPicker, AtlasImage, AtlasPanel, AuthLayout, Avatar, Badge, BehaviorView, BiologyCanvas, BloomQuizBlock, BookChapterView, BookCoverPage, BookNavBar, BookTableOfContents, BookViewer, Box, BranchingLogicBuilder, Breadcrumb, BuilderBoard, Button, ButtonGroup, CTABanner, CalendarGrid, Canvas2D, Card, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CaseStudyCard, CaseStudyOrganism, Center, Chart, ChartLegend, ChatBar, Checkbox, ChemistryCanvas, ChoiceButton, ClassifierBoard, Coachmark, CodeBlock, CodeRunnerPanel, CollapsibleSection, ComboCounter, CommunityLinks, ConditionalWrapper, ConfettiEffect, ConfirmDialog, ConnectionBlock, Container, ContentRenderer, ContentSection, ControlButton, ControlGrid, CounterTemplate, DEFAULT_LIKERT_OPTIONS, DEFAULT_MATRIX_COLUMNS, DEFAULT_SLOTS, DIAMOND_TOP_Y, DamageNumber, DashboardGrid, DashboardLayout, DataGrid, DataList, DataTable, DateRangePicker, DateRangeSelector, DayCell, DebuggerBoard, DetailPanel, Dialog, DialogueBubble, Divider, DocBreadcrumb, DocPagination, DocSearch, DocSidebar, DocTOC, DocumentViewer, StateMachineView as DomStateMachineVisualizer, Drawer, DrawerSlot, ELEMENT_SELECTED_EVENT, EMPTY_EFFECT_STATE, EdgeDecoration, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EmptyState, EntityDisplayEvents, ErrorBoundary, ErrorState, EventHandlerBoard, EventLog, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FeatureCard, FeatureDetailPageTemplate, FeatureGrid, FeatureGridOrganism, FileTree, FilterGroup, FilterPill, Flex, FlipCard, FlipContainer, FloatingActionButton, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, GameAudioContext, GameAudioProvider, GameAudioToggle, GameCard, GameHud, GameIcon, GameMenu, GameShell, GameTemplate, GenericAppTemplate, GeometricPattern, GradientDivider, GraphCanvas, GraphView, Grid, GridPicker, HStack, Header, HealthBar, HeroOrganism, HeroSection, I18nProvider, IDENTITY_BOOK_FIELDS, Icon, IconPicker, InfiniteScrollSentinel, Input, InputGroup, InstallBox, InventoryGrid, ItemSlot, JazariStateMachine, JsonTreeEditor, Label, LandingPageTemplate, LawReferenceTooltip, LearningCanvas, Lightbox, LikertScale, LineChart2 as LineChart, List3 as List, LoadingState, MapView, MarkdownContent, MarketingFooter, MarketingStatCard, MasterDetail, MasterDetailLayout, MathCanvas, MatrixQuestion, MediaGallery, Menu, Meter, MiniMap, Modal, ModalSlot, ModuleCard, Navigation, NegotiatorBoard, NodeSlotEditor, NotifyListener, NumberStepper, ObjectRulePanel, OnboardingSpotlight, OptionConstraintGroup, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, Overlay, PageHeader, Pagination, PatternTile, PhysicsCanvas, Popover, PositionedCanvas, PricingCard, PricingGrid, PricingOrganism, PricingPageTemplate, ProgressBar, ProgressDots, PropertyInspector, PullQuote, PullToRefresh, QrScanner, QuizBlock, Radio, RangeSlider, ReflectionBlock, RelationSelect, RepeatableFormSection, ReplyTree, ResourceBar, ResourceCounter, RichBlockEditor, RuleEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreDisplay, SearchInput, Section, SectionHeader, SegmentRenderer, Select, SequenceBar, SequencerBoard, ServiceCatalog, ShowcaseCard, ShowcaseOrganism, SidePanel, Sidebar, SignaturePad, SimpleGrid, SimulatorBoard, Skeleton, SlotContentRenderer, SocialProof, SortableList, Spacer, Sparkline, Spinner, Split, SplitPane, SplitSection, Sprite, Stack, StarRating, StatBadge, StatCard, StatDisplay, StateArchitectBoard, StateGraph, StateIndicator, StateJsonView, StateMachineView, StateNode2 as StateNode, StatsGrid, StatsOrganism, StatusBar, StatusDot, StatusEffect, StepFlow, StepFlowOrganism, SubagentTracePanel, SvgBranch, SvgConnection, SvgFlow, SvgGrid, SvgLobe, SvgMesh, SvgMorph, SvgNode, SvgPulse, SvgRing, SvgShield, SvgStack, SwipeableRow, Switch, TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, TableView, Tabs, TagCloud, TagInput, TeamCard, TeamOrganism, TerrainPalette, TextHighlight, Textarea, ThemeToggle, TimeSlotCell, Timeline, TimerDisplay, Toast, ToastSlot, Tooltip, TraitFrame, TraitSlot, TraitStateViewer, TransitionArrow, TrendIndicator, TurnIndicator, TypewriterText, Typography, UISlotComponent, UISlotRenderer, UploadDropZone, VStack, VariablePanel, VersionDiff, ViolationAlert, VoteStack, WaypointMarker, WizardContainer, WizardNavigation, WizardProgress, boardEntity, bool, calculateAttackTargets, calculateValidMoves, cn, createInitialGameState, createSharedEntityStore, createTranslate, createUnitAnimationState, drawSprite, getCurrentFrame, getTileDimensions, inferDirection, isoToScreen, makeAsset, makeAssetMap, mapBookData, num, objAvailableActions, objAvailableEvents, objCurrentState, objIcon, objId, objMaxRules, objName, objRules, objStates, parseEditFocus, parseLessonSegments, parseMarkdownWithCodeBlocks, parseQueryBinding, pendulum, projectileMotion, resolveFieldMap, resolveFrame, resolveSheetDirection, rows, runTickFrame, screenToIso, springOscillator, str, tickAnimationState, toCodeLanguage, transitionAnimation, unitHealth, unitPosition, unitTeam, useAgentChat, useAnchorRect, useAtlasSliceDataUrl, useAuthContext, useCamera, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEmitEvent, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useGameAudio, useGameAudioContext, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useImageCache, useInfiniteScroll, useLongPress, useOrbitalHistory, usePreview, usePullToRefresh, useQuerySingleton, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSwipeGesture, useTapReveal, useTraitListens, useTranslate127 as useTranslate, useUIEvents, useUISlotManager, useUnitSpriteAtlas, useValidation, vec2 };
|
|
51988
|
+
export { ALL_PRESETS, ALMADAR_DND_MIME, AR_BOOK_FIELDS, AboutPageTemplate, Accordion, ActionButton, Card2 as ActionCard, ActionPalette, ActionTile, ActivationBlock, Alert, AlgorithmCanvas, AnimatedCounter, AnimatedGraphic, AnimatedReveal, ArticleSection, Aside, AssetPicker, AtlasImage, AtlasPanel, AuthLayout, Avatar, Badge, BehaviorView, BiologyCanvas, BloomQuizBlock, BookChapterView, BookCoverPage, BookNavBar, BookTableOfContents, BookViewer, Box, BranchingLogicBuilder, Breadcrumb, BuilderBoard, Button, ButtonGroup, CTABanner, CalendarGrid, Canvas2D, Card, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CaseStudyCard, CaseStudyOrganism, Center, Chart, ChartLegend, ChatBar, Checkbox, ChemistryCanvas, ChoiceButton, ClassifierBoard, Coachmark, CodeBlock, CodeRunnerPanel, CollapsibleSection, ComboCounter, CommunityLinks, ConditionalWrapper, ConfettiEffect, ConfirmDialog, ConnectionBlock, Container, ContentRenderer, ContentSection, ControlButton, ControlGrid, CounterTemplate, DEFAULT_LIKERT_OPTIONS, DEFAULT_MATRIX_COLUMNS, DEFAULT_SLOTS, DIAMOND_TOP_Y, DamageNumber, DashboardGrid, DashboardLayout, DataGrid, DataList, DataTable, DateRangePicker, DateRangeSelector, DayCell, DebuggerBoard, DetailPanel, Dialog, DialogueBubble, Divider, DocBreadcrumb, DocPagination, DocSearch, DocSidebar, DocTOC, DocumentViewer, StateMachineView as DomStateMachineVisualizer, Drawer, DrawerSlot, ELEMENT_SELECTED_EVENT, EMPTY_EFFECT_STATE, EdgeDecoration, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EmptyState, EntityDisplayEvents, ErrorBoundary, ErrorState, EventHandlerBoard, EventLog, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FeatureCard, FeatureDetailPageTemplate, FeatureGrid, FeatureGridOrganism, FileTree, FilterGroup, FilterPill, Flex, FlipCard, FlipContainer, FloatingActionButton, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, GameAudioContext, GameAudioProvider, GameAudioToggle, GameCard, GameHud, GameIcon, GameMenu, GameShell, GameTemplate, GenericAppTemplate, GeometricPattern, GradientDivider, GraphCanvas, GraphView, Grid, GridPicker, HStack, Header, HealthBar, HeroOrganism, HeroSection, I18nProvider, IDENTITY_BOOK_FIELDS, Icon, IconPicker, InfiniteScrollSentinel, Input, InputGroup, InstallBox, InventoryGrid, ItemSlot, JazariStateMachine, JsonTreeEditor, Label, LandingPageTemplate, LawReferenceTooltip, LearningCanvas, Lightbox, LikertScale, LineChart2 as LineChart, List3 as List, LoadingState, MapView, MarkdownContent, MarketingFooter, MarketingStatCard, MasterDetail, MasterDetailLayout, MathCanvas, MatrixQuestion, MediaGallery, Menu, Meter, MiniMap, Modal, ModalSlot, ModuleCard, Navigation, NegotiatorBoard, NodeSlotEditor, NotifyListener, NumberStepper, ObjectRulePanel, OnboardingSpotlight, OptionConstraintGroup, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, Overlay, PageHeader, Pagination, PatternTile, PhysicsCanvas, Popover, PositionedCanvas, PricingCard, PricingGrid, PricingOrganism, PricingPageTemplate, ProgressBar, ProgressDots, PropertyInspector, PullQuote, PullToRefresh, QrScanner, QuizBlock, Radio, RangeSlider, ReflectionBlock, RelationSelect, RepeatableFormSection, ReplyTree, ResourceBar, ResourceCounter, RichBlockEditor, RuleEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreDisplay, SearchInput, Section, SectionHeader, SegmentRenderer, Select, SequenceBar, SequencerBoard, ServiceCatalog, ShowcaseCard, ShowcaseOrganism, SidePanel, Sidebar, SignaturePad, SimpleGrid, SimulatorBoard, Skeleton, SlotContentRenderer, SocialProof, SortableList, Spacer, Sparkline, Spinner, Split, SplitPane, SplitSection, Sprite, Stack, StarRating, StatBadge, StatCard, StatDisplay, StateArchitectBoard, StateGraph, StateIndicator, StateJsonView, StateMachineView, StateNode2 as StateNode, StatsGrid, StatsOrganism, StatusBar, StatusDot, StatusEffect, StepFlow, StepFlowOrganism, SubagentTracePanel, SvgBranch, SvgConnection, SvgFlow, SvgGrid, SvgLobe, SvgMesh, SvgMorph, SvgNode, SvgPulse, SvgRing, SvgShield, SvgStack, SwipeableRow, Switch, TERRAIN_COLORS2 as TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, TableView, Tabs, TagCloud, TagInput, TeamCard, TeamOrganism, TerrainPalette, TextHighlight, Textarea, ThemeToggle, TimeSlotCell, Timeline, TimerDisplay, Toast, ToastSlot, Tooltip, TraitFrame, TraitSlot, TraitStateViewer, TransitionArrow, TrendIndicator, TurnIndicator, TypewriterText, Typography, UISlotComponent, UISlotRenderer, UploadDropZone, VStack, VariablePanel, VersionDiff, ViolationAlert, VoteStack, WaypointMarker, WizardContainer, WizardNavigation, WizardProgress, boardEntity, bool, calculateAttackTargets, calculateValidMoves, cn, createInitialGameState, createSharedEntityStore, createTranslate, createUnitAnimationState, drawSprite, getCurrentFrame, getTileDimensions, inferDirection, isoToScreen, makeAsset, makeAssetMap, mapBookData, num, objAvailableActions, objAvailableEvents, objCurrentState, objIcon, objId, objMaxRules, objName, objRules, objStates, parseEditFocus, parseLessonSegments, parseMarkdownWithCodeBlocks, parseQueryBinding, pendulum, projectileMotion, resolveFieldMap, resolveFrame, resolveSheetDirection, rows, runTickFrame, screenToIso, springOscillator, str, tickAnimationState, toCodeLanguage, transitionAnimation, unitHealth, unitPosition, unitTeam, useAgentChat, useAnchorRect, useAtlasSliceDataUrl, useAuthContext, useCamera, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEmitEvent, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useGameAudio, useGameAudioContext, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useImageCache, useInfiniteScroll, useLongPress, useOrbitalHistory, usePreview, usePullToRefresh, useQuerySingleton, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSwipeGesture, useTapReveal, useTraitListens, useTranslate127 as useTranslate, useUIEvents, useUISlotManager, useUnitSpriteAtlas, useValidation, vec2 };
|
|
@@ -25,7 +25,7 @@ export interface GitHubRepo {
|
|
|
25
25
|
/**
|
|
26
26
|
* Hook to get GitHub connection status
|
|
27
27
|
*/
|
|
28
|
-
export declare function useGitHubStatus(): import("@tanstack/react-query").UseQueryResult<GitHubStatus
|
|
28
|
+
export declare function useGitHubStatus(): import("@tanstack/react-query").UseQueryResult<NoInfer<GitHubStatus>, Error>;
|
|
29
29
|
/**
|
|
30
30
|
* Hook to connect GitHub (initiate OAuth flow)
|
|
31
31
|
*/
|
|
@@ -39,20 +39,20 @@ export declare function useDisconnectGitHub(): import("@tanstack/react-query").U
|
|
|
39
39
|
/**
|
|
40
40
|
* Hook to list GitHub repositories
|
|
41
41
|
*/
|
|
42
|
-
export declare function useGitHubRepos(page?: number, perPage?: number): import("@tanstack/react-query").UseQueryResult<{
|
|
42
|
+
export declare function useGitHubRepos(page?: number, perPage?: number): import("@tanstack/react-query").UseQueryResult<NoInfer<{
|
|
43
43
|
repos: GitHubRepo[];
|
|
44
44
|
page: number;
|
|
45
45
|
perPage: number;
|
|
46
|
-
}
|
|
46
|
+
}>, Error>;
|
|
47
47
|
/**
|
|
48
48
|
* Hook to get repository details
|
|
49
49
|
*/
|
|
50
|
-
export declare function useGitHubRepo(owner: string, repo: string, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<{
|
|
50
|
+
export declare function useGitHubRepo(owner: string, repo: string, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<NoInfer<{
|
|
51
51
|
repo: GitHubRepo;
|
|
52
|
-
}
|
|
52
|
+
}>, Error>;
|
|
53
53
|
/**
|
|
54
54
|
* Hook to list repository branches
|
|
55
55
|
*/
|
|
56
|
-
export declare function useGitHubBranches(owner: string, repo: string, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<{
|
|
56
|
+
export declare function useGitHubBranches(owner: string, repo: string, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<NoInfer<{
|
|
57
57
|
branches: string[];
|
|
58
|
-
}
|
|
58
|
+
}>, Error>;
|
package/dist/marketing/index.cjs
CHANGED
|
@@ -26,7 +26,7 @@ function _interopNamespace(e) {
|
|
|
26
26
|
var React12__namespace = /*#__PURE__*/_interopNamespace(React12);
|
|
27
27
|
var LucideIcons2__namespace = /*#__PURE__*/_interopNamespace(LucideIcons2);
|
|
28
28
|
|
|
29
|
-
// node_modules/clsx/dist/clsx.mjs
|
|
29
|
+
// node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
|
|
30
30
|
function r(e) {
|
|
31
31
|
var t, f3, n = "";
|
|
32
32
|
if ("string" == typeof e || "number" == typeof e) n += e;
|
|
@@ -41,7 +41,7 @@ function clsx() {
|
|
|
41
41
|
return n;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
// node_modules/tailwind-merge/dist/bundle-mjs.mjs
|
|
44
|
+
// node_modules/.pnpm/tailwind-merge@2.6.1/node_modules/tailwind-merge/dist/bundle-mjs.mjs
|
|
45
45
|
var CLASS_PART_SEPARATOR = "-";
|
|
46
46
|
var createClassGroupUtils = (config) => {
|
|
47
47
|
const classMap = createClassMap(config);
|