@almadar/ui 5.101.0 → 5.104.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 +253 -49
- package/dist/avl/index.css +3 -3
- package/dist/avl/index.js +255 -51
- 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 +5 -4
- 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/StatBadge.d.ts +2 -1
- package/dist/components/game/shared/lib/editorUtils.d.ts +8 -8
- package/dist/components/index.cjs +100 -24
- package/dist/components/index.css +3 -3
- package/dist/components/index.js +85 -13
- package/dist/hooks/index.cjs +71 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +69 -2
- package/dist/hooks/useGitHub.d.ts +7 -7
- package/dist/hooks/useSharedEntityStore.d.ts +53 -0
- package/dist/hooks/useTraitStateMachine.d.ts +32 -1
- 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 +11 -5
- package/dist/providers/index.css +3 -3
- package/dist/providers/index.js +11 -5
- package/dist/runtime/index.cjs +253 -49
- package/dist/runtime/index.css +3 -3
- package/dist/runtime/index.js +255 -51
- package/package.json +11 -16
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as React from "react";
|
|
1
2
|
import { type StatBadgeProps } from "./StatBadge";
|
|
2
3
|
import type { Asset } from "@almadar/core";
|
|
3
4
|
import type { IconInput } from "../../../core/atoms/index";
|
|
@@ -45,7 +46,7 @@ export interface GameHudProps {
|
|
|
45
46
|
/** Whether to use a semi-transparent background */
|
|
46
47
|
transparent?: boolean;
|
|
47
48
|
}
|
|
48
|
-
export declare function GameHud({ position: propPosition, stats: propStats, items, elements, size, className, transparent, }: GameHudProps):
|
|
49
|
+
export declare function GameHud({ position: propPosition, stats: propStats, items, elements, size, className, transparent, }: GameHudProps): React.JSX.Element;
|
|
49
50
|
export declare namespace GameHud {
|
|
50
51
|
var displayName: string;
|
|
51
52
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as React from "react";
|
|
1
2
|
import type { EventKey, EventPayload, Asset } from "@almadar/core";
|
|
2
3
|
export type MenuOption = EventPayload & {
|
|
3
4
|
/** Optional ID (generated from index if not provided) */
|
|
@@ -35,7 +36,7 @@ export interface GameMenuProps {
|
|
|
35
36
|
/** Additional CSS classes */
|
|
36
37
|
className?: string;
|
|
37
38
|
}
|
|
38
|
-
export declare function GameMenu({ title, subtitle, options, menuItems, onSelect, background, logo, className, }: GameMenuProps):
|
|
39
|
+
export declare function GameMenu({ title, subtitle, options, menuItems, onSelect, background, logo, className, }: GameMenuProps): React.JSX.Element;
|
|
39
40
|
export declare namespace GameMenu {
|
|
40
41
|
var displayName: string;
|
|
41
42
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
import type { EventEmit, Asset } from '@almadar/core';
|
|
2
3
|
import type { IconInput } from '../../../core/atoms/index';
|
|
3
4
|
export interface InventoryGridItem {
|
|
@@ -28,7 +29,7 @@ export interface InventoryGridProps {
|
|
|
28
29
|
/** Additional CSS classes */
|
|
29
30
|
className?: string;
|
|
30
31
|
}
|
|
31
|
-
export declare function InventoryGrid({ items, columns, totalSlots, selectedId, onSelect, selectEvent, size, className, }: InventoryGridProps):
|
|
32
|
+
export declare function InventoryGrid({ items, columns, totalSlots, selectedId, onSelect, selectEvent, size, className, }: InventoryGridProps): React.JSX.Element;
|
|
32
33
|
export declare namespace InventoryGrid {
|
|
33
34
|
var displayName: string;
|
|
34
35
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
import type { Asset } from '@almadar/core';
|
|
2
3
|
import type { IconInput } from '../../../core/atoms/index';
|
|
3
4
|
export interface ResourceBarResource {
|
|
@@ -19,7 +20,7 @@ export interface ResourceBarProps {
|
|
|
19
20
|
/** Additional CSS classes */
|
|
20
21
|
className?: string;
|
|
21
22
|
}
|
|
22
|
-
export declare function ResourceBar({ resources, size, className, }: ResourceBarProps):
|
|
23
|
+
export declare function ResourceBar({ resources, size, className, }: ResourceBarProps): React.JSX.Element;
|
|
23
24
|
export declare namespace ResourceBar {
|
|
24
25
|
var displayName: string;
|
|
25
26
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
import { type IconInput } from '../../../core/atoms/Icon';
|
|
2
3
|
import type { Asset } from '@almadar/core';
|
|
3
4
|
/**
|
|
@@ -32,7 +33,7 @@ export interface StatBadgeProps {
|
|
|
32
33
|
/** Additional CSS classes */
|
|
33
34
|
className?: string;
|
|
34
35
|
}
|
|
35
|
-
export declare function StatBadge({ assetUrl, iconUrl, label, value, max, format, icon, size, variant, className, source: _source, field: _field, }: StatBadgeProps):
|
|
36
|
+
export declare function StatBadge({ assetUrl, iconUrl, label, value, max, format, icon, size, variant, className, source: _source, field: _field, }: StatBadgeProps): React.JSX.Element;
|
|
36
37
|
export declare namespace StatBadge {
|
|
37
38
|
var displayName: string;
|
|
38
39
|
}
|
|
@@ -23,7 +23,7 @@ export interface CollapsibleSectionProps {
|
|
|
23
23
|
};
|
|
24
24
|
className?: string;
|
|
25
25
|
}
|
|
26
|
-
export declare function CollapsibleSection({ title, expanded, onToggle, children, assetManifest, className }: CollapsibleSectionProps):
|
|
26
|
+
export declare function CollapsibleSection({ title, expanded, onToggle, children, assetManifest, className }: CollapsibleSectionProps): React.JSX.Element;
|
|
27
27
|
export declare namespace CollapsibleSection {
|
|
28
28
|
var displayName: string;
|
|
29
29
|
}
|
|
@@ -36,7 +36,7 @@ export interface EditorSliderProps {
|
|
|
36
36
|
onChange: (value: number) => void;
|
|
37
37
|
className?: string;
|
|
38
38
|
}
|
|
39
|
-
export declare function EditorSlider({ label, value, min, max, step, onChange, className }: EditorSliderProps):
|
|
39
|
+
export declare function EditorSlider({ label, value, min, max, step, onChange, className }: EditorSliderProps): React.JSX.Element;
|
|
40
40
|
export declare namespace EditorSlider {
|
|
41
41
|
var displayName: string;
|
|
42
42
|
}
|
|
@@ -50,7 +50,7 @@ export interface EditorSelectProps {
|
|
|
50
50
|
onChange: (value: string) => void;
|
|
51
51
|
className?: string;
|
|
52
52
|
}
|
|
53
|
-
export declare function EditorSelect({ label, value, options, onChange, className }: EditorSelectProps):
|
|
53
|
+
export declare function EditorSelect({ label, value, options, onChange, className }: EditorSelectProps): React.JSX.Element;
|
|
54
54
|
export declare namespace EditorSelect {
|
|
55
55
|
var displayName: string;
|
|
56
56
|
}
|
|
@@ -60,7 +60,7 @@ export interface EditorCheckboxProps {
|
|
|
60
60
|
onChange: (checked: boolean) => void;
|
|
61
61
|
className?: string;
|
|
62
62
|
}
|
|
63
|
-
export declare function EditorCheckbox({ label, checked, onChange, className }: EditorCheckboxProps):
|
|
63
|
+
export declare function EditorCheckbox({ label, checked, onChange, className }: EditorCheckboxProps): React.JSX.Element;
|
|
64
64
|
export declare namespace EditorCheckbox {
|
|
65
65
|
var displayName: string;
|
|
66
66
|
}
|
|
@@ -71,7 +71,7 @@ export interface EditorTextInputProps {
|
|
|
71
71
|
placeholder?: string;
|
|
72
72
|
className?: string;
|
|
73
73
|
}
|
|
74
|
-
export declare function EditorTextInput({ label, value, onChange, placeholder, className }: EditorTextInputProps):
|
|
74
|
+
export declare function EditorTextInput({ label, value, onChange, placeholder, className }: EditorTextInputProps): React.JSX.Element;
|
|
75
75
|
export declare namespace EditorTextInput {
|
|
76
76
|
var displayName: string;
|
|
77
77
|
}
|
|
@@ -89,7 +89,7 @@ export interface StatusBarProps {
|
|
|
89
89
|
featureCount?: number;
|
|
90
90
|
className?: string;
|
|
91
91
|
}
|
|
92
|
-
export declare function StatusBar({ hoveredTile, mode, gridSize, unitCount, featureCount, className }: StatusBarProps):
|
|
92
|
+
export declare function StatusBar({ hoveredTile, mode, gridSize, unitCount, featureCount, className }: StatusBarProps): React.JSX.Element;
|
|
93
93
|
export declare namespace StatusBar {
|
|
94
94
|
var displayName: string;
|
|
95
95
|
}
|
|
@@ -99,7 +99,7 @@ export interface TerrainPaletteProps {
|
|
|
99
99
|
onSelect: (terrain: string) => void;
|
|
100
100
|
className?: string;
|
|
101
101
|
}
|
|
102
|
-
export declare function TerrainPalette({ terrains, selectedTerrain, onSelect, className }: TerrainPaletteProps):
|
|
102
|
+
export declare function TerrainPalette({ terrains, selectedTerrain, onSelect, className }: TerrainPaletteProps): React.JSX.Element;
|
|
103
103
|
export declare namespace TerrainPalette {
|
|
104
104
|
var displayName: string;
|
|
105
105
|
}
|
|
@@ -108,7 +108,7 @@ export interface EditorToolbarProps {
|
|
|
108
108
|
onModeChange: (mode: EditorMode) => void;
|
|
109
109
|
className?: string;
|
|
110
110
|
}
|
|
111
|
-
export declare function EditorToolbar({ mode, onModeChange, className }: EditorToolbarProps):
|
|
111
|
+
export declare function EditorToolbar({ mode, onModeChange, className }: EditorToolbarProps): React.JSX.Element;
|
|
112
112
|
export declare namespace EditorToolbar {
|
|
113
113
|
var displayName: string;
|
|
114
114
|
}
|
|
@@ -36,8 +36,8 @@ var ReactMarkdown = require('react-markdown');
|
|
|
36
36
|
var remarkGfm = require('remark-gfm');
|
|
37
37
|
var remarkMath = require('remark-math');
|
|
38
38
|
var rehypeKatex = require('rehype-katex');
|
|
39
|
-
var core
|
|
40
|
-
var core = require('@dnd-kit/core');
|
|
39
|
+
var core = require('@almadar/core');
|
|
40
|
+
var core$1 = require('@dnd-kit/core');
|
|
41
41
|
var sortable = require('@dnd-kit/sortable');
|
|
42
42
|
var utilities = require('@dnd-kit/utilities');
|
|
43
43
|
var react = require('@xyflow/react');
|
|
@@ -10322,9 +10322,9 @@ var init_BiologyCanvas = __esm({
|
|
|
10322
10322
|
}
|
|
10323
10323
|
});
|
|
10324
10324
|
|
|
10325
|
-
// node_modules/katex/dist/katex.min.css
|
|
10325
|
+
// node_modules/.pnpm/katex@0.16.47/node_modules/katex/dist/katex.min.css
|
|
10326
10326
|
var init_katex_min = __esm({
|
|
10327
|
-
"node_modules/katex/dist/katex.min.css"() {
|
|
10327
|
+
"node_modules/.pnpm/katex@0.16.47/node_modules/katex/dist/katex.min.css"() {
|
|
10328
10328
|
}
|
|
10329
10329
|
});
|
|
10330
10330
|
exports.Tabs = void 0;
|
|
@@ -13236,7 +13236,7 @@ function extractTrait(schema, trait, traitIndex) {
|
|
|
13236
13236
|
const traits2 = orbital.traits ?? [];
|
|
13237
13237
|
if (traitIndex < traits2.length) {
|
|
13238
13238
|
const traitRef = traits2[traitIndex];
|
|
13239
|
-
if (core
|
|
13239
|
+
if (core.isInlineTrait(traitRef)) return traitRef;
|
|
13240
13240
|
return null;
|
|
13241
13241
|
}
|
|
13242
13242
|
}
|
|
@@ -16380,6 +16380,9 @@ var init_isometric = __esm({
|
|
|
16380
16380
|
};
|
|
16381
16381
|
}
|
|
16382
16382
|
});
|
|
16383
|
+
function normalizeBackdrop(bg) {
|
|
16384
|
+
return typeof bg === "string" ? { url: bg, role: "decoration", category: "background" } : bg;
|
|
16385
|
+
}
|
|
16383
16386
|
function SideView({
|
|
16384
16387
|
player,
|
|
16385
16388
|
platforms,
|
|
@@ -16389,7 +16392,7 @@ function SideView({
|
|
|
16389
16392
|
canvasHeight,
|
|
16390
16393
|
follow,
|
|
16391
16394
|
bgColor,
|
|
16392
|
-
backgroundImage,
|
|
16395
|
+
backgroundImage: backgroundImageRaw,
|
|
16393
16396
|
playerSprite,
|
|
16394
16397
|
tileSprites,
|
|
16395
16398
|
effects,
|
|
@@ -16397,6 +16400,7 @@ function SideView({
|
|
|
16397
16400
|
keyUpMap,
|
|
16398
16401
|
className
|
|
16399
16402
|
}) {
|
|
16403
|
+
const backgroundImage = normalizeBackdrop(backgroundImageRaw);
|
|
16400
16404
|
const canvasRef = React75.useRef(null);
|
|
16401
16405
|
const eventBus = useEventBus();
|
|
16402
16406
|
const keysRef = React75.useRef(/* @__PURE__ */ new Set());
|
|
@@ -16688,7 +16692,7 @@ function Canvas2D({
|
|
|
16688
16692
|
effects: _effectsPropRaw = [],
|
|
16689
16693
|
platforms,
|
|
16690
16694
|
player,
|
|
16691
|
-
backgroundImage,
|
|
16695
|
+
backgroundImage: backgroundImageRaw,
|
|
16692
16696
|
// Interaction state
|
|
16693
16697
|
selectedUnitId = null,
|
|
16694
16698
|
validMoves = [],
|
|
@@ -16729,6 +16733,7 @@ function Canvas2D({
|
|
|
16729
16733
|
// Remote asset loading
|
|
16730
16734
|
assetManifest
|
|
16731
16735
|
}) {
|
|
16736
|
+
const backgroundImage = normalizeBackdrop(backgroundImageRaw);
|
|
16732
16737
|
const isSide = projection === "side";
|
|
16733
16738
|
const isFree = projection === "free";
|
|
16734
16739
|
const flatLike = projection === "hex" || projection === "flat" || isFree;
|
|
@@ -21562,12 +21567,12 @@ var init_Menu = __esm({
|
|
|
21562
21567
|
}
|
|
21563
21568
|
});
|
|
21564
21569
|
function useAlmadarDndSensors(withSortableKeyboard = true) {
|
|
21565
|
-
return core.useSensors(
|
|
21566
|
-
core.useSensor(core.PointerSensor, {
|
|
21570
|
+
return core$1.useSensors(
|
|
21571
|
+
core$1.useSensor(core$1.PointerSensor, {
|
|
21567
21572
|
activationConstraint: { distance: ALMADAR_DND_ACTIVATION_DISTANCE }
|
|
21568
21573
|
}),
|
|
21569
|
-
core.useSensor(
|
|
21570
|
-
core.KeyboardSensor,
|
|
21574
|
+
core$1.useSensor(
|
|
21575
|
+
core$1.KeyboardSensor,
|
|
21571
21576
|
withSortableKeyboard ? { coordinateGetter: sortable.sortableKeyboardCoordinates } : void 0
|
|
21572
21577
|
)
|
|
21573
21578
|
);
|
|
@@ -21578,11 +21583,11 @@ var init_useAlmadarDndCollision = __esm({
|
|
|
21578
21583
|
"use client";
|
|
21579
21584
|
ALMADAR_DND_ACTIVATION_DISTANCE = 5;
|
|
21580
21585
|
almadarDndCollisionDetection = (args) => {
|
|
21581
|
-
const pw = core.pointerWithin(args);
|
|
21586
|
+
const pw = core$1.pointerWithin(args);
|
|
21582
21587
|
if (pw.length > 0) return pw;
|
|
21583
|
-
const ri = core.rectIntersection(args);
|
|
21588
|
+
const ri = core$1.rectIntersection(args);
|
|
21584
21589
|
if (ri.length > 0) return ri;
|
|
21585
|
-
return core.closestCorners(args);
|
|
21590
|
+
return core$1.closestCorners(args);
|
|
21586
21591
|
};
|
|
21587
21592
|
}
|
|
21588
21593
|
});
|
|
@@ -21831,7 +21836,7 @@ function useDataDnd(args) {
|
|
|
21831
21836
|
);
|
|
21832
21837
|
const DropZoneShell = ({ children }) => {
|
|
21833
21838
|
const droppableId = `dnd-zone-${zoneId}`;
|
|
21834
|
-
const { setNodeRef, isOver } = core.useDroppable({
|
|
21839
|
+
const { setNodeRef, isOver } = core$1.useDroppable({
|
|
21835
21840
|
id: droppableId,
|
|
21836
21841
|
data: sortableData
|
|
21837
21842
|
});
|
|
@@ -21977,7 +21982,7 @@ function useDataDnd(args) {
|
|
|
21977
21982
|
if (!isZone) {
|
|
21978
21983
|
if (!isRoot) return children;
|
|
21979
21984
|
return /* @__PURE__ */ jsxRuntime.jsx(RootCtx.Provider, { value: rootContextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
21980
|
-
core.DndContext,
|
|
21985
|
+
core$1.DndContext,
|
|
21981
21986
|
{
|
|
21982
21987
|
sensors,
|
|
21983
21988
|
collisionDetection,
|
|
@@ -21992,7 +21997,7 @@ function useDataDnd(args) {
|
|
|
21992
21997
|
const inner = /* @__PURE__ */ jsxRuntime.jsx(DropZoneShell, { children: /* @__PURE__ */ jsxRuntime.jsx(sortable.SortableContext, { items: itemIds, strategy, children }) });
|
|
21993
21998
|
if (isRoot) {
|
|
21994
21999
|
return /* @__PURE__ */ jsxRuntime.jsx(RootCtx.Provider, { value: rootContextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
21995
|
-
core.DndContext,
|
|
22000
|
+
core$1.DndContext,
|
|
21996
22001
|
{
|
|
21997
22002
|
sensors,
|
|
21998
22003
|
collisionDetection,
|
|
@@ -26768,8 +26773,9 @@ var init_LineChart = __esm({
|
|
|
26768
26773
|
const safeData = data ?? [];
|
|
26769
26774
|
const sortedData = React75.useMemo(() => {
|
|
26770
26775
|
if (safeData.length === 0) return [];
|
|
26776
|
+
if (!safeData.some((d) => d.date != null)) return [...safeData];
|
|
26771
26777
|
return [...safeData].sort(
|
|
26772
|
-
(a, b) => new Date(a.date).getTime() - new Date(b.date).getTime()
|
|
26778
|
+
(a, b) => new Date(a.date ?? 0).getTime() - new Date(b.date ?? 0).getTime()
|
|
26773
26779
|
);
|
|
26774
26780
|
}, [safeData]);
|
|
26775
26781
|
const points = React75.useMemo(() => {
|
|
@@ -32208,12 +32214,12 @@ var init_MapView = __esm({
|
|
|
32208
32214
|
shadowSize: [41, 41]
|
|
32209
32215
|
});
|
|
32210
32216
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
32211
|
-
const { useEffect: useEffect70, useRef:
|
|
32217
|
+
const { useEffect: useEffect70, useRef: useRef66, useCallback: useCallback113, useState: useState108 } = React75__namespace.default;
|
|
32212
32218
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
32213
32219
|
const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
32214
32220
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
32215
32221
|
const map = useMap();
|
|
32216
|
-
const prevRef =
|
|
32222
|
+
const prevRef = useRef66({ centerLat, centerLng, zoom });
|
|
32217
32223
|
useEffect70(() => {
|
|
32218
32224
|
const prev = prevRef.current;
|
|
32219
32225
|
if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
|
|
@@ -45740,7 +45746,7 @@ function extractPayloadFields(schema, eventName) {
|
|
|
45740
45746
|
for (const orbital of schema.orbitals) {
|
|
45741
45747
|
const traitRefs = orbital.traits ?? [];
|
|
45742
45748
|
for (const traitRef of traitRefs) {
|
|
45743
|
-
if (!core
|
|
45749
|
+
if (!core.isInlineTrait(traitRef)) continue;
|
|
45744
45750
|
const inlineTrait = traitRef;
|
|
45745
45751
|
const sm = inlineTrait.stateMachine;
|
|
45746
45752
|
if (!sm) continue;
|
|
@@ -45811,7 +45817,7 @@ function getAllEvents(traits2) {
|
|
|
45811
45817
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
45812
45818
|
const eventBus = useEventBus();
|
|
45813
45819
|
const { t } = hooks.useTranslate();
|
|
45814
|
-
const [
|
|
45820
|
+
const [log19, setLog] = React75__namespace.useState([]);
|
|
45815
45821
|
const prevStatesRef = React75__namespace.useRef(/* @__PURE__ */ new Map());
|
|
45816
45822
|
React75__namespace.useEffect(() => {
|
|
45817
45823
|
for (const trait of traits2) {
|
|
@@ -45875,9 +45881,9 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
45875
45881
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.otherEvents") }),
|
|
45876
45882
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: unavailableEvents.map((event) => /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "default", size: "sm", className: "opacity-50", children: event }, event)) })
|
|
45877
45883
|
] }),
|
|
45878
|
-
|
|
45884
|
+
log19.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
45879
45885
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.recentTransitions") }),
|
|
45880
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "xs", children:
|
|
45886
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "xs", children: log19.map((entry, i) => /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "font-mono text-xs", children: [
|
|
45881
45887
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-purple-400", children: entry.traitName }),
|
|
45882
45888
|
" ",
|
|
45883
45889
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-500", children: entry.from }),
|
|
@@ -51092,6 +51098,72 @@ function useTraitListens(dispatch, listens, eventBusInstance) {
|
|
|
51092
51098
|
};
|
|
51093
51099
|
}, [eventBus, dispatch, stableListens]);
|
|
51094
51100
|
}
|
|
51101
|
+
var log18 = logger.createLogger("almadar:ui:shared-entity-store");
|
|
51102
|
+
var EMPTY_ENTITY_STATE = {};
|
|
51103
|
+
function createSharedEntityStore() {
|
|
51104
|
+
const states = /* @__PURE__ */ new Map();
|
|
51105
|
+
const subscribers = /* @__PURE__ */ new Map();
|
|
51106
|
+
const getSnapshot2 = (entityId) => states.get(entityId) ?? EMPTY_ENTITY_STATE;
|
|
51107
|
+
const subscribe = (entityId, callback) => {
|
|
51108
|
+
let set = subscribers.get(entityId);
|
|
51109
|
+
if (!set) {
|
|
51110
|
+
set = /* @__PURE__ */ new Set();
|
|
51111
|
+
subscribers.set(entityId, set);
|
|
51112
|
+
}
|
|
51113
|
+
set.add(callback);
|
|
51114
|
+
return () => {
|
|
51115
|
+
const current = subscribers.get(entityId);
|
|
51116
|
+
if (!current) return;
|
|
51117
|
+
current.delete(callback);
|
|
51118
|
+
if (current.size === 0) {
|
|
51119
|
+
subscribers.delete(entityId);
|
|
51120
|
+
}
|
|
51121
|
+
};
|
|
51122
|
+
};
|
|
51123
|
+
const commit = (entityId, nextState) => {
|
|
51124
|
+
states.set(entityId, nextState);
|
|
51125
|
+
const set = subscribers.get(entityId);
|
|
51126
|
+
if (!set) return;
|
|
51127
|
+
set.forEach((callback) => {
|
|
51128
|
+
try {
|
|
51129
|
+
callback();
|
|
51130
|
+
} catch (error) {
|
|
51131
|
+
log18.error("Shared entity subscriber error", {
|
|
51132
|
+
entityId,
|
|
51133
|
+
error: error instanceof Error ? error : String(error)
|
|
51134
|
+
});
|
|
51135
|
+
}
|
|
51136
|
+
});
|
|
51137
|
+
};
|
|
51138
|
+
const seed = (entityId, initialState) => {
|
|
51139
|
+
if (!states.has(entityId)) {
|
|
51140
|
+
states.set(entityId, initialState);
|
|
51141
|
+
}
|
|
51142
|
+
};
|
|
51143
|
+
return { getSnapshot: getSnapshot2, subscribe, commit, seed };
|
|
51144
|
+
}
|
|
51145
|
+
function useSharedEntityStore() {
|
|
51146
|
+
const storeRef = React75.useRef(null);
|
|
51147
|
+
if (storeRef.current === null) {
|
|
51148
|
+
storeRef.current = createSharedEntityStore();
|
|
51149
|
+
}
|
|
51150
|
+
return storeRef.current;
|
|
51151
|
+
}
|
|
51152
|
+
function useSharedEntitySnapshot(store, entityId) {
|
|
51153
|
+
return React75.useSyncExternalStore(
|
|
51154
|
+
(onStoreChange) => store.subscribe(entityId, onStoreChange),
|
|
51155
|
+
() => store.getSnapshot(entityId)
|
|
51156
|
+
);
|
|
51157
|
+
}
|
|
51158
|
+
function runTickFrame(entityId, orderedWriters, store) {
|
|
51159
|
+
let scratch = store.getSnapshot(entityId);
|
|
51160
|
+
for (const writer of orderedWriters) {
|
|
51161
|
+
const writes = writer(scratch);
|
|
51162
|
+
scratch = core.mergeEntityFrame(scratch, writes);
|
|
51163
|
+
}
|
|
51164
|
+
store.commit(entityId, scratch);
|
|
51165
|
+
return scratch;
|
|
51166
|
+
}
|
|
51095
51167
|
|
|
51096
51168
|
// hooks/index.ts
|
|
51097
51169
|
init_useQuerySingleton();
|
|
@@ -51982,6 +52054,7 @@ exports.calculateAttackTargets = calculateAttackTargets;
|
|
|
51982
52054
|
exports.calculateValidMoves = calculateValidMoves;
|
|
51983
52055
|
exports.cn = cn;
|
|
51984
52056
|
exports.createInitialGameState = createInitialGameState;
|
|
52057
|
+
exports.createSharedEntityStore = createSharedEntityStore;
|
|
51985
52058
|
exports.createTranslate = createTranslate;
|
|
51986
52059
|
exports.createUnitAnimationState = createUnitAnimationState;
|
|
51987
52060
|
exports.drawSprite = drawSprite;
|
|
@@ -52010,6 +52083,7 @@ exports.resolveFieldMap = resolveFieldMap;
|
|
|
52010
52083
|
exports.resolveFrame = resolveFrame;
|
|
52011
52084
|
exports.resolveSheetDirection = resolveSheetDirection;
|
|
52012
52085
|
exports.rows = rows;
|
|
52086
|
+
exports.runTickFrame = runTickFrame;
|
|
52013
52087
|
exports.screenToIso = screenToIso;
|
|
52014
52088
|
exports.str = str;
|
|
52015
52089
|
exports.tickAnimationState = tickAnimationState;
|
|
@@ -52051,6 +52125,8 @@ exports.usePreview = usePreview;
|
|
|
52051
52125
|
exports.usePullToRefresh = usePullToRefresh;
|
|
52052
52126
|
exports.useQuerySingleton = useQuerySingleton;
|
|
52053
52127
|
exports.useRenderInterpolation = useRenderInterpolation;
|
|
52128
|
+
exports.useSharedEntitySnapshot = useSharedEntitySnapshot;
|
|
52129
|
+
exports.useSharedEntityStore = useSharedEntityStore;
|
|
52054
52130
|
exports.useSwipeGesture = useSwipeGesture;
|
|
52055
52131
|
exports.useTapReveal = useTapReveal;
|
|
52056
52132
|
exports.useTraitListens = useTraitListens;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* node_modules/katex/dist/katex.min.css */
|
|
1
|
+
/* node_modules/.pnpm/katex@0.16.47/node_modules/katex/dist/katex.min.css */
|
|
2
2
|
@font-face {
|
|
3
3
|
font-display: block;
|
|
4
4
|
font-family: KaTeX_AMS;
|
|
@@ -214,11 +214,11 @@
|
|
|
214
214
|
border-color: currentColor;
|
|
215
215
|
}
|
|
216
216
|
.katex .katex-version:after {
|
|
217
|
-
content: "0.16.
|
|
217
|
+
content: "0.16.47";
|
|
218
218
|
}
|
|
219
219
|
.katex .katex-mathml {
|
|
220
|
-
clip: rect(1px, 1px, 1px, 1px);
|
|
221
220
|
border: 0;
|
|
221
|
+
clip-path: inset(50%);
|
|
222
222
|
height: 1px;
|
|
223
223
|
overflow: hidden;
|
|
224
224
|
padding: 0;
|
package/dist/components/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import * as React75 from 'react';
|
|
3
|
-
import React75__default, { createContext, useContext, useMemo, useRef, useEffect, useCallback, useState, Suspense, lazy, useLayoutEffect, useId
|
|
3
|
+
import React75__default, { createContext, useContext, useMemo, useRef, useEffect, useCallback, useState, Suspense, lazy, useSyncExternalStore, useLayoutEffect, useId } from 'react';
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { EventBusContext, useTraitScope, useCurrentPagePath, useEntitySchemaOptional, TraitScopeProvider } from '@almadar/ui/providers';
|
|
@@ -36,7 +36,7 @@ import ReactMarkdown from 'react-markdown';
|
|
|
36
36
|
import remarkGfm from 'remark-gfm';
|
|
37
37
|
import remarkMath from 'remark-math';
|
|
38
38
|
import rehypeKatex from 'rehype-katex';
|
|
39
|
-
import { isInlineTrait } from '@almadar/core';
|
|
39
|
+
import { mergeEntityFrame, isInlineTrait } from '@almadar/core';
|
|
40
40
|
import { DndContext, useSensors, useSensor, PointerSensor, KeyboardSensor, useDroppable, pointerWithin, rectIntersection, closestCorners } from '@dnd-kit/core';
|
|
41
41
|
import { useSortable, arrayMove, sortableKeyboardCoordinates, SortableContext, rectSortingStrategy, verticalListSortingStrategy } from '@dnd-kit/sortable';
|
|
42
42
|
import { CSS } from '@dnd-kit/utilities';
|
|
@@ -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;
|
|
@@ -16334,6 +16334,9 @@ var init_isometric = __esm({
|
|
|
16334
16334
|
};
|
|
16335
16335
|
}
|
|
16336
16336
|
});
|
|
16337
|
+
function normalizeBackdrop(bg) {
|
|
16338
|
+
return typeof bg === "string" ? { url: bg, role: "decoration", category: "background" } : bg;
|
|
16339
|
+
}
|
|
16337
16340
|
function SideView({
|
|
16338
16341
|
player,
|
|
16339
16342
|
platforms,
|
|
@@ -16343,7 +16346,7 @@ function SideView({
|
|
|
16343
16346
|
canvasHeight,
|
|
16344
16347
|
follow,
|
|
16345
16348
|
bgColor,
|
|
16346
|
-
backgroundImage,
|
|
16349
|
+
backgroundImage: backgroundImageRaw,
|
|
16347
16350
|
playerSprite,
|
|
16348
16351
|
tileSprites,
|
|
16349
16352
|
effects,
|
|
@@ -16351,6 +16354,7 @@ function SideView({
|
|
|
16351
16354
|
keyUpMap,
|
|
16352
16355
|
className
|
|
16353
16356
|
}) {
|
|
16357
|
+
const backgroundImage = normalizeBackdrop(backgroundImageRaw);
|
|
16354
16358
|
const canvasRef = useRef(null);
|
|
16355
16359
|
const eventBus = useEventBus();
|
|
16356
16360
|
const keysRef = useRef(/* @__PURE__ */ new Set());
|
|
@@ -16642,7 +16646,7 @@ function Canvas2D({
|
|
|
16642
16646
|
effects: _effectsPropRaw = [],
|
|
16643
16647
|
platforms,
|
|
16644
16648
|
player,
|
|
16645
|
-
backgroundImage,
|
|
16649
|
+
backgroundImage: backgroundImageRaw,
|
|
16646
16650
|
// Interaction state
|
|
16647
16651
|
selectedUnitId = null,
|
|
16648
16652
|
validMoves = [],
|
|
@@ -16683,6 +16687,7 @@ function Canvas2D({
|
|
|
16683
16687
|
// Remote asset loading
|
|
16684
16688
|
assetManifest
|
|
16685
16689
|
}) {
|
|
16690
|
+
const backgroundImage = normalizeBackdrop(backgroundImageRaw);
|
|
16686
16691
|
const isSide = projection === "side";
|
|
16687
16692
|
const isFree = projection === "free";
|
|
16688
16693
|
const flatLike = projection === "hex" || projection === "flat" || isFree;
|
|
@@ -26722,8 +26727,9 @@ var init_LineChart = __esm({
|
|
|
26722
26727
|
const safeData = data ?? [];
|
|
26723
26728
|
const sortedData = useMemo(() => {
|
|
26724
26729
|
if (safeData.length === 0) return [];
|
|
26730
|
+
if (!safeData.some((d) => d.date != null)) return [...safeData];
|
|
26725
26731
|
return [...safeData].sort(
|
|
26726
|
-
(a, b) => new Date(a.date).getTime() - new Date(b.date).getTime()
|
|
26732
|
+
(a, b) => new Date(a.date ?? 0).getTime() - new Date(b.date ?? 0).getTime()
|
|
26727
26733
|
);
|
|
26728
26734
|
}, [safeData]);
|
|
26729
26735
|
const points = useMemo(() => {
|
|
@@ -32162,12 +32168,12 @@ var init_MapView = __esm({
|
|
|
32162
32168
|
shadowSize: [41, 41]
|
|
32163
32169
|
});
|
|
32164
32170
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
32165
|
-
const { useEffect: useEffect70, useRef:
|
|
32171
|
+
const { useEffect: useEffect70, useRef: useRef66, useCallback: useCallback113, useState: useState108 } = React75__default;
|
|
32166
32172
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
32167
32173
|
const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
32168
32174
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
32169
32175
|
const map = useMap();
|
|
32170
|
-
const prevRef =
|
|
32176
|
+
const prevRef = useRef66({ centerLat, centerLng, zoom });
|
|
32171
32177
|
useEffect70(() => {
|
|
32172
32178
|
const prev = prevRef.current;
|
|
32173
32179
|
if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
|
|
@@ -45765,7 +45771,7 @@ function getAllEvents(traits2) {
|
|
|
45765
45771
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
45766
45772
|
const eventBus = useEventBus();
|
|
45767
45773
|
const { t } = useTranslate();
|
|
45768
|
-
const [
|
|
45774
|
+
const [log19, setLog] = React75.useState([]);
|
|
45769
45775
|
const prevStatesRef = React75.useRef(/* @__PURE__ */ new Map());
|
|
45770
45776
|
React75.useEffect(() => {
|
|
45771
45777
|
for (const trait of traits2) {
|
|
@@ -45829,9 +45835,9 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
45829
45835
|
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.otherEvents") }),
|
|
45830
45836
|
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: unavailableEvents.map((event) => /* @__PURE__ */ jsx(Badge, { variant: "default", size: "sm", className: "opacity-50", children: event }, event)) })
|
|
45831
45837
|
] }),
|
|
45832
|
-
|
|
45838
|
+
log19.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
|
|
45833
45839
|
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.recentTransitions") }),
|
|
45834
|
-
/* @__PURE__ */ jsx(Stack, { gap: "xs", children:
|
|
45840
|
+
/* @__PURE__ */ jsx(Stack, { gap: "xs", children: log19.map((entry, i) => /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "font-mono text-xs", children: [
|
|
45835
45841
|
/* @__PURE__ */ jsx("span", { className: "text-purple-400", children: entry.traitName }),
|
|
45836
45842
|
" ",
|
|
45837
45843
|
/* @__PURE__ */ jsx("span", { className: "text-gray-500", children: entry.from }),
|
|
@@ -51046,6 +51052,72 @@ function useTraitListens(dispatch, listens, eventBusInstance) {
|
|
|
51046
51052
|
};
|
|
51047
51053
|
}, [eventBus, dispatch, stableListens]);
|
|
51048
51054
|
}
|
|
51055
|
+
var log18 = createLogger("almadar:ui:shared-entity-store");
|
|
51056
|
+
var EMPTY_ENTITY_STATE = {};
|
|
51057
|
+
function createSharedEntityStore() {
|
|
51058
|
+
const states = /* @__PURE__ */ new Map();
|
|
51059
|
+
const subscribers = /* @__PURE__ */ new Map();
|
|
51060
|
+
const getSnapshot2 = (entityId) => states.get(entityId) ?? EMPTY_ENTITY_STATE;
|
|
51061
|
+
const subscribe = (entityId, callback) => {
|
|
51062
|
+
let set = subscribers.get(entityId);
|
|
51063
|
+
if (!set) {
|
|
51064
|
+
set = /* @__PURE__ */ new Set();
|
|
51065
|
+
subscribers.set(entityId, set);
|
|
51066
|
+
}
|
|
51067
|
+
set.add(callback);
|
|
51068
|
+
return () => {
|
|
51069
|
+
const current = subscribers.get(entityId);
|
|
51070
|
+
if (!current) return;
|
|
51071
|
+
current.delete(callback);
|
|
51072
|
+
if (current.size === 0) {
|
|
51073
|
+
subscribers.delete(entityId);
|
|
51074
|
+
}
|
|
51075
|
+
};
|
|
51076
|
+
};
|
|
51077
|
+
const commit = (entityId, nextState) => {
|
|
51078
|
+
states.set(entityId, nextState);
|
|
51079
|
+
const set = subscribers.get(entityId);
|
|
51080
|
+
if (!set) return;
|
|
51081
|
+
set.forEach((callback) => {
|
|
51082
|
+
try {
|
|
51083
|
+
callback();
|
|
51084
|
+
} catch (error) {
|
|
51085
|
+
log18.error("Shared entity subscriber error", {
|
|
51086
|
+
entityId,
|
|
51087
|
+
error: error instanceof Error ? error : String(error)
|
|
51088
|
+
});
|
|
51089
|
+
}
|
|
51090
|
+
});
|
|
51091
|
+
};
|
|
51092
|
+
const seed = (entityId, initialState) => {
|
|
51093
|
+
if (!states.has(entityId)) {
|
|
51094
|
+
states.set(entityId, initialState);
|
|
51095
|
+
}
|
|
51096
|
+
};
|
|
51097
|
+
return { getSnapshot: getSnapshot2, subscribe, commit, seed };
|
|
51098
|
+
}
|
|
51099
|
+
function useSharedEntityStore() {
|
|
51100
|
+
const storeRef = useRef(null);
|
|
51101
|
+
if (storeRef.current === null) {
|
|
51102
|
+
storeRef.current = createSharedEntityStore();
|
|
51103
|
+
}
|
|
51104
|
+
return storeRef.current;
|
|
51105
|
+
}
|
|
51106
|
+
function useSharedEntitySnapshot(store, entityId) {
|
|
51107
|
+
return useSyncExternalStore(
|
|
51108
|
+
(onStoreChange) => store.subscribe(entityId, onStoreChange),
|
|
51109
|
+
() => store.getSnapshot(entityId)
|
|
51110
|
+
);
|
|
51111
|
+
}
|
|
51112
|
+
function runTickFrame(entityId, orderedWriters, store) {
|
|
51113
|
+
let scratch = store.getSnapshot(entityId);
|
|
51114
|
+
for (const writer of orderedWriters) {
|
|
51115
|
+
const writes = writer(scratch);
|
|
51116
|
+
scratch = mergeEntityFrame(scratch, writes);
|
|
51117
|
+
}
|
|
51118
|
+
store.commit(entityId, scratch);
|
|
51119
|
+
return scratch;
|
|
51120
|
+
}
|
|
51049
51121
|
|
|
51050
51122
|
// hooks/index.ts
|
|
51051
51123
|
init_useQuerySingleton();
|
|
@@ -51846,4 +51918,4 @@ function useGitHubBranches(owner, repo, enabled = true) {
|
|
|
51846
51918
|
});
|
|
51847
51919
|
}
|
|
51848
51920
|
|
|
51849
|
-
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, 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, 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, useSwipeGesture, useTapReveal, useTraitListens, useTranslate127 as useTranslate, useUIEvents, useUISlotManager, useUnitSpriteAtlas, useValidation, vec2 };
|
|
51921
|
+
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 };
|