@almadar/ui 5.103.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.
Files changed (66) hide show
  1. package/dist/avl/index.cjs +15 -9
  2. package/dist/avl/index.css +3 -3
  3. package/dist/avl/index.js +15 -9
  4. package/dist/components/core/atoms/AtlasImage.d.ts +2 -2
  5. package/dist/components/core/atoms/FlipContainer.d.ts +1 -1
  6. package/dist/components/core/molecules/Card.d.ts +1 -1
  7. package/dist/components/core/molecules/Chart.d.ts +3 -3
  8. package/dist/components/core/molecules/DataGrid.d.ts +1 -1
  9. package/dist/components/core/molecules/DataList.d.ts +1 -1
  10. package/dist/components/core/molecules/DocPagination.d.ts +8 -1
  11. package/dist/components/core/molecules/DocSearch.d.ts +8 -1
  12. package/dist/components/core/molecules/FlipCard.d.ts +1 -1
  13. package/dist/components/core/molecules/LineChart.d.ts +3 -1
  14. package/dist/components/core/molecules/MapView.d.ts +18 -1
  15. package/dist/components/core/molecules/SortableList.d.ts +1 -1
  16. package/dist/components/core/molecules/TableView.d.ts +1 -1
  17. package/dist/components/core/organisms/DataTable.d.ts +7 -3
  18. package/dist/components/core/organisms/debug/RuntimeDebugger.d.ts +10 -1
  19. package/dist/components/core/organisms/debug/tabs/EntitiesTab.d.ts +2 -1
  20. package/dist/components/core/organisms/debug/tabs/EventDispatcherTab.d.ts +2 -1
  21. package/dist/components/core/organisms/debug/tabs/EventFlowTab.d.ts +6 -1
  22. package/dist/components/core/organisms/debug/tabs/GuardsPanel.d.ts +6 -1
  23. package/dist/components/core/organisms/debug/tabs/ServerBridgeTab.d.ts +12 -1
  24. package/dist/components/core/organisms/debug/tabs/TicksTab.d.ts +2 -1
  25. package/dist/components/core/organisms/debug/tabs/TraitsTab.d.ts +2 -1
  26. package/dist/components/core/organisms/debug/tabs/TransitionTimeline.d.ts +11 -1
  27. package/dist/components/core/organisms/debug/tabs/VerificationTab.d.ts +8 -1
  28. package/dist/components/game/2d/atoms/ActionButton.d.ts +2 -1
  29. package/dist/components/game/2d/atoms/ChoiceButton.d.ts +2 -1
  30. package/dist/components/game/2d/atoms/ComboCounter.d.ts +2 -1
  31. package/dist/components/game/2d/atoms/ControlButton.d.ts +2 -1
  32. package/dist/components/game/2d/atoms/DamageNumber.d.ts +2 -1
  33. package/dist/components/game/2d/atoms/DialogueBubble.d.ts +2 -1
  34. package/dist/components/game/2d/atoms/GameIcon.d.ts +2 -1
  35. package/dist/components/game/2d/atoms/HealthBar.d.ts +2 -1
  36. package/dist/components/game/2d/atoms/ItemSlot.d.ts +2 -1
  37. package/dist/components/game/2d/atoms/MiniMap.d.ts +2 -1
  38. package/dist/components/game/2d/atoms/ResourceCounter.d.ts +2 -1
  39. package/dist/components/game/2d/atoms/ScoreDisplay.d.ts +2 -1
  40. package/dist/components/game/2d/atoms/StatusEffect.d.ts +2 -1
  41. package/dist/components/game/2d/atoms/TimerDisplay.d.ts +2 -1
  42. package/dist/components/game/2d/atoms/TurnIndicator.d.ts +2 -1
  43. package/dist/components/game/2d/atoms/WaypointMarker.d.ts +2 -1
  44. package/dist/components/game/2d/molecules/Canvas2D.d.ts +5 -4
  45. package/dist/components/game/2d/molecules/GameHud.d.ts +2 -1
  46. package/dist/components/game/2d/molecules/GameMenu.d.ts +2 -1
  47. package/dist/components/game/2d/molecules/InventoryGrid.d.ts +2 -1
  48. package/dist/components/game/2d/molecules/ResourceBar.d.ts +2 -1
  49. package/dist/components/game/2d/molecules/StatBadge.d.ts +2 -1
  50. package/dist/components/game/shared/lib/editorUtils.d.ts +8 -8
  51. package/dist/components/index.cjs +11 -5
  52. package/dist/components/index.css +3 -3
  53. package/dist/components/index.js +11 -5
  54. package/dist/hooks/useGitHub.d.ts +7 -7
  55. package/dist/marketing/index.cjs +2 -2
  56. package/dist/marketing/index.js +2 -2
  57. package/dist/providers/EventBusProvider.d.ts +1 -1
  58. package/dist/providers/SelectionProvider.d.ts +1 -1
  59. package/dist/providers/ServerBridge.d.ts +1 -1
  60. package/dist/providers/index.cjs +11 -5
  61. package/dist/providers/index.css +3 -3
  62. package/dist/providers/index.js +11 -5
  63. package/dist/runtime/index.cjs +11 -5
  64. package/dist/runtime/index.css +3 -3
  65. package/dist/runtime/index.js +11 -5
  66. package/package.json +10 -15
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import type { Asset } from '@almadar/core';
2
3
  export interface ComboCounterProps {
3
4
  /** Sprite asset displayed alongside the combo number */
@@ -13,7 +14,7 @@ export interface ComboCounterProps {
13
14
  /** Additional CSS classes */
14
15
  className?: string;
15
16
  }
16
- export declare function ComboCounter({ assetUrl, combo, multiplier, streak, size, className, }: ComboCounterProps): import("react/jsx-runtime").JSX.Element | null;
17
+ export declare function ComboCounter({ assetUrl, combo, multiplier, streak, size, className, }: ComboCounterProps): React.JSX.Element | null;
17
18
  export declare namespace ComboCounter {
18
19
  var displayName: string;
19
20
  }
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import type { EventKey, Asset } from "@almadar/core";
2
3
  import { type IconInput } from '../../../core/atoms/Icon';
3
4
  export interface ControlButtonProps {
@@ -28,7 +29,7 @@ export interface ControlButtonProps {
28
29
  /** Additional CSS classes */
29
30
  className?: string;
30
31
  }
31
- export declare function ControlButton({ assetUrl, label, icon, size, shape, variant, onPress, onRelease, pressEvent, releaseEvent, pressed, disabled, className, }: ControlButtonProps): import("react/jsx-runtime").JSX.Element;
32
+ export declare function ControlButton({ assetUrl, label, icon, size, shape, variant, onPress, onRelease, pressEvent, releaseEvent, pressed, disabled, className, }: ControlButtonProps): React.JSX.Element;
32
33
  export declare namespace ControlButton {
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
  export interface DamageNumberProps {
3
4
  /** Sprite asset — displayed as a hit-effect icon alongside the number */
@@ -11,7 +12,7 @@ export interface DamageNumberProps {
11
12
  /** Additional CSS classes */
12
13
  className?: string;
13
14
  }
14
- export declare function DamageNumber({ assetUrl, value, type, size, className, }: DamageNumberProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function DamageNumber({ assetUrl, value, type, size, className, }: DamageNumberProps): React.JSX.Element;
15
16
  export declare namespace DamageNumber {
16
17
  var displayName: string;
17
18
  }
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import type { Asset } from '@almadar/core';
2
3
  export interface DialogueBubbleProps {
3
4
  /** Speaker name displayed at the top */
@@ -19,7 +20,7 @@ export interface DialogueBubbleProps {
19
20
  /** Additional CSS classes */
20
21
  className?: string;
21
22
  }
22
- export declare function DialogueBubble({ speaker, text, portrait, position, mood, revealedChars, className, }: DialogueBubbleProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare function DialogueBubble({ speaker, text, portrait, position, mood, revealedChars, className, }: DialogueBubbleProps): React.JSX.Element;
23
24
  export declare namespace DialogueBubble {
24
25
  var displayName: string;
25
26
  }
@@ -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/Icon';
3
4
  export interface GameIconProps {
@@ -12,7 +13,7 @@ export interface GameIconProps {
12
13
  /** Additional CSS classes. */
13
14
  className?: string;
14
15
  }
15
- export declare function GameIcon({ assetUrl, icon, size, alt, className }: GameIconProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function GameIcon({ assetUrl, icon, size, alt, className }: GameIconProps): React.JSX.Element;
16
17
  export declare namespace GameIcon {
17
18
  var displayName: string;
18
19
  }
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import type { Asset } from '@almadar/core';
2
3
  export interface HealthBarProps {
3
4
  /** Current value */
@@ -25,7 +26,7 @@ export interface HealthBarProps {
25
26
  /** Sprite image tiled across the filled portion of bar/progress formats. Falls back to CSS color gradient. */
26
27
  fillAsset?: Asset;
27
28
  }
28
- export declare function HealthBar({ current, max, format, level, showLabel, labelSuffix, size, className, animated, frameAsset, fillAsset, }: HealthBarProps): import("react/jsx-runtime").JSX.Element;
29
+ export declare function HealthBar({ current, max, format, level, showLabel, labelSuffix, size, className, animated, frameAsset, fillAsset, }: HealthBarProps): React.JSX.Element;
29
30
  export declare namespace HealthBar {
30
31
  var displayName: string;
31
32
  }
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import { type IconInput } from '../../../core/atoms/Icon';
2
3
  import type { Asset, EventKey } from '@almadar/core';
3
4
  export interface ItemSlotProps {
@@ -24,7 +25,7 @@ export interface ItemSlotProps {
24
25
  /** Additional CSS classes */
25
26
  className?: string;
26
27
  }
27
- export declare function ItemSlot({ assetUrl, icon, label, quantity, rarity, empty, size, selected, onClick, action, className, }: ItemSlotProps): import("react/jsx-runtime").JSX.Element;
28
+ export declare function ItemSlot({ assetUrl, icon, label, quantity, rarity, empty, size, selected, onClick, action, className, }: ItemSlotProps): React.JSX.Element;
28
29
  export declare namespace ItemSlot {
29
30
  var displayName: string;
30
31
  }
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import type { Asset } from '@almadar/core';
2
3
  import type { Rect } from '../../../core/atoms/types';
3
4
  export interface MiniMapTile {
@@ -33,7 +34,7 @@ export interface MiniMapProps {
33
34
  /** Map of unit id or unit type → Asset; when present, draws sprites instead of flat dots for units. */
34
35
  unitAssets?: Record<string, Asset>;
35
36
  }
36
- export declare function MiniMap({ tiles, units, width, height, mapWidth, mapHeight, viewportRect, className, tileAssets, unitAssets, }: MiniMapProps): import("react/jsx-runtime").JSX.Element;
37
+ export declare function MiniMap({ tiles, units, width, height, mapWidth, mapHeight, viewportRect, className, tileAssets, unitAssets, }: MiniMapProps): React.JSX.Element;
37
38
  export declare namespace MiniMap {
38
39
  var displayName: string;
39
40
  }
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import type { ColorToken } from '../../../core/atoms/types';
2
3
  import { type IconInput } from '../../../core/atoms/Icon';
3
4
  import type { Asset } from '@almadar/core';
@@ -19,7 +20,7 @@ export interface ResourceCounterProps {
19
20
  /** Additional CSS classes */
20
21
  className?: string;
21
22
  }
22
- export declare function ResourceCounter({ assetUrl, icon, label, value, max, color, size, className, }: ResourceCounterProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare function ResourceCounter({ assetUrl, icon, label, value, max, color, size, className, }: ResourceCounterProps): React.JSX.Element;
23
24
  export declare namespace ResourceCounter {
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
  export interface ScoreDisplayProps {
@@ -18,7 +19,7 @@ export interface ScoreDisplayProps {
18
19
  /** Number formatting locale */
19
20
  locale?: string;
20
21
  }
21
- export declare function ScoreDisplay({ assetUrl, value, score, label, icon, size, className, locale, }: ScoreDisplayProps): import("react/jsx-runtime").JSX.Element;
22
+ export declare function ScoreDisplay({ assetUrl, value, score, label, icon, size, className, locale, }: ScoreDisplayProps): React.JSX.Element;
22
23
  export declare namespace ScoreDisplay {
23
24
  var displayName: string;
24
25
  }
@@ -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
  export interface StatusEffectProps {
@@ -18,7 +19,7 @@ export interface StatusEffectProps {
18
19
  /** Additional CSS classes */
19
20
  className?: string;
20
21
  }
21
- export declare function StatusEffect({ assetUrl, icon, label, duration, stacks, variant, size, className, }: StatusEffectProps): import("react/jsx-runtime").JSX.Element;
22
+ export declare function StatusEffect({ assetUrl, icon, label, duration, stacks, variant, size, className, }: StatusEffectProps): React.JSX.Element;
22
23
  export declare namespace StatusEffect {
23
24
  var displayName: string;
24
25
  }
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import type { Asset } from '@almadar/core';
2
3
  export interface TimerDisplayProps {
3
4
  /** Time in seconds */
@@ -15,7 +16,7 @@ export interface TimerDisplayProps {
15
16
  /** Icon asset rendered to the left of the time value. Falls back to no icon. */
16
17
  iconAsset?: Asset;
17
18
  }
18
- export declare function TimerDisplay({ seconds, running, format, size, className, lowThreshold, iconAsset, }: TimerDisplayProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function TimerDisplay({ seconds, running, format, size, className, lowThreshold, iconAsset, }: TimerDisplayProps): React.JSX.Element;
19
20
  export declare namespace TimerDisplay {
20
21
  var displayName: string;
21
22
  }
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import type { Asset } from '@almadar/core';
2
3
  export interface TurnIndicatorProps {
3
4
  /** Sprite asset — takes precedence over the dot indicator when provided */
@@ -15,7 +16,7 @@ export interface TurnIndicatorProps {
15
16
  /** Additional CSS classes */
16
17
  className?: string;
17
18
  }
18
- export declare function TurnIndicator({ assetUrl, currentTurn, maxTurns, activeTeam, phase, size, className, }: TurnIndicatorProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function TurnIndicator({ assetUrl, currentTurn, maxTurns, activeTeam, phase, size, className, }: TurnIndicatorProps): React.JSX.Element;
19
20
  export declare namespace TurnIndicator {
20
21
  var displayName: string;
21
22
  }
@@ -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
  export interface WaypointMarkerProps {
@@ -16,7 +17,7 @@ export interface WaypointMarkerProps {
16
17
  /** Additional CSS classes */
17
18
  className?: string;
18
19
  }
19
- export declare function WaypointMarker({ assetUrl, label, icon, active, completed, size, className, }: WaypointMarkerProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare function WaypointMarker({ assetUrl, label, icon, active, completed, size, className, }: WaypointMarkerProps): React.JSX.Element;
20
21
  export declare namespace WaypointMarker {
21
22
  var displayName: string;
22
23
  }
@@ -21,7 +21,7 @@
21
21
  * @packageDocumentation
22
22
  */
23
23
  import * as React from 'react';
24
- import type { Asset, EventEmit } from '@almadar/core';
24
+ import type { Asset, AssetUrl, EventEmit } from '@almadar/core';
25
25
  import type { IsometricTile, IsometricUnit, IsometricFeature, ActiveEffect } from '../../shared/isometricTypes';
26
26
  import type { ResolvedFrame } from '../../shared/spriteAnimationTypes';
27
27
  import type { UiError } from '../../../core/atoms/types';
@@ -79,8 +79,9 @@ export interface Canvas2DProps {
79
79
  platforms?: Platform[];
80
80
  /** Side-view player. `projection:'side'` only. */
81
81
  player?: SidePlayer;
82
- /** Background image (tiled behind iso/hex/flat/free; stretched in side). */
83
- backgroundImage?: Asset;
82
+ /** Background image (tiled behind iso/hex/flat/free; stretched in side).
83
+ * A bare URL string is accepted as shorthand for a standalone backdrop. */
84
+ backgroundImage?: AssetUrl | Asset;
84
85
  /** Currently selected unit ID */
85
86
  selectedUnitId?: string | null;
86
87
  /** Valid move positions (pulsing green highlights) */
@@ -167,7 +168,7 @@ export interface Canvas2DProps {
167
168
  effects?: Record<string, Asset>;
168
169
  };
169
170
  }
170
- export declare function Canvas2D({ className, isLoading, error, projection, tiles: _tilesPropRaw, units: _unitsPropRaw, features: _featuresPropRaw, effects: _effectsPropRaw, platforms, player, backgroundImage, selectedUnitId, validMoves, attackTargets, hoveredTile, tileClickEvent, unitClickEvent, tileHoverEvent, tileLeaveEvent, keyMap, keyUpMap, camera, scale, unitScale, showMinimap, animate, interpolateUnits, debug, spriteHeightRatio, spriteMaxWidthRatio, diamondTopY: diamondTopYProp, getTerrainSprite, getFeatureSprite, getUnitSprite, resolveUnitFrame, effectSpriteUrls, onDrawEffects, playerSprite, tileSprites, bgColor, worldWidth, worldHeight, assetManifest, }: Canvas2DProps): React.JSX.Element;
171
+ export declare function Canvas2D({ className, isLoading, error, projection, tiles: _tilesPropRaw, units: _unitsPropRaw, features: _featuresPropRaw, effects: _effectsPropRaw, platforms, player, backgroundImage: backgroundImageRaw, selectedUnitId, validMoves, attackTargets, hoveredTile, tileClickEvent, unitClickEvent, tileHoverEvent, tileLeaveEvent, keyMap, keyUpMap, camera, scale, unitScale, showMinimap, animate, interpolateUnits, debug, spriteHeightRatio, spriteMaxWidthRatio, diamondTopY: diamondTopYProp, getTerrainSprite, getFeatureSprite, getUnitSprite, resolveUnitFrame, effectSpriteUrls, onDrawEffects, playerSprite, tileSprites, bgColor, worldWidth, worldHeight, assetManifest, }: Canvas2DProps): React.JSX.Element;
171
172
  export declare namespace Canvas2D {
172
173
  var displayName: string;
173
174
  }
@@ -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): import("react/jsx-runtime").JSX.Element;
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): import("react/jsx-runtime").JSX.Element;
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): import("react/jsx-runtime").JSX.Element;
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): import("react/jsx-runtime").JSX.Element;
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): import("react/jsx-runtime").JSX.Element;
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): import("react/jsx-runtime").JSX.Element;
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): import("react/jsx-runtime").JSX.Element;
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): import("react/jsx-runtime").JSX.Element;
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): import("react/jsx-runtime").JSX.Element;
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): import("react/jsx-runtime").JSX.Element;
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): import("react/jsx-runtime").JSX.Element;
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): import("react/jsx-runtime").JSX.Element;
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): import("react/jsx-runtime").JSX.Element;
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
  }
@@ -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;
@@ -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;
@@ -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(() => {
@@ -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.45";
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;
@@ -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(() => {
@@ -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, Error>;
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
- }, Error>;
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
- }, Error>;
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
- }, Error>;
58
+ }>, Error>;
@@ -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);
@@ -5,7 +5,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
5
  import * as LucideIcons2 from 'lucide-react';
6
6
  import { Loader2, X } from 'lucide-react';
7
7
 
8
- // node_modules/clsx/dist/clsx.mjs
8
+ // node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
9
9
  function r(e) {
10
10
  var t, f3, n = "";
11
11
  if ("string" == typeof e || "number" == typeof e) n += e;
@@ -20,7 +20,7 @@ function clsx() {
20
20
  return n;
21
21
  }
22
22
 
23
- // node_modules/tailwind-merge/dist/bundle-mjs.mjs
23
+ // node_modules/.pnpm/tailwind-merge@2.6.1/node_modules/tailwind-merge/dist/bundle-mjs.mjs
24
24
  var CLASS_PART_SEPARATOR = "-";
25
25
  var createClassGroupUtils = (config) => {
26
26
  const classMap = createClassMap(config);
@@ -43,5 +43,5 @@ interface EventBusProviderProps {
43
43
  */
44
44
  isolated?: boolean;
45
45
  }
46
- export declare function EventBusProvider({ children, isolated }: EventBusProviderProps): import("react/jsx-runtime").JSX.Element;
46
+ export declare function EventBusProvider({ children, isolated }: EventBusProviderProps): React.JSX.Element;
47
47
  export type { EventBusContextType };
@@ -50,7 +50,7 @@ interface SelectionProviderProps {
50
50
  * }
51
51
  * ```
52
52
  */
53
- export declare function SelectionProvider({ children, debug, compareEntities, }: SelectionProviderProps): import("react/jsx-runtime").JSX.Element;
53
+ export declare function SelectionProvider({ children, debug, compareEntities, }: SelectionProviderProps): React.JSX.Element;
54
54
  /**
55
55
  * Hook to access selection state.
56
56
  *
@@ -98,5 +98,5 @@ export interface ServerBridgeProviderProps {
98
98
  transport?: ServerBridgeTransport;
99
99
  children: ReactNode;
100
100
  }
101
- export declare function ServerBridgeProvider({ schema, serverUrl, transport: customTransport, children, }: ServerBridgeProviderProps): import("react/jsx-runtime").JSX.Element;
101
+ export declare function ServerBridgeProvider({ schema, serverUrl, transport: customTransport, children, }: ServerBridgeProviderProps): import("react").JSX.Element;
102
102
  export {};