@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.
Files changed (80) hide show
  1. package/dist/avl/index.cjs +168 -88
  2. package/dist/avl/index.css +3 -3
  3. package/dist/avl/index.js +168 -88
  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 +6 -5
  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/SideCanvas2D.d.ts +36 -0
  50. package/dist/components/game/2d/molecules/StatBadge.d.ts +2 -1
  51. package/dist/components/game/3d/atoms/EventMarker3D.d.ts +17 -0
  52. package/dist/components/game/3d/atoms/SpriteBillboard3D.d.ts +18 -0
  53. package/dist/components/game/3d/index.cjs +539 -496
  54. package/dist/components/game/3d/index.js +367 -324
  55. package/dist/components/game/3d/molecules/FeatureMesh3D.d.ts +21 -0
  56. package/dist/components/game/3d/molecules/GameCamera3D.d.ts +35 -0
  57. package/dist/components/game/3d/molecules/Lighting3D.d.ts +10 -2
  58. package/dist/components/game/3d/molecules/SideScene3D.d.ts +31 -0
  59. package/dist/components/game/3d/molecules/TileMesh3D.d.ts +28 -0
  60. package/dist/components/game/3d/molecules/UnitMesh3D.d.ts +29 -0
  61. package/dist/components/game/shared/game3dTheme.d.ts +55 -0
  62. package/dist/components/game/shared/isometric.d.ts +38 -0
  63. package/dist/components/game/shared/isometricTypes.d.ts +4 -0
  64. package/dist/components/game/shared/lib/editorUtils.d.ts +8 -8
  65. package/dist/components/index.cjs +156 -83
  66. package/dist/components/index.css +3 -3
  67. package/dist/components/index.js +160 -87
  68. package/dist/hooks/useGitHub.d.ts +7 -7
  69. package/dist/marketing/index.cjs +2 -2
  70. package/dist/marketing/index.js +2 -2
  71. package/dist/providers/EventBusProvider.d.ts +1 -1
  72. package/dist/providers/SelectionProvider.d.ts +1 -1
  73. package/dist/providers/ServerBridge.d.ts +1 -1
  74. package/dist/providers/index.cjs +164 -84
  75. package/dist/providers/index.css +3 -3
  76. package/dist/providers/index.js +164 -84
  77. package/dist/runtime/index.cjs +164 -84
  78. package/dist/runtime/index.css +3 -3
  79. package/dist/runtime/index.js +164 -84
  80. package/package.json +10 -15
@@ -111,7 +111,7 @@ export interface DataGridProps extends DataDndProps {
111
111
  */
112
112
  look?: "dense" | "spacious" | "striped" | "borderless" | "card-rows";
113
113
  }
114
- export declare function DataGrid({ entity, fields, columns, itemActions, maxInlineActions, scrollX, cols, gap, minCardWidth, className, isLoading, error, imageField, selectable, selectionEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, renderItem: schemaRenderItem, dragGroup, accepts, sortable, dropEvent, reorderEvent, positionEvent, dndItemIdField, dndRoot, look, }: DataGridProps): string | number | bigint | boolean | import("react/jsx-runtime").JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null | undefined;
114
+ export declare function DataGrid({ entity, fields, columns, itemActions, maxInlineActions, scrollX, cols, gap, minCardWidth, className, isLoading, error, imageField, selectable, selectionEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, renderItem: schemaRenderItem, dragGroup, accepts, sortable, dropEvent, reorderEvent, positionEvent, dndItemIdField, dndRoot, look, }: DataGridProps): string | number | bigint | boolean | React.JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null | undefined;
115
115
  export declare namespace DataGrid {
116
116
  var displayName: string;
117
117
  }
@@ -123,7 +123,7 @@ export interface DataListProps extends DataDndProps {
123
123
  */
124
124
  look?: "dense" | "spacious" | "striped" | "borderless" | "card-rows";
125
125
  }
126
- export declare function DataList({ entity, fields, columns, itemActions, maxInlineActions, itemClickEvent, gap, variant, groupBy, senderField, currentUser, className, isLoading, error, reorderable: _reorderable, reorderEvent: _reorderEvent, swipeLeftEvent: _swipeLeftEvent, swipeLeftActions: _swipeLeftActions, swipeRightEvent: _swipeRightEvent, swipeRightActions: _swipeRightActions, longPressEvent: _longPressEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, renderItem: schemaRenderItem, dragGroup, accepts, sortable: sortableProp, dropEvent, reorderEvent: dndReorderEvent, positionEvent, dndItemIdField, dndRoot, look, }: DataListProps): string | number | bigint | boolean | import("react/jsx-runtime").JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null | undefined;
126
+ export declare function DataList({ entity, fields, columns, itemActions, maxInlineActions, itemClickEvent, gap, variant, groupBy, senderField, currentUser, className, isLoading, error, reorderable: _reorderable, reorderEvent: _reorderEvent, swipeLeftEvent: _swipeLeftEvent, swipeLeftActions: _swipeLeftActions, swipeRightEvent: _swipeRightEvent, swipeRightActions: _swipeRightActions, longPressEvent: _longPressEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, renderItem: schemaRenderItem, dragGroup, accepts, sortable: sortableProp, dropEvent, reorderEvent: dndReorderEvent, positionEvent, dndItemIdField, dndRoot, look, }: DataListProps): string | number | bigint | boolean | React.JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null | undefined;
127
127
  export declare namespace DataList {
128
128
  var displayName: string;
129
129
  }
@@ -1,3 +1,10 @@
1
+ /**
2
+ * DocPagination Molecule
3
+ *
4
+ * Previous/Next navigation links for documentation pages.
5
+ * Composed from HStack, Box, VStack, Icon, and Typography atoms.
6
+ */
7
+ import React from 'react';
1
8
  export interface DocPaginationLink {
2
9
  label: string;
3
10
  href: string;
@@ -11,4 +18,4 @@ export interface DocPaginationProps {
11
18
  /** Additional class names */
12
19
  className?: string;
13
20
  }
14
- export declare function DocPagination({ prev, next, className }: DocPaginationProps): import("react/jsx-runtime").JSX.Element | null;
21
+ export declare function DocPagination({ prev, next, className }: DocPaginationProps): React.JSX.Element | null;
@@ -1,3 +1,10 @@
1
+ /**
2
+ * DocSearch — documentation search input with inline results dropdown (distinct from SearchInput).
3
+ * SearchInput emits bus events for entity-list filtering with debounce.
4
+ * DocSearch drives a callback-based result list with keyboard navigation and
5
+ * popover dropdown; designed for docs site navigation, not data-list filtering.
6
+ */
7
+ import React from 'react';
1
8
  export interface DocSearchResult {
2
9
  title: string;
3
10
  href: string;
@@ -12,4 +19,4 @@ export interface DocSearchProps {
12
19
  /** Additional class names */
13
20
  className?: string;
14
21
  }
15
- export declare function DocSearch({ placeholder, onSearch, className, }: DocSearchProps): import("react/jsx-runtime").JSX.Element;
22
+ export declare function DocSearch({ placeholder, onSearch, className, }: DocSearchProps): React.JSX.Element;
@@ -19,6 +19,6 @@ export interface FlipCardProps {
19
19
  height?: string;
20
20
  }
21
21
  export declare const FlipCard: {
22
- ({ front, back, flipped, onFlip, className, height, }: FlipCardProps): import("react/jsx-runtime").JSX.Element;
22
+ ({ front, back, flipped, onFlip, className, height, }: FlipCardProps): React.JSX.Element;
23
23
  displayName: string;
24
24
  };
@@ -6,7 +6,9 @@
6
6
  */
7
7
  import React from 'react';
8
8
  export interface ChartDataPoint {
9
- date: string | Date;
9
+ /** Optional: chronological x-axis. Absent for a categorical line chart
10
+ * (label-as-x), which plots points in author order. */
11
+ date?: string | Date;
10
12
  value: number;
11
13
  label?: string;
12
14
  }
@@ -1,3 +1,20 @@
1
+ /**
2
+ * MapView Molecule Component
3
+ *
4
+ * Interactive map using react-leaflet with OpenStreetMap tiles.
5
+ * Supports both programmatic callbacks (onMapClick) and schema-driven
6
+ * event dispatch (mapClickEvent) via the event bus.
7
+ *
8
+ * Why this file looks weird: Leaflet's core/Util.js evaluates
9
+ * `window.requestAnimationFrame` at module load time, which crashes any
10
+ * SSR/SSG environment (Docusaurus, Next.js RSC, etc.) the moment a
11
+ * consumer statically imports something that transitively reaches MapView.
12
+ * To stay SSR-safe, the actual leaflet bindings are loaded lazily inside
13
+ * a `React.lazy(async () => …)` callback so the leaflet module is only
14
+ * evaluated when the component is rendered for the first time, which
15
+ * never happens on the server because Suspense shows the fallback there.
16
+ */
17
+ import React from 'react';
1
18
  import type { EventEmit } from '@almadar/core';
2
19
  export type MapMarkerData = {
3
20
  /** Unique marker identifier */
@@ -67,4 +84,4 @@ export interface MapViewProps {
67
84
  * lazy implementation finishes loading on the client) so SSR never reaches
68
85
  * the leaflet code.
69
86
  */
70
- export declare function MapView(props: MapViewProps): import("react/jsx-runtime").JSX.Element;
87
+ export declare function MapView(props: MapViewProps): React.JSX.Element;
@@ -14,6 +14,6 @@ export interface SortableListProps {
14
14
  dragHandlePosition?: 'left' | 'right';
15
15
  className?: string;
16
16
  }
17
- declare function SortableListInner({ items: initialItemsProp, renderItem, reorderEvent, reorderPayload, dragHandlePosition, className, }: SortableListProps): import("react/jsx-runtime").JSX.Element;
17
+ declare function SortableListInner({ items: initialItemsProp, renderItem, reorderEvent, reorderPayload, dragHandlePosition, className, }: SortableListProps): React.JSX.Element;
18
18
  export declare const SortableList: typeof SortableListInner;
19
19
  export {};
@@ -105,7 +105,7 @@ export interface TableViewProps extends DataDndProps {
105
105
  */
106
106
  look?: 'dense' | 'spacious' | 'striped' | 'borderless' | 'bordered';
107
107
  }
108
- export declare function TableView({ entity, columns, fields, itemActions, maxInlineActions, selectable, selectEvent, selectedIds, sortEvent, sortColumn, sortDirection, className, emptyMessage, isLoading, error, groupBy, pageSize, children, renderItem: _schemaRenderItem, look, dragGroup, accepts, sortable, dropEvent, reorderEvent, positionEvent, dndItemIdField, dndRoot, }: TableViewProps): import("react/jsx-runtime").JSX.Element;
108
+ export declare function TableView({ entity, columns, fields, itemActions, maxInlineActions, selectable, selectEvent, selectedIds, sortEvent, sortColumn, sortDirection, className, emptyMessage, isLoading, error, groupBy, pageSize, children, renderItem: _schemaRenderItem, look, dragGroup, accepts, sortable, dropEvent, reorderEvent, positionEvent, dndItemIdField, dndRoot, }: TableViewProps): React.JSX.Element;
109
109
  export declare namespace TableView {
110
110
  var displayName: string;
111
111
  }
@@ -5,8 +5,12 @@ import { DisplayStateProps } from "./types";
5
5
  import type { EntityRow, FieldValue } from "@almadar/core";
6
6
  export type EntityTableLook = "dense" | "spacious" | "striped" | "borderless" | "card-rows";
7
7
  export interface Column<T> {
8
- key: keyof T | string;
9
- header: string;
8
+ /** Column identity. Optional because `name` is an accepted alias; the
9
+ * compiler emits `{ name, label }` columns and `normalizeColumns` fills
10
+ * `key`/`header` from the aliases, so a column needs (`key` OR `name`) and
11
+ * (`header` OR `label`), not literally `key`+`header`. */
12
+ key?: keyof T | string;
13
+ header?: string;
10
14
  /** Alias for key (used by compiler-generated fields) */
11
15
  name?: string;
12
16
  /** Alias for header (used by compiler-generated fields) */
@@ -69,7 +73,7 @@ export interface DataTableProps<T extends EntityRow & {
69
73
  }
70
74
  export declare function DataTable<T extends EntityRow & {
71
75
  id: string | number;
72
- }>({ fields, columns, entity, itemActions, isLoading, error, emptyIcon, emptyTitle, emptyDescription, emptyAction, selectable, selectedIds, sortBy, sortDirection, searchable, searchValue, searchPlaceholder, page, pageSize, totalCount, rowActions: externalRowActions, bulkActions, headerActions, showTotal, className, look, }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
76
+ }>({ fields, columns, entity, itemActions, isLoading, error, emptyIcon, emptyTitle, emptyDescription, emptyAction, selectable, selectedIds, sortBy, sortDirection, searchable, searchValue, searchPlaceholder, page, pageSize, totalCount, rowActions: externalRowActions, bulkActions, headerActions, showTotal, className, look, }: DataTableProps<T>): React.JSX.Element;
73
77
  export declare namespace DataTable {
74
78
  var displayName: string;
75
79
  }
@@ -1,3 +1,12 @@
1
+ /**
2
+ * RuntimeDebugger - Main debug panel for KFlow applications
3
+ *
4
+ * Press backtick (`) to toggle. Displays traits, ticks, entities, events,
5
+ * guards, verification checks, transition timeline, and server bridge health.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import * as React from 'react';
1
10
  import type { OrbitalSchema } from '@almadar/core';
2
11
  import './RuntimeDebugger.css';
3
12
  export interface RuntimeDebuggerProps {
@@ -14,7 +23,7 @@ export interface RuntimeDebuggerProps {
14
23
  /** Raw schema for EventDispatcherTab payload extraction */
15
24
  schema?: OrbitalSchema;
16
25
  }
17
- export declare function RuntimeDebugger({ position, defaultCollapsed, className, mode, defaultTab, schema, }: RuntimeDebuggerProps): import("react/jsx-runtime").JSX.Element | null;
26
+ export declare function RuntimeDebugger({ position, defaultCollapsed, className, mode, defaultTab, schema, }: RuntimeDebuggerProps): React.JSX.Element | null;
18
27
  export declare namespace RuntimeDebugger {
19
28
  var displayName: string;
20
29
  }
@@ -2,11 +2,12 @@
2
2
  * EntitiesTab - Displays entity snapshots
3
3
  * Uses existing component library atoms/molecules.
4
4
  */
5
+ import * as React from 'react';
5
6
  import type { EntitySnapshot } from '../../../../../lib/entityDebug';
6
7
  interface EntitiesTabProps {
7
8
  snapshot: EntitySnapshot | null;
8
9
  }
9
- export declare function EntitiesTab({ snapshot }: EntitiesTabProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function EntitiesTab({ snapshot }: EntitiesTabProps): React.JSX.Element;
10
11
  export declare namespace EntitiesTab {
11
12
  var displayName: string;
12
13
  }
@@ -4,13 +4,14 @@
4
4
  * Shows available transitions per trait based on current state,
5
5
  * lets users click to fire events, and displays a compact transition log.
6
6
  */
7
+ import * as React from 'react';
7
8
  import type { OrbitalSchema } from '@almadar/core';
8
9
  import type { TraitDebugInfo } from '../../../../../lib/traitRegistry';
9
10
  interface EventDispatcherTabProps {
10
11
  traits: TraitDebugInfo[];
11
12
  schema?: OrbitalSchema;
12
13
  }
13
- export declare function EventDispatcherTab({ traits, schema }: EventDispatcherTabProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function EventDispatcherTab({ traits, schema }: EventDispatcherTabProps): React.JSX.Element;
14
15
  export declare namespace EventDispatcherTab {
15
16
  var displayName: string;
16
17
  }
@@ -1,8 +1,13 @@
1
+ /**
2
+ * EventFlowTab - Displays event flow and debug messages
3
+ * Uses existing component library atoms/molecules.
4
+ */
5
+ import * as React from 'react';
1
6
  import type { DebugEvent } from '../../../../../lib/debugRegistry';
2
7
  interface EventFlowTabProps {
3
8
  events: DebugEvent[];
4
9
  }
5
- export declare function EventFlowTab({ events }: EventFlowTabProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function EventFlowTab({ events }: EventFlowTabProps): React.JSX.Element;
6
11
  export declare namespace EventFlowTab {
7
12
  var displayName: string;
8
13
  }
@@ -1,8 +1,13 @@
1
+ /**
2
+ * GuardsPanel - Displays guard evaluation history
3
+ * Uses existing component library atoms/molecules.
4
+ */
5
+ import * as React from 'react';
1
6
  import type { GuardEvaluation } from '../../../../../lib/guardRegistry';
2
7
  interface GuardsPanelProps {
3
8
  guards: GuardEvaluation[];
4
9
  }
5
- export declare function GuardsPanel({ guards }: GuardsPanelProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function GuardsPanel({ guards }: GuardsPanelProps): React.JSX.Element;
6
11
  export declare namespace GuardsPanel {
7
12
  var displayName: string;
8
13
  }
@@ -1,8 +1,19 @@
1
+ /**
2
+ * ServerBridgeTab - Displays ServerBridge health and connectivity status
3
+ *
4
+ * Shows:
5
+ * - Connection status (connected/disconnected)
6
+ * - Events forwarded (client → server) count
7
+ * - Events received (server → client) count
8
+ * - Last error if any
9
+ * - Last heartbeat timestamp
10
+ */
11
+ import * as React from 'react';
1
12
  import type { BridgeHealth } from '../../../../../lib/verificationRegistry';
2
13
  interface ServerBridgeTabProps {
3
14
  bridge: BridgeHealth | null;
4
15
  }
5
- export declare function ServerBridgeTab({ bridge }: ServerBridgeTabProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function ServerBridgeTab({ bridge }: ServerBridgeTabProps): React.JSX.Element;
6
17
  export declare namespace ServerBridgeTab {
7
18
  var displayName: string;
8
19
  }
@@ -2,11 +2,12 @@
2
2
  * TicksTab - Displays tick execution timing and status
3
3
  * Uses existing component library atoms/molecules.
4
4
  */
5
+ import * as React from 'react';
5
6
  import type { TickExecution } from '../../../../../lib/tickRegistry';
6
7
  interface TicksTabProps {
7
8
  ticks: TickExecution[];
8
9
  }
9
- export declare function TicksTab({ ticks }: TicksTabProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function TicksTab({ ticks }: TicksTabProps): React.JSX.Element;
10
11
  export declare namespace TicksTab {
11
12
  var displayName: string;
12
13
  }
@@ -2,11 +2,12 @@
2
2
  * TraitsTab - Displays active traits and their state machines
3
3
  * Uses existing component library atoms/molecules.
4
4
  */
5
+ import * as React from 'react';
5
6
  import type { TraitDebugInfo } from '../../../../../lib/traitRegistry';
6
7
  interface TraitsTabProps {
7
8
  traits: TraitDebugInfo[];
8
9
  }
9
- export declare function TraitsTab({ traits }: TraitsTabProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function TraitsTab({ traits }: TraitsTabProps): React.JSX.Element;
10
11
  export declare namespace TraitsTab {
11
12
  var displayName: string;
12
13
  }
@@ -1,8 +1,18 @@
1
+ /**
2
+ * TransitionTimeline - Visual timeline of state machine transitions
3
+ *
4
+ * Shows each transition with:
5
+ * - Trait name, from → to state, triggering event
6
+ * - Guard result (if any)
7
+ * - Effect execution results (green = executed, red = failed)
8
+ * - Timestamp
9
+ */
10
+ import * as React from 'react';
1
11
  import type { TransitionTrace } from '../../../../../lib/verificationRegistry';
2
12
  interface TransitionTimelineProps {
3
13
  transitions: TransitionTrace[];
4
14
  }
5
- export declare function TransitionTimeline({ transitions }: TransitionTimelineProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function TransitionTimeline({ transitions }: TransitionTimelineProps): React.JSX.Element;
6
16
  export declare namespace TransitionTimeline {
7
17
  var displayName: string;
8
18
  }
@@ -1,9 +1,16 @@
1
+ /**
2
+ * VerificationTab - Displays pass/fail verification checklist
3
+ *
4
+ * Shows all registered checks with their status, grouped by category.
5
+ * Green = pass, Red = fail, Yellow = warn, Gray = pending.
6
+ */
7
+ import * as React from 'react';
1
8
  import type { VerificationCheck, VerificationSummary } from '../../../../../lib/verificationRegistry';
2
9
  interface VerificationTabProps {
3
10
  checks: VerificationCheck[];
4
11
  summary: VerificationSummary;
5
12
  }
6
- export declare function VerificationTab({ checks, summary }: VerificationTabProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function VerificationTab({ checks, summary }: VerificationTabProps): React.JSX.Element;
7
14
  export declare namespace VerificationTab {
8
15
  var displayName: string;
9
16
  }
@@ -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 ActionButtonProps {
@@ -24,7 +25,7 @@ export interface ActionButtonProps {
24
25
  /** Additional CSS classes */
25
26
  className?: string;
26
27
  }
27
- export declare function ActionButton({ assetUrl, label, icon, cooldown, disabled, hotkey, size, variant, onClick, action, className, }: ActionButtonProps): import("react/jsx-runtime").JSX.Element;
28
+ export declare function ActionButton({ assetUrl, label, icon, cooldown, disabled, hotkey, size, variant, onClick, action, className, }: ActionButtonProps): React.JSX.Element;
28
29
  export declare namespace ActionButton {
29
30
  var displayName: string;
30
31
  }
@@ -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 ChoiceButtonProps {
@@ -22,7 +23,7 @@ export interface ChoiceButtonProps {
22
23
  /** Additional CSS classes */
23
24
  className?: string;
24
25
  }
25
- export declare function ChoiceButton({ text, index, assetUrl, icon, disabled, selected, onClick, action, payload, className, }: ChoiceButtonProps): import("react/jsx-runtime").JSX.Element;
26
+ export declare function ChoiceButton({ text, index, assetUrl, icon, disabled, selected, onClick, action, payload, className, }: ChoiceButtonProps): React.JSX.Element;
26
27
  export declare namespace ChoiceButton {
27
28
  var displayName: string;
28
29
  }
@@ -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) */
@@ -125,7 +126,7 @@ export interface Canvas2DProps {
125
126
  /**
126
127
  * Opt-in: smooth-interpolate unit positions between LOLO tick snapshots
127
128
  * via a `requestAnimationFrame` loop (same fixed-timestep technique
128
- * `SideView` already uses for the player), instead of the default
129
+ * `SideCanvas2D` already uses for the player), instead of the default
129
130
  * tick-rate-cadence redraw. DEFAULT OFF — for continuous-movement boards
130
131
  * only; tile-snapped boards see no behavior change.
131
132
  */
@@ -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
  }