@almadar/shell-web 0.1.0 → 1.1.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 (131) hide show
  1. package/dist/{ArbitraryClassCompiler-Mzabq-UB.d.ts → ArbitraryClassCompiler-CO_iASBn.d.ts} +99 -4
  2. package/dist/AvlGlyph-PIXU6QH5.js +5 -0
  3. package/dist/AvlStateMachine-CKGMECMG.js +8 -0
  4. package/dist/AvlTransitionDetail-QZX6G5KJ.js +10 -0
  5. package/dist/AvlTransitionExplainer-26WLEIC6.js +11 -0
  6. package/dist/BehaviorView-JLZ4PKWY.js +10 -0
  7. package/dist/{EventBusProvider-CVwjkV_2.d.ts → EventBusProvider-BFFHfN4O.d.ts} +12 -0
  8. package/dist/{FileTree-BCFnBEuQ.d.ts → FileTree-B3GDAjaQ.d.ts} +131 -4
  9. package/dist/FlowCanvas-RPII4V24.js +23 -0
  10. package/dist/{BehaviorValueFrame-SSEMEBTG.css → FlowCanvas-VWUPMBKB.css} +189 -191
  11. package/dist/{GameAudioProvider-Cm9BnvmP.d.ts → GameAudioProvider-D7wo5ryN.d.ts} +5 -8
  12. package/dist/KernelEngineContext-CPeWQMAz.d.ts +46 -0
  13. package/dist/LayersPanel-M2LHWUFF.js +6 -0
  14. package/dist/ModuleCard-NJD6JQGD.js +6 -0
  15. package/dist/OrbInspector-OWWKPOBF.js +23 -0
  16. package/dist/{TraitValueFrame-4G3KOUBR.css → OrbInspector-VMTMZHNQ.css} +189 -191
  17. package/dist/{Select-mDZIwNqN.d.ts → Select-C2Uq6t86.d.ts} +17 -31
  18. package/dist/ServerBridge-Bqsj-lOU.d.ts +124 -0
  19. package/dist/{FlowCanvas-3JRMNJLV.css → UISlotRenderer-BIS6KT7T.css} +189 -191
  20. package/dist/UISlotRenderer-PY7FIJXN.js +23 -0
  21. package/dist/auth/browser/index.js +1 -0
  22. package/dist/auth/react/index.d.ts +8 -1
  23. package/dist/auth/react/index.js +40 -2
  24. package/dist/avl/index.css +189 -191
  25. package/dist/avl/index.d.ts +107 -85
  26. package/dist/avl/index.js +170 -39
  27. package/dist/{chunk-P4LNHAFI.js → chunk-2WGR4TDJ.js} +465 -36
  28. package/dist/{chunk-GKIFONTE.js → chunk-3S54FWRC.js} +2 -2
  29. package/dist/{chunk-KVQS4GXU.js → chunk-4YJ53G7S.js} +18 -8
  30. package/dist/{chunk-MBQAMMSE.js → chunk-4YXBKHHM.js} +269 -658
  31. package/dist/{chunk-YDNJLLG6.js → chunk-57DC34LY.js} +19 -10
  32. package/dist/{chunk-FP3WIKTC.js → chunk-7N6ZPHQ5.js} +9 -1
  33. package/dist/{chunk-AILY3XPS.js → chunk-AE7VCQB6.js} +5 -6
  34. package/dist/{chunk-L677XGY3.js → chunk-AGVSO4WY.js} +4 -5
  35. package/dist/{chunk-FAJDTHWC.js → chunk-AGXD77SL.js} +2 -2
  36. package/dist/chunk-AU7O65OX.js +66 -0
  37. package/dist/{chunk-DFNZUYX4.js → chunk-FAKU5F62.js} +273 -29
  38. package/dist/{chunk-U6QRZASX.js → chunk-ILQXJ2AR.js} +1 -1
  39. package/dist/chunk-M74BCDBQ.js +490 -0
  40. package/dist/{chunk-GYTPOFVC.js → chunk-MS4K3K2R.js} +12095 -13329
  41. package/dist/{chunk-SGM3FASH.js → chunk-OWNG4JZI.js} +13 -12
  42. package/dist/{chunk-VFF5OO47.js → chunk-PCR37T3U.js} +15 -38
  43. package/dist/{chunk-SJGJJKBY.js → chunk-PRLHKBXG.js} +5 -3
  44. package/dist/{chunk-R5O5AUPI.js → chunk-PRXQGGCO.js} +93 -86
  45. package/dist/{chunk-42FY4RYA.js → chunk-REXYVBUO.js} +2 -2
  46. package/dist/{chunk-EQAMU2ZC.js → chunk-UTDC2NEA.js} +1 -1
  47. package/dist/{chunk-73SRAB4P.js → chunk-UU57VNS2.js} +2 -2
  48. package/dist/{chunk-TESBIVUA.js → chunk-VHC2M26B.js} +2 -2
  49. package/dist/{chunk-L2DEKY4J.js → chunk-VO2TTLS5.js} +3 -6
  50. package/dist/{chunk-2PY54Z44.js → chunk-VUIACGDU.js} +4 -5
  51. package/dist/{chunk-DLZF4PVE.js → chunk-YYIHRIDH.js} +3 -3
  52. package/dist/{chunk-DYEKAA4L.js → chunk-ZDRDJKYB.js} +243 -252
  53. package/dist/components/index.css +189 -191
  54. package/dist/components/index.d.ts +739 -289
  55. package/dist/components/index.js +25 -28
  56. package/dist/context/index.d.ts +2 -3
  57. package/dist/context/index.js +4 -3
  58. package/dist/core.d.ts +95 -19
  59. package/dist/core.js +2 -1
  60. package/dist/design-classes/index.cjs +3 -1
  61. package/dist/design-classes/index.js +3 -1
  62. package/dist/{fx-CmQjnHmT.d.ts → fx-Br8zjvu9.d.ts} +6 -6
  63. package/dist/hooks/index.d.ts +40 -5
  64. package/dist/hooks/index.js +5 -4
  65. package/dist/index.d.ts +40 -114
  66. package/dist/index.js +174 -34
  67. package/dist/kernel-client-JW6OH5FX.js +537 -0
  68. package/dist/kernel-wire-DGAySGhX.d.ts +95 -0
  69. package/dist/lib/index.d.ts +3 -4
  70. package/dist/lib/index.js +4 -4
  71. package/dist/{prism-AIWGN2X5.js → prism-X5YWKXO5.js} +5 -3
  72. package/dist/providers/index.css +189 -191
  73. package/dist/providers/index.d.ts +41 -28
  74. package/dist/providers/index.js +19 -24
  75. package/dist/renderer/index.d.ts +0 -2
  76. package/dist/renderer/index.js +1 -0
  77. package/dist/runtime/index.css +189 -191
  78. package/dist/runtime/index.d.ts +57 -253
  79. package/dist/runtime/index.js +18 -24
  80. package/dist/ssr/index.cjs +2643 -535
  81. package/dist/ssr/index.d.cts +0 -23
  82. package/dist/ssr/index.d.ts +0 -23
  83. package/dist/ssr/index.js +2639 -535
  84. package/dist/storage/browser/index.js +1 -0
  85. package/dist/test-support.d.ts +15 -8
  86. package/dist/test-support.js +91 -24
  87. package/dist/{paintDispatch-ChW5mVuK.d.ts → verificationRegistry-oopV1J1n.d.ts} +132 -30
  88. package/package.json +14 -38
  89. package/src/core/lib/band-shapes.json +7 -0
  90. package/src/core/locales/ar.json +18 -5
  91. package/src/core/locales/en.json +18 -5
  92. package/src/core/locales/sl.json +18 -5
  93. package/tailwind-preset.cjs +30 -1
  94. package/dist/AvlGlyph-JKJOAH23.js +0 -6
  95. package/dist/AvlStateMachine-PI4YGREK.js +0 -8
  96. package/dist/AvlTransitionDetail-ZH7V24UG.js +0 -12
  97. package/dist/AvlTransitionExplainer-ZSRT7L6Y.js +0 -13
  98. package/dist/BehaviorValueFrame-6RUJXT4A.js +0 -29
  99. package/dist/BehaviorView-RFEE5J6E.js +0 -10
  100. package/dist/Canvas3DHost-_Y-5uLM_.d.ts +0 -552
  101. package/dist/FlowCanvas-STDC4OWK.js +0 -27
  102. package/dist/KernelEngineContext-BOCQoFwk.d.ts +0 -43
  103. package/dist/LayersPanel-BBQ54IVG.js +0 -7
  104. package/dist/ModuleCard-3TT2X7IW.js +0 -7
  105. package/dist/OrbInspector-K6T6O7GI.js +0 -27
  106. package/dist/OrbInspector-MHLJ6OEE.css +0 -1756
  107. package/dist/ServerBridge-Cm1On51b.d.ts +0 -233
  108. package/dist/TraitValueFrame-2PJGLLVI.js +0 -28
  109. package/dist/UISlotRenderer-JKFSX24W.js +0 -27
  110. package/dist/UISlotRenderer-KVFO6J7R.css +0 -1756
  111. package/dist/UserContext-DqWeZkUZ.d.ts +0 -100
  112. package/dist/avl-3d-context-BIRKWpaL.d.ts +0 -204
  113. package/dist/avl-schema-parser-CtJxJ9KU.d.ts +0 -132
  114. package/dist/avl-zoom-state-CKMVuBFg.d.ts +0 -17
  115. package/dist/chunk-2QOH2HWM.js +0 -95
  116. package/dist/chunk-6P3MWXYE.js +0 -440
  117. package/dist/chunk-B4BU77LT.js +0 -432
  118. package/dist/chunk-DJ433ET5.js +0 -1327
  119. package/dist/chunk-DZ42OJQC.js +0 -176
  120. package/dist/chunk-EOWMARUB.js +0 -16
  121. package/dist/chunk-FIW6WN23.js +0 -508
  122. package/dist/chunk-GAR5TQ5B.js +0 -199
  123. package/dist/chunk-PC7K4SK7.js +0 -1384
  124. package/dist/chunk-ZO6MXAS3.js +0 -69
  125. package/dist/kernel-client-ZH4PSMCN.js +0 -367
  126. package/dist/kernel-wire-B4S8pnP3.d.ts +0 -65
  127. package/dist/three/index.css +0 -503
  128. package/dist/three/index.d.ts +0 -1185
  129. package/dist/three/index.js +0 -3896
  130. package/dist/useKeyboardRouter-Dsq553Ur.d.ts +0 -42
  131. package/dist/verificationRegistry-CabxhfTv.d.ts +0 -122
@@ -1,16 +1,14 @@
1
1
  import * as React$1 from 'react';
2
2
  import React__default, { ReactNode, ErrorInfo } from 'react';
3
- import { U as UnitAnimationState, F as FacingDirection, S as SpriteSheetUrls, f as SpriteFrameDims, R as ResolvedFrame, g as CanvasLighting, h as CanvasPost, a as IsometricUnit, i as CameraState } from '../Canvas3DHost-_Y-5uLM_.js';
4
- export { B as BoardTile, G as GameAction, j as GamePhase, k as GameState, l as GameUnit, b as IsometricFeature, I as IsometricTile, P as Position, m as UnitTrait, n as calculateAttackTargets, o as calculateValidMoves, p as createInitialGameState } from '../Canvas3DHost-_Y-5uLM_.js';
5
- import { EntityRow, FieldValue, EntityRole, Asset, AnimationName, SpriteDirection, AnimationDef, A11yProps, EventKey, EventEmit, EventPayload, AssetUrl, ScenePos, Camera, SoundEntry, EntityWith, DiagramMarkRoles, TraitConfigValue, SkeletonVariant, SkeletonSpec, SkeletonNode, SurfaceMode, EventListen, JsonValue, AssetCatalog, SExpr, JsonObject, EventPayloadValue, DeclaredTraitConfig, TraitConfig, ControlValue, OrbitalSchema, Trait, TraceActivity, OrbitalEntity, FormSubmitPayload, TraitDescription, UISlot, EnterAnimation, TraitValue, TransitionTrace, DependencyGraph, EditFocus, TraceSubagent, TraceChatMessage } from '@almadar/core';
3
+ import { AnimationName, Asset, EntityRow, FieldValue, EntityRole, SpriteDirection, AnimationDef, A11yProps, EventKey, EventEmit, EventPayload, AssetUrl, ScenePos, Camera, SoundEntry, EntityWith, DiagramMarkRoles, GpuBuffer, TraitConfigValue, SkeletonVariant, SkeletonSpec, SkeletonNode, SurfaceMode, UISlot, PatternNode, EventListen, JsonValue, AssetCatalog, SExpr, JsonObject, EventPayloadValue, DeclaredTraitConfig, TraitConfig, ControlValue, OrbitalSchema, Trait, TraceActivity, OrbitalEntity, FormSubmitPayload, TraitDescription, MountedOrbital, EnterAnimation, TraitValue, TransitionTrace, DependencyGraph, EditFocus, TraceSubagent, TraceChatMessage } from '@almadar/core';
6
4
  export { AnimationDef, AnimationName, AudioManifest, BusEvent, BusEventListener, BusEventSource, BusEventListener as EventListener, SkeletonVariant, SoundEntry, SpriteDirection, UISlot, Unsubscribe } from '@almadar/core';
7
5
  import { IconInput, UiError, FxOverlayItem, BadgeColor, DisplayField, DisplayFieldFormat, BadgeVariant, ColorToken } from '../core.js';
8
- import '../EventBusProvider-CVwjkV_2.js';
9
- import { D as DrawableNode, P as Projector, M as MeshShapeKind, a as MeshMaterial, b as DrawGroupProps, c as DrawTextProps, d as DrawMeshProps } from '../paintDispatch-ChW5mVuK.js';
10
- export { e as DrawFxLayer, f as DrawGroup, g as DrawMesh, h as DrawShape, i as DrawShapeLayer, j as DrawSkinnedMesh, k as DrawSprite, l as DrawSpriteLayer, m as DrawText, n as DrawTextLayer } from '../paintDispatch-ChW5mVuK.js';
11
- export { G as GameAudioContext, a as GameAudioContextValue, e as GameAudioControls, b as GameAudioProvider, c as GameAudioProviderProps, U as UseGameAudioOptions, f as useGameAudio, u as useGameAudioContext } from '../GameAudioProvider-Cm9BnvmP.js';
12
- import { AvlStateMachineProps } from '../avl/index.js';
13
- export { B as BehaviorView, f as BehaviorViewProps, g as FileTree, F as FileTreeItem, h as FileTreeNode, i as FileTreeProps, M as ModuleCard, j as ModuleCardProps } from '../FileTree-BCFnBEuQ.js';
6
+ import '../EventBusProvider-BFFHfN4O.js';
7
+ import { D as DrawableNode, P as Projector, M as MeshShapeKind } from '../verificationRegistry-oopV1J1n.js';
8
+ export { A as DrawFxLayer, B as DrawGroup, C as DrawMesh, E as DrawShape, F as DrawShapeLayer, G as DrawSkinnedMesh, H as DrawSprite, I as DrawSpriteLayer, J as DrawText, K as DrawTextLayer } from '../verificationRegistry-oopV1J1n.js';
9
+ export { G as GameAudioContext, a as GameAudioContextValue, e as GameAudioControls, b as GameAudioProvider, c as GameAudioProviderProps, U as UseGameAudioOptions, f as useGameAudio, u as useGameAudioContext } from '../GameAudioProvider-D7wo5ryN.js';
10
+ import { AvlStateMachineProps, TraitLevelData } from '../avl/index.js';
11
+ export { B as BehaviorView, l as BehaviorViewProps, m as FileTree, F as FileTreeItem, n as FileTreeNode, o as FileTreeProps, M as ModuleCard, q as ModuleCardProps } from '../FileTree-B3GDAjaQ.js';
14
12
  import { LucideIcon } from 'lucide-react';
15
13
  import { InputProps, ButtonProps, PatternVariant, SelectOption } from '../core.js';
16
14
  import { k as ContentAnnotation, L as LessonSegment } from '../parseLessonSegments-GpCeMrb2.js';
@@ -18,17 +16,13 @@ import { EditorMotion, EditorOperator, ContentSegment } from '../lib/index.js';
18
16
  export { B as BloomLevel, l as BloomQuizBlock, n as BloomQuizBlockProps, o as CodeRunnerPanel, q as CodeRunnerPanelProps, r as CodeSimulationOutput, s as LessonUserProgress, S as SegmentRenderer, t as SegmentRendererProps, h as parseLessonSegments } from '../parseLessonSegments-GpCeMrb2.js';
19
17
  import { LanguageCode } from '@almadar/core/i18n';
20
18
  import { EmojiPickPayload, ItemActionPayload, SelectionChangePayload } from '@almadar/core/patterns';
21
- import { TraitLevelData } from '../avl/index.js';
22
19
  import { a as SlotContent, c as SlotPropValue } from '../useUISlots-CiobNFGb.js';
23
20
  export { D as DEFAULT_SLOTS, S as SlotChangeCallback, b as SlotRenderConfig, U as UISlotManager, u as useUISlotManager } from '../useUISlots-CiobNFGb.js';
24
- import '../verificationRegistry-CabxhfTv.js';
25
- export { ALMADAR_DND_MIME, AuthContextValue, AuthUser, CanvasGestureCallbacks, CanvasGestureHandlers, CompileResult, CompileStage, DragReorderResult, DraggablePayload, Extension, ExtensionManifest, FileSystemFile, FileSystemStatus, GitHubRepo, GitHubStatus, LongPressHandlers, LongPressOptions, OpenFile, PageHeadInput, Positioned, PullToRefreshOptions, PullToRefreshResult, QuerySingletonEntity, QuerySingletonResult, QuerySingletonState, QueryState, RenderInterpolationHandle, RenderInterpolationOptions, SelectedFile, SharedEntityStore, SharedEntityStoreContext, SharedEntitySubscriber, SharedEntityWriter, SwipeGestureOptions, SwipeGestureResult, SwipeHandlers, TraitListenSpec, UseCanvasGesturesOptions, UseCompileResult, UseDraggableOptions, UseDraggableResult, UseDropZoneOptions, UseDropZoneResult, UseExtensionsOptions, UseExtensionsResult, UseFileEditorOptions, UseFileEditorResult, UseFileSystemResult, claimDelivery, createSharedEntityStore, parseQueryBinding, runTickFrame, useAgentChat, useAuthContext, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useLongPress, usePageHead, usePreview, usePullToRefresh, useQuerySingleton, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useSwipeGesture, useTickVisibility, useTraitListens, useUIEvents, useValidation } from '../hooks/index.js';
26
- export { E as EditorKeyEvent, a as KeyCaptureEntry, K as KeyCaptureTable, U as UseKeyboardRouterOptions, k as keyChord, m as mergeCaptureTables, u as useKeyboardRouter } from '../useKeyboardRouter-Dsq553Ur.js';
21
+ export { ALMADAR_DND_MIME, AuthContextValue, AuthUser, CanvasGestureCallbacks, CanvasGestureHandlers, CompileResult, CompileStage, DragReorderResult, DraggablePayload, EditorKeyEvent, Extension, ExtensionManifest, FileSystemFile, FileSystemStatus, GitHubRepo, GitHubStatus, KeyCaptureEntry, KeyCaptureTable, LongPressHandlers, LongPressOptions, OpenFile, PageHeadInput, Positioned, PullToRefreshOptions, PullToRefreshResult, QuerySingletonEntity, QuerySingletonResult, QuerySingletonState, QueryState, RenderInterpolationHandle, RenderInterpolationOptions, SelectedFile, SharedEntityStore, SharedEntityStoreContext, SharedEntitySubscriber, SharedEntityWriter, SwipeGestureOptions, SwipeGestureResult, SwipeHandlers, TraitListenSpec, UseCanvasGesturesOptions, UseCompileResult, UseDraggableOptions, UseDraggableResult, UseDropZoneOptions, UseDropZoneResult, UseExtensionsOptions, UseExtensionsResult, UseFileEditorOptions, UseFileEditorResult, UseFileSystemResult, UseKeyboardRouterOptions, claimDelivery, createSharedEntityStore, keyChord, mergeCaptureTables, parseQueryBinding, runTickFrame, useAgentChat, useAuthContext, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useKeyboardRouter, useLongPress, usePageHead, usePreview, usePullToRefresh, useQuerySingleton, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useSwipeGesture, useTickVisibility, useTraitListens, useUIEvents, useValidation } from '../hooks/index.js';
27
22
  export { S as SlotHostManifest, a as SlotHostRegion, b as assertUniqueSlotsPerHost } from '../slot-host-CPzrxLo9.js';
28
- import 'three';
29
- import '@xyflow/react';
30
23
  import '@almadar/shell-runtime/client/EventTransport';
31
24
  import '../verification-C5pTeMJv.js';
25
+ import '@xyflow/react';
32
26
  import '@tanstack/react-query';
33
27
 
34
28
  /**
@@ -86,6 +80,292 @@ declare namespace TraitFrame {
86
80
  var displayName: string;
87
81
  }
88
82
 
83
+ /**
84
+ * Sprite Sheet Animation Types
85
+ *
86
+ * Type definitions for frame-based sprite sheet animation system.
87
+ * Supports standard 8-column × 5-row character sheets.
88
+ *
89
+ * `AnimationName`, `AnimationDef`, and `SpriteDirection` are canonically owned
90
+ * by `@almadar/core` (they travel with a `spriteSheet`-role `Asset.url`'s
91
+ * resolved atlas contract) — re-exported here so existing call sites in this
92
+ * package don't need to change their import path.
93
+ *
94
+ * @packageDocumentation
95
+ */
96
+
97
+ /** Unit facing direction on screen (4 isometric directions) */
98
+ type FacingDirection = 'se' | 'sw' | 'ne' | 'nw';
99
+ /** A resolved frame ready to draw on canvas */
100
+ interface ResolvedFrame {
101
+ /** URL of the sprite sheet image */
102
+ sheetUrl: string;
103
+ /** Source X in the sheet (pixel offset) */
104
+ sx: number;
105
+ /** Source Y in the sheet (pixel offset) */
106
+ sy: number;
107
+ /** Source width (frame width) */
108
+ sw: number;
109
+ /** Source height (frame height) */
110
+ sh: number;
111
+ /** Whether to flip horizontally when drawing (for NE/NW directions) */
112
+ flipX: boolean;
113
+ /** When true, canvas should apply sine-bob breathing offset (frozen idle frame) */
114
+ applyBreathing?: boolean;
115
+ }
116
+ /** Per-unit animation state tracked in the animation system */
117
+ interface UnitAnimationState {
118
+ /** Unit identifier */
119
+ unitId: string;
120
+ /** Current animation playing */
121
+ animation: AnimationName;
122
+ /** Current facing direction */
123
+ direction: FacingDirection;
124
+ /** Current frame index within the animation */
125
+ frame: number;
126
+ /** Elapsed time in current animation (ms) */
127
+ elapsed: number;
128
+ /** Animation to play after current one-shot completes (null = idle) */
129
+ queuedAnimation: AnimationName | null;
130
+ /** Whether the current one-shot animation has finished its last frame */
131
+ finished: boolean;
132
+ }
133
+ /** Frame dimensions for a sprite sheet */
134
+ interface SpriteFrameDims {
135
+ /** Width of a single frame in pixels */
136
+ width: number;
137
+ /** Height of a single frame in pixels */
138
+ height: number;
139
+ }
140
+ /**
141
+ * Sheet URLs per facing. Legacy hand-drawn packs ship only se/sw (ne/nw are
142
+ * mirror-flipped — a cheat that shows the face while walking away); 3D-baked
143
+ * sheets also ship real ne/nw, which `resolveFrame` prefers when present.
144
+ */
145
+ interface SpriteSheetUrls {
146
+ /** Southeast-facing sheet URL */
147
+ se: string;
148
+ /** Southwest-facing sheet URL */
149
+ sw: string;
150
+ /** Northeast-facing sheet URL (real back view; omitted → mirror of sw) */
151
+ ne?: string;
152
+ /** Northwest-facing sheet URL (real back view; omitted → mirror of se) */
153
+ nw?: string;
154
+ }
155
+
156
+ /**
157
+ * Game Types — Generalized
158
+ *
159
+ * Core type definitions for tactical game state.
160
+ * Extracted from Trait Wars and generalized for any game project.
161
+ */
162
+ interface Position {
163
+ x: number;
164
+ y: number;
165
+ }
166
+ interface GameUnit {
167
+ id: string;
168
+ name: string;
169
+ characterType: string;
170
+ team: 'player' | 'enemy' | 'neutral';
171
+ position: Position;
172
+ health: number;
173
+ maxHealth: number;
174
+ movement: number;
175
+ attack: number;
176
+ defense: number;
177
+ traits: UnitTrait[];
178
+ }
179
+ interface UnitTrait {
180
+ name: string;
181
+ currentState: string;
182
+ states: string[];
183
+ cooldown: number;
184
+ }
185
+ interface BoardTile {
186
+ terrain: string;
187
+ unitId?: string;
188
+ isBlocked?: boolean;
189
+ }
190
+ type GamePhase = 'observation' | 'planning' | 'execution' | 'tick';
191
+ interface GameState {
192
+ board: BoardTile[][];
193
+ units: Record<string, GameUnit>;
194
+ currentPhase: GamePhase;
195
+ currentTurn: number;
196
+ activeTeam: 'player' | 'enemy' | 'neutral';
197
+ selectedUnitId?: string;
198
+ validMoves: Position[];
199
+ attackTargets: Position[];
200
+ }
201
+ type GameAction = {
202
+ type: 'SELECT_UNIT';
203
+ unitId: string;
204
+ } | {
205
+ type: 'MOVE_UNIT';
206
+ from: Position;
207
+ to: Position;
208
+ } | {
209
+ type: 'ATTACK';
210
+ attackerId: string;
211
+ targetId: string;
212
+ } | {
213
+ type: 'END_TURN';
214
+ } | {
215
+ type: 'EXECUTE_TRAITS';
216
+ };
217
+ /**
218
+ * Create the initial game state with board and units.
219
+ *
220
+ * @param {number} width - Board width in tiles
221
+ * @param {number} height - Board height in tiles
222
+ * @param {GameUnit[]} units - Initial units to place on the board
223
+ * @param {string} [defaultTerrain] - Default terrain type for empty tiles
224
+ * @returns {GameState} The initialized game state
225
+ */
226
+ declare function createInitialGameState(width: number, height: number, units: GameUnit[], defaultTerrain?: string): GameState;
227
+ /**
228
+ * Calculate valid movement positions for a unit.
229
+ *
230
+ * Returns all tiles within the unit's movement range that are
231
+ * not blocked and don't contain other units.
232
+ *
233
+ * @param {GameState} state - Current game state
234
+ * @param {string} unitId - ID of the unit to calculate moves for
235
+ * @returns {Position[]} Array of valid move positions
236
+ */
237
+ declare function calculateValidMoves(state: GameState, unitId: string): Position[];
238
+ /**
239
+ * Calculate valid attack targets for a unit.
240
+ *
241
+ * Returns adjacent positions containing enemy units that can be attacked.
242
+ *
243
+ * @param {GameState} state - Current game state
244
+ * @param {string} unitId - ID of the unit to calculate targets for
245
+ * @returns {Position[]} Array of valid attack target positions
246
+ */
247
+ declare function calculateAttackTargets(state: GameState, unitId: string): Position[];
248
+
249
+ /** A single isometric tile on the grid */
250
+ interface IsometricTile {
251
+ /** Optional unique identifier (required for 3D rendering) */
252
+ id?: string;
253
+ /** Grid x coordinate */
254
+ x: number;
255
+ /** Grid y coordinate (2D) */
256
+ y: number;
257
+ /** Grid z coordinate (3D alternative to y) */
258
+ z?: number;
259
+ /** Terrain type key (e.g., 'grass', 'stone', 'water') - 2D */
260
+ terrain?: string;
261
+ /** Tile type for visual rendering (3D) */
262
+ type?: string;
263
+ /** Direct sprite URL override (bypasses getTerrainSprite resolver) */
264
+ terrainSprite?: Asset;
265
+ /** Fallback/override fill color (2D + 3D) — bypasses the terrain color map. `.lolo`-computed. */
266
+ color?: string;
267
+ /** Whether units can traverse this tile (default true) */
268
+ passable?: boolean;
269
+ /** Movement cost for pathfinding (default 1) */
270
+ movementCost?: number;
271
+ /** Optional tile type for visual variants */
272
+ tileType?: string;
273
+ /** Elevation offset for 3D rendering */
274
+ elevation?: number;
275
+ /** 3D model URL (GLB format) for GameCanvas3D — rendered via ModelLoader with box fallback */
276
+ modelUrl?: Asset;
277
+ /** Y-axis rotation in degrees (3D) — orients directional pieces (track corners, road bends) */
278
+ rotation?: number;
279
+ }
280
+ /** A unit positioned on the isometric grid */
281
+ type IsometricUnit = {
282
+ /** Unique unit identifier */
283
+ id: string;
284
+ /** Current grid position (2D format) */
285
+ position?: {
286
+ x: number;
287
+ y: number;
288
+ };
289
+ /** Grid x coordinate (3D format) */
290
+ x?: number;
291
+ /** Grid y coordinate (3D format) */
292
+ y?: number;
293
+ /** Grid z coordinate (3D format) */
294
+ z?: number;
295
+ /** Static sprite URL (used when no sprite sheet animation) */
296
+ sprite?: Asset;
297
+ /** Sprite-sheet atlas JSON URL (e.g. `.../guardian-sprite-sheet.json`).
298
+ * When set, the canvas loads the atlas and crops/animates a single frame
299
+ * by animation state instead of drawing the whole sheet. */
300
+ spriteSheet?: Asset;
301
+ /** 3D model URL (GLB format) for GameCanvas3D — rendered via ModelLoader with box fallback */
302
+ modelUrl?: Asset;
303
+ /** Unit archetype key for sprite resolution */
304
+ unitType?: string;
305
+ /** Hero identifier for sprite sheet lookup */
306
+ heroId?: string;
307
+ /** Display name rendered below the unit */
308
+ name?: string;
309
+ /** Team affiliation for coloring */
310
+ team?: 'player' | 'enemy' | 'neutral';
311
+ /** Faction for 3D rendering (player/enemy/neutral) */
312
+ faction?: 'player' | 'enemy' | 'neutral';
313
+ /** Fallback/override tint color (2D + 3D) — bypasses the team/faction color map. `.lolo`-computed. */
314
+ tint?: string;
315
+ /** Current health */
316
+ health?: number;
317
+ /** Maximum health */
318
+ maxHealth?: number;
319
+ /** Trait attachments for state display */
320
+ traits?: UnitTrait[];
321
+ /** Previous position for movement trail ghost */
322
+ previousPosition?: {
323
+ x: number;
324
+ y: number;
325
+ };
326
+ /** Elevation offset for 3D rendering */
327
+ elevation?: number;
328
+ /** Animation name — driven by the LOLO state machine; renderer defaults to 'idle' */
329
+ animation?: AnimationName;
330
+ /** Frame index within the animation — driven by the LOLO state machine; renderer defaults to 0 */
331
+ frame?: number;
332
+ /** Y-axis heading in radians (3D) — travel/facing direction. Orients the unit model and
333
+ * drives the `chase` camera (behind + above, looking along heading). Driving boards set this. */
334
+ heading?: number;
335
+ };
336
+ /** A map feature (resource, building, portal, etc.) */
337
+ type IsometricFeature = {
338
+ /** Optional unique identifier (required for 3D rendering) */
339
+ id?: string;
340
+ /** Grid x coordinate */
341
+ x: number;
342
+ /** Grid y coordinate (2D) */
343
+ y: number;
344
+ /** Grid z coordinate (3D alternative to y) */
345
+ z?: number;
346
+ /** Feature type key (e.g., 'goldMine', 'castle', 'portal') */
347
+ type: string;
348
+ /** Direct sprite URL override (bypasses getFeatureSprite resolver) */
349
+ sprite?: Asset;
350
+ /** 3D model URL (GLB format) for GameCanvas3D */
351
+ assetUrl?: Asset;
352
+ /** Color override for 3D rendering */
353
+ color?: string;
354
+ /** Elevation offset for 3D rendering */
355
+ elevation?: number;
356
+ /** Y-axis rotation in radians (3D) — orients directional features (arches, signs, docks). */
357
+ rotation?: number;
358
+ };
359
+ /** Camera state for pan/zoom */
360
+ interface CameraState {
361
+ /** Camera X offset in pixels */
362
+ x: number;
363
+ /** Camera Y offset in pixels */
364
+ y: number;
365
+ /** Zoom level (1.0 = 100%) */
366
+ zoom: number;
367
+ }
368
+
89
369
  /**
90
370
  * boardEntity — tiny coercion helpers for reading `EntityRow` data inside game
91
371
  * boards.
@@ -364,8 +644,10 @@ interface ScoreDisplayProps extends Omit<React$1.AriaAttributes, keyof A11yProps
364
644
  className?: string;
365
645
  /** Number formatting locale */
366
646
  locale?: string;
647
+ /** Formatted value supplied by the program's presentation expression. */
648
+ displayValue?: string;
367
649
  }
368
- declare function ScoreDisplay({ assetUrl, value, score, label, icon, size, className, locale: localeProp, ...rest }: ScoreDisplayProps): React$1.JSX.Element;
650
+ declare function ScoreDisplay({ assetUrl, value, score, label, icon, size, className, locale: localeProp, displayValue, ...rest }: ScoreDisplayProps): React$1.JSX.Element;
369
651
  declare namespace ScoreDisplay {
370
652
  var displayName: string;
371
653
  }
@@ -418,8 +700,10 @@ interface TimerDisplayProps extends Omit<React$1.AriaAttributes, keyof A11yProps
418
700
  lowThreshold?: number;
419
701
  /** Icon asset rendered to the left of the time value. Falls back to no icon. */
420
702
  iconAsset?: Asset;
703
+ /** Time text supplied by the program's presentation expression. */
704
+ displayText?: string;
421
705
  }
422
- declare function TimerDisplay({ seconds, running, format, size, className, lowThreshold, iconAsset, ...rest }: TimerDisplayProps): React$1.JSX.Element;
706
+ declare function TimerDisplay({ seconds, running, format, size, className, lowThreshold, iconAsset, displayText, ...rest }: TimerDisplayProps): React$1.JSX.Element;
423
707
  declare namespace TimerDisplay {
424
708
  var displayName: string;
425
709
  }
@@ -484,7 +768,7 @@ interface ControlGridButton {
484
768
  assetUrl?: Asset;
485
769
  variant?: 'primary' | 'secondary' | 'ghost' | string;
486
770
  }
487
- type DPadDirection = 'up' | 'down' | 'left' | 'right';
771
+ type DPadDirection = 'up' | 'down' | 'left' | 'right' | 'up-left' | 'up-right' | 'down-left' | 'down-right';
488
772
  interface ControlGridProps extends Omit<React$1.AriaAttributes, keyof A11yProps>, A11yProps {
489
773
  kind: ControlGridKind;
490
774
  /** action buttons (kind="actions") */
@@ -540,6 +824,8 @@ interface StatBadgeProps extends Omit<React$1.AriaAttributes, keyof A11yProps>,
540
824
  label: string;
541
825
  /** Current value (defaults to 0 if not provided) */
542
826
  value?: number | string;
827
+ /** Formatted numeric value supplied by the program's presentation expression. */
828
+ displayValue?: string;
543
829
  /** Maximum value (for bar/hearts format) */
544
830
  max?: number;
545
831
  /** Data source entity name (for schema config) */
@@ -557,7 +843,7 @@ interface StatBadgeProps extends Omit<React$1.AriaAttributes, keyof A11yProps>,
557
843
  /** Additional CSS classes */
558
844
  className?: string;
559
845
  }
560
- declare function StatBadge({ assetUrl, iconUrl, label, value, max, format, icon, size, variant, className, source: _source, field: _field, ...rest }: StatBadgeProps): React$1.JSX.Element;
846
+ declare function StatBadge({ assetUrl, iconUrl, label, value, displayValue, max, format, icon, size, variant, className, source: _source, field: _field, ...rest }: StatBadgeProps): React$1.JSX.Element;
561
847
  declare namespace StatBadge {
562
848
  var displayName: string;
563
849
  }
@@ -864,6 +1150,60 @@ declare namespace Canvas2D {
864
1150
  var displayName: string;
865
1151
  }
866
1152
 
1153
+ /**
1154
+ * The 3D scene props a pattern declares as data (light rig, post-processing stack), shared by the `canvas` and
1155
+ * learning patterns and drawn by orbital-canvas.
1156
+ *
1157
+ * @packageDocumentation
1158
+ */
1159
+ /** Single light's tunable knobs (ambient/directional share this shape). */
1160
+ type CanvasLightConfig = {
1161
+ intensity?: number;
1162
+ color?: string;
1163
+ position?: [number, number, number];
1164
+ };
1165
+ /** Hemisphere (sky/ground) light config. */
1166
+ type CanvasHemisphereConfig = {
1167
+ intensity?: number;
1168
+ color?: string;
1169
+ groundColor?: string;
1170
+ };
1171
+ /** Point light config — `position` is required since a point light has no meaningful default placement. */
1172
+ type CanvasPointLightConfig = {
1173
+ intensity?: number;
1174
+ color?: string;
1175
+ position: [number, number, number];
1176
+ distance?: number;
1177
+ decay?: number;
1178
+ };
1179
+ /** Canvas-level 3D light rig, authored as data. Every field is optional; an omitted field takes the standard rig's value. */
1180
+ type CanvasLighting = {
1181
+ /** Default intensity 0.6, color '#ffffff'. */
1182
+ ambient?: CanvasLightConfig;
1183
+ /** Default intensity 0.8, color '#ffffff', position [10, 20, 10]. */
1184
+ directional?: CanvasLightConfig;
1185
+ /** Default intensity 0.3, color '#87ceeb', groundColor '#362d1d'. */
1186
+ hemisphere?: CanvasHemisphereConfig;
1187
+ /** Additional point lights. Default none. */
1188
+ points?: CanvasPointLightConfig[];
1189
+ /** Procedural environment for PBR reflection (metals/glass). Default 'none'. */
1190
+ environment?: 'room' | 'none';
1191
+ /** Output tone mapping. Default 'aces' (filmic); 'none' renders material colors faithfully. */
1192
+ toneMapping?: 'aces' | 'none';
1193
+ };
1194
+ /** Canvas-level post-processing stack. Every field is optional; an omitted field means that pass is not run. */
1195
+ type CanvasPost = {
1196
+ bloom?: {
1197
+ intensity?: number;
1198
+ threshold?: number;
1199
+ smoothing?: number;
1200
+ };
1201
+ vignette?: {
1202
+ offset?: number;
1203
+ darkness?: number;
1204
+ };
1205
+ };
1206
+
867
1207
  /**
868
1208
  * Canvas — the unified game canvas draw-host (P6 closing).
869
1209
  *
@@ -884,8 +1224,8 @@ declare namespace Canvas2D {
884
1224
  * shapes so the single value stays assignable to either host's prop (the two hosts
885
1225
  * still emit their own coordinate shape at runtime).
886
1226
  *
887
- * The 3D host (three.js/R3F) is lazy-imported so a 2D-only app never pulls the
888
- * 3D bundle — the code-split boundary the drawable atoms were built R3F-free for.
1227
+ * The 3D painter is orbital-canvas (wasm), handed the pattern's own props as its
1228
+ * scene config.
889
1229
  *
890
1230
  * @packageDocumentation
891
1231
  */
@@ -1030,6 +1370,11 @@ interface GameAudioToggleProps extends Omit<React__default.AriaAttributes, keyof
1030
1370
  size?: 'sm' | 'md' | 'lg';
1031
1371
  /** Additional CSS classes */
1032
1372
  className?: string;
1373
+ /** Authored mute state. When supplied, the caller owns updates. */
1374
+ muted?: boolean;
1375
+ /** Accessible labels supplied by the translated parent view. */
1376
+ soundOnLabel?: string;
1377
+ mutedLabel?: string;
1033
1378
  /** Loading state (passed through) */
1034
1379
  isLoading?: boolean;
1035
1380
  /** Error state (passed through) */
@@ -1043,7 +1388,7 @@ interface GameAudioToggleProps extends Omit<React__default.AriaAttributes, keyof
1043
1388
  muted: boolean;
1044
1389
  }>;
1045
1390
  }
1046
- declare function GameAudioToggle({ size, className, onAsset, offAsset, toggleEvent, ...rest }: GameAudioToggleProps): React__default.JSX.Element;
1391
+ declare function GameAudioToggle({ size, className, muted: authoredMuted, soundOnLabel, mutedLabel, onAsset, offAsset, toggleEvent, isLoading, ...rest }: GameAudioToggleProps): React__default.JSX.Element;
1047
1392
  declare namespace GameAudioToggle {
1048
1393
  var displayName: string;
1049
1394
  }
@@ -1226,6 +1571,10 @@ interface TraitSlotProps extends Omit<React__default.AriaAttributes, keyof A11yP
1226
1571
  locked?: boolean;
1227
1572
  /** Label shown when locked */
1228
1573
  lockLabel?: string;
1574
+ /** Accessible name for an empty slot; author supplies translated text. */
1575
+ emptyLabel?: string;
1576
+ /** Accessible name for the remove control; author supplies translated text. */
1577
+ removeLabel?: string;
1229
1578
  /** Whether slot is selected */
1230
1579
  selected?: boolean;
1231
1580
  /** Size variant */
@@ -1273,7 +1622,7 @@ interface TraitSlotProps extends Omit<React__default.AriaAttributes, keyof A11yP
1273
1622
  itemId: string;
1274
1623
  }>;
1275
1624
  }
1276
- declare function TraitSlot({ slotNumber, equippedItem, locked, lockLabel, selected, size, showTooltip, categoryColors, tooltipFrameUrl, className, feedback, onItemDrop, draggable, onDragStart, onClick, onRemove, clickEvent, removeEvent, dropEvent, ...rest }: TraitSlotProps): React__default.JSX.Element;
1625
+ declare function TraitSlot({ slotNumber, equippedItem, locked, lockLabel, emptyLabel, removeLabel, selected, size, showTooltip, categoryColors, tooltipFrameUrl, className, feedback, onItemDrop, draggable, onDragStart, onClick, onRemove, clickEvent, removeEvent, dropEvent, ...rest }: TraitSlotProps): React__default.JSX.Element;
1277
1626
  declare namespace TraitSlot {
1278
1627
  var displayName: string;
1279
1628
  }
@@ -1392,87 +1741,6 @@ declare namespace EditorToolbar {
1392
1741
  var displayName: string;
1393
1742
  }
1394
1743
 
1395
- /**
1396
- * Shared types for entity-display organisms.
1397
- *
1398
- * All entity-display organisms (DataTable, List, Table, CardGrid, DetailPanel)
1399
- * extend EntityDisplayProps to guarantee a uniform prop contract.
1400
- *
1401
- * Exception: Form manages local `formData` state for field input tracking.
1402
- * This is the ONE allowed exception — documented here.
1403
- */
1404
-
1405
- declare const EntityDisplayEvents: {
1406
- readonly SORT: "SORT";
1407
- readonly PAGINATE: "PAGINATE";
1408
- readonly SEARCH: "SEARCH";
1409
- readonly FILTER: "FILTER";
1410
- readonly CLEAR_FILTERS: "CLEAR_FILTERS";
1411
- readonly SELECT: "SELECT";
1412
- readonly DESELECT: "DESELECT";
1413
- };
1414
- interface SortPayload {
1415
- field: string;
1416
- direction: 'asc' | 'desc';
1417
- }
1418
- interface PaginatePayload {
1419
- page: number;
1420
- pageSize?: number;
1421
- }
1422
- interface SearchPayload {
1423
- query: string;
1424
- }
1425
- interface FilterPayload {
1426
- field: string;
1427
- operator: string;
1428
- value: FieldValue;
1429
- }
1430
- interface SelectPayload {
1431
- ids: (string | number)[];
1432
- }
1433
- /**
1434
- * Common non-entity display state shared by every display organism — loading,
1435
- * error, and the render-ui display hints (sort/search/pagination/selection).
1436
- * Carries NO entity data and NO generic. Components that show entity data add
1437
- * their own `entity?: EntityRow | readonly EntityRow[]` field directly (the one
1438
- * unified entity type from `@almadar/core`); components that only need the
1439
- * loading/hint surface just extend this.
1440
- */
1441
- interface DisplayStateProps {
1442
- /** Additional CSS classes */
1443
- className?: string;
1444
- /** Loading state indicator */
1445
- isLoading?: boolean;
1446
- /** Error state */
1447
- error?: UiError | null;
1448
- /** Current sort field */
1449
- sortBy?: string;
1450
- /** Current sort direction */
1451
- sortDirection?: 'asc' | 'desc';
1452
- /** Current search query value */
1453
- searchValue?: string;
1454
- /** Current page number (1-indexed) */
1455
- page?: number;
1456
- /** Number of items per page */
1457
- pageSize?: number;
1458
- /** Total number of items (for pagination display) */
1459
- totalCount?: number;
1460
- /**
1461
- * Active filters, keyed by field name. Scalar-only (`string | number |
1462
- * boolean`) rather than the full `FieldValue` domain: `FieldValue` is a
1463
- * self-referential union (adds `Date`, nested arrays/objects) the
1464
- * pattern-sync scanner can't shape into a `Map string V` knob, so it always
1465
- * degraded to `json`. This narrows out date/array/nested-object filter
1466
- * values — no current call site in this package constructs this prop, so
1467
- * nothing here breaks, but a caller wiring a date-range or multi-select
1468
- * filter through this prop would need those. Flagged for the coordinator;
1469
- * revert to `Record<string, FieldValue>` if that capability is needed.
1470
- */
1471
- activeFilters?: Record<string, string | number | boolean>;
1472
- /** Currently selected item IDs */
1473
- selectedIds?: readonly (string | number)[];
1474
- }
1475
-
1476
1744
  /**
1477
1745
  * ActionTile Component
1478
1746
  *
@@ -1483,7 +1751,7 @@ interface DisplayStateProps {
1483
1751
  * @packageDocumentation
1484
1752
  */
1485
1753
 
1486
- interface ActionTileProps extends DisplayStateProps, Omit<React__default.AriaAttributes, keyof A11yProps>, A11yProps {
1754
+ interface ActionTileProps extends Omit<React__default.AriaAttributes, keyof A11yProps>, A11yProps {
1487
1755
  /** The action data */
1488
1756
  action: SlotItemData;
1489
1757
  /** Size variant */
@@ -1495,6 +1763,8 @@ interface ActionTileProps extends DisplayStateProps, Omit<React__default.AriaAtt
1495
1763
  bg: string;
1496
1764
  border: string;
1497
1765
  }>;
1766
+ /** Additional CSS classes */
1767
+ className?: string;
1498
1768
  }
1499
1769
  declare function ActionTile({ action, size, disabled, categoryColors, className, ...rest }: ActionTileProps): React__default.JSX.Element;
1500
1770
  declare namespace ActionTile {
@@ -1575,10 +1845,14 @@ interface SequenceBarProps extends Omit<React__default.AriaAttributes, keyof A11
1575
1845
  slotFeedback?: Array<'correct' | 'wrong' | null>;
1576
1846
  /** Size variant */
1577
1847
  size?: 'sm' | 'md' | 'lg';
1848
+ /** Accessible name for empty slots; author supplies translated text. */
1849
+ emptyLabel?: string;
1850
+ /** Accessible name for remove controls; author supplies translated text. */
1851
+ removeLabel?: string;
1578
1852
  /** Additional CSS classes */
1579
1853
  className?: string;
1580
1854
  }
1581
- declare function SequenceBar({ slots, maxSlots, onSlotDrop, onSlotRemove, slotDropEvent, slotRemoveEvent, playing, currentStep, categoryColors, slotFeedback, size, className, ...rest }: SequenceBarProps): React__default.JSX.Element;
1855
+ declare function SequenceBar({ slots, maxSlots, onSlotDrop, onSlotRemove, slotDropEvent, slotRemoveEvent, playing, currentStep, categoryColors, slotFeedback, size, emptyLabel, removeLabel, className, ...rest }: SequenceBarProps): React__default.JSX.Element;
1582
1856
  declare namespace SequenceBar {
1583
1857
  var displayName: string;
1584
1858
  }
@@ -1747,7 +2021,7 @@ interface GameShellProps extends Omit<React__default.AriaAttributes, keyof A11yP
1747
2021
  backgroundAsset?: Asset;
1748
2022
  /** Per-call-site 9-sliced panel override. Chrome normally comes from the active theme; most callers leave this unset. */
1749
2023
  hudBackgroundAsset?: Asset;
1750
- /** Game display-font key (pixel | fredoka | future | future-narrow | blocks | mini) or a CSS font-family. Scoped override of the theme contract's --font-family-display slot: titles and numerics take this face, body text follows the active theme. Unset = the theme token decides. */
2024
+ /** Shared game display-font alias or a CSS font-family. Scoped override of the theme contract's --font-family-display slot: titles and numerics take this face, body text follows the active theme. Unset = the theme token decides. */
1751
2025
  fontFamily?: string;
1752
2026
  /** Scopes an `@almadar/ui` theme (e.g. "game-sci-fi-dark") to this shell's subtree. */
1753
2027
  "data-theme"?: string;
@@ -1757,10 +2031,9 @@ declare const GameShell: React__default.FC<GameShellProps>;
1757
2031
  /**
1758
2032
  * LearningCanvas
1759
2033
  *
1760
- * A pure, declarative HTML5 canvas atom for math and science visualizations.
1761
- * Accepts a list of primitive shapes (line, arrow, circle, rect, polygon, path,
1762
- * text, axis, grid) and renders them. Optional interactivity emits click/hover
1763
- * events, and optional animation drives a continuous render loop.
2034
+ * A declarative canvas atom for math and science visualizations: a list of primitive shapes (line, arrow, circle,
2035
+ * rect, polygon, path, text, axis, grid) plus readout chips and trace insets, mapped and drawn by orbital-canvas.
2036
+ * Optional interactivity emits click events.
1764
2037
  *
1765
2038
  * This is the foundational atom for the `learning/` behavior family.
1766
2039
  *
@@ -1820,6 +2093,22 @@ interface LearningShape extends DiagramMarkRoles {
1820
2093
  /** venn-region only: ids of sibling `circle` shapes SUBTRACTED from the `inside` intersection (true lens/exclusion shading). */
1821
2094
  outside?: string[];
1822
2095
  }
2096
+ /**
2097
+ * Particles packed as data (a GPU readback, for one): one little-endian 32-bit word every `stride` bytes, x in bits
2098
+ * 0-11, y in bits 12-23 and a `palette` index in bits 24-31. Drawn in one pass, without a shape per particle.
2099
+ */
2100
+ interface LearningParticles {
2101
+ /** The packed words as base64 bytes (a CPU copy); exactly one of `data` or `buffer`. */
2102
+ data?: string;
2103
+ /** The packed words where they lie on the GPU (a program's compute output, drawn without a readback). */
2104
+ buffer?: GpuBuffer;
2105
+ /** Bytes from one particle's word to the next. */
2106
+ stride: number;
2107
+ /** Drawn half-size of each particle, in scene pixels. */
2108
+ radius: number;
2109
+ /** Particle colors by index: tone names, `var()` tokens or literals; an index past the end takes the last. */
2110
+ palette: string[];
2111
+ }
1823
2112
  /** A single top-right status chip (e.g. a live measurement or score). */
1824
2113
  interface LearningReadout {
1825
2114
  /** Chip label, shown before the value. */
@@ -1883,6 +2172,8 @@ interface LearningCanvasProps extends A11yProps {
1883
2172
  fontFamily?: string;
1884
2173
  /** Declarative shapes to draw. */
1885
2174
  shapes?: LearningShape[];
2175
+ /** Packed particles drawn under the shapes in one pass ({@link LearningParticles}). */
2176
+ particles?: LearningParticles;
1886
2177
  /**
1887
2178
  * Neutral game-canvas drawables (e.g. `draw-sprite`, `draw-fx-layer`) painted
1888
2179
  * in world coordinates via the supplied `projector`. This lets the learning
@@ -2101,6 +2392,11 @@ interface ErrorStateProps extends A11yProps {
2101
2392
  }
2102
2393
  declare const ErrorState: React__default.FC<ErrorStateProps>;
2103
2394
 
2395
+ /**
2396
+ * @role status
2397
+ * @tokens --color-muted --color-border
2398
+ * @motion css
2399
+ */
2104
2400
  interface SkeletonProps extends A11yProps {
2105
2401
  /** The skeleton variant to render */
2106
2402
  variant?: SkeletonVariant;
@@ -2224,6 +2520,11 @@ declare const Accordion: React__default.FC<AccordionProps>;
2224
2520
  */
2225
2521
 
2226
2522
  type AlertVariant = "info" | "success" | "warning" | "error";
2523
+ /**
2524
+ * @role status
2525
+ * @tokens --color-error --color-warning --color-success --color-info
2526
+ * @motion none
2527
+ */
2227
2528
  interface AlertProps extends A11yProps {
2228
2529
  /** Alert content (children or message) */
2229
2530
  children?: React__default.ReactNode;
@@ -2748,6 +3049,51 @@ interface FloatingActionButtonProps extends A11yProps {
2748
3049
  }
2749
3050
  declare const FloatingActionButton: React__default.FC<FloatingActionButtonProps>;
2750
3051
 
3052
+ /**
3053
+ * GuestView — paints the UI of a guest program session (program/open) inside the opener's view.
3054
+ * Paint only: a click on a control inside it is routed by the kernel to the opener as its
3055
+ * `deliver` event { guest, address, event, payload }.
3056
+ *
3057
+ * The guest's own traits are the ones an `@trait.X` inside its paint names, so the view holds a scoped
3058
+ * UISlotProvider seeded with every paint the guest made: `TraitFrame` resolves against the guest, not the host.
3059
+ * Every slot the guest paints renders inside the view (contained, never the host page's), and an in-app link
3060
+ * inside it is the guest's navigation, emitted as `navigate`, never the host router's. Each guest paint is scoped to
3061
+ * the trait that drew it (its `orbital`, as a page scopes its own), so a click names its painter for the kernel.
3062
+ */
3063
+
3064
+ interface GuestPaintEntry {
3065
+ /** Slot the guest trait painted */
3066
+ slot: UISlot;
3067
+ /** Guest trait that painted `content` */
3068
+ trait: string;
3069
+ /** The guest orbital declaring `trait`: the scope its controls emit under */
3070
+ orbital?: string | null;
3071
+ /** Whether the trait is embedded (`@trait.X`) on the guest's page rather than the page root */
3072
+ embedded: boolean;
3073
+ /** The painted pattern tree */
3074
+ content: PatternNode | string | null;
3075
+ }
3076
+ interface GuestViewProps {
3077
+ /** Guest session handle (`program/open` answers it, e.g. "guest-1"). Data for the kernel; never rendered. */
3078
+ guest: string;
3079
+ /** The guest's page-root trait whose paint is `children`: their controls are scoped to it. Never rendered. */
3080
+ source: string;
3081
+ /** The opener trait's declared event a click inside this view is delivered as. The kernel emits it, never the renderer. */
3082
+ deliver: EventKey;
3083
+ /** The opener trait's declared event an in-app link inside this view is emitted as, with { guest, route }. Without it a link inside the guest does nothing. */
3084
+ navigate?: EventKey;
3085
+ /** The guest's current route (`program/open` and `program/navigate` answer it): the current page path of everything inside, so the guest's navigation shows its own active page and closes its own drawers. */
3086
+ route?: string;
3087
+ /** Every paint the guest made (`rendered` entries, the latest per trait and slot). An `@trait.X` inside the content resolves to the guest's trait X from these. */
3088
+ paints?: ReadonlyArray<GuestPaintEntry>;
3089
+ /** The guest's painted content */
3090
+ children?: React__default.ReactNode;
3091
+ }
3092
+ /**
3093
+ * GuestView - Paints a guest program's UI; guest, source and deliver are kernel routing data
3094
+ */
3095
+ declare const GuestView: React__default.FC<GuestViewProps>;
3096
+
2751
3097
  /**
2752
3098
  * Grid Component
2753
3099
  *
@@ -3433,6 +3779,12 @@ interface TabItem {
3433
3779
  /** Whether this tab is currently active (for controlled tabs) */
3434
3780
  active?: boolean;
3435
3781
  }
3782
+ /**
3783
+ * @role tablist
3784
+ * @tokens --color-muted --color-primary --color-border --color-foreground --color-muted-foreground
3785
+ * @contrast muted-foreground background
3786
+ * @motion css
3787
+ */
3436
3788
  interface TabsProps extends A11yProps {
3437
3789
  /** Tab items */
3438
3790
  items?: TabItem[];
@@ -3600,12 +3952,16 @@ interface DrawerProps extends A11yProps {
3600
3952
  children?: React__default.ReactNode;
3601
3953
  /** Footer content */
3602
3954
  footer?: React__default.ReactNode;
3955
+ /** Controls in the header beside the close button, outside the title heading (e.g. a size toggle). */
3956
+ headerActions?: React__default.ReactNode;
3603
3957
  /** Position (left or right) */
3604
3958
  position?: DrawerPosition;
3605
3959
  /** Width (CSS value or preset size) */
3606
3960
  width?: string | DrawerSize;
3607
3961
  /** Show close button */
3608
3962
  showCloseButton?: boolean;
3963
+ /** Accessible name for the close button, when supplied by the program. */
3964
+ closeButtonLabel?: string;
3609
3965
  /** Close on overlay click */
3610
3966
  closeOnOverlayClick?: boolean;
3611
3967
  /** Close on escape key */
@@ -3614,6 +3970,10 @@ interface DrawerProps extends A11yProps {
3614
3970
  className?: string;
3615
3971
  /** Declarative close event — emits UI:{closeEvent} via eventBus when drawer should close */
3616
3972
  closeEvent?: EventKey;
3973
+ /** Block the page behind it: an overlay, no page scroll, focus kept inside. `false` leaves the page usable beside the drawer (no overlay, no focus trap); Escape and the close button still close it.
3974
+ * @default true
3975
+ */
3976
+ modal?: boolean;
3617
3977
  }
3618
3978
  declare const Drawer: React__default.FC<DrawerProps>;
3619
3979
 
@@ -3850,8 +4210,8 @@ interface CodeDiagnostic {
3850
4210
  *
3851
4211
  * Event Contract:
3852
4212
  * - Emits: UI:COPY_CODE { language, success }
3853
- * - Emits: UI:EDITOR_FOCUS { editorId }
3854
- * - Emits: UI:EDITOR_BLUR { editorId }
4213
+ * - Emits: UI:EDITOR_FOCUS { editorId }, UI:EDITOR_BLUR { editorId } (the declared `onEditorFocus` / `onEditorBlur`)
4214
+ * - Reports focus and blur to EditorFocusContext, which the keyboard router reads
3855
4215
  *
3856
4216
  * The editor capability props (`onMotion` / `onOperate` / `onInsertText` /
3857
4217
  * `onSetMode`) are declarative bus LISTENS (`EventListen<P>`), not emits —
@@ -3868,6 +4228,7 @@ type PrismLanguageGrammar = (prism: object) => void;
3868
4228
  /** A consumer-supplied async grammar fetcher. Returns the language module
3869
4229
  * default (registered with PrismLight), or `null` if no grammar exists. */
3870
4230
  type CodeLanguageLoader = (lang: string) => Promise<PrismLanguageGrammar | null>;
4231
+ type ErrorLineSeverity = 'error' | 'warning';
3871
4232
  /** Wire up a dynamic language-grammar loader. Must be called from app source
3872
4233
  * (not a pre-bundled dependency) so the bundler can split grammars into chunks. */
3873
4234
  declare function registerCodeLanguageLoader(loader: CodeLanguageLoader | null): void;
@@ -3944,9 +4305,10 @@ interface CodeBlockProps extends A11yProps {
3944
4305
  * warning = yellow. Honored by the editable overlay and (GAP-84) by
3945
4306
  * viewer mode's non-diff highlight; pass undefined (default) to disable.
3946
4307
  * The consumer is responsible for computing the path → line map from the
3947
- * schema + validation results.
4308
+ * schema + validation results. A program authors it as a record of the
4309
+ * line number (as text) to severity, read the same way.
3948
4310
  */
3949
- errorLines?: Map<number, 'error' | 'warning'>;
4311
+ errorLines?: ReadonlyMap<number, ErrorLineSeverity> | Readonly<Record<string, ErrorLineSeverity>>;
3950
4312
  /** Lines to mark and keep in view (1-based, inclusive): the code of the step a running program just took. */
3951
4313
  highlightLines?: {
3952
4314
  start: number;
@@ -4116,6 +4478,24 @@ interface CodeBlockProps extends A11yProps {
4116
4478
  * @tier presentation
4117
4479
  */
4118
4480
  lineNumbers?: boolean;
4481
+ /**
4482
+ * Read-only only: event emitted when the reader picks Ask on code they selected (as `UI:<askEvent>`)
4483
+ * @tier presentation
4484
+ */
4485
+ askEvent?: EventEmit<{
4486
+ selectedText: string;
4487
+ }>;
4488
+ /**
4489
+ * Read-only only: event emitted when the reader picks Note on code they selected (as `UI:<noteEvent>`)
4490
+ * @tier presentation
4491
+ */
4492
+ noteEvent?: EventEmit<{
4493
+ selectedText: string;
4494
+ }>;
4495
+ /** Ask action label (default: translated) */
4496
+ askLabel?: string;
4497
+ /** Note action label (default: translated) */
4498
+ noteLabel?: string;
4119
4499
  }
4120
4500
  declare const CodeBlock: React__default.NamedExoticComponent<CodeBlockProps>;
4121
4501
 
@@ -4815,9 +5195,8 @@ declare const ProgressDots: React__default.FC<ProgressDotsProps>;
4815
5195
  /**
4816
5196
  * MathCanvas
4817
5197
  *
4818
- * A field-scoped learning molecule for mathematics. Renders a coordinate plane
4819
- * with axes, grid, curves (sampled points), scatter points, and vectors on top
4820
- * of the declarative `LearningCanvas` atom.
5198
+ * A field-scoped learning molecule for math: axes, grid, curves, points, vectors, regions, bars, guides, angles,
5199
+ * hops and game drawables in plot coordinates, mapped and drawn by orbital-canvas.
4821
5200
  *
4822
5201
  * @packageDocumentation
4823
5202
  */
@@ -4980,9 +5359,9 @@ interface MathCanvasProps extends Omit<React$1.AriaAttributes, keyof A11yProps>,
4980
5359
  * the same x/y world→pixel transform used for curves/points.
4981
5360
  */
4982
5361
  drawables?: DrawableNode[];
4983
- /** Top-right status chips, forwarded verbatim to LearningCanvas. */
5362
+ /** Top-right status chips (the LearningCanvas vocabulary). */
4984
5363
  readouts?: LearningReadout[];
4985
- /** Inset sparkline panels, forwarded verbatim to LearningCanvas. */
5364
+ /** Inset sparkline panels (the LearningCanvas vocabulary). */
4986
5365
  traces?: LearningTracePanel[];
4987
5366
  interactive?: boolean;
4988
5367
  animate?: boolean;
@@ -5003,9 +5382,8 @@ declare const MathCanvas: React$1.FC<MathCanvasProps>;
5003
5382
  /**
5004
5383
  * PhysicsCanvas
5005
5384
  *
5006
- * A field-scoped learning molecule for physics. Renders bodies, constraints,
5007
- * velocity arrows, and force arrows on top of the declarative `LearningCanvas`
5008
- * atom.
5385
+ * A field-scoped learning molecule for physics: bodies, constraints, velocity and force arrows, fixtures, fields
5386
+ * and meters in 2D, or a 3D scene, mapped and drawn by orbital-canvas.
5009
5387
  *
5010
5388
  * @packageDocumentation
5011
5389
  */
@@ -5118,17 +5496,17 @@ interface PhysicsTrail {
5118
5496
  fade?: boolean;
5119
5497
  }
5120
5498
  /** One elevation color band for a `surface3d` height field; sorted ascending by `min`. */
5121
- interface PhysicsSurfaceBand {
5499
+ type PhysicsSurfaceBand = {
5122
5500
  /** Inclusive floor height in cells; omit for the catch-all lowest band. */
5123
5501
  min?: number;
5124
5502
  color: string;
5125
- }
5503
+ };
5126
5504
  /**
5127
5505
  * A 3D height-field mesh (a wave, a terrain, a potential surface) rendered
5128
5506
  * from a row-major grid of heights. 3D only.
5129
5507
  * @synonyms heightfield, wave surface, terrain, potential surface
5130
5508
  */
5131
- interface PhysicsSurface3D {
5509
+ type PhysicsSurface3D = {
5132
5510
  /** Grid columns. */
5133
5511
  nx: number;
5134
5512
  /** Grid rows. */
@@ -5148,7 +5526,7 @@ interface PhysicsSurface3D {
5148
5526
  opacity?: number;
5149
5527
  /** Faceted low-poly shading (default true). */
5150
5528
  flatShading?: boolean;
5151
- }
5529
+ };
5152
5530
  /**
5153
5531
  * A single labeled 3D arrow (field arrow, axis-triad leg, force/velocity
5154
5532
  * vector), rendered via `vectors3d` + `vectorScale`. 3D only.
@@ -5196,7 +5574,7 @@ interface PhysicsAngleMarker {
5196
5574
  * A single uniform vector/into-page/out-of-page lattice drawn over a region.
5197
5575
  * @synonyms magnetic field, into page, out of page, field grid
5198
5576
  */
5199
- interface PhysicsField {
5577
+ type PhysicsField = {
5200
5578
  kind: 'arrows' | 'into' | 'out';
5201
5579
  /** Lattice cell size in pixels (default 48). */
5202
5580
  spacing?: number;
@@ -5214,7 +5592,7 @@ interface PhysicsField {
5214
5592
  width?: number;
5215
5593
  /** Region height (default canvas height). */
5216
5594
  height?: number;
5217
- }
5595
+ };
5218
5596
  /**
5219
5597
  * A bottom-left labeled bar gauge for a scalar quantity (energy, speed, charge, ...).
5220
5598
  * @synonyms energy bar, KE, PE, gauge
@@ -5239,7 +5617,7 @@ interface PhysicsCanvasProps extends Omit<React$1.AriaAttributes, keyof A11yProp
5239
5617
  keyMap?: Record<string, EventKey>;
5240
5618
  /** Maps a keyup `e.code` to a semantic event emitted as `UI:{event}`. */
5241
5619
  keyUpMap?: Record<string, EventKey>;
5242
- /** Painter: 2D raster (default) or 3D mesh scene via the lazy three.js host. */
5620
+ /** Painter: 2D raster (default) or 3D mesh scene, both drawn by orbital-canvas. */
5243
5621
  mode?: '2d' | '3d';
5244
5622
  /** 3D only: neutral camera pose ({ mode, zoom, fov, azimuth, target }). */
5245
5623
  camera?: Camera;
@@ -5248,6 +5626,8 @@ interface PhysicsCanvasProps extends Omit<React$1.AriaAttributes, keyof A11yProp
5248
5626
  /** 3D only: post-processing stack (bloom/vignette). */
5249
5627
  post?: CanvasPost;
5250
5628
  bodies?: LearningPhysicsBody[];
5629
+ /** 2D mode: packed particles drawn in one pass under the bodies (a GPU readback), instead of a body per particle. */
5630
+ particles?: LearningParticles;
5251
5631
  constraints?: LearningPhysicsConstraint[];
5252
5632
  showVelocity?: boolean;
5253
5633
  showForces?: boolean;
@@ -5273,9 +5653,9 @@ interface PhysicsCanvasProps extends Omit<React$1.AriaAttributes, keyof A11yProp
5273
5653
  meters?: PhysicsMeter[];
5274
5654
  /** Extra declarative shapes in canvas pixel coordinates (2D mode only — ignored in 3D). */
5275
5655
  shapes?: LearningShape[];
5276
- /** Top-right status chip row, forwarded to LearningCanvas verbatim. */
5656
+ /** Top-right status chip row (the LearningCanvas vocabulary). */
5277
5657
  readouts?: LearningReadout[];
5278
- /** Inset sparkline panels, forwarded to LearningCanvas verbatim. */
5658
+ /** Inset sparkline panels (the LearningCanvas vocabulary). */
5279
5659
  traces?: LearningTracePanel[];
5280
5660
  /** 3D only: show the ground grid (default off). */
5281
5661
  showGrid?: boolean;
@@ -5298,8 +5678,8 @@ declare const PhysicsCanvas: React$1.FC<PhysicsCanvasProps>;
5298
5678
  /**
5299
5679
  * BiologyCanvas
5300
5680
  *
5301
- * A field-scoped learning molecule for biology. Renders cells, organelles,
5302
- * membranes, and connections on top of the declarative `LearningCanvas` atom.
5681
+ * A field-scoped learning molecule for biology: nodes, edges, compartments, bands, stages and a DNA helix in 2D,
5682
+ * or a 3D scene, mapped and drawn by orbital-canvas.
5303
5683
  *
5304
5684
  * @packageDocumentation
5305
5685
  */
@@ -5368,7 +5748,7 @@ interface BiologyStage {
5368
5748
  color?: string;
5369
5749
  }
5370
5750
  /** One base pair (rung) of a `helix` ladder. */
5371
- interface BiologyHelixRung {
5751
+ type BiologyHelixRung = {
5372
5752
  /** Base letter on strand A (top). */
5373
5753
  a?: string;
5374
5754
  /** Base letter on strand B (bottom). */
@@ -5377,9 +5757,9 @@ interface BiologyHelixRung {
5377
5757
  state?: 'paired' | 'open' | 'new';
5378
5758
  /** Overrides the state-derived rung color. */
5379
5759
  color?: string;
5380
- }
5760
+ };
5381
5761
  /** A DNA double-helix ladder rendered as two strand polylines plus rungs, with an optional unzipped fork. */
5382
- interface BiologyHelix {
5762
+ type BiologyHelix = {
5383
5763
  /** Panel left edge (default 24). */
5384
5764
  x?: number;
5385
5765
  /** Panel top edge (default canvas height * 0.25). */
@@ -5397,9 +5777,9 @@ interface BiologyHelix {
5397
5777
  colorB?: string;
5398
5778
  /** Default paired-rung color: a tone name, token or literal (default `muted`). */
5399
5779
  rungColor?: string;
5400
- }
5780
+ };
5401
5781
  /** One base-pair rung of a 3D `helix3d` ladder. */
5402
- interface BiologyHelixRung3D {
5782
+ type BiologyHelixRung3D = {
5403
5783
  /** Clickable when present — stamped on this rung's marker sphere. */
5404
5784
  id?: string;
5405
5785
  /** Rung cylinder + marker color: a tone name, token or literal (default `muted`). */
@@ -5408,13 +5788,13 @@ interface BiologyHelixRung3D {
5408
5788
  radius?: number;
5409
5789
  /** Billboard label above the marker. */
5410
5790
  label?: string;
5411
- }
5791
+ };
5412
5792
  /**
5413
5793
  * A 3D DNA double-helix: two beaded backbone strands plus a base-pair rung
5414
5794
  * per index, optionally unwound (replication-fork style) at one end. 3D only.
5415
5795
  * @synonyms DNA double helix, base pairs 3D
5416
5796
  */
5417
- interface BiologyHelix3D {
5797
+ type BiologyHelix3D = {
5418
5798
  /** Rung count; defaults to `rungs.length`. One of `count`/`rungs` is required. */
5419
5799
  count?: number;
5420
5800
  /** Per-rung overrides, padded with defaults up to `count`. */
@@ -5441,7 +5821,7 @@ interface BiologyHelix3D {
5441
5821
  unwoundCount?: number;
5442
5822
  /** Spread multiplier for unwound rungs (default 1.8). */
5443
5823
  unwindSpread?: number;
5444
- }
5824
+ };
5445
5825
  interface BiologyCanvasProps extends Omit<React$1.AriaAttributes, keyof A11yProps>, A11yProps {
5446
5826
  className?: string;
5447
5827
  width?: number;
@@ -5454,7 +5834,7 @@ interface BiologyCanvasProps extends Omit<React$1.AriaAttributes, keyof A11yProp
5454
5834
  keyMap?: Record<string, EventKey>;
5455
5835
  /** Maps a keyup `e.code` to a semantic event emitted as `UI:{event}`. */
5456
5836
  keyUpMap?: Record<string, EventKey>;
5457
- /** Painter: 2D raster (default) or 3D mesh scene via the lazy three.js host. */
5837
+ /** Painter: 2D raster (default) or 3D mesh scene, both drawn by orbital-canvas. */
5458
5838
  mode?: '2d' | '3d';
5459
5839
  /** 3D only: neutral camera pose ({ mode, zoom, fov, azimuth, target }). */
5460
5840
  camera?: Camera;
@@ -5490,9 +5870,9 @@ interface BiologyCanvasProps extends Omit<React$1.AriaAttributes, keyof A11yProp
5490
5870
  helix3d?: BiologyHelix3D;
5491
5871
  /** Extra declarative shapes in canvas pixel coordinates (2D mode only — ignored in 3D). */
5492
5872
  shapes?: LearningShape[];
5493
- /** Top-right status chip row, forwarded to LearningCanvas verbatim. */
5873
+ /** Top-right status chip row (the LearningCanvas vocabulary). */
5494
5874
  readouts?: LearningReadout[];
5495
- /** Inset sparkline panels, forwarded to LearningCanvas verbatim. */
5875
+ /** Inset sparkline panels (the LearningCanvas vocabulary). */
5496
5876
  traces?: LearningTracePanel[];
5497
5877
  /** 3D only: show the ground grid (default off). */
5498
5878
  showGrid?: boolean;
@@ -5515,8 +5895,8 @@ declare const BiologyCanvas: React$1.FC<BiologyCanvasProps>;
5515
5895
  /**
5516
5896
  * ChemistryCanvas
5517
5897
  *
5518
- * A field-scoped learning molecule for chemistry. Renders atoms, bonds, and
5519
- * reaction arrows on top of the declarative `LearningCanvas` atom.
5898
+ * A field-scoped learning molecule for chemistry: atoms, bonds, arrows, containers and an equation in 2D, or a 3D
5899
+ * scene, mapped and drawn by orbital-canvas.
5520
5900
  *
5521
5901
  * @packageDocumentation
5522
5902
  */
@@ -5584,7 +5964,7 @@ interface ChemistryArrow {
5584
5964
  label?: string;
5585
5965
  }
5586
5966
  /** One basis site of a `lattice3d` crystal, replicated across the generated block. */
5587
- interface ChemistryLatticeSite {
5967
+ type ChemistryLatticeSite = {
5588
5968
  /** Basis-site key; bonds reference sites by key, not by generated id. */
5589
5969
  key: string;
5590
5970
  /** Fractional cell offset, 0..1. */
@@ -5602,9 +5982,9 @@ interface ChemistryLatticeSite {
5602
5982
  yEdge?: boolean;
5603
5983
  /** Replicate on the +z face so the boundary plane completes (n+1 planes along z). */
5604
5984
  zEdge?: boolean;
5605
- }
5985
+ };
5606
5986
  /** A bond rule generating one cylinder per valid `from`→`to` site-instance pair. */
5607
- interface ChemistryLatticeBond {
5987
+ type ChemistryLatticeBond = {
5608
5988
  /** Basis-site key this bond originates from. */
5609
5989
  from: string;
5610
5990
  /** Basis-site key this bond targets. */
@@ -5615,14 +5995,14 @@ interface ChemistryLatticeBond {
5615
5995
  dz?: number;
5616
5996
  /** Bond color: a tone name, token or literal (default the `ink` tone). */
5617
5997
  color?: string;
5618
- }
5998
+ };
5619
5999
  /**
5620
6000
  * A 3D crystal lattice (simple cubic, BCC, FCC, rock salt, diamond, ...)
5621
6001
  * generated procedurally from a fractional basis + bond rules into a block
5622
6002
  * centered on the origin. 3D only.
5623
6003
  * @synonyms crystal lattice, unit cell, BCC FCC
5624
6004
  */
5625
- interface ChemistryLattice3D {
6005
+ type ChemistryLattice3D = {
5626
6006
  basis: ChemistryLatticeSite[];
5627
6007
  /** Unit cells replicated along x/y/z (default 2 each). */
5628
6008
  nx?: number;
@@ -5643,7 +6023,7 @@ interface ChemistryLattice3D {
5643
6023
  selectedId?: string;
5644
6024
  /** Selected-site color: a tone name, token or literal (default the `highlight` tone). */
5645
6025
  selectedColor?: string;
5646
- }
6026
+ };
5647
6027
  interface ChemistryCanvasProps extends Omit<React$1.AriaAttributes, keyof A11yProps>, A11yProps {
5648
6028
  className?: string;
5649
6029
  width?: number;
@@ -5656,7 +6036,7 @@ interface ChemistryCanvasProps extends Omit<React$1.AriaAttributes, keyof A11yPr
5656
6036
  keyMap?: Record<string, EventKey>;
5657
6037
  /** Maps a keyup `e.code` to a semantic event emitted as `UI:{event}`. */
5658
6038
  keyUpMap?: Record<string, EventKey>;
5659
- /** Painter: 2D raster (default) or 3D mesh scene via the lazy three.js host. */
6039
+ /** Painter: 2D raster (default) or 3D mesh scene, both drawn by orbital-canvas. */
5660
6040
  mode?: '2d' | '3d';
5661
6041
  /** 3D only: neutral camera pose ({ mode, zoom, fov, azimuth, target }). */
5662
6042
  camera?: Camera;
@@ -5685,9 +6065,9 @@ interface ChemistryCanvasProps extends Omit<React$1.AriaAttributes, keyof A11yPr
5685
6065
  lattice3d?: ChemistryLattice3D;
5686
6066
  /** Extra declarative shapes in canvas pixel coordinates (2D mode only — ignored in 3D). */
5687
6067
  shapes?: LearningShape[];
5688
- /** Top-right status chip row, forwarded to LearningCanvas verbatim. */
6068
+ /** Top-right status chip row (the LearningCanvas vocabulary). */
5689
6069
  readouts?: LearningReadout[];
5690
- /** Inset sparkline panels, forwarded to LearningCanvas verbatim. */
6070
+ /** Inset sparkline panels (the LearningCanvas vocabulary). */
5691
6071
  traces?: LearningTracePanel[];
5692
6072
  /** 3D only: show the ground grid (default off). */
5693
6073
  showGrid?: boolean;
@@ -5710,20 +6090,8 @@ declare const ChemistryCanvas: React$1.FC<ChemistryCanvasProps>;
5710
6090
  /**
5711
6091
  * AlgorithmCanvas
5712
6092
  *
5713
- * A field-scoped learning molecule for computer-science algorithm visualizations.
5714
- * Projects semantic `bars` (sorting/histograms), `slots` (registers/variables),
5715
- * `cells` (grids/arrays/DP tables), `buckets` (hash-table chaining), and `frames`
5716
- * (call stacks) into pixel-space shapes on the declarative `LearningCanvas` atom,
5717
- * so a `.lolo` behavior never computes pixel coordinates — it just sets the family
5718
- * arrays and lets this molecule lay them out. `pointers` (index cursors) and
5719
- * `ranges` (highlighted spans) decorate the bars/slots panel. Graph/tree
5720
- * algorithms use `AlgoGraphCanvas` (nodes + edges + layouts); this canvas owns
5721
- * only the bar/slot/cell/bucket/frame vocabulary.
5722
- *
5723
- * When more than one of `bars`/`slots`/`cells`/`buckets`/`frames` is populated,
5724
- * they share the canvas height as equal vertical panels in that fixed order
5725
- * (`panelHeight = height / panelCount`); with exactly one family present the
5726
- * panel math collapses to the original full-height layout unchanged.
6093
+ * A field-scoped learning molecule for algorithms: bars, cells, pointers, ranges, slots, frames and buckets, mapped
6094
+ * and drawn by orbital-canvas.
5727
6095
  *
5728
6096
  * @packageDocumentation
5729
6097
  */
@@ -5849,14 +6217,8 @@ declare const AlgorithmCanvas: React$1.FC<AlgorithmCanvasProps>;
5849
6217
  /**
5850
6218
  * AlgoGraphCanvas
5851
6219
  *
5852
- * A field-scoped learning molecule for computer-science graph/tree algorithm
5853
- * visualizations (BFS/DFS/Dijkstra/A-star/topological sort/tree traversals).
5854
- * Declares a fixed node/edge state vocabulary with default colors and
5855
- * deterministic layouts (`manual` | `tree` | `layered` | `circle`) so a
5856
- * `.lolo` behavior never computes pixel coordinates — it just sets node
5857
- * `state`/edges and picks a layout. Distinguish from the core d3-force
5858
- * `GraphCanvas`: this one is a dumb deterministic projection, not a
5859
- * force simulation.
6220
+ * A field-scoped learning molecule for graph algorithms: nodes in a deterministic layout, edges and node badges,
6221
+ * mapped and drawn by orbital-canvas.
5860
6222
  *
5861
6223
  * @packageDocumentation
5862
6224
  */
@@ -5930,96 +6292,6 @@ interface AlgoGraphCanvasProps extends Omit<React$1.AriaAttributes, keyof A11yPr
5930
6292
  }
5931
6293
  declare const AlgoGraphCanvas: React$1.FC<AlgoGraphCanvasProps>;
5932
6294
 
5933
- /**
5934
- * learningScene3D — the shared 3D seam for the learning canvas molecules
5935
- * (PhysicsCanvas / BiologyCanvas / ChemistryCanvas), mirroring the game
5936
- * `Canvas` molecule's 2D/3D split: each molecule derives neutral drawable
5937
- * descriptors from its vocabulary and this module hosts them in the lazy
5938
- * `Canvas3DHost`, so three.js/R3F never enters a 2D-only bundle.
5939
- *
5940
- * The lazy import is the code-split boundary: the package's one split ESM build
5941
- * makes it its own chunk (the `./three` entry).
5942
- *
5943
- * Click: the host speaks `EventEmit` (a bus event-name string), so the wrapper
5944
- * mints a per-instance, dot-qualified event name (dot-qualified flows through
5945
- * trait-scope qualification verbatim — a bare key would be scope-rewritten and
5946
- * never reach this listener) and bridges it back to the molecule's
5947
- * `onShapeClick` callback contract via `useEventListener` — the same
5948
- * bus→callback mechanism `MediaGallery`/`StateMachineView` use.
5949
- *
5950
- * The derivation helpers below are pure descriptor builders (no three imports).
5951
- * Scene coordinates are cells: `x`/`y` the ground plane, `z` the height.
5952
- *
5953
- * @packageDocumentation
5954
- */
5955
-
5956
- /** A point in scene space: `[x, y, z]` — x/y the ground plane, z the height (cells). */
5957
- type Learning3DPoint = [number, number, number];
5958
- interface LearningScene3DProps extends A11yProps {
5959
- /** Text alternative for the scene, rendered as visually hidden text and linked by aria-describedby. */
5960
- description?: string;
5961
- className?: string;
5962
- width?: number;
5963
- height?: number;
5964
- title?: string;
5965
- backgroundColor?: string;
5966
- /** Overrides the theme's categorical palette (`series-1…N`) for this scene. */
5967
- series?: string[];
5968
- /** Neutral drawable descriptors derived from the molecule's vocabulary. */
5969
- drawables: DrawableNode[];
5970
- /** Neutral camera pose; `mode` defaults to 'perspective' for learning scenes. */
5971
- camera?: Camera;
5972
- /** 3D scene light rig as data. Omitted → the host's standard fixed rig. */
5973
- lighting?: CanvasLighting;
5974
- /** 3D post-processing stack (bloom/vignette). Omitted → no post pass. */
5975
- post?: CanvasPost;
5976
- /** Show the 3D ground grid. Default false (the learning scenes' current look). */
5977
- showGrid?: boolean;
5978
- /** Enable 3D shadows. Omitted → the host default (shadows on). */
5979
- shadows?: boolean;
5980
- /** Enable the orbit camera controls. Omitted → the host default (controls on). */
5981
- interactive?: boolean;
5982
- isLoading?: boolean;
5983
- error?: UiError | null;
5984
- /** Fires with the `id` of a clicked descriptor (descriptors carry `id` via DrawableBase). */
5985
- onItemClick?: (id: string) => void;
5986
- }
5987
- declare function LearningScene3D({ className, width, height, title, backgroundColor, series, drawables, camera, lighting, post, showGrid, shadows, interactive, isLoading, error, onItemClick, description, ...rest }: LearningScene3DProps): React$1.JSX.Element;
5988
- declare namespace LearningScene3D {
5989
- var displayName: string;
5990
- }
5991
- interface MeshSphereOpts {
5992
- /** Primitive kind (default 'sphere'; organelles read well as 'capsule'). */
5993
- shape?: MeshShapeKind;
5994
- segments?: number;
5995
- material?: MeshMaterial;
5996
- opacity?: number;
5997
- }
5998
- /** A sphere (or `opts.shape` primitive) centred at the scene point, `id`-tagged for click. */
5999
- declare function meshSphere(id: string | undefined, x: number, y: number, z: number, radius: number, color: string, opts?: MeshSphereOpts): DrawMeshProps;
6000
- /** A cylinder spanning from→to, centred on the midpoint. Null when the segment is degenerate. */
6001
- declare function cylinderBetween(from: Learning3DPoint, to: Learning3DPoint, radius: number, color: string): DrawMeshProps | null;
6002
- /**
6003
- * An arrow from→to as a `draw-group` (shaft cylinder + tip cone) local to `from`.
6004
- * `shaftRadius` is in scene cells (default: a thin rod at cell scale). `id`,
6005
- * when given, is stamped on the returned draw-group for click routing.
6006
- */
6007
- declare function arrowBetween(from: Learning3DPoint, to: Learning3DPoint, color: string, shaftRadius?: number, id?: string): DrawGroupProps | null;
6008
- /** A billboarded text label above the scene point (the 3D host lifts it off the item). */
6009
- declare function billboardLabel(text: string, x: number, y: number, z: number, opts?: {
6010
- color?: string;
6011
- }): DrawTextProps;
6012
- /**
6013
- * Bridge the 3D host's `{ unitId }` click back to the molecules' 2D
6014
- * `onShapeClick({ id, index })` contract — `index` is the item's position in
6015
- * its vocabulary array (−1 when the id is unknown).
6016
- */
6017
- declare function get3DClickPayload(onShapeClick: ((payload: {
6018
- id?: string;
6019
- type?: string;
6020
- index: number;
6021
- }) => void) | undefined, idToIndex: ReadonlyMap<string, number>): ((id: string) => void) | undefined;
6022
-
6023
6295
  /**
6024
6296
  * GraphView Molecule Component
6025
6297
  *
@@ -6136,9 +6408,9 @@ interface MapViewProps extends A11yProps {
6136
6408
  /** Routes (polylines with optional popups) drawn over the tile layer */
6137
6409
  routes?: MapRouteData[];
6138
6410
  /** Map center latitude */
6139
- centerLat?: number;
6411
+ centerLat?: number | null;
6140
6412
  /** Map center longitude */
6141
- centerLng?: number;
6413
+ centerLng?: number | null;
6142
6414
  /** Zoom level (1-18, default 13) */
6143
6415
  zoom?: number;
6144
6416
  /** Height of the map container (default "400px") */
@@ -6202,7 +6474,12 @@ declare const NumberStepper: React__default.FC<NumberStepperProps>;
6202
6474
 
6203
6475
  type StarRatingSize = "sm" | "md" | "lg";
6204
6476
  type StarRatingPrecision = "full" | "half";
6205
- /** @accessibleName label */
6477
+ /**
6478
+ * @accessibleName label
6479
+ * @role img
6480
+ * @tokens --color-warning --color-muted-foreground
6481
+ * @motion css
6482
+ */
6206
6483
  interface StarRatingProps extends Omit<React__default.AriaAttributes, keyof A11yProps>, A11yProps {
6207
6484
  /** Current rating value */
6208
6485
  value?: number;
@@ -6328,6 +6605,8 @@ type RowActionCondition = SExpr | ((row: EntityRow) => boolean);
6328
6605
  * S-expression, or the compiled shell's `(row) => payload` closure.
6329
6606
  */
6330
6607
  type RowActionPayload = SExpr | ((row: EntityRow) => EventPayload);
6608
+ /** A literal route or an authored `(fn row <string>)` expression. */
6609
+ type RowActionRoute = SExpr;
6331
6610
 
6332
6611
  /**
6333
6612
  * useDataDnd — shared drag-drop machinery for DataList + DataGrid.
@@ -6382,9 +6661,8 @@ interface DataGridItemAction {
6382
6661
  /** Event name to emit (dispatched as UI:{event} with { row: itemData }).
6383
6662
  * Optional when `navigatesTo` is set — a navigating action never emits. */
6384
6663
  event?: EventKey;
6385
- /** Route to navigate to instead of emitting — `{{row.field}}`
6386
- * placeholders interpolate from the item row (CardGrid's contract). */
6387
- navigatesTo?: string;
6664
+ /** Literal route or `(fn row <string>)` destination; navigation suppresses the action event. */
6665
+ navigatesTo?: RowActionRoute;
6388
6666
  /** Lucide icon name or component */
6389
6667
  icon?: IconInput;
6390
6668
  /** Button variant */
@@ -6500,8 +6778,8 @@ interface DataListItemAction {
6500
6778
  when?: RowActionCondition;
6501
6779
  /** Extra data the action sends, authored as `(fn row { key: <expr> })`; it emits `{ id, row }` plus these keys. */
6502
6780
  payload?: RowActionPayload;
6503
- /** Page the action opens instead of emitting; `{{row.<field>}}` is replaced with the row's value. */
6504
- navigatesTo?: string;
6781
+ /** Literal route or `(fn row <string>)` destination; navigation suppresses the action event. */
6782
+ navigatesTo?: RowActionRoute;
6505
6783
  }
6506
6784
  interface DataListSwipeAction {
6507
6785
  /** Button label */
@@ -7299,6 +7577,12 @@ interface LikertOption {
7299
7577
  /** Visible label below (radios) or inside (buttons) the control */
7300
7578
  label: string;
7301
7579
  }
7580
+ /**
7581
+ * @role radiogroup
7582
+ * @tokens --color-primary --color-muted --color-surface --color-border --color-foreground
7583
+ * @contrast foreground surface
7584
+ * @motion css
7585
+ */
7302
7586
  interface LikertScaleProps extends A11yProps {
7303
7587
  /** Optional row prompt above the scale */
7304
7588
  question?: string;
@@ -7636,11 +7920,17 @@ interface DocumentDetailsProps extends A11yProps {
7636
7920
  id: string;
7637
7921
  name: string;
7638
7922
  }>;
7923
+ /** The kernel-injected `{ value, label }` options per relation field; a relation chip reads its label from the
7924
+ * option for its id (labelled by the relation's declared display field), else shows the record id. */
7925
+ relationsData?: Readonly<Record<string, ReadonlyArray<{
7926
+ value: string;
7927
+ label: string;
7928
+ }>>>;
7639
7929
  /** Card heading (defaults to the localized "Details") */
7640
7930
  title?: string;
7641
7931
  className?: string;
7642
7932
  }
7643
- declare function DocumentDetails({ entity, fields, metaCommitEvent, relationEvent, title, className, ...rest }: DocumentDetailsProps): React__default.ReactElement | null;
7933
+ declare function DocumentDetails({ entity, fields, metaCommitEvent, relationEvent, relationsData, title, className, ...rest }: DocumentDetailsProps): React__default.ReactElement | null;
7644
7934
 
7645
7935
  /**
7646
7936
  * ReplyTree Organism Component
@@ -7687,20 +7977,20 @@ interface ReplyTreeProps extends A11yProps {
7687
7977
  }
7688
7978
  declare const ReplyTree: React__default.FC<ReplyTreeProps>;
7689
7979
 
7690
- interface BranchingQuestion {
7980
+ type BranchingQuestion = {
7691
7981
  id: string;
7692
7982
  label: string;
7693
7983
  optionValues?: string[];
7694
- }
7984
+ };
7695
7985
  type BranchingOperator = 'equals' | 'not-equals' | 'contains' | 'in';
7696
7986
  declare const END_OF_SURVEY = "end-of-survey";
7697
- interface BranchingRule extends EventPayload {
7987
+ type BranchingRule = {
7698
7988
  id: string;
7699
7989
  sourceQuestionId: string;
7700
7990
  operator: BranchingOperator;
7701
7991
  value: string | string[];
7702
7992
  targetQuestionId: string | typeof END_OF_SURVEY;
7703
- }
7993
+ };
7704
7994
  interface BranchingLogicBuilderProps extends A11yProps {
7705
7995
  questions: readonly BranchingQuestion[] | EventPayloadValue;
7706
7996
  /**
@@ -7882,6 +8172,12 @@ interface DocBreadcrumbItem {
7882
8172
  /** Navigation href (omit for the current/last item) */
7883
8173
  href?: string;
7884
8174
  }
8175
+ /**
8176
+ * @role navigation
8177
+ * @tokens --color-foreground --color-muted-foreground
8178
+ * @contrast muted-foreground background
8179
+ * @motion none
8180
+ */
7885
8181
  interface DocBreadcrumbProps extends A11yProps {
7886
8182
  /** Breadcrumb path items, last item is treated as current page */
7887
8183
  items: DocBreadcrumbItem[];
@@ -7902,6 +8198,12 @@ interface DocPaginationLink {
7902
8198
  href: string;
7903
8199
  category?: string;
7904
8200
  }
8201
+ /**
8202
+ * @role navigation
8203
+ * @tokens --color-border --color-accent --color-muted-foreground
8204
+ * @contrast muted-foreground background
8205
+ * @motion css
8206
+ */
7905
8207
  interface DocPaginationProps extends Omit<React__default.AriaAttributes, keyof A11yProps>, A11yProps {
7906
8208
  /** Previous page link */
7907
8209
  prev?: DocPaginationLink;
@@ -7952,6 +8254,12 @@ interface DocSidebarItem {
7952
8254
  /** Whether this item is currently active */
7953
8255
  active?: boolean;
7954
8256
  }
8257
+ /**
8258
+ * @role navigation
8259
+ * @tokens --color-muted-foreground
8260
+ * @contrast muted-foreground background
8261
+ * @motion none
8262
+ */
7955
8263
  interface DocSidebarProps extends Omit<React__default.AriaAttributes, keyof A11yProps>, A11yProps {
7956
8264
  /** Sidebar navigation items */
7957
8265
  items: DocSidebarItem[];
@@ -7975,6 +8283,12 @@ interface DocTOCItem {
7975
8283
  /** Heading level: 2 for h2, 3 for h3, etc. */
7976
8284
  level: number;
7977
8285
  }
8286
+ /**
8287
+ * @role navigation
8288
+ * @tokens --color-foreground --color-muted-foreground
8289
+ * @contrast muted-foreground background
8290
+ * @motion css
8291
+ */
7978
8292
  interface DocTOCProps extends Omit<React__default.AriaAttributes, keyof A11yProps>, A11yProps {
7979
8293
  /** Table of contents items */
7980
8294
  items: DocTOCItem[];
@@ -8062,6 +8376,87 @@ interface PageHeaderProps extends A11yProps {
8062
8376
  }
8063
8377
  declare const PageHeader: React__default.FC<PageHeaderProps>;
8064
8378
 
8379
+ /**
8380
+ * Shared types for entity-display organisms.
8381
+ *
8382
+ * All entity-display organisms (DataTable, List, Table, CardGrid, DetailPanel)
8383
+ * extend EntityDisplayProps to guarantee a uniform prop contract.
8384
+ *
8385
+ * Exception: Form manages local `formData` state for field input tracking.
8386
+ * This is the ONE allowed exception — documented here.
8387
+ */
8388
+
8389
+ declare const EntityDisplayEvents: {
8390
+ readonly SORT: "SORT";
8391
+ readonly PAGINATE: "PAGINATE";
8392
+ readonly SEARCH: "SEARCH";
8393
+ readonly FILTER: "FILTER";
8394
+ readonly CLEAR_FILTERS: "CLEAR_FILTERS";
8395
+ readonly SELECT: "SELECT";
8396
+ readonly DESELECT: "DESELECT";
8397
+ };
8398
+ interface SortPayload {
8399
+ field: string;
8400
+ direction: 'asc' | 'desc';
8401
+ }
8402
+ interface PaginatePayload {
8403
+ page: number;
8404
+ pageSize?: number;
8405
+ }
8406
+ interface SearchPayload {
8407
+ query: string;
8408
+ }
8409
+ interface FilterPayload {
8410
+ field: string;
8411
+ operator: string;
8412
+ value: FieldValue;
8413
+ }
8414
+ interface SelectPayload {
8415
+ ids: (string | number)[];
8416
+ }
8417
+ /**
8418
+ * Common non-entity display state shared by every display organism — loading,
8419
+ * error, and the render-ui display hints (sort/search/pagination/selection).
8420
+ * Carries NO entity data and NO generic. Components that show entity data add
8421
+ * their own `entity?: EntityRow | readonly EntityRow[]` field directly (the one
8422
+ * unified entity type from `@almadar/core`); components that only need the
8423
+ * loading/hint surface just extend this.
8424
+ */
8425
+ interface DisplayStateProps {
8426
+ /** Additional CSS classes */
8427
+ className?: string;
8428
+ /** Loading state indicator */
8429
+ isLoading?: boolean;
8430
+ /** Error state */
8431
+ error?: UiError | null;
8432
+ /** Current sort field */
8433
+ sortBy?: string;
8434
+ /** Current sort direction */
8435
+ sortDirection?: 'asc' | 'desc';
8436
+ /** Current search query value */
8437
+ searchValue?: string;
8438
+ /** Current page number (1-indexed) */
8439
+ page?: number;
8440
+ /** Number of items per page */
8441
+ pageSize?: number;
8442
+ /** Total number of items (for pagination display) */
8443
+ totalCount?: number;
8444
+ /**
8445
+ * Active filters, keyed by field name. Scalar-only (`string | number |
8446
+ * boolean`) rather than the full `FieldValue` domain: `FieldValue` is a
8447
+ * self-referential union (adds `Date`, nested arrays/objects) the
8448
+ * pattern-sync scanner can't shape into a `Map string V` knob, so it always
8449
+ * degraded to `json`. This narrows out date/array/nested-object filter
8450
+ * values — no current call site in this package constructs this prop, so
8451
+ * nothing here breaks, but a caller wiring a date-range or multi-select
8452
+ * filter through this prop would need those. Flagged for the coordinator;
8453
+ * revert to `Record<string, FieldValue>` if that capability is needed.
8454
+ */
8455
+ activeFilters?: Record<string, string | number | boolean>;
8456
+ /** Currently selected item IDs */
8457
+ selectedIds?: readonly (string | number)[];
8458
+ }
8459
+
8065
8460
  interface FormSectionProps extends Omit<DisplayStateProps, keyof A11yProps>, A11yProps {
8066
8461
  /** Section title */
8067
8462
  title?: string;
@@ -10043,6 +10438,45 @@ interface StateMachineViewProps extends Omit<AvlStateMachineProps, 'trait'> {
10043
10438
  trait?: TraitLevelData;
10044
10439
  /** A described trait (`behavior/describe`), drawn from its machine when no `trait` is given. */
10045
10440
  description?: TraitDescription | null;
10441
+ /** A whole mounted orbital (`program/self { mounted: true }`): every trait drawn as nested boxes on one canvas, instead of a single trait.
10442
+ * @example {"page":"/orders","traits":[{"trait":"OrderPage","orbital":"Orders","parent":null,"depth":0,"embeddedIn":[],"renders":true,"linked":false,"stepsIn":"browser","linkedEntity":"Order","states":[{"name":"browsing","isInitial":true,"isTerminal":false},{"name":"editing","isInitial":false,"isTerminal":false}],"transitions":[{"index":0,"from":["browsing"],"to":"editing","event":"EDIT","guarded":false,"emits":[]},{"index":1,"from":["editing"],"to":"browsing","event":"CANCEL","guarded":false,"emits":[]}],"emits":[],"listens":[],"instances":[]}],"wires":[]}
10443
+ */
10444
+ orbital?: MountedOrbital | null;
10445
+ /** Current state per trait in orbital mode; a trait without an entry shows the states of its running instances. @default []
10446
+ * @example [{"trait":"OrderPage","state":"browsing"}]
10447
+ */
10448
+ activeStates?: {
10449
+ trait: string;
10450
+ state: string;
10451
+ }[];
10452
+ /** The last fired transition in orbital mode: its trait and the transition `index`. @default null
10453
+ * @example {"trait":"OrderPage","index":0}
10454
+ */
10455
+ firedTransition?: {
10456
+ trait: string;
10457
+ index: number;
10458
+ } | null;
10459
+ /** Orbital mode: the transitions the last dispatch fired, in order, drawn as one numbered route for a moment, then faded. @default []
10460
+ * @example [{"trait":"OrderPage","index":0}]
10461
+ */
10462
+ route?: {
10463
+ trait: string;
10464
+ index: number;
10465
+ }[];
10466
+ /** Orbital mode: boxes at a trait depth below this draw their own machine (when they have more than one state). @default 2 */
10467
+ expandDepth?: number;
10468
+ /** Orbital mode: the trait whose box is marked as chosen. @default "" */
10469
+ selectedTrait?: string;
10470
+ /** Orbital mode: emitted with the trait's name when a box is chosen. */
10471
+ selectEvent?: EventEmit<{
10472
+ trait: string;
10473
+ }>;
10474
+ /** Orbital mode: shows the inspect toggle; emitted with the trait picked from its output on the page. */
10475
+ pickEvent?: EventEmit<{
10476
+ trait: string;
10477
+ }>;
10478
+ /** Orbital mode: the canvas scrolls inside this height. @default "calc(100vh - 9rem)" */
10479
+ maxHeight?: string;
10046
10480
  /** Loading state indicator */
10047
10481
  isLoading?: boolean;
10048
10482
  /** Error state */
@@ -10206,7 +10640,7 @@ declare const TabbedContainer: React__default.FC<TabbedContainerProps>;
10206
10640
  * collapsible right secondary sidebar. Resizable boundaries are delegated to
10207
10641
  * SplitPane (same directory) — DockLayout owns no drag/resize math itself.
10208
10642
  *
10209
- * sidebarWidth/bottomPanelHeight are SplitPane ratio values (0-100), not
10643
+ * sidebarWidth/secondarySidebarWidth/bottomPanelHeight are SplitPane ratio values (0-100), not
10210
10644
  * pixels: they pass straight through to SplitPane's `ratio` contract so the
10211
10645
  * boundary math stays owned by SplitPane.
10212
10646
  *
@@ -10253,8 +10687,12 @@ interface DockLayoutProps extends Omit<React__default.AriaAttributes, keyof A11y
10253
10687
  secondarySidebar?: React__default.ReactNode;
10254
10688
  /** Width of `rail` in pixels; the rail sizes the column itself when omitted. */
10255
10689
  railWidth?: number;
10256
- /** Width of `secondarySidebar` in pixels (fixed — not resizable). @default 280 */
10690
+ /** Right sidebar size as a SplitPane ratio (0-100, percentage of the main/right-sidebar split). @default 25 */
10257
10691
  secondarySidebarWidth?: number;
10692
+ /** @notification */
10693
+ onSecondarySidebarWidthChange?: (width: number) => void;
10694
+ /** Minimum right sidebar size in pixels, forwarded to SplitPane's `minSize`. @default 240 */
10695
+ secondarySidebarMinSize?: number;
10258
10696
  /** Whether `sidebar` is collapsed (controlled; the layout keeps its own state when omitted). */
10259
10697
  sidebarCollapsed?: boolean;
10260
10698
  /** @notification */
@@ -10281,6 +10719,14 @@ interface DockLayoutProps extends Omit<React__default.AriaAttributes, keyof A11y
10281
10719
  onSecondarySidebarCollapsedChange?: (collapsed: boolean) => void;
10282
10720
  /** The mobile variant; decided by the viewport (narrower than 1024px) when omitted. */
10283
10721
  compact?: boolean;
10722
+ /** Compact: accessible name for the button that opens the menu. */
10723
+ openMenuLabel?: string;
10724
+ /** Compact: accessible name for the button returning to the menu. */
10725
+ backToMenuLabel?: string;
10726
+ /** Compact: title of the menu drawer. */
10727
+ menuLabel?: string;
10728
+ /** Compact: accessible name for each drawer close button. */
10729
+ closeDrawerLabel?: string;
10284
10730
  /** Compact: the top-bar button that opens `secondarySidebar` (e.g. "Inspector", "Chat"). */
10285
10731
  secondarySidebarLabel?: string;
10286
10732
  secondarySidebarIcon?: IconInput;
@@ -10451,6 +10897,8 @@ interface UISlotRendererProps {
10451
10897
  * claims the transition so its chrome stays still.
10452
10898
  */
10453
10899
  pageKey?: string;
10900
+ /** Already-rendered content for the main slot (a guest view's page-root paint); the other slots read the provider as usual. */
10901
+ main?: React__default.ReactNode;
10454
10902
  }
10455
10903
  /**
10456
10904
  * Main UI Slot Renderer component.
@@ -10468,7 +10916,7 @@ interface UISlotRendererProps {
10468
10916
  * }
10469
10917
  * ```
10470
10918
  */
10471
- declare function UISlotRenderer({ includeHud, hudMode, includeFloating, className, suspense, pageKey, }: UISlotRendererProps): React__default.ReactElement;
10919
+ declare function UISlotRenderer({ includeHud, hudMode, includeFloating, className, suspense, pageKey, main, }: UISlotRendererProps): React__default.ReactElement;
10472
10920
  declare namespace UISlotRenderer {
10473
10921
  var displayName: string;
10474
10922
  }
@@ -10674,6 +11122,8 @@ interface MachinePanelProps {
10674
11122
  transitions: readonly TransitionTrace[];
10675
11123
  /** Without it the panel draws the machine alone. */
10676
11124
  describe?: DescribeTrait;
11125
+ /** Already described trait sources, keyed by `<behavior>.traits.<trait>` for a serialized program view. */
11126
+ descriptions?: Readonly<Record<string, TraitDescription>>;
10677
11127
  /** The program's behavior, naming the traits it authors itself; an imported trait carries its own. */
10678
11128
  behavior?: string;
10679
11129
  /** How long a replay shows each hop. */
@@ -10681,7 +11131,7 @@ interface MachinePanelProps {
10681
11131
  /** The program's imports (`behavior/dependencies`), placing each composed unit in its layer. */
10682
11132
  dependencies?: DependencyGraph;
10683
11133
  }
10684
- declare function MachinePanel({ schema, transitions, describe, behavior, replayStepMs, dependencies }: MachinePanelProps): React$1.ReactElement;
11134
+ declare function MachinePanel({ schema, transitions, describe, descriptions, behavior, replayStepMs, dependencies }: MachinePanelProps): React$1.ReactElement;
10685
11135
  declare namespace MachinePanel {
10686
11136
  var displayName: string;
10687
11137
  }
@@ -10905,7 +11355,7 @@ interface TopBarAction {
10905
11355
  * `navigatesTo`. At least one of the two should be set; an entry with
10906
11356
  * neither renders an inert button. */
10907
11357
  event?: EventKey;
10908
- /** Destination URL. Emits `UI:NAVIGATE` on click, the same mechanism
11358
+ /** Destination URL. Navigates through the nav stack on click, the same mechanism
10909
11359
  * `ButtonGroup` / `PageHeader` / `DocumentViewer` already use for their
10910
11360
  * action descriptors — the top bar was the odd one out, which forced a
10911
11361
  * navigation-only button to invent an event nothing listens for. Set
@@ -10988,7 +11438,7 @@ interface DashboardLayoutProps {
10988
11438
  * works inside the embedded playground where `pathname` would be
10989
11439
  * the studio route. */
10990
11440
  currentPath?: string;
10991
- /** The trait's reaction to Sign out; the host ends the session through `UI:SIGN_OUT` either way. */
11441
+ /** The trait's reaction to Sign out; the program ends the session with `(auth/sign-out)` in its arm for the event. */
10992
11442
  onSignOut?: () => void;
10993
11443
  /** Layout mode. Default `"sidebar"`.
10994
11444
  * - `sidebar`: Left sidebar nav + top header (classic dashboard)
@@ -11089,5 +11539,5 @@ interface GenericAppTemplateProps extends TemplateProps, Omit<React__default.Ari
11089
11539
  }
11090
11540
  declare const GenericAppTemplate: React__default.FC<GenericAppTemplateProps>;
11091
11541
 
11092
- export { ALL_PRESETS, Accordion, Card as ActionCard, ActionPalette, ActionTile, ActivationBlock, ActivityRail, AgentActivityFeed, AgentActivityRow, AgentChatFeed, AgentThinkingRow, Alert, AlgoGraphCanvas, AlgorithmCanvas, AnimatedCounter, AssetPicker, AuthLayout, BiologyCanvas, BranchingLogicBuilder, Breadcrumb, ButtonGroup, COMPACT_MEDIA_QUERY, CalendarGrid, CameraState, Canvas, Canvas2D, Carousel, ChangeList, Chart, ChartLegend, ChatBar, ChemistryCanvas, ChoiceButton, Coachmark, CodeBlock, CollapsibleSection, CommandPalette, CommitRow, ConfirmDialog, ConnectionBlock, Container, ContentRenderer, ControlButton, ControlGrid, CounterTemplate, DEFAULT_LIKERT_OPTION_KEYS, DEFAULT_MATRIX_COLUMN_KEYS, DIAMOND_TOP_Y, DashboardGrid, DashboardLayout, DataGrid, DataList, DateRangePicker, DateRangeSelector, DetailPanel, DialogueBubble, DocBreadcrumb, DocPagination, DocSearch, DocSidebar, DocTOC, DockLayout, DocumentDetails, DocumentPanel, DocumentViewer, StateMachineView as DomStateMachineVisualizer, Drawer, DrawerSlot, ELEMENT_SELECTED_EVENT, EdgeDecoration, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EmojiPicker, EmptyState, EntityDisplayEvents, ErrorBoundary, ErrorState, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FacingDirection, FeatureCard, FeatureGrid, FilterGroup, Flex, FlipCard, FloatingActionButton, FloatingToolbar, Form, FormActions, FormField, FormLayout, FormSection$1 as FormSection, FormSectionHeader, FxOverlay, GameAudioCue, GameAudioToggle, GameHud, GameMenu, GameShell, Gantt, GenericAppTemplate, GeometricPattern, GradientDivider, GraphCanvas, GraphView, Grid, GridPicker, Header, HealthBar, IconButton, IconPicker, ImportPreviewTree, ImportProgress, ImportSourcePicker, InputGroup, IsometricUnit, JazariStateMachine, JsonTreeEditor, LearningCanvas, LearningScene3D, LessonSegment, Lightbox, LikertScale, LineChart, LoadingState, MachinePanel, MapView, MarkdownContent, MasterDetailLayout, MathCanvas, MatrixQuestion, MediaGallery, Menu, Meter, Modal, ModalSlot, Navigation, NodeSlotEditor, NumberStepper, OnboardingSpotlight, OptionConstraintGroup, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, PageHeader, PageTransition, Pagination, PhysicsCanvas, Popover, PositionedCanvas, ProgressDots, PropertyInspector, PullToRefresh, QrScanner, QuizBlock, ReflectionBlock, RelationSelect, RepeatableFormSection, ReplyTree, ResolvedFrame, RichTextEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreDisplay, SearchInput, Section, SequenceBar, SidePanel, Sidebar, SignaturePad, SimpleGrid, Skeleton, SkeletonTree, SlotContent, SlotContentRenderer, SocialProof, SortableList, Split, SplitPane, SpriteFrameDims, SpriteSheetUrls, StarRating, StatBadge, StatCard, StatDisplay, StateGraph, StateJsonView, StateMachineView, StatusBar, SubagentTracePanel, SwipeableRow, TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, TableView, Tabs, TagInput, TerrainPalette, Timeline, TimerDisplay, Toast, ToastSlot, Tooltip, TopNavItem, TraitFrame, TraitSlot, TraitStateViewer, UISlotComponent, UISlotRenderer, UnitAnimationState, UploadDropZone, VersionDiff, ViolationAlert, VoteStack, WizardContainer, WizardNavigation, WizardProgress, activityRowFacts, applyCompletion, applySuggestions, arrowBetween, billboardLabel, boardEntity, bool, createUnitAnimationState, cylinderBetween, dispatchCommandPaletteCommand, get3DClickPayload, getCurrentFrame, groupIntoConversations, inferDirection, isoToScreen, makeAsset, makeAssetMap, meshSphere, num, objAvailableActions, objAvailableEvents, objCurrentState, objIcon, objId, objMaxRules, objName, objRules, objStates, parseEditFocus, parseMarkdownWithCodeBlocks, pendulum, preloadCodeHighlighter, projectileMotion, registerCodeLanguageLoader, renderPatternValue, resolveFrame, resolveSheetDirection, rows, sanitizeRichHtml, screenToIso, springOscillator, str, tickAnimationState, toCodeLanguage, transitionAnimation, unitHealth, unitPosition, unitTeam, useAnchorRect, useCamera, useCompactLayout, useDockLayout, useImageCache, useUnitSpriteAtlas, vec2 };
11093
- export type { AccordionItem, AccordionProps, CardProps as ActionCardProps, ActionPaletteProps, ActionTileProps, ActivationBlockProps, ActivityRailItem, ActivityRailProps, AgentActivityFeedProps, AgentActivityJumpTarget, AgentActivityRowProps, AgentChatFeedProps, AgentConversation, AlertProps, AlertVariant, AlgoGraphCanvasProps, AlgoGraphEdge, AlgoGraphEdgeState, AlgoGraphLayout, AlgoGraphNode, AlgoGraphNodeBadge, AlgoGraphNodeState, AlgorithmBar, AlgorithmCanvasProps, AlgorithmCell, AlgorithmPointer, AnimatedCounterProps, AssetPickerProps, AuthLayoutProps, BiologyCanvasProps, BiologyEdge, BiologyNode, BranchingLogicBuilderProps, BranchingQuestion, BranchingRule, BreadcrumbItem, BreadcrumbProps, ButtonGroupProps, CalendarGridProps, CameraMode, Canvas2DProps, CanvasItemShape, CanvasItemStatus, CanvasMode, CanvasProps, CardAction, CarouselProps, ChangeListItem, ChangeListProps, ChangeType, ChartDataPoint, ChartLegendItem, ChartLegendProps, ChartProps, ChartSeries, ChartType, ChatBarProps, ChatBarStatus, ChatFocusRequest, ChemistryArrow, ChemistryAtom, ChemistryBond, ChemistryCanvasProps, ChoiceButtonProps, CoachmarkAnchor, CoachmarkPlacement, CoachmarkProps, CodeAssistProvider, CodeAssistRequest, CodeAssistResult, CodeBlockProps, CodeCompletion, CodeCompletionProvider, CodeCompletionResult, CodeDiagnostic, CodeLanguage, CodeLanguageLoader, CodeSuggestion, CodeViewerAction, CodeViewerFile, CodeViewerMode, CollapsibleSectionProps, CommandPaletteCommand, CommandPaletteProps, CommitKind, CommitRowProps, ConfirmDialogProps, ConfirmDialogVariant, ConnectionBlockProps, ContainerProps, ContentRendererProps, ControlButtonProps, ControlGridButton, ControlGridKind, ControlGridProps, CounterSize, CounterTemplateProps, CounterVariant, DPadDirection, DashboardGridCell, DashboardGridProps, DashboardLayoutProps, DataGridField, DataGridItemAction, DataGridProps, DataListField, DataListItemAction, DataListProps, DateRangePickerPreset, DateRangePickerProps, DateRangeSelectorOption, DateRangeSelectorProps, DescribeTrait, DetailField, DetailPanelProps, DetailSection, DialogueBubbleProps, DiffHunk, DiffLine$1 as DiffLine, DiffLineType, DiffRevision, DispatchCommandPaletteCommandDeps, DisplayStateProps, DocBreadcrumbItem, DocBreadcrumbProps, DocPaginationLink, DocPaginationProps, DocSearchProps, DocSearchResult, DocSidebarItem, DocSidebarProps, DocTOCItem, DocTOCProps, DockLayoutContextValue, DockLayoutProps, DocumentDetailsField, DocumentDetailsProps, DocumentPanelAction, DocumentPanelProps, DocumentType, DocumentViewerProps, DotSize, DotState, DrawerPosition, DrawerProps, DrawerSize, DrawerSlotProps, EdgeDecorationProps, EdgeSide, EdgeVariant, EditorCheckboxProps, EditorMode, EditorSelectProps, EditorSliderProps, EditorTextInputProps, EditorToolbarProps, EmojiPickerPosition, EmojiPickerProps, EmptyStateProps, ErrorBoundaryProps, ErrorStateProps, FeatureCardProps, FeatureGridProps, FilterDefinition, FilterGroupProps, FilterPayload, FlexProps, FlipCardProps, FloatingAction, FloatingActionButtonProps, FloatingToolbarItem, FloatingToolbarPosition, FloatingToolbarProps, FormActionsProps, FormFieldProps, FormLayoutProps, FormProps, FormSectionHeaderProps, FormSectionProps, FxOverlayProps, GameAudioCueProps, GameAudioToggleProps, GameHudElement, GameHudProps, GameHudStat, GameMenuProps, GameShellProps, GanttLink, GanttProps, GenericAppTemplateProps, GeometricPatternProps, GradientDividerProps, GraphCanvasProps, GraphEdge, GraphNode, GraphSimilarity, GraphViewEdge, GraphViewNode, GraphViewProps, GridPickerCellSize, GridPickerProps, GridProps, HeaderProps, HealthBarProps, IconButtonProps, IconPickerProps, ImportEntityDisplay, ImportPreviewTreeProps, ImportPreviewUnit, ImportProgressCounts, ImportProgressProps, ImportProgressStep, ImportSkippedElement, ImportSourceOption, ImportSourcePickerProps, InputGroupProps, JazariStateMachineProps, JsonTreeEditorProps, Learning3DPoint, LearningCanvasProps, LearningPhysicsBody, LearningPhysicsConstraint, LearningPoint, LearningScene3DProps, LearningShape, LearningShapeType, LightboxImage, LightboxProps, LikertOption, LikertScaleProps, LineChartProps, LoadingStateProps, MachinePanelProps, MapMarkerData, MapRouteData, MapRouteWaypoint, MapViewProps, MarkdownContentProps, MasterDetailLayoutProps, MathCanvasProps, MathCurve, MathPoint, MathVector, MatrixColumn, MatrixQuestionProps, MatrixRow, MediaGalleryProps, MediaItem, MenuItem, MenuOption, MenuProps, MeshSphereOpts, MeterAction, MeterProps, MeterThreshold, MeterVariant, MixedSegment, ModalProps, ModalSize, ModalSlotProps, NavItem, NavigationItem, NavigationProps, NodeSlotEditorProps, NumberStepperProps, NumberStepperSize, OnboardingSpotlightProps, OptionConstraint, OptionConstraintGroupProps, OptionConstraintOption, OrbitalVisualizationProps, PageBreadcrumb, PageHeaderProps, PageTransitionProps, PaginatePayload, PaginationProps, PhysicsCanvasProps, PickerItem, Platform, PopoverProps, PositionedCanvasProps, PrismLanguageGrammar, ProgressDotsProps, Projection, PropertyInspectorProps, PullToRefreshProps, QrScanResult, QrScannerProps, QuizBlockProps, ReflectionBlockProps, RelationOption, RelationSelectProps, RepeatableFormSectionProps, RepeatableItem, ReplyTreeProps, RichTextEditorProps, RowFacts, RuleDefinition, RuleOption, RuntimeDebuggerProps, ScaledDiagramProps, ScoreDisplayProps, SearchInputProps, SearchPayload, SectionProps, SelectPayload, SequenceBarProps, SidePanelProps, SidePlayer, SidebarItem, SidebarProps, SignaturePadProps, SimpleGridProps, SkeletonProps, SlotItemData, SocialProofItem, SocialProofProps, SortPayload, SortableListProps, SplitPaneProps, SplitProps, SpotlightStep, StarRatingPrecision, StarRatingProps, StarRatingSize, StatBadgeProps, StatCardProps, StatDisplayProps, StateGraphProps, StateGraphTransition, StateJsonViewProps, StateMachineViewProps, StatusBarProps, SubagentTracePanelProps, SwipeAction, SwipeableRowProps, TabDefinition, TabItem, TabbedContainerProps, TableViewColumn, TableViewProps, TabsProps, TagInputProps, TeamUnitTraits, TemplateProps, TerrainPaletteProps, TileCoord, TileLayout, TimelineItem, TimelineItemStatus, TimelineProps, TimerDisplayProps, ToastProps, ToastSlotProps, ToastVariant, TooltipProps, TopNavItemData, TopNavItemProps, TraceDisclosureLevel, TraitFrameProps, TraitSlotProps, TraitStateMachineDefinition, TraitStateViewerProps, TraitTransition, UISlotComponentProps, UISlotRendererProps, UploadDropZoneProps, Vec2, DiffLine as VersionDiffLine, VersionDiffProps, ViolationAlertProps, ViolationRecord, VoteStackProps, WizardContainerProps, WizardNavigationProps, WizardProgressProps, WizardProgressStep, WizardStep };
11542
+ export { ALL_PRESETS, Accordion, Card as ActionCard, ActionPalette, ActionTile, ActivationBlock, ActivityRail, AgentActivityFeed, AgentActivityRow, AgentChatFeed, AgentThinkingRow, Alert, AlgoGraphCanvas, AlgorithmCanvas, AnimatedCounter, AssetPicker, AuthLayout, BiologyCanvas, BranchingLogicBuilder, Breadcrumb, ButtonGroup, COMPACT_MEDIA_QUERY, CalendarGrid, Canvas, Canvas2D, Carousel, ChangeList, Chart, ChartLegend, ChatBar, ChemistryCanvas, ChoiceButton, Coachmark, CodeBlock, CollapsibleSection, CommandPalette, CommitRow, ConfirmDialog, ConnectionBlock, Container, ContentRenderer, ControlButton, ControlGrid, CounterTemplate, DEFAULT_LIKERT_OPTION_KEYS, DEFAULT_MATRIX_COLUMN_KEYS, DIAMOND_TOP_Y, DashboardGrid, DashboardLayout, DataGrid, DataList, DateRangePicker, DateRangeSelector, DetailPanel, DialogueBubble, DocBreadcrumb, DocPagination, DocSearch, DocSidebar, DocTOC, DockLayout, DocumentDetails, DocumentPanel, DocumentViewer, StateMachineView as DomStateMachineVisualizer, Drawer, DrawerSlot, ELEMENT_SELECTED_EVENT, EdgeDecoration, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EmojiPicker, EmptyState, EntityDisplayEvents, ErrorBoundary, ErrorState, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FeatureCard, FeatureGrid, FilterGroup, Flex, FlipCard, FloatingActionButton, FloatingToolbar, Form, FormActions, FormField, FormLayout, FormSection$1 as FormSection, FormSectionHeader, FxOverlay, GameAudioCue, GameAudioToggle, GameHud, GameMenu, GameShell, Gantt, GenericAppTemplate, GeometricPattern, GradientDivider, GraphCanvas, GraphView, Grid, GridPicker, GuestView, Header, HealthBar, IconButton, IconPicker, ImportPreviewTree, ImportProgress, ImportSourcePicker, InputGroup, JazariStateMachine, JsonTreeEditor, LearningCanvas, LessonSegment, Lightbox, LikertScale, LineChart, LoadingState, MachinePanel, MapView, MarkdownContent, MasterDetailLayout, MathCanvas, MatrixQuestion, MediaGallery, Menu, Meter, Modal, ModalSlot, Navigation, NodeSlotEditor, NumberStepper, OnboardingSpotlight, OptionConstraintGroup, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, PageHeader, PageTransition, Pagination, PhysicsCanvas, Popover, PositionedCanvas, ProgressDots, PropertyInspector, PullToRefresh, QrScanner, QuizBlock, ReflectionBlock, RelationSelect, RepeatableFormSection, ReplyTree, RichTextEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreDisplay, SearchInput, Section, SequenceBar, SidePanel, Sidebar, SignaturePad, SimpleGrid, Skeleton, SkeletonTree, SlotContent, SlotContentRenderer, SocialProof, SortableList, Split, SplitPane, StarRating, StatBadge, StatCard, StatDisplay, StateGraph, StateJsonView, StateMachineView, StatusBar, SubagentTracePanel, SwipeableRow, TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, TableView, Tabs, TagInput, TerrainPalette, Timeline, TimerDisplay, Toast, ToastSlot, Tooltip, TopNavItem, TraitFrame, TraitSlot, TraitStateViewer, UISlotComponent, UISlotRenderer, UploadDropZone, VersionDiff, ViolationAlert, VoteStack, WizardContainer, WizardNavigation, WizardProgress, activityRowFacts, applyCompletion, applySuggestions, boardEntity, bool, calculateAttackTargets, calculateValidMoves, createInitialGameState, createUnitAnimationState, dispatchCommandPaletteCommand, getCurrentFrame, groupIntoConversations, inferDirection, isoToScreen, makeAsset, makeAssetMap, num, objAvailableActions, objAvailableEvents, objCurrentState, objIcon, objId, objMaxRules, objName, objRules, objStates, parseEditFocus, parseMarkdownWithCodeBlocks, pendulum, preloadCodeHighlighter, projectileMotion, registerCodeLanguageLoader, renderPatternValue, resolveFrame, resolveSheetDirection, rows, sanitizeRichHtml, screenToIso, springOscillator, str, tickAnimationState, toCodeLanguage, transitionAnimation, unitHealth, unitPosition, unitTeam, useAnchorRect, useCamera, useCompactLayout, useDockLayout, useImageCache, useUnitSpriteAtlas, vec2 };
11543
+ export type { AccordionItem, AccordionProps, CardProps as ActionCardProps, ActionPaletteProps, ActionTileProps, ActivationBlockProps, ActivityRailItem, ActivityRailProps, AgentActivityFeedProps, AgentActivityJumpTarget, AgentActivityRowProps, AgentChatFeedProps, AgentConversation, AlertProps, AlertVariant, AlgoGraphCanvasProps, AlgoGraphEdge, AlgoGraphEdgeState, AlgoGraphLayout, AlgoGraphNode, AlgoGraphNodeBadge, AlgoGraphNodeState, AlgorithmBar, AlgorithmCanvasProps, AlgorithmCell, AlgorithmPointer, AnimatedCounterProps, AssetPickerProps, AuthLayoutProps, BiologyCanvasProps, BiologyEdge, BiologyNode, BoardTile, BranchingLogicBuilderProps, BranchingQuestion, BranchingRule, BreadcrumbItem, BreadcrumbProps, ButtonGroupProps, CalendarGridProps, CameraMode, CameraState, Canvas2DProps, CanvasItemShape, CanvasItemStatus, CanvasMode, CanvasProps, CardAction, CarouselProps, ChangeListItem, ChangeListProps, ChangeType, ChartDataPoint, ChartLegendItem, ChartLegendProps, ChartProps, ChartSeries, ChartType, ChatBarProps, ChatBarStatus, ChatFocusRequest, ChemistryArrow, ChemistryAtom, ChemistryBond, ChemistryCanvasProps, ChoiceButtonProps, CoachmarkAnchor, CoachmarkPlacement, CoachmarkProps, CodeAssistProvider, CodeAssistRequest, CodeAssistResult, CodeBlockProps, CodeCompletion, CodeCompletionProvider, CodeCompletionResult, CodeDiagnostic, CodeLanguage, CodeLanguageLoader, CodeSuggestion, CodeViewerAction, CodeViewerFile, CodeViewerMode, CollapsibleSectionProps, CommandPaletteCommand, CommandPaletteProps, CommitKind, CommitRowProps, ConfirmDialogProps, ConfirmDialogVariant, ConnectionBlockProps, ContainerProps, ContentRendererProps, ControlButtonProps, ControlGridButton, ControlGridKind, ControlGridProps, CounterSize, CounterTemplateProps, CounterVariant, DPadDirection, DashboardGridCell, DashboardGridProps, DashboardLayoutProps, DataGridField, DataGridItemAction, DataGridProps, DataListField, DataListItemAction, DataListProps, DateRangePickerPreset, DateRangePickerProps, DateRangeSelectorOption, DateRangeSelectorProps, DescribeTrait, DetailField, DetailPanelProps, DetailSection, DialogueBubbleProps, DiffHunk, DiffLine$1 as DiffLine, DiffLineType, DiffRevision, DispatchCommandPaletteCommandDeps, DisplayStateProps, DocBreadcrumbItem, DocBreadcrumbProps, DocPaginationLink, DocPaginationProps, DocSearchProps, DocSearchResult, DocSidebarItem, DocSidebarProps, DocTOCItem, DocTOCProps, DockLayoutContextValue, DockLayoutProps, DocumentDetailsField, DocumentDetailsProps, DocumentPanelAction, DocumentPanelProps, DocumentType, DocumentViewerProps, DotSize, DotState, DrawerPosition, DrawerProps, DrawerSize, DrawerSlotProps, EdgeDecorationProps, EdgeSide, EdgeVariant, EditorCheckboxProps, EditorMode, EditorSelectProps, EditorSliderProps, EditorTextInputProps, EditorToolbarProps, EmojiPickerPosition, EmojiPickerProps, EmptyStateProps, ErrorBoundaryProps, ErrorStateProps, FacingDirection, FeatureCardProps, FeatureGridProps, FilterDefinition, FilterGroupProps, FilterPayload, FlexProps, FlipCardProps, FloatingAction, FloatingActionButtonProps, FloatingToolbarItem, FloatingToolbarPosition, FloatingToolbarProps, FormActionsProps, FormFieldProps, FormLayoutProps, FormProps, FormSectionHeaderProps, FormSectionProps, FxOverlayProps, GameAction, GameAudioCueProps, GameAudioToggleProps, GameHudElement, GameHudProps, GameHudStat, GameMenuProps, GamePhase, GameShellProps, GameState, GameUnit, GanttLink, GanttProps, GenericAppTemplateProps, GeometricPatternProps, GradientDividerProps, GraphCanvasProps, GraphEdge, GraphNode, GraphSimilarity, GraphViewEdge, GraphViewNode, GraphViewProps, GridPickerCellSize, GridPickerProps, GridProps, GuestViewProps, HeaderProps, HealthBarProps, IconButtonProps, IconPickerProps, ImportEntityDisplay, ImportPreviewTreeProps, ImportPreviewUnit, ImportProgressCounts, ImportProgressProps, ImportProgressStep, ImportSkippedElement, ImportSourceOption, ImportSourcePickerProps, InputGroupProps, IsometricFeature, IsometricTile, IsometricUnit, JazariStateMachineProps, JsonTreeEditorProps, LearningCanvasProps, LearningPhysicsBody, LearningPhysicsConstraint, LearningPoint, LearningShape, LearningShapeType, LightboxImage, LightboxProps, LikertOption, LikertScaleProps, LineChartProps, LoadingStateProps, MachinePanelProps, MapMarkerData, MapRouteData, MapRouteWaypoint, MapViewProps, MarkdownContentProps, MasterDetailLayoutProps, MathCanvasProps, MathCurve, MathPoint, MathVector, MatrixColumn, MatrixQuestionProps, MatrixRow, MediaGalleryProps, MediaItem, MenuItem, MenuOption, MenuProps, MeterAction, MeterProps, MeterThreshold, MeterVariant, MixedSegment, ModalProps, ModalSize, ModalSlotProps, NavItem, NavigationItem, NavigationProps, NodeSlotEditorProps, NumberStepperProps, NumberStepperSize, OnboardingSpotlightProps, OptionConstraint, OptionConstraintGroupProps, OptionConstraintOption, OrbitalVisualizationProps, PageBreadcrumb, PageHeaderProps, PageTransitionProps, PaginatePayload, PaginationProps, PhysicsCanvasProps, PickerItem, Platform, PopoverProps, Position, PositionedCanvasProps, PrismLanguageGrammar, ProgressDotsProps, Projection, PropertyInspectorProps, PullToRefreshProps, QrScanResult, QrScannerProps, QuizBlockProps, ReflectionBlockProps, RelationOption, RelationSelectProps, RepeatableFormSectionProps, RepeatableItem, ReplyTreeProps, ResolvedFrame, RichTextEditorProps, RowFacts, RuleDefinition, RuleOption, RuntimeDebuggerProps, ScaledDiagramProps, ScoreDisplayProps, SearchInputProps, SearchPayload, SectionProps, SelectPayload, SequenceBarProps, SidePanelProps, SidePlayer, SidebarItem, SidebarProps, SignaturePadProps, SimpleGridProps, SkeletonProps, SlotItemData, SocialProofItem, SocialProofProps, SortPayload, SortableListProps, SplitPaneProps, SplitProps, SpotlightStep, SpriteFrameDims, SpriteSheetUrls, StarRatingPrecision, StarRatingProps, StarRatingSize, StatBadgeProps, StatCardProps, StatDisplayProps, StateGraphProps, StateGraphTransition, StateJsonViewProps, StateMachineViewProps, StatusBarProps, SubagentTracePanelProps, SwipeAction, SwipeableRowProps, TabDefinition, TabItem, TabbedContainerProps, TableViewColumn, TableViewProps, TabsProps, TagInputProps, TeamUnitTraits, TemplateProps, TerrainPaletteProps, TileCoord, TileLayout, TimelineItem, TimelineItemStatus, TimelineProps, TimerDisplayProps, ToastProps, ToastSlotProps, ToastVariant, TooltipProps, TopNavItemData, TopNavItemProps, TraceDisclosureLevel, TraitFrameProps, TraitSlotProps, TraitStateMachineDefinition, TraitStateViewerProps, TraitTransition, UISlotComponentProps, UISlotRendererProps, UnitAnimationState, UnitTrait, UploadDropZoneProps, Vec2, DiffLine as VersionDiffLine, VersionDiffProps, ViolationAlertProps, ViolationRecord, VoteStackProps, WizardContainerProps, WizardNavigationProps, WizardProgressProps, WizardProgressStep, WizardStep };