@almadar/ui 1.0.34 → 2.0.1

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 (241) hide show
  1. package/LICENSE +21 -72
  2. package/dist/components/atoms/Avatar.d.ts +58 -0
  3. package/dist/components/atoms/Badge.d.ts +8 -0
  4. package/dist/components/atoms/Box.d.ts +57 -0
  5. package/dist/components/atoms/Button.d.ts +24 -0
  6. package/dist/components/atoms/Card.d.ts +18 -0
  7. package/dist/components/atoms/Center.d.ts +33 -0
  8. package/dist/components/atoms/Checkbox.d.ts +5 -0
  9. package/dist/components/atoms/ConditionalWrapper.d.ts +68 -0
  10. package/dist/components/atoms/Divider.d.ts +29 -0
  11. package/dist/components/atoms/Icon.d.ts +38 -0
  12. package/dist/components/atoms/Input.d.ts +26 -0
  13. package/dist/components/atoms/Label.d.ts +5 -0
  14. package/dist/components/atoms/LawReferenceTooltip.d.ts +48 -0
  15. package/dist/components/atoms/Overlay.d.ts +16 -0
  16. package/dist/components/atoms/ProgressBar.d.ts +63 -0
  17. package/dist/components/atoms/Radio.d.ts +26 -0
  18. package/dist/components/atoms/Select.d.ts +12 -0
  19. package/dist/components/atoms/Spacer.d.ts +25 -0
  20. package/dist/components/atoms/Spinner.d.ts +6 -0
  21. package/dist/components/atoms/Stack.d.ts +64 -0
  22. package/dist/components/atoms/Switch.d.ts +12 -0
  23. package/dist/components/atoms/TextHighlight.d.ts +53 -0
  24. package/dist/components/atoms/Textarea.d.ts +5 -0
  25. package/dist/components/atoms/ThemeSelector.d.ts +21 -0
  26. package/dist/components/atoms/ThemeToggle.d.ts +33 -0
  27. package/dist/components/atoms/Typography.d.ts +57 -0
  28. package/dist/components/atoms/game/ControlButton.d.ts +31 -0
  29. package/dist/components/atoms/game/HealthBar.d.ts +18 -0
  30. package/dist/components/atoms/game/ScoreDisplay.d.ts +21 -0
  31. package/dist/components/atoms/game/Sprite.d.ts +63 -0
  32. package/dist/components/atoms/game/StateIndicator.d.ts +31 -0
  33. package/dist/components/atoms/game/index.d.ts +12 -0
  34. package/dist/components/atoms/index.d.ts +27 -0
  35. package/dist/components/index.css +11 -9
  36. package/dist/components/index.d.ts +6 -6951
  37. package/dist/components/index.js +5 -5
  38. package/dist/components/molecules/Accordion.d.ts +67 -0
  39. package/dist/components/molecules/Alert.d.ts +24 -0
  40. package/dist/components/molecules/Breadcrumb.d.ts +55 -0
  41. package/dist/components/molecules/ButtonGroup.d.ts +67 -0
  42. package/dist/components/molecules/Card.d.ts +44 -0
  43. package/dist/components/molecules/Container.d.ts +30 -0
  44. package/dist/components/molecules/Drawer.d.ts +46 -0
  45. package/dist/components/molecules/EmptyState.d.ts +25 -0
  46. package/dist/components/molecules/ErrorBoundary.d.ts +55 -0
  47. package/dist/components/molecules/ErrorState.d.ts +13 -0
  48. package/dist/components/molecules/FilterGroup.d.ts +54 -0
  49. package/dist/components/molecules/Flex.d.ts +43 -0
  50. package/dist/components/molecules/FloatingActionButton.d.ts +69 -0
  51. package/dist/components/molecules/FormField.d.ts +16 -0
  52. package/dist/components/molecules/FormSectionHeader.d.ts +30 -0
  53. package/dist/components/molecules/Grid.d.ts +54 -0
  54. package/dist/components/molecules/InputGroup.d.ts +24 -0
  55. package/dist/components/molecules/LoadingState.d.ts +7 -0
  56. package/dist/components/molecules/Menu.d.ts +40 -0
  57. package/dist/components/molecules/Modal.d.ts +26 -0
  58. package/dist/components/molecules/Pagination.d.ts +66 -0
  59. package/dist/components/molecules/Popover.d.ts +39 -0
  60. package/dist/components/molecules/QuizBlock.d.ts +20 -0
  61. package/dist/components/molecules/RelationSelect.d.ts +48 -0
  62. package/dist/components/molecules/RepeatableFormSection.d.ts +58 -0
  63. package/dist/components/molecules/ScaledDiagram.d.ts +20 -0
  64. package/dist/components/molecules/SearchInput.d.ts +60 -0
  65. package/dist/components/molecules/SidePanel.d.ts +47 -0
  66. package/dist/components/molecules/SimpleGrid.d.ts +27 -0
  67. package/dist/components/molecules/Skeleton.d.ts +35 -0
  68. package/dist/components/molecules/Tabs.d.ts +45 -0
  69. package/dist/components/molecules/Toast.d.ts +35 -0
  70. package/dist/components/molecules/Tooltip.d.ts +25 -0
  71. package/dist/components/molecules/ViolationAlert.d.ts +49 -0
  72. package/dist/components/molecules/WizardNavigation.d.ts +51 -0
  73. package/dist/components/molecules/WizardProgress.d.ts +42 -0
  74. package/dist/components/molecules/game/StatBadge.d.ts +27 -0
  75. package/dist/components/molecules/index.d.ts +38 -0
  76. package/dist/components/molecules/markdown/CodeBlock.d.ts +25 -0
  77. package/dist/components/molecules/markdown/MarkdownContent.d.ts +26 -0
  78. package/dist/components/organisms/CardGrid.d.ts +72 -0
  79. package/dist/components/organisms/Chart.d.ts +59 -0
  80. package/dist/components/organisms/CodeViewer.d.ts +67 -0
  81. package/dist/components/organisms/ComponentPatterns.d.ts +441 -0
  82. package/dist/components/organisms/ConfirmDialog.d.ts +50 -0
  83. package/dist/components/organisms/ContentRenderer.d.ts +23 -0
  84. package/dist/components/organisms/CustomPattern.d.ts +104 -0
  85. package/dist/components/organisms/DataTable.d.ts +63 -0
  86. package/dist/components/organisms/DetailPanel.d.ts +71 -0
  87. package/dist/components/organisms/DocumentViewer.d.ts +60 -0
  88. package/dist/components/organisms/DrawerSlot.d.ts +39 -0
  89. package/dist/components/organisms/Form.d.ts +203 -0
  90. package/dist/components/organisms/FormSection.d.ts +59 -0
  91. package/dist/components/organisms/GraphCanvas.d.ts +69 -0
  92. package/dist/components/organisms/Header.d.ts +110 -0
  93. package/dist/components/organisms/JazariStateMachine.d.ts +60 -0
  94. package/dist/components/organisms/LayoutPatterns.d.ts +181 -0
  95. package/dist/components/organisms/List.d.ts +76 -0
  96. package/dist/components/organisms/MasterDetail.d.ts +43 -0
  97. package/dist/components/organisms/MediaGallery.d.ts +66 -0
  98. package/dist/components/organisms/Meter.d.ts +58 -0
  99. package/dist/components/organisms/ModalSlot.d.ts +35 -0
  100. package/dist/components/organisms/Navigation.d.ts +68 -0
  101. package/dist/components/organisms/OrbitalVisualization.d.ts +48 -0
  102. package/dist/components/organisms/PageHeader.d.ts +59 -0
  103. package/dist/components/organisms/Section.d.ts +44 -0
  104. package/dist/components/organisms/Sidebar.d.ts +65 -0
  105. package/dist/components/organisms/SignaturePad.d.ts +44 -0
  106. package/dist/components/organisms/Split.d.ts +42 -0
  107. package/dist/components/organisms/StatCard.d.ts +66 -0
  108. package/dist/components/organisms/StateMachineView.d.ts +36 -0
  109. package/dist/components/organisms/Table.d.ts +99 -0
  110. package/dist/components/organisms/Timeline.d.ts +58 -0
  111. package/dist/components/organisms/ToastSlot.d.ts +38 -0
  112. package/dist/components/organisms/UISlotRenderer.d.ts +112 -0
  113. package/dist/components/organisms/WizardContainer.d.ts +160 -0
  114. package/dist/components/organisms/book/BookChapterView.d.ts +17 -0
  115. package/dist/components/organisms/book/BookCoverPage.d.ts +19 -0
  116. package/dist/components/organisms/book/BookNavBar.d.ts +18 -0
  117. package/dist/components/organisms/book/BookTableOfContents.d.ts +18 -0
  118. package/dist/components/organisms/book/BookViewer.d.ts +28 -0
  119. package/dist/components/organisms/book/index.d.ts +7 -0
  120. package/dist/components/organisms/book/types.d.ts +77 -0
  121. package/dist/components/organisms/game/BattleBoard.d.ts +167 -0
  122. package/dist/components/organisms/game/CanvasEffect.d.ts +68 -0
  123. package/dist/components/organisms/game/CastleBoard.d.ts +85 -0
  124. package/dist/components/organisms/game/DialogueBox.d.ts +73 -0
  125. package/dist/components/organisms/game/GameAudioProvider.d.ts +47 -0
  126. package/dist/components/organisms/game/GameAudioToggle.d.ts +28 -0
  127. package/dist/components/organisms/game/GameHud.d.ts +40 -0
  128. package/dist/components/organisms/game/GameMenu.d.ts +43 -0
  129. package/dist/components/organisms/game/GameOverScreen.d.ts +56 -0
  130. package/dist/components/organisms/game/InventoryPanel.d.ts +67 -0
  131. package/dist/components/organisms/game/IsometricCanvas.d.ts +123 -0
  132. package/dist/components/organisms/game/TraitSlot.d.ts +86 -0
  133. package/dist/components/organisms/game/TraitStateViewer.d.ts +53 -0
  134. package/dist/components/organisms/game/UncontrolledBattleBoard.d.ts +26 -0
  135. package/dist/components/organisms/game/WorldMapBoard.d.ts +147 -0
  136. package/dist/components/organisms/game/editor/editorUtils.d.ts +109 -0
  137. package/dist/components/organisms/game/editor/index.d.ts +9 -0
  138. package/dist/components/organisms/game/hooks/useBattleState.d.ts +35 -0
  139. package/dist/components/organisms/game/hooks/useCamera.d.ts +41 -0
  140. package/dist/components/organisms/game/hooks/useGameAudio.d.ts +47 -0
  141. package/dist/components/organisms/game/hooks/useImageCache.d.ts +16 -0
  142. package/dist/components/organisms/game/hooks/usePhysics2D.d.ts +45 -0
  143. package/dist/components/organisms/game/hooks/useSpriteAnimations.d.ts +43 -0
  144. package/dist/components/organisms/game/index.d.ts +36 -0
  145. package/dist/components/organisms/game/managers/PhysicsManager.d.ts +103 -0
  146. package/dist/components/organisms/game/types/effects.d.ts +253 -0
  147. package/dist/{isometric-ynNHVPZx.d.ts → components/organisms/game/types/isometric.d.ts} +4 -6
  148. package/dist/components/organisms/game/types/spriteAnimation.d.ts +73 -0
  149. package/dist/components/organisms/game/utils/canvasEffects.d.ts +50 -0
  150. package/dist/components/organisms/game/utils/combatPresets.d.ts +15 -0
  151. package/dist/components/organisms/game/utils/isometric.d.ts +61 -0
  152. package/dist/components/organisms/game/utils/spriteAnimation.d.ts +57 -0
  153. package/dist/components/organisms/game/utils/spriteSheetConstants.d.ts +16 -0
  154. package/dist/components/organisms/index.d.ts +37 -0
  155. package/dist/components/organisms/layout/DashboardGrid.d.ts +34 -0
  156. package/dist/components/organisms/layout/MasterDetail.d.ts +32 -0
  157. package/dist/components/organisms/layout/SplitPane.d.ts +34 -0
  158. package/dist/components/organisms/layout/TabbedContainer.d.ts +42 -0
  159. package/dist/components/organisms/layout/index.d.ts +9 -0
  160. package/dist/components/organisms/types.d.ts +65 -0
  161. package/dist/components/templates/AuthLayout.d.ts +14 -0
  162. package/dist/components/templates/BattleTemplate.d.ts +25 -0
  163. package/dist/components/templates/CastleTemplate.d.ts +23 -0
  164. package/dist/components/templates/CounterTemplate.d.ts +44 -0
  165. package/dist/components/templates/DashboardLayout.d.ts +32 -0
  166. package/dist/components/templates/GameShell.d.ts +33 -0
  167. package/dist/components/templates/GameTemplate.d.ts +36 -0
  168. package/dist/components/templates/GenericAppTemplate.d.ts +30 -0
  169. package/dist/components/templates/WorldMapTemplate.d.ts +29 -0
  170. package/dist/components/templates/index.d.ts +10 -0
  171. package/dist/components/templates/types.d.ts +17 -0
  172. package/dist/context/DesignThemeContext.d.ts +21 -0
  173. package/dist/{ThemeContext-D9xUORq5.d.ts → context/ThemeContext.d.ts} +15 -16
  174. package/dist/context/UISlotContext.d.ts +75 -0
  175. package/dist/context/UserContext.d.ts +111 -0
  176. package/dist/context/index.d.ts +6 -206
  177. package/dist/{event-bus-types-CjJduURa.d.ts → hooks/event-bus-types.d.ts} +4 -6
  178. package/dist/hooks/index.d.ts +24 -1090
  179. package/dist/hooks/useAgentChat.d.ts +104 -0
  180. package/dist/hooks/useAuthContext.d.ts +25 -0
  181. package/dist/hooks/useCompile.d.ts +22 -0
  182. package/dist/hooks/useDeepAgentGeneration.d.ts +46 -0
  183. package/dist/hooks/useEntities.d.ts +52 -0
  184. package/dist/hooks/useEntityData.d.ts +155 -0
  185. package/dist/hooks/useEntityMutations.d.ts +80 -0
  186. package/dist/hooks/useEventBus.d.ts +96 -0
  187. package/dist/hooks/useExtensions.d.ts +32 -0
  188. package/dist/hooks/useFileEditor.d.ts +32 -0
  189. package/dist/hooks/useFileSystem.d.ts +40 -0
  190. package/dist/hooks/useGitHub.d.ts +58 -0
  191. package/dist/hooks/useOrbitalHistory.d.ts +39 -0
  192. package/dist/hooks/useOrbitalMutations.d.ts +95 -0
  193. package/dist/hooks/usePreview.d.ts +57 -0
  194. package/dist/hooks/useQuerySingleton.d.ts +78 -0
  195. package/dist/hooks/useResolvedEntity.d.ts +32 -0
  196. package/dist/hooks/useTranslate.d.ts +35 -0
  197. package/dist/hooks/useUIEvents.d.ts +35 -0
  198. package/dist/{useUISlots-D0mttBSP.d.ts → hooks/useUISlots.d.ts} +8 -9
  199. package/dist/hooks/useValidation.d.ts +46 -0
  200. package/dist/lib/api-client.d.ts +42 -0
  201. package/dist/lib/cn.d.ts +6 -0
  202. package/dist/lib/debug.d.ts +43 -0
  203. package/dist/lib/debugRegistry.d.ts +29 -0
  204. package/dist/lib/debugUtils.d.ts +27 -0
  205. package/dist/lib/entityDebug.d.ts +38 -0
  206. package/dist/lib/getNestedValue.d.ts +33 -0
  207. package/dist/lib/guardRegistry.d.ts +32 -0
  208. package/dist/lib/index.d.ts +17 -426
  209. package/dist/lib/jazari/svg-paths.d.ts +61 -0
  210. package/dist/lib/parseContentSegments.d.ts +41 -0
  211. package/dist/lib/tickRegistry.d.ts +40 -0
  212. package/dist/lib/traitRegistry.d.ts +34 -0
  213. package/dist/lib/verificationRegistry.d.ts +107 -0
  214. package/dist/{cn-BoBXsxuX.d.ts → lib/visualizer/index.d.ts} +18 -69
  215. package/dist/locales/index.d.ts +5 -7
  216. package/dist/providers/EventBusProvider.d.ts +60 -0
  217. package/dist/providers/FetchedDataProvider.d.ts +105 -0
  218. package/dist/providers/OfflineModeProvider.d.ts +79 -0
  219. package/dist/providers/OrbitalProvider.d.ts +101 -0
  220. package/dist/providers/SelectionProvider.d.ts +81 -0
  221. package/dist/providers/VerificationProvider.d.ts +63 -0
  222. package/dist/providers/index.css +11 -9
  223. package/dist/providers/index.d.ts +16 -464
  224. package/dist/providers/index.js +3 -3
  225. package/dist/renderer/client-effect-executor.d.ts +68 -0
  226. package/dist/renderer/data-resolver.d.ts +68 -0
  227. package/dist/renderer/index.d.ts +22 -519
  228. package/dist/renderer/index.js +1 -1
  229. package/dist/renderer/init.d.ts +14 -0
  230. package/dist/renderer/navigation.d.ts +142 -0
  231. package/dist/{offline-executor-CHr4uAhf.d.ts → renderer/offline-executor.d.ts} +9 -172
  232. package/dist/renderer/pattern-resolver.d.ts +91 -0
  233. package/dist/renderer/slot-definitions.d.ts +45 -0
  234. package/dist/renderer/types.d.ts +160 -0
  235. package/dist/renderer/useClientEffects.d.ts +88 -0
  236. package/dist/stores/entityStore.d.ts +99 -0
  237. package/dist/stores/filtering.d.ts +51 -0
  238. package/dist/stores/index.d.ts +4 -148
  239. package/package.json +12 -10
  240. package/dist/components/organisms/game/three/index.d.ts +0 -1162
  241. package/dist/{chunk-FZJ73RDM.js → chunk-RIZ76XRF.js} +1 -1
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Trait Registry - Tracks active traits and their state machines for debugging
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ export interface TraitTransition {
7
+ from: string;
8
+ to: string;
9
+ event: string;
10
+ guard?: string;
11
+ }
12
+ export interface TraitGuard {
13
+ name: string;
14
+ lastResult?: boolean;
15
+ }
16
+ export interface TraitDebugInfo {
17
+ id: string;
18
+ name: string;
19
+ currentState: string;
20
+ states: string[];
21
+ transitions: TraitTransition[];
22
+ guards: TraitGuard[];
23
+ transitionCount: number;
24
+ }
25
+ type ChangeListener = () => void;
26
+ export declare function registerTrait(info: TraitDebugInfo): void;
27
+ export declare function updateTraitState(id: string, newState: string): void;
28
+ export declare function updateGuardResult(traitId: string, guardName: string, result: boolean): void;
29
+ export declare function unregisterTrait(id: string): void;
30
+ export declare function getAllTraits(): TraitDebugInfo[];
31
+ export declare function getTrait(id: string): TraitDebugInfo | undefined;
32
+ export declare function subscribeToTraitChanges(listener: ChangeListener): () => void;
33
+ export declare function clearTraits(): void;
34
+ export {};
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Verification Registry - Tracks runtime verification checks and transition traces
3
+ *
4
+ * Provides:
5
+ * 1. A checklist of pass/fail checks (INIT has fetch, bridge connected, etc.)
6
+ * 2. A full transition timeline with effect execution results
7
+ * 3. ServerBridge health snapshot
8
+ * 4. window.__orbitalVerification for Playwright/automation
9
+ *
10
+ * @packageDocumentation
11
+ */
12
+ export type CheckStatus = "pass" | "fail" | "pending" | "warn";
13
+ export interface VerificationCheck {
14
+ id: string;
15
+ label: string;
16
+ status: CheckStatus;
17
+ details?: string;
18
+ /** Timestamp when status last changed */
19
+ updatedAt: number;
20
+ }
21
+ export interface EffectTrace {
22
+ type: string;
23
+ args: unknown[];
24
+ status: "executed" | "failed" | "skipped";
25
+ error?: string;
26
+ durationMs?: number;
27
+ }
28
+ export interface TransitionTrace {
29
+ id: string;
30
+ traitName: string;
31
+ from: string;
32
+ to: string;
33
+ event: string;
34
+ guardExpression?: string;
35
+ guardResult?: boolean;
36
+ effects: EffectTrace[];
37
+ timestamp: number;
38
+ }
39
+ export interface BridgeHealth {
40
+ connected: boolean;
41
+ eventsForwarded: number;
42
+ eventsReceived: number;
43
+ lastError?: string;
44
+ lastHeartbeat: number;
45
+ }
46
+ export interface VerificationSummary {
47
+ totalChecks: number;
48
+ passed: number;
49
+ failed: number;
50
+ warnings: number;
51
+ pending: number;
52
+ }
53
+ export interface VerificationSnapshot {
54
+ checks: VerificationCheck[];
55
+ transitions: TransitionTrace[];
56
+ bridge: BridgeHealth | null;
57
+ summary: VerificationSummary;
58
+ }
59
+ type ChangeListener = () => void;
60
+ export declare function registerCheck(id: string, label: string, status?: CheckStatus, details?: string): void;
61
+ export declare function updateCheck(id: string, status: CheckStatus, details?: string): void;
62
+ export declare function getAllChecks(): VerificationCheck[];
63
+ export declare function recordTransition(trace: Omit<TransitionTrace, "id">): void;
64
+ export declare function getTransitions(): TransitionTrace[];
65
+ export declare function getTransitionsForTrait(traitName: string): TransitionTrace[];
66
+ export declare function updateBridgeHealth(health: BridgeHealth): void;
67
+ export declare function getBridgeHealth(): BridgeHealth | null;
68
+ export declare function getSummary(): VerificationSummary;
69
+ export declare function getSnapshot(): VerificationSnapshot;
70
+ export declare function subscribeToVerification(listener: ChangeListener): () => void;
71
+ /** Exposed on window for Playwright to query */
72
+ interface OrbitalVerificationAPI {
73
+ getSnapshot: () => VerificationSnapshot;
74
+ getChecks: () => VerificationCheck[];
75
+ getTransitions: () => TransitionTrace[];
76
+ getBridge: () => BridgeHealth | null;
77
+ getSummary: () => VerificationSummary;
78
+ /** Wait for a specific event to be processed */
79
+ waitForTransition: (event: string, timeoutMs?: number) => Promise<TransitionTrace | null>;
80
+ /** Send an event into the runtime (requires eventBus binding) */
81
+ sendEvent?: (event: string, payload?: Record<string, unknown>) => void;
82
+ /** Get current trait state */
83
+ getTraitState?: (traitName: string) => string | undefined;
84
+ }
85
+ declare global {
86
+ interface Window {
87
+ __orbitalVerification?: OrbitalVerificationAPI;
88
+ }
89
+ }
90
+ /**
91
+ * Wait for a transition matching the given event to appear.
92
+ * Returns the trace or null on timeout.
93
+ */
94
+ export declare function waitForTransition(event: string, timeoutMs?: number): Promise<TransitionTrace | null>;
95
+ /**
96
+ * Bind the EventBus so automation can send events.
97
+ * Call this during app initialization.
98
+ */
99
+ export declare function bindEventBus(eventBus: {
100
+ emit: (type: string, payload?: Record<string, unknown>) => void;
101
+ }): void;
102
+ /**
103
+ * Bind a trait state getter so automation can query current states.
104
+ */
105
+ export declare function bindTraitStateGetter(getter: (traitName: string) => string | undefined): void;
106
+ export declare function clearVerification(): void;
107
+ export {};
@@ -1,12 +1,10 @@
1
- import { ClassValue } from 'clsx';
2
-
3
1
  /**
4
2
  * Orbital State Machine Visualizer
5
3
  *
6
4
  * Renders SVG diagrams from Orbital schemas and Trait definitions.
7
5
  * Can be used in documentation, IDE previews, and other tools.
8
6
  */
9
- interface VisualizerConfig {
7
+ export interface VisualizerConfig {
10
8
  nodeRadius: number;
11
9
  nodeSpacing: number;
12
10
  initialIndicatorOffset: number;
@@ -30,35 +28,35 @@ interface VisualizerConfig {
30
28
  effect: string;
31
29
  };
32
30
  }
33
- interface StateDefinition {
31
+ export interface StateDefinition {
34
32
  name: string;
35
33
  isInitial?: boolean;
36
34
  isFinal?: boolean;
37
35
  description?: string;
38
36
  }
39
- interface TransitionDefinition {
37
+ export interface TransitionDefinition {
40
38
  from: string;
41
39
  to: string;
42
40
  event: string;
43
41
  guard?: unknown;
44
42
  effects?: unknown[];
45
43
  }
46
- interface StateMachineDefinition {
44
+ export interface StateMachineDefinition {
47
45
  states: StateDefinition[];
48
46
  transitions: TransitionDefinition[];
49
47
  }
50
- interface EntityDefinition {
48
+ export interface EntityDefinition {
51
49
  name: string;
52
50
  fields?: (string | {
53
51
  name: string;
54
52
  })[];
55
53
  }
56
- interface RenderOptions {
54
+ export interface RenderOptions {
57
55
  title?: string;
58
56
  entity?: EntityDefinition;
59
57
  }
60
58
  /** Position data for a state node in DOM layout */
61
- interface DomStateNode {
59
+ export interface DomStateNode {
62
60
  id: string;
63
61
  name: string;
64
62
  x: number;
@@ -69,7 +67,7 @@ interface DomStateNode {
69
67
  description?: string;
70
68
  }
71
69
  /** Position data for a transition arrow */
72
- interface DomTransitionPath {
70
+ export interface DomTransitionPath {
73
71
  id: string;
74
72
  from: string;
75
73
  to: string;
@@ -80,7 +78,7 @@ interface DomTransitionPath {
80
78
  labelY: number;
81
79
  }
82
80
  /** Position data for a transition label with guard/effect details */
83
- interface DomTransitionLabel {
81
+ export interface DomTransitionLabel {
84
82
  id: string;
85
83
  from: string;
86
84
  to: string;
@@ -95,7 +93,7 @@ interface DomTransitionLabel {
95
93
  hasDetails: boolean;
96
94
  }
97
95
  /** Entity input box data */
98
- interface DomEntityBox {
96
+ export interface DomEntityBox {
99
97
  name: string;
100
98
  fields: string[];
101
99
  x: number;
@@ -104,7 +102,7 @@ interface DomEntityBox {
104
102
  height: number;
105
103
  }
106
104
  /** Output effects box data */
107
- interface DomOutputsBox {
105
+ export interface DomOutputsBox {
108
106
  outputs: string[];
109
107
  x: number;
110
108
  y: number;
@@ -112,7 +110,7 @@ interface DomOutputsBox {
112
110
  height: number;
113
111
  }
114
112
  /** Complete DOM layout data for rendering */
115
- interface DomLayoutData {
113
+ export interface DomLayoutData {
116
114
  width: number;
117
115
  height: number;
118
116
  title?: string;
@@ -123,72 +121,23 @@ interface DomLayoutData {
123
121
  outputs?: DomOutputsBox;
124
122
  config: VisualizerConfig;
125
123
  }
126
- declare const DEFAULT_CONFIG: VisualizerConfig;
124
+ export declare const DEFAULT_CONFIG: VisualizerConfig;
127
125
  declare function formatGuard(guard: unknown): string;
128
- declare function getEffectSummary(effects: unknown[]): string;
126
+ export declare function getEffectSummary(effects: unknown[]): string;
129
127
  declare function extractOutputsFromTransitions(transitions: TransitionDefinition[]): string[];
130
128
  /**
131
129
  * Render a state machine to an SVG string.
132
130
  * Works in both browser and Node.js environments.
133
131
  */
134
- declare function renderStateMachineToSvg(stateMachine: StateMachineDefinition, options?: RenderOptions, config?: VisualizerConfig): string;
132
+ export declare function renderStateMachineToSvg(stateMachine: StateMachineDefinition, options?: RenderOptions, config?: VisualizerConfig): string;
135
133
  /**
136
134
  * Extract state machine from various data formats (Trait, Orbital, or raw)
137
135
  */
138
- declare function extractStateMachine(data: unknown): StateMachineDefinition | null;
136
+ export declare function extractStateMachine(data: unknown): StateMachineDefinition | null;
139
137
  /**
140
138
  * Render a state machine to DOM layout data.
141
139
  * This is used by the DOM-based visualizer component for hybrid SVG/DOM rendering.
142
140
  * Unlike renderStateMachineToSvg, this returns structured data instead of an SVG string.
143
141
  */
144
- declare function renderStateMachineToDomData(stateMachine: StateMachineDefinition, options?: RenderOptions, config?: VisualizerConfig): DomLayoutData;
145
-
146
- /**
147
- * Content Segment Parsing Utilities
148
- *
149
- * Parses rich content with code blocks and quiz tags into structured
150
- * segments for rendering. Detects orbital schemas in JSON code blocks
151
- * and marks them for JazariStateMachine rendering.
152
- */
153
- /** Segment types for content rendering */
154
- type ContentSegment = {
155
- type: 'markdown';
156
- content: string;
157
- } | {
158
- type: 'code';
159
- language: string;
160
- content: string;
161
- } | {
162
- type: 'orbital';
163
- language: string;
164
- content: string;
165
- schema: unknown;
166
- } | {
167
- type: 'quiz';
168
- question: string;
169
- answer: string;
170
- };
171
- /**
172
- * Parse markdown content to extract code blocks.
173
- *
174
- * Splits markdown into segments of plain markdown and fenced code blocks.
175
- * JSON/orb code blocks containing orbital schemas are tagged as 'orbital'.
176
- */
177
- declare function parseMarkdownWithCodeBlocks(content: string | undefined | null): ContentSegment[];
178
- /**
179
- * Parse content to extract all segments including quiz tags and code blocks.
180
- *
181
- * Supported tags:
182
- * - <question>q</question><answer>a</answer> — Quiz Q&A
183
- *
184
- * Also handles fenced code blocks (```language...```) with orbital detection.
185
- */
186
- declare function parseContentSegments(content: string | undefined | null): ContentSegment[];
187
-
188
- /**
189
- * Utility function to merge Tailwind CSS classes
190
- * Combines clsx for conditional classes with tailwind-merge to handle conflicts
191
- */
192
- declare function cn(...inputs: ClassValue[]): string;
193
-
194
- export { type ContentSegment as C, DEFAULT_CONFIG as D, type EntityDefinition as E, type RenderOptions as R, type StateDefinition as S, type TransitionDefinition as T, type VisualizerConfig as V, type DomEntityBox as a, type DomLayoutData as b, type DomOutputsBox as c, type DomStateNode as d, type DomTransitionLabel as e, type DomTransitionPath as f, type StateMachineDefinition as g, cn as h, extractOutputsFromTransitions as i, extractStateMachine as j, formatGuard as k, getEffectSummary as l, parseMarkdownWithCodeBlocks as m, renderStateMachineToSvg as n, parseContentSegments as p, renderStateMachineToDomData as r };
142
+ export declare function renderStateMachineToDomData(stateMachine: StateMachineDefinition, options?: RenderOptions, config?: VisualizerConfig): DomLayoutData;
143
+ export { formatGuard, extractOutputsFromTransitions };
@@ -4,19 +4,17 @@
4
4
  * Exports message maps for en/ar/sl and a helper to merge
5
5
  * project-specific messages on top of core.
6
6
  */
7
- type SupportedLocale = 'en' | 'ar' | 'sl';
8
- interface LocaleMeta {
7
+ export type SupportedLocale = 'en' | 'ar' | 'sl';
8
+ export interface LocaleMeta {
9
9
  locale: string;
10
10
  direction: 'ltr' | 'rtl';
11
11
  }
12
12
  /** Core messages keyed by locale */
13
- declare const coreMessages: Record<SupportedLocale, Record<string, string>>;
13
+ export declare const coreMessages: Record<SupportedLocale, Record<string, string>>;
14
14
  /** Locale metadata */
15
- declare const localeMeta: Record<SupportedLocale, LocaleMeta>;
15
+ export declare const localeMeta: Record<SupportedLocale, LocaleMeta>;
16
16
  /**
17
17
  * Merge core messages with project-specific messages.
18
18
  * Project keys override core keys.
19
19
  */
20
- declare function mergeMessages(locale: SupportedLocale, projectMessages: Record<string, string>): Record<string, string>;
21
-
22
- export { type LocaleMeta, type SupportedLocale, coreMessages, localeMeta, mergeMessages };
20
+ export declare function mergeMessages(locale: SupportedLocale, projectMessages: Record<string, string>): Record<string, string>;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * EventBusProvider - React context provider for the event bus
3
+ *
4
+ * Provides a page-scoped event bus for trait communication.
5
+ * Each page has its own event bus instance.
6
+ *
7
+ * NOTE: Selection state has been moved to SelectionProvider.
8
+ * Use SelectionProvider for tracking selected entities.
9
+ *
10
+ * @packageDocumentation
11
+ */
12
+ import React, { type ReactNode } from 'react';
13
+ import type { EventBusContextType } from '../hooks/event-bus-types';
14
+ /**
15
+ * Extended context type for backward compatibility.
16
+ *
17
+ * @deprecated getSelectedEntity and clearSelectedEntity are deprecated.
18
+ * Use SelectionProvider and useSelection hook instead.
19
+ */
20
+ export interface EventBusContextTypeExtended extends EventBusContextType {
21
+ /**
22
+ * @deprecated Use useSelection from SelectionProvider instead.
23
+ * This method now returns null - selection state moved to SelectionProvider.
24
+ */
25
+ getSelectedEntity: () => unknown | null;
26
+ /**
27
+ * @deprecated Use useSelection from SelectionProvider instead.
28
+ * This method is now a no-op - selection state moved to SelectionProvider.
29
+ */
30
+ clearSelectedEntity: () => void;
31
+ }
32
+ export declare const EventBusContext: React.Context<EventBusContextTypeExtended | null>;
33
+ interface EventBusProviderProps {
34
+ children: ReactNode;
35
+ /** Enable debug logging in development */
36
+ debug?: boolean;
37
+ }
38
+ /**
39
+ * Provider component for the page event bus.
40
+ *
41
+ * This is a pure pub/sub event bus. For selection state,
42
+ * use SelectionProvider which listens to events and maintains state.
43
+ *
44
+ * @example
45
+ * ```tsx
46
+ * function TaskDetailPage() {
47
+ * return (
48
+ * <EventBusProvider debug={process.env.NODE_ENV === 'development'}>
49
+ * <SelectionProvider>
50
+ * <TaskHeader />
51
+ * <TaskForm />
52
+ * <TaskActions />
53
+ * </SelectionProvider>
54
+ * </EventBusProvider>
55
+ * );
56
+ * }
57
+ * ```
58
+ */
59
+ export declare function EventBusProvider({ children, debug }: EventBusProviderProps): import("react/jsx-runtime").JSX.Element;
60
+ export type { EventBusContextType };
@@ -0,0 +1,105 @@
1
+ /**
2
+ * FetchedDataProvider
3
+ *
4
+ * Provides server-fetched entity data to the client runtime.
5
+ * This context stores data returned from compiled event handlers
6
+ * via the `data` field in EventResponse.
7
+ *
8
+ * Data Flow:
9
+ * 1. Client sends event to server
10
+ * 2. Server executes compiled handler with fetch effects
11
+ * 3. Server returns { data: { EntityName: [...records] }, clientEffects: [...] }
12
+ * 4. Provider stores data in this context
13
+ * 5. Pattern components access data via useFetchedData hook
14
+ *
15
+ * Used by both Builder preview and compiled shell.
16
+ *
17
+ * @packageDocumentation
18
+ */
19
+ import React from 'react';
20
+ export interface EntityRecord {
21
+ id: string;
22
+ [key: string]: unknown;
23
+ }
24
+ export interface FetchedDataState {
25
+ /** Entity data by entity name (e.g., { Task: [...], User: [...] }) */
26
+ data: Record<string, EntityRecord[]>;
27
+ /** Timestamp of last fetch per entity */
28
+ fetchedAt: Record<string, number>;
29
+ /** Whether data is currently being fetched */
30
+ loading: boolean;
31
+ /** Last error message */
32
+ error: string | null;
33
+ }
34
+ export interface FetchedDataContextValue {
35
+ /** Get all records for an entity */
36
+ getData: (entityName: string) => EntityRecord[];
37
+ /** Get a single record by ID */
38
+ getById: (entityName: string, id: string) => EntityRecord | undefined;
39
+ /** Check if entity data exists */
40
+ hasData: (entityName: string) => boolean;
41
+ /** Get fetch timestamp for entity */
42
+ getFetchedAt: (entityName: string) => number | undefined;
43
+ /** Update data from server response */
44
+ setData: (data: Record<string, unknown[]>) => void;
45
+ /** Clear all fetched data */
46
+ clearData: () => void;
47
+ /** Clear data for specific entity */
48
+ clearEntity: (entityName: string) => void;
49
+ /** Current loading state */
50
+ loading: boolean;
51
+ /** Set loading state */
52
+ setLoading: (loading: boolean) => void;
53
+ /** Current error */
54
+ error: string | null;
55
+ /** Set error */
56
+ setError: (error: string | null) => void;
57
+ }
58
+ export declare const FetchedDataContext: React.Context<FetchedDataContextValue | null>;
59
+ export interface FetchedDataProviderProps {
60
+ /** Initial data (optional) */
61
+ initialData?: Record<string, unknown[]>;
62
+ /** Children */
63
+ children: React.ReactNode;
64
+ }
65
+ /**
66
+ * FetchedDataProvider - Provides server-fetched entity data
67
+ *
68
+ * @example
69
+ * ```tsx
70
+ * <FetchedDataProvider>
71
+ * <OrbitalProvider>
72
+ * <App />
73
+ * </OrbitalProvider>
74
+ * </FetchedDataProvider>
75
+ * ```
76
+ */
77
+ export declare function FetchedDataProvider({ initialData, children, }: FetchedDataProviderProps): React.ReactElement;
78
+ /**
79
+ * Access the fetched data context.
80
+ * Returns null if not within a FetchedDataProvider.
81
+ */
82
+ export declare function useFetchedDataContext(): FetchedDataContextValue | null;
83
+ /**
84
+ * Access fetched data with fallback behavior.
85
+ * If not in a provider, returns empty data.
86
+ */
87
+ export declare function useFetchedData(): FetchedDataContextValue;
88
+ /**
89
+ * Access fetched data for a specific entity.
90
+ * Provides a convenient API for entity-specific operations.
91
+ */
92
+ export declare function useFetchedEntity(entityName: string): {
93
+ /** All fetched records for this entity */
94
+ records: EntityRecord[];
95
+ /** Get a record by ID */
96
+ getById: (id: string) => EntityRecord | undefined;
97
+ /** Whether data has been fetched for this entity */
98
+ hasData: boolean;
99
+ /** When data was last fetched */
100
+ fetchedAt: number | undefined;
101
+ /** Whether data is loading */
102
+ loading: boolean;
103
+ /** Current error */
104
+ error: string | null;
105
+ };
@@ -0,0 +1,79 @@
1
+ /**
2
+ * OfflineModeProvider
3
+ *
4
+ * Context provider that wraps useOfflineExecutor with force-offline toggle support.
5
+ * Enables testing offline behavior without actually disconnecting.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import React from 'react';
10
+ import { type UseOfflineExecutorOptions, type UseOfflineExecutorResult } from '../renderer/offline-executor';
11
+ export interface OfflineModeContextValue extends UseOfflineExecutorResult {
12
+ /** Force offline mode for testing */
13
+ forceOffline: boolean;
14
+ /** Toggle force offline mode */
15
+ setForceOffline: (value: boolean) => void;
16
+ /** Whether effectively offline (real or forced) */
17
+ effectivelyOffline: boolean;
18
+ }
19
+ export interface OfflineModeProviderProps extends UseOfflineExecutorOptions {
20
+ children: React.ReactNode;
21
+ }
22
+ /**
23
+ * OfflineModeProvider - Wraps offline executor with force-offline support.
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * function App() {
28
+ * return (
29
+ * <OfflineModeProvider
30
+ * serverUrl="/api/orbitals"
31
+ * authToken={token}
32
+ * autoSync={true}
33
+ * renderToSlot={slotManager.render}
34
+ * navigate={router.push}
35
+ * notify={toast.show}
36
+ * eventBus={{ emit: bus.emit }}
37
+ * >
38
+ * <PreviewPage />
39
+ * </OfflineModeProvider>
40
+ * );
41
+ * }
42
+ * ```
43
+ */
44
+ export declare function OfflineModeProvider({ children, ...executorOptions }: OfflineModeProviderProps): React.ReactElement;
45
+ /**
46
+ * Access offline mode context.
47
+ *
48
+ * @example
49
+ * ```tsx
50
+ * function OfflineToggle() {
51
+ * const {
52
+ * effectivelyOffline,
53
+ * forceOffline,
54
+ * setForceOffline,
55
+ * pendingCount,
56
+ * sync,
57
+ * } = useOfflineMode();
58
+ *
59
+ * return (
60
+ * <div>
61
+ * <Toggle
62
+ * checked={forceOffline}
63
+ * onChange={setForceOffline}
64
+ * >
65
+ * Test Offline
66
+ * </Toggle>
67
+ * {pendingCount > 0 && <Badge>{pendingCount} pending</Badge>}
68
+ * <Button onClick={sync}>Sync Now</Button>
69
+ * </div>
70
+ * );
71
+ * }
72
+ * ```
73
+ */
74
+ export declare function useOfflineMode(): OfflineModeContextValue;
75
+ /**
76
+ * Check if offline mode provider is available (optional usage).
77
+ */
78
+ export declare function useOptionalOfflineMode(): OfflineModeContextValue | null;
79
+ export default OfflineModeProvider;
@@ -0,0 +1,101 @@
1
+ /**
2
+ * OrbitalProvider
3
+ *
4
+ * Unified provider that combines all required contexts for Orbital applications.
5
+ * Provides a single import for both Builder preview and compiled shell.
6
+ *
7
+ * Combines:
8
+ * - ThemeProvider - Theme and color mode management
9
+ * - EventBusProvider - Page-scoped event pub/sub
10
+ * - SelectionProvider - Selected entity tracking
11
+ * - FetchedDataProvider - Server-fetched entity data
12
+ *
13
+ * @packageDocumentation
14
+ */
15
+ import React, { type ReactNode } from 'react';
16
+ import { type ThemeDefinition } from '../context/ThemeContext';
17
+ export interface OrbitalProviderProps {
18
+ children: ReactNode;
19
+ /** Custom themes (merged with built-in themes) */
20
+ themes?: ThemeDefinition[];
21
+ /** Default theme name */
22
+ defaultTheme?: string;
23
+ /** Default color mode */
24
+ defaultMode?: 'light' | 'dark' | 'system';
25
+ /** Optional target element ref for scoped theme application */
26
+ targetRef?: React.RefObject<HTMLElement>;
27
+ /** Skip ThemeProvider (use when already inside a themed container like shadow DOM) */
28
+ skipTheme?: boolean;
29
+ /** Enable debug logging for all providers */
30
+ debug?: boolean;
31
+ /** Initial fetched data */
32
+ initialData?: Record<string, unknown[]>;
33
+ /**
34
+ * Enable Suspense mode. When true, UISlotRenderer wraps each slot in
35
+ * `<ErrorBoundary><Suspense>` with Skeleton fallbacks.
36
+ * Opt-in — existing isLoading prop pattern still works when false/absent.
37
+ */
38
+ suspense?: boolean;
39
+ /**
40
+ * Enable verification wiring for visual testing.
41
+ * When true, lifecycle events are recorded and exposed via
42
+ * `window.__orbitalVerification` for Playwright/automation.
43
+ * Default: true in development, false in production.
44
+ */
45
+ verification?: boolean;
46
+ }
47
+ /**
48
+ * OrbitalProvider - Unified context provider for Orbital applications
49
+ *
50
+ * Wraps your application with all required providers in the correct order.
51
+ *
52
+ * @example
53
+ * ```tsx
54
+ * // Basic usage
55
+ * function App() {
56
+ * return (
57
+ * <OrbitalProvider>
58
+ * <Router>
59
+ * <Routes />
60
+ * </Router>
61
+ * </OrbitalProvider>
62
+ * );
63
+ * }
64
+ *
65
+ * // With configuration
66
+ * function App() {
67
+ * return (
68
+ * <OrbitalProvider
69
+ * defaultTheme="minimalist"
70
+ * defaultMode="dark"
71
+ * debug={process.env.NODE_ENV === 'development'}
72
+ * >
73
+ * <Router>
74
+ * <Routes />
75
+ * </Router>
76
+ * </OrbitalProvider>
77
+ * );
78
+ * }
79
+ *
80
+ * // With custom themes from schema
81
+ * import { THEMES } from './generated/theme-manifest';
82
+ *
83
+ * function App() {
84
+ * return (
85
+ * <OrbitalProvider themes={THEMES} defaultTheme="ocean">
86
+ * <Router>
87
+ * <Routes />
88
+ * </Router>
89
+ * </OrbitalProvider>
90
+ * );
91
+ * }
92
+ * ```
93
+ */
94
+ export declare function OrbitalProvider({ children, themes, defaultTheme, defaultMode, targetRef, skipTheme, debug, initialData, suspense, verification, }: OrbitalProviderProps): React.ReactElement;
95
+ export declare namespace OrbitalProvider {
96
+ var displayName: string;
97
+ }
98
+ export { ThemeProvider } from '../context/ThemeContext';
99
+ export { EventBusProvider } from './EventBusProvider';
100
+ export { SelectionProvider } from './SelectionProvider';
101
+ export { FetchedDataProvider } from './FetchedDataProvider';