@almadar/ui 5.75.0 → 5.76.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 (340) hide show
  1. package/dist/avl/index.cjs +2545 -6006
  2. package/dist/avl/index.d.ts +43 -43
  3. package/dist/avl/index.js +1250 -4711
  4. package/dist/components/avl/atoms/AvlApplication.d.ts +1 -1
  5. package/dist/components/avl/atoms/AvlBindingRef.d.ts +1 -1
  6. package/dist/components/avl/atoms/AvlEffect.d.ts +1 -1
  7. package/dist/components/avl/atoms/AvlEntity.d.ts +1 -1
  8. package/dist/components/avl/atoms/AvlEvent.d.ts +1 -1
  9. package/dist/components/avl/atoms/AvlField.d.ts +1 -1
  10. package/dist/components/avl/atoms/AvlFieldType.d.ts +1 -1
  11. package/dist/components/avl/atoms/AvlGuard.d.ts +1 -1
  12. package/dist/components/avl/atoms/AvlLiteral.d.ts +1 -1
  13. package/dist/components/avl/atoms/AvlOperator.d.ts +1 -1
  14. package/dist/components/avl/atoms/AvlPage.d.ts +1 -1
  15. package/dist/components/avl/atoms/AvlPersistence.d.ts +1 -1
  16. package/dist/components/avl/atoms/AvlSExpr.d.ts +1 -1
  17. package/dist/components/avl/atoms/AvlState.d.ts +2 -2
  18. package/dist/components/avl/atoms/index.d.ts +4 -4
  19. package/dist/components/avl/{molecules → lib}/avl-behavior-compose-converter.d.ts +1 -1
  20. package/dist/components/avl/{molecules → lib}/avl-elk-layout.d.ts +2 -2
  21. package/dist/components/avl/{molecules → lib}/avl-flow-converter.d.ts +1 -1
  22. package/dist/components/avl/{molecules → lib}/avl-preview-converter.d.ts +1 -1
  23. package/dist/components/avl/{molecules → lib}/avl-story-schemas.d.ts +6 -6
  24. package/dist/components/avl/{molecules → lib}/avl-zoom-band.d.ts +1 -1
  25. package/dist/components/avl/molecules/Avl3DExprTree.d.ts +1 -1
  26. package/dist/components/avl/molecules/AvlBehaviorGlyph.d.ts +1 -1
  27. package/dist/components/avl/molecules/AvlClosedCircuit.d.ts +1 -1
  28. package/dist/components/avl/molecules/AvlOrbitalUnit.d.ts +1 -1
  29. package/dist/components/avl/molecules/AvlStateMachine.d.ts +1 -1
  30. package/dist/components/avl/molecules/AvlTransitionLane.d.ts +1 -1
  31. package/dist/components/avl/molecules/BehaviorView.d.ts +1 -1
  32. package/dist/components/avl/molecules/DetailView.d.ts +1 -1
  33. package/dist/components/avl/molecules/MiniStateMachine.d.ts +1 -1
  34. package/dist/components/avl/molecules/ModuleCard.d.ts +1 -1
  35. package/dist/components/avl/molecules/OrbPreviewNode.d.ts +1 -1
  36. package/dist/components/avl/molecules/SystemNode.d.ts +1 -1
  37. package/dist/components/avl/molecules/index.d.ts +9 -9
  38. package/dist/components/avl/organisms/Avl3DApplicationScene.d.ts +1 -1
  39. package/dist/components/avl/organisms/Avl3DEffects.d.ts +1 -1
  40. package/dist/components/avl/organisms/Avl3DOrbitalScene.d.ts +1 -1
  41. package/dist/components/avl/organisms/Avl3DTraitScene.d.ts +1 -1
  42. package/dist/components/avl/organisms/Avl3DTransitionScene.d.ts +1 -1
  43. package/dist/components/avl/organisms/Avl3DViewer.d.ts +2 -2
  44. package/dist/components/avl/organisms/AvlCosmicZoom.d.ts +1 -1
  45. package/dist/components/avl/organisms/AvlLegend.d.ts +1 -1
  46. package/dist/components/avl/organisms/AvlTraitScene.d.ts +1 -1
  47. package/dist/components/avl/organisms/AvlTransitionDetail.d.ts +1 -1
  48. package/dist/components/avl/organisms/AvlTransitionScene.d.ts +1 -1
  49. package/dist/components/avl/organisms/FlowCanvas.d.ts +2 -2
  50. package/dist/components/avl/organisms/OrbInspector.d.ts +1 -1
  51. package/dist/components/avl/organisms/ZoomBreadcrumb.d.ts +1 -1
  52. package/dist/components/avl/organisms/ZoomLegend.d.ts +1 -1
  53. package/dist/components/avl/organisms/index.d.ts +2 -2
  54. package/dist/components/avl/{molecules → types}/avl-behavior-compose-types.d.ts +1 -1
  55. package/dist/components/avl/{molecules → types}/avl-canvas-types.d.ts +1 -1
  56. package/dist/components/core/atoms/index.d.ts +2 -3
  57. package/dist/components/core/molecules/Breadcrumb.d.ts +1 -1
  58. package/dist/components/core/molecules/Card.d.ts +1 -1
  59. package/dist/components/core/molecules/Chart.d.ts +0 -2
  60. package/dist/components/core/molecules/ConfirmDialog.d.ts +0 -2
  61. package/dist/components/core/molecules/DataGrid.d.ts +1 -1
  62. package/dist/components/core/molecules/DataList.d.ts +1 -1
  63. package/dist/components/core/molecules/EmptyState.d.ts +1 -1
  64. package/dist/components/core/molecules/FloatingActionButton.d.ts +1 -1
  65. package/dist/components/core/molecules/FormSectionHeader.d.ts +1 -1
  66. package/dist/components/core/molecules/GraphCanvas.d.ts +0 -2
  67. package/dist/components/core/molecules/Header.d.ts +1 -1
  68. package/dist/components/core/molecules/Menu.d.ts +1 -1
  69. package/dist/components/core/molecules/Navigation.d.ts +1 -1
  70. package/dist/components/core/molecules/OrbitalVisualization.d.ts +0 -2
  71. package/dist/components/core/molecules/PageHeader.d.ts +1 -1
  72. package/dist/components/core/molecules/Section.d.ts +0 -2
  73. package/dist/components/core/molecules/Sidebar.d.ts +1 -1
  74. package/dist/components/core/molecules/SignaturePad.d.ts +0 -2
  75. package/dist/components/core/molecules/Split.d.ts +0 -2
  76. package/dist/components/core/molecules/StatDisplay.d.ts +1 -1
  77. package/dist/components/core/molecules/SwipeableRow.d.ts +1 -1
  78. package/dist/components/core/molecules/TableView.d.ts +1 -1
  79. package/dist/components/core/molecules/Tabs.d.ts +1 -1
  80. package/dist/components/core/molecules/UploadDropZone.d.ts +1 -1
  81. package/dist/components/core/molecules/WizardContainer.d.ts +0 -2
  82. package/dist/components/core/molecules/index.d.ts +1 -1
  83. package/dist/components/core/organisms/UISlotRenderer.d.ts +1 -1
  84. package/dist/components/core/organisms/index.d.ts +4 -4
  85. package/dist/components/core/templates/index.d.ts +12 -12
  86. package/dist/components/game/2d/{ActionButton.d.ts → atoms/ActionButton.d.ts} +1 -1
  87. package/dist/components/game/2d/{ChoiceButton.d.ts → atoms/ChoiceButton.d.ts} +1 -1
  88. package/dist/components/game/2d/{ControlButton.d.ts → atoms/ControlButton.d.ts} +1 -1
  89. package/dist/components/game/2d/{GameAudioToggle.d.ts → atoms/GameAudioToggle.d.ts} +1 -3
  90. package/dist/components/game/2d/atoms/GameIcon.d.ts +18 -0
  91. package/dist/components/game/2d/{ItemSlot.d.ts → atoms/ItemSlot.d.ts} +1 -1
  92. package/dist/components/game/2d/{MiniMap.d.ts → atoms/MiniMap.d.ts} +1 -1
  93. package/dist/components/game/2d/{ResourceCounter.d.ts → atoms/ResourceCounter.d.ts} +2 -2
  94. package/dist/components/game/2d/{ScoreDisplay.d.ts → atoms/ScoreDisplay.d.ts} +1 -1
  95. package/dist/components/game/2d/{Sprite.d.ts → atoms/Sprite.d.ts} +1 -1
  96. package/dist/components/game/2d/{StateIndicator.d.ts → atoms/StateIndicator.d.ts} +5 -4
  97. package/dist/components/game/2d/{StatusEffect.d.ts → atoms/StatusEffect.d.ts} +2 -2
  98. package/dist/components/game/2d/{WaypointMarker.d.ts → atoms/WaypointMarker.d.ts} +1 -1
  99. package/dist/components/game/2d/{Canvas2D.d.ts → molecules/Canvas2D.d.ts} +3 -3
  100. package/dist/components/game/2d/{ControlGrid.d.ts → molecules/ControlGrid.d.ts} +3 -2
  101. package/dist/components/game/2d/{GameHud.d.ts → molecules/GameHud.d.ts} +3 -1
  102. package/dist/components/game/2d/{GameMenu.d.ts → molecules/GameMenu.d.ts} +1 -1
  103. package/dist/components/game/2d/{InventoryGrid.d.ts → molecules/InventoryGrid.d.ts} +3 -2
  104. package/dist/components/game/2d/{ResourceBar.d.ts → molecules/ResourceBar.d.ts} +3 -1
  105. package/dist/components/game/2d/{StatBadge.d.ts → molecules/StatBadge.d.ts} +1 -1
  106. package/dist/components/game/2d/molecules/index.d.ts +107 -0
  107. package/dist/components/game/2d/{ActionTile.d.ts → organisms/ActionTile.d.ts} +1 -1
  108. package/dist/components/game/2d/{BattleBoard.d.ts → organisms/BattleBoard.d.ts} +4 -3
  109. package/dist/components/game/2d/{BoardgameBoard.d.ts → organisms/BoardgameBoard.d.ts} +3 -3
  110. package/dist/components/game/2d/{BuilderBoard.d.ts → organisms/BuilderBoard.d.ts} +7 -3
  111. package/dist/components/game/2d/{CanvasEffect.d.ts → organisms/CanvasEffect.d.ts} +4 -4
  112. package/dist/components/game/2d/{CardBattlerBoard.d.ts → organisms/CardBattlerBoard.d.ts} +1 -1
  113. package/dist/components/game/2d/{CastleBoard.d.ts → organisms/CastleBoard.d.ts} +2 -1
  114. package/dist/components/game/2d/{CityBuilderBoard.d.ts → organisms/CityBuilderBoard.d.ts} +1 -1
  115. package/dist/components/game/2d/{ClassifierBoard.d.ts → organisms/ClassifierBoard.d.ts} +7 -3
  116. package/dist/components/game/2d/{DebuggerBoard.d.ts → organisms/DebuggerBoard.d.ts} +7 -3
  117. package/dist/components/game/2d/{EventHandlerBoard.d.ts → organisms/EventHandlerBoard.d.ts} +1 -1
  118. package/dist/components/game/2d/{FishingBoard.d.ts → organisms/FishingBoard.d.ts} +12 -2
  119. package/dist/components/game/2d/{HexStrategyBoard.d.ts → organisms/HexStrategyBoard.d.ts} +13 -6
  120. package/dist/components/game/2d/{HolidayRunnerBoard.d.ts → organisms/HolidayRunnerBoard.d.ts} +3 -3
  121. package/dist/components/game/2d/{MatchPuzzleBoard.d.ts → organisms/MatchPuzzleBoard.d.ts} +3 -3
  122. package/dist/components/game/2d/{MinigolfBoard.d.ts → organisms/MinigolfBoard.d.ts} +3 -3
  123. package/dist/components/game/2d/{NegotiatorBoard.d.ts → organisms/NegotiatorBoard.d.ts} +7 -3
  124. package/dist/components/game/2d/{PinballBoard.d.ts → organisms/PinballBoard.d.ts} +12 -4
  125. package/dist/components/game/2d/{PirateBoard.d.ts → organisms/PirateBoard.d.ts} +13 -6
  126. package/dist/components/game/2d/{PlatformerBoard.d.ts → organisms/PlatformerBoard.d.ts} +1 -1
  127. package/dist/components/game/2d/{RacingBoard.d.ts → organisms/RacingBoard.d.ts} +13 -6
  128. package/dist/components/game/2d/{RoguelikeBoard.d.ts → organisms/RoguelikeBoard.d.ts} +2 -2
  129. package/dist/components/game/2d/{SequencerBoard.d.ts → organisms/SequencerBoard.d.ts} +1 -1
  130. package/dist/components/game/2d/{SimulationCanvas.d.ts → organisms/SimulationCanvas.d.ts} +3 -2
  131. package/dist/components/game/2d/{SimulationControls.d.ts → organisms/SimulationControls.d.ts} +6 -1
  132. package/dist/components/game/2d/{SimulatorBoard.d.ts → organisms/SimulatorBoard.d.ts} +7 -3
  133. package/dist/components/game/2d/{SokobanBoard.d.ts → organisms/SokobanBoard.d.ts} +3 -3
  134. package/dist/components/game/2d/{SpaceShmupBoard.d.ts → organisms/SpaceShmupBoard.d.ts} +13 -6
  135. package/dist/components/game/2d/{SpaceStationBoard.d.ts → organisms/SpaceStationBoard.d.ts} +3 -3
  136. package/dist/components/game/2d/{SportsBoard.d.ts → organisms/SportsBoard.d.ts} +3 -3
  137. package/dist/components/game/2d/{StateArchitectBoard.d.ts → organisms/StateArchitectBoard.d.ts} +1 -1
  138. package/dist/components/game/2d/{StateNode.d.ts → organisms/StateNode.d.ts} +1 -1
  139. package/dist/components/game/2d/{TanksBoard.d.ts → organisms/TanksBoard.d.ts} +3 -3
  140. package/dist/components/game/2d/{TowerDefenseBoard.d.ts → organisms/TowerDefenseBoard.d.ts} +1 -1
  141. package/dist/components/game/2d/{TraitSlot.d.ts → organisms/TraitSlot.d.ts} +1 -1
  142. package/dist/components/game/2d/{TraitStateViewer.d.ts → organisms/TraitStateViewer.d.ts} +2 -2
  143. package/dist/components/game/2d/{TransitionArrow.d.ts → organisms/TransitionArrow.d.ts} +1 -1
  144. package/dist/components/game/2d/{UncontrolledBattleBoard.d.ts → organisms/UncontrolledBattleBoard.d.ts} +1 -1
  145. package/dist/components/game/2d/{VisualNovelBoard.d.ts → organisms/VisualNovelBoard.d.ts} +1 -9
  146. package/dist/components/game/2d/{WorldMapBoard.d.ts → organisms/WorldMapBoard.d.ts} +4 -3
  147. package/dist/components/game/2d/{BattleTemplate.d.ts → templates/BattleTemplate.d.ts} +4 -4
  148. package/dist/components/game/2d/{CardBattlerTemplate.d.ts → templates/CardBattlerTemplate.d.ts} +2 -2
  149. package/dist/components/game/2d/{CastleTemplate.d.ts → templates/CastleTemplate.d.ts} +4 -4
  150. package/dist/components/game/2d/{CityBuilderTemplate.d.ts → templates/CityBuilderTemplate.d.ts} +2 -2
  151. package/dist/components/game/2d/{GameTemplate.d.ts → templates/GameTemplate.d.ts} +1 -1
  152. package/dist/components/game/2d/{PlatformerTemplate.d.ts → templates/PlatformerTemplate.d.ts} +2 -2
  153. package/dist/components/game/2d/{RoguelikeTemplate.d.ts → templates/RoguelikeTemplate.d.ts} +3 -3
  154. package/dist/components/game/2d/{TopDownShooterTemplate.d.ts → templates/TopDownShooterTemplate.d.ts} +2 -2
  155. package/dist/components/game/2d/{TowerDefenseTemplate.d.ts → templates/TowerDefenseTemplate.d.ts} +2 -2
  156. package/dist/components/game/2d/{VisualNovelTemplate.d.ts → templates/VisualNovelTemplate.d.ts} +2 -2
  157. package/dist/components/game/2d/{WorldMapTemplate.d.ts → templates/WorldMapTemplate.d.ts} +4 -4
  158. package/dist/components/game/3d/{Canvas3D.d.ts → molecules/Canvas3D.d.ts} +1 -1
  159. package/dist/components/game/3d/{GameCanvas3D.d.ts → molecules/GameCanvas3D.d.ts} +3 -3
  160. package/dist/components/game/3d/{index.d.ts → molecules/index.d.ts} +20 -25
  161. package/dist/components/game/3d/{GameBoard3D.d.ts → organisms/GameBoard3D.d.ts} +2 -2
  162. package/dist/components/game/3d/{GameCanvas3DBattleTemplate.d.ts → templates/GameCanvas3DBattleTemplate.d.ts} +3 -3
  163. package/dist/components/game/3d/{GameCanvas3DCastleTemplate.d.ts → templates/GameCanvas3DCastleTemplate.d.ts} +3 -3
  164. package/dist/components/game/3d/{GameCanvas3DWorldMapTemplate.d.ts → templates/GameCanvas3DWorldMapTemplate.d.ts} +3 -3
  165. package/dist/components/game/{3d → shared/hooks}/useAssetLoader.d.ts +1 -1
  166. package/dist/components/game/{2d → shared/hooks}/useBattleState.d.ts +1 -1
  167. package/dist/components/game/{2d → shared/hooks}/useCamera.d.ts +1 -1
  168. package/dist/components/game/{2d → shared/hooks}/useCanvasEffects.d.ts +1 -1
  169. package/dist/components/game/{3d → shared/hooks}/useGameCanvas3DEvents.d.ts +1 -1
  170. package/dist/components/game/{3d → shared/hooks}/useThree.d.ts +1 -1
  171. package/dist/components/game/{2d → shared/hooks}/useUnitSpriteAtlas.d.ts +2 -2
  172. package/dist/components/game/shared/index.d.ts +0 -2
  173. package/dist/components/game/{2d → shared/lib}/editorUtils.d.ts +6 -1
  174. package/dist/components/game/{2d → shared/lib}/game3dAssetManifest.d.ts +1 -1
  175. package/dist/components/game/{2d → shared/lib}/mechanics.d.ts +1 -1
  176. package/dist/components/game/{2d → shared/lib}/physicsPresets.d.ts +2 -2
  177. package/dist/components/game/{2d → shared/lib}/puzzleObject.d.ts +1 -1
  178. package/dist/components/game/{2d → shared/providers}/GameAudioProvider.d.ts +3 -4
  179. package/dist/components/index.cjs +4459 -5117
  180. package/dist/components/index.d.ts +5 -5
  181. package/dist/components/index.js +3378 -4061
  182. package/dist/context/index.cjs +93 -827
  183. package/dist/context/index.d.ts +8 -8
  184. package/dist/context/index.js +3 -807
  185. package/dist/hooks/index.cjs +9 -278
  186. package/dist/hooks/index.d.ts +5 -6
  187. package/dist/hooks/index.js +11 -262
  188. package/dist/hooks/useAgentChat.d.ts +7 -6
  189. package/dist/{renderer → hooks}/useClientEffects.d.ts +1 -1
  190. package/dist/hooks/useCompile.d.ts +2 -6
  191. package/dist/hooks/useDeepAgentGeneration.d.ts +4 -4
  192. package/dist/hooks/useEventBus.d.ts +5 -3
  193. package/dist/hooks/useFileSystem.d.ts +11 -1
  194. package/dist/hooks/useOrbitalHistory.d.ts +2 -2
  195. package/dist/hooks/useQuerySingleton.d.ts +5 -4
  196. package/dist/{runtime → hooks}/useResolvedSchema.d.ts +1 -1
  197. package/dist/{runtime → hooks}/useTraitStateMachine.d.ts +5 -5
  198. package/dist/hooks/useUISlots.d.ts +7 -10
  199. package/dist/lib/api-client.d.ts +4 -3
  200. package/dist/{renderer → lib}/client-effect-executor.d.ts +4 -15
  201. package/dist/{runtime → lib}/createClientEffectHandlers.d.ts +4 -4
  202. package/dist/{renderer → lib}/data-resolver.d.ts +3 -16
  203. package/dist/lib/debugRegistry.d.ts +8 -7
  204. package/dist/lib/entityDebug.d.ts +4 -3
  205. package/dist/lib/getNestedValue.d.ts +15 -3
  206. package/dist/lib/guardRegistry.d.ts +3 -2
  207. package/dist/lib/index.cjs +11 -12
  208. package/dist/lib/index.d.ts +1 -1
  209. package/dist/lib/index.js +11 -12
  210. package/dist/lib/jazari/layout.d.ts +3 -2
  211. package/dist/{renderer → lib}/offline-executor.d.ts +6 -5
  212. package/dist/lib/parseContentSegments.d.ts +2 -1
  213. package/dist/{renderer → lib}/pattern-resolver.d.ts +2 -2
  214. package/dist/{runtime → lib}/perf.d.ts +0 -2
  215. package/dist/{renderer → lib}/slot-definitions.d.ts +3 -15
  216. package/dist/{renderer → lib}/trait-binding-resolver.d.ts +6 -2
  217. package/dist/lib/visualizer/browser.d.ts +3 -2
  218. package/dist/lib/visualizer/index.d.ts +6 -5
  219. package/dist/marketing/index.cjs +6 -6
  220. package/dist/marketing/index.js +6 -6
  221. package/dist/{runtime → providers}/EntitySchemaContext.d.ts +0 -4
  222. package/dist/providers/EventBusProvider.d.ts +3 -2
  223. package/dist/providers/OfflineModeProvider.d.ts +1 -1
  224. package/dist/providers/OrbitalProvider.d.ts +5 -4
  225. package/dist/providers/SelectionProvider.d.ts +6 -5
  226. package/dist/{runtime → providers}/ServerBridge.d.ts +14 -11
  227. package/dist/{context → providers}/ThemeContext.d.ts +5 -5
  228. package/dist/{runtime → providers}/TraitProvider.d.ts +4 -3
  229. package/dist/{context → providers}/UISlotContext.d.ts +2 -2
  230. package/dist/{context → providers}/UserContext.d.ts +3 -2
  231. package/dist/providers/VerificationProvider.d.ts +2 -1
  232. package/dist/providers/index.cjs +2679 -5114
  233. package/dist/providers/index.d.ts +7 -1
  234. package/dist/providers/index.js +1597 -4087
  235. package/dist/{renderer → providers}/navigation.d.ts +7 -7
  236. package/dist/renderer/index.cjs +84 -322
  237. package/dist/renderer/index.d.ts +12 -12
  238. package/dist/renderer/index.js +30 -301
  239. package/dist/runtime/OrbPreview.d.ts +1 -1
  240. package/dist/runtime/index.cjs +2809 -6315
  241. package/dist/runtime/index.d.ts +11 -11
  242. package/dist/runtime/index.js +1740 -5270
  243. package/dist/{hooks → types}/event-bus-types.d.ts +2 -1
  244. package/dist/{renderer/types.d.ts → types/renderer-types.d.ts} +14 -28
  245. package/dist/types/runtime-types.d.ts +21 -0
  246. package/dist/{runtime/ui → types}/slot-types.d.ts +5 -4
  247. package/locales/index.ts +1 -1
  248. package/package.json +4 -21
  249. package/dist/components/core/atoms/ThemeSelector.d.ts +0 -21
  250. package/dist/components/game/2d/CardHand.d.ts +0 -35
  251. package/dist/components/game/2d/CombatLog.d.ts +0 -30
  252. package/dist/components/game/2d/CraftingRecipe.d.ts +0 -40
  253. package/dist/components/game/2d/DialogueBox.d.ts +0 -66
  254. package/dist/components/game/2d/EnemyPlate.d.ts +0 -30
  255. package/dist/components/game/2d/GameCanvas2D.d.ts +0 -27
  256. package/dist/components/game/2d/GameOverScreen.d.ts +0 -57
  257. package/dist/components/game/2d/HealthPanel.d.ts +0 -31
  258. package/dist/components/game/2d/InventoryPanel.d.ts +0 -58
  259. package/dist/components/game/2d/IsometricCanvas.d.ts +0 -137
  260. package/dist/components/game/2d/PlatformerCanvas.d.ts +0 -60
  261. package/dist/components/game/2d/PowerupSlots.d.ts +0 -26
  262. package/dist/components/game/2d/QuestTracker.d.ts +0 -20
  263. package/dist/components/game/2d/ScoreBoard.d.ts +0 -18
  264. package/dist/components/game/2d/TurnPanel.d.ts +0 -32
  265. package/dist/components/game/2d/UnitCommandBar.d.ts +0 -25
  266. package/dist/components/game/2d/index.d.ts +0 -122
  267. package/dist/components/game/3d/FeatureRenderer.d.ts +0 -38
  268. package/dist/components/game/3d/FeatureRenderer3D.d.ts +0 -44
  269. package/dist/components/game/3d/PhysicsObject3D.d.ts +0 -74
  270. package/dist/components/game/3d/TileRenderer.d.ts +0 -57
  271. package/dist/components/game/3d/UnitRenderer.d.ts +0 -46
  272. package/dist/components/game/3d/index.cjs +0 -7715
  273. package/dist/components/game/3d/index.css +0 -503
  274. package/dist/components/game/3d/index.js +0 -7633
  275. package/dist/components/game/3d/patterns.d.ts +0 -20
  276. package/dist/components/game/shared/combatEffects.d.ts +0 -64
  277. package/dist/docs/index.cjs +0 -7024
  278. package/dist/docs/index.css +0 -1252
  279. package/dist/docs/index.d.cts +0 -574
  280. package/dist/docs/index.d.ts +0 -29
  281. package/dist/docs/index.js +0 -6981
  282. package/dist/hooks/useAgentTrace.d.ts +0 -85
  283. package/dist/hooks/useEntities.d.ts +0 -52
  284. package/dist/hooks/usePinchZoom.d.ts +0 -22
  285. package/dist/runtime/types.d.ts +0 -37
  286. package/dist/stores/entityStore.d.ts +0 -99
  287. package/dist/stores/filtering.d.ts +0 -51
  288. package/dist/stores/index.cjs +0 -217
  289. package/dist/stores/index.d.ts +0 -7
  290. package/dist/stores/index.js +0 -194
  291. /package/dist/components/avl/{molecules → hooks}/useCanvasDnd.d.ts +0 -0
  292. /package/dist/components/avl/{organisms → lib}/avl-3d-layout.d.ts +0 -0
  293. /package/dist/components/avl/{molecules → lib}/avl-layout.d.ts +0 -0
  294. /package/dist/components/avl/{organisms → lib}/avl-schema-parser.d.ts +0 -0
  295. /package/dist/components/avl/{organisms → lib}/avl-zoom-state.d.ts +0 -0
  296. /package/dist/components/avl/{derive-edit-focus.d.ts → lib/derive-edit-focus.d.ts} +0 -0
  297. /package/dist/components/avl/{molecules → lib}/wire-validation.d.ts +0 -0
  298. /package/dist/components/avl/{organisms → providers}/avl-3d-context.d.ts +0 -0
  299. /package/dist/components/avl/{atoms/types.d.ts → types/avl-atom-types.d.ts} +0 -0
  300. /package/dist/components/avl/{molecules → types}/avl-preview-types.d.ts +0 -0
  301. /package/dist/components/game/2d/{ComboCounter.d.ts → atoms/ComboCounter.d.ts} +0 -0
  302. /package/dist/components/game/2d/{DamageNumber.d.ts → atoms/DamageNumber.d.ts} +0 -0
  303. /package/dist/components/game/2d/{DialogueBubble.d.ts → atoms/DialogueBubble.d.ts} +0 -0
  304. /package/dist/components/game/2d/{GameCard.d.ts → atoms/GameCard.d.ts} +0 -0
  305. /package/dist/components/game/2d/{HealthBar.d.ts → atoms/HealthBar.d.ts} +0 -0
  306. /package/dist/components/game/2d/{TimerDisplay.d.ts → atoms/TimerDisplay.d.ts} +0 -0
  307. /package/dist/components/game/2d/{TurnIndicator.d.ts → atoms/TurnIndicator.d.ts} +0 -0
  308. /package/dist/components/game/2d/{ActionPalette.d.ts → organisms/ActionPalette.d.ts} +0 -0
  309. /package/dist/components/game/2d/{EventLog.d.ts → organisms/EventLog.d.ts} +0 -0
  310. /package/dist/components/game/2d/{ObjectRulePanel.d.ts → organisms/ObjectRulePanel.d.ts} +0 -0
  311. /package/dist/components/game/2d/{RuleEditor.d.ts → organisms/RuleEditor.d.ts} +0 -0
  312. /package/dist/components/game/2d/{SequenceBar.d.ts → organisms/SequenceBar.d.ts} +0 -0
  313. /package/dist/components/game/2d/{SimulationGraph.d.ts → organisms/SimulationGraph.d.ts} +0 -0
  314. /package/dist/components/game/2d/{StateJsonView.d.ts → organisms/StateJsonView.d.ts} +0 -0
  315. /package/dist/components/game/2d/{TopDownShooterBoard.d.ts → organisms/TopDownShooterBoard.d.ts} +0 -0
  316. /package/dist/components/game/2d/{VariablePanel.d.ts → organisms/VariablePanel.d.ts} +0 -0
  317. /package/dist/components/game/2d/{GameShell.d.ts → templates/GameShell.d.ts} +0 -0
  318. /package/dist/components/game/3d/{Camera3D.d.ts → molecules/Camera3D.d.ts} +0 -0
  319. /package/dist/components/game/3d/{Canvas3DErrorBoundary.d.ts → molecules/Canvas3DErrorBoundary.d.ts} +0 -0
  320. /package/dist/components/game/3d/{Canvas3DLoadingState.d.ts → molecules/Canvas3DLoadingState.d.ts} +0 -0
  321. /package/dist/components/game/3d/{Lighting3D.d.ts → molecules/Lighting3D.d.ts} +0 -0
  322. /package/dist/components/game/3d/{ModelLoader.d.ts → molecules/ModelLoader.d.ts} +0 -0
  323. /package/dist/components/game/3d/{Scene3D.d.ts → molecules/Scene3D.d.ts} +0 -0
  324. /package/dist/components/game/{2d → shared/hooks}/useGameAudio.d.ts +0 -0
  325. /package/dist/components/game/{3d → shared/hooks}/useRaycaster.d.ts +0 -0
  326. /package/dist/components/game/{3d → shared/hooks}/useSceneGraph.d.ts +0 -0
  327. /package/dist/components/game/{3d → shared/lib}/AssetLoader.d.ts +0 -0
  328. /package/dist/components/game/{3d → shared/lib}/culling.d.ts +0 -0
  329. /package/dist/components/game/{3d → shared/lib}/grid3D.d.ts +0 -0
  330. /package/dist/components/game/{2d/types.d.ts → shared/lib/physicsTypes.d.ts} +0 -0
  331. /package/dist/{runtime → lib}/embedded-traits.d.ts +0 -0
  332. /package/dist/{runtime → lib}/fn-form-lambda.d.ts +0 -0
  333. /package/dist/{renderer → lib}/init.d.ts +0 -0
  334. /package/dist/{runtime → lib}/orbitalsByTrait.d.ts +0 -0
  335. /package/dist/{runtime → lib}/prepareSchemaForPreview.d.ts +0 -0
  336. /package/dist/{context → lib}/themeTokens.d.ts +0 -0
  337. /package/dist/{runtime → lib}/wrapCallbackForEvent.d.ts +0 -0
  338. /package/dist/{context → providers}/CurrentPagePathContext.d.ts +0 -0
  339. /package/dist/{context → providers}/DesignThemeContext.d.ts +0 -0
  340. /package/dist/{context → providers}/OrbitalThemeProvider.d.ts +0 -0
@@ -1,677 +1,6 @@
1
- import { createContext, useMemo, useContext, useState, useEffect, useCallback, useRef } from 'react';
2
- import { createLogger } from '@almadar/logger';
3
- import { jsx, Fragment } from 'react/jsx-runtime';
1
+ export { ANONYMOUS_USER, BUILT_IN_THEMES, CurrentPagePathContext, CurrentPagePathProvider, DesignThemeProvider, OrbitalThemeProvider, default as ThemeContext, ThemeProvider, UISlotContext, UISlotProvider, UserContext, UserProvider, useCurrentPagePath, useDesignTheme, useHasPermission, useHasRole, useSlotContent, useSlotHasContent, useTheme, useUISlots, useUser, useUserForEvaluation } from '@almadar/ui/providers';
4
2
 
5
- var log = createLogger("almadar:ui:ui-slots");
6
- var DEFAULT_SOURCE_KEY = "__default__";
7
- var MULTI_SOURCE_STACK_TRAIT = "__multi_source_stack__";
8
- var ALL_SLOTS = [
9
- "main",
10
- "sidebar",
11
- "modal",
12
- "drawer",
13
- "overlay",
14
- "center",
15
- "toast",
16
- "hud-top",
17
- "hud-bottom",
18
- "hud-left",
19
- "hud-right",
20
- "floating"
21
- ];
22
- var DEFAULT_SLOTS = ALL_SLOTS.reduce(
23
- (acc, slot) => {
24
- acc[slot] = null;
25
- return acc;
26
- },
27
- {}
28
- );
29
- var DEFAULT_SOURCES = ALL_SLOTS.reduce(
30
- (acc, slot) => {
31
- acc[slot] = {};
32
- return acc;
33
- },
34
- {}
35
- );
36
- function aggregateSlot(sources) {
37
- if (!sources) return null;
38
- const entries = Object.entries(sources);
39
- if (entries.length === 0) return null;
40
- if (entries.length === 1) return entries[0][1];
41
- const children = entries.map(([, entry]) => ({
42
- type: entry.pattern,
43
- ...entry.props
44
- }));
45
- const stackId = `slot-content-stack-${entries.map(([k]) => k).join("-")}`;
46
- return {
47
- id: stackId,
48
- pattern: "stack",
49
- props: {
50
- direction: "vertical",
51
- gap: "lg",
52
- children
53
- },
54
- priority: 0,
55
- animation: "fade",
56
- sourceTrait: MULTI_SOURCE_STACK_TRAIT
57
- };
58
- }
59
- function useUISlotManager() {
60
- const [sources, setSources] = useState(DEFAULT_SOURCES);
61
- const subscribersRef = useRef(/* @__PURE__ */ new Set());
62
- const timersRef = useRef(/* @__PURE__ */ new Map());
63
- const traitIndexRef = useRef(/* @__PURE__ */ new Map());
64
- const traitSubscribersRef = useRef(/* @__PURE__ */ new Map());
65
- const slots = useMemo(() => {
66
- const out = { ...DEFAULT_SLOTS };
67
- for (const slot of ALL_SLOTS) {
68
- out[slot] = aggregateSlot(sources[slot]);
69
- }
70
- return out;
71
- }, [sources]);
72
- useEffect(() => {
73
- return () => {
74
- timersRef.current.forEach((timer) => clearTimeout(timer));
75
- timersRef.current.clear();
76
- };
77
- }, []);
78
- const notifySubscribers = useCallback((slot, content) => {
79
- subscribersRef.current.forEach((callback) => {
80
- try {
81
- callback(slot, content);
82
- } catch (error) {
83
- log.error("Subscriber error", { error: error instanceof Error ? error : String(error) });
84
- }
85
- });
86
- }, []);
87
- const notifyTraitSubscribers = useCallback(
88
- (traitName, content) => {
89
- const subs = traitSubscribersRef.current.get(traitName);
90
- if (!subs) return;
91
- subs.forEach((callback) => {
92
- try {
93
- callback(content);
94
- } catch (error) {
95
- log.error("Trait subscriber error", { traitName, error: error instanceof Error ? error : String(error) });
96
- }
97
- });
98
- },
99
- []
100
- );
101
- const indexTraitRender = useCallback(
102
- (traitName, content) => {
103
- traitIndexRef.current.set(traitName, content);
104
- },
105
- []
106
- );
107
- const unindexTrait = useCallback((traitName) => {
108
- traitIndexRef.current.delete(traitName);
109
- }, []);
110
- const render = useCallback(
111
- (config) => {
112
- const sourceKey = config.sourceTrait ?? DEFAULT_SOURCE_KEY;
113
- const id = `slot-content-${config.target}-${sourceKey}`;
114
- const content = {
115
- id,
116
- pattern: config.pattern,
117
- props: config.props ?? {},
118
- priority: config.priority ?? 0,
119
- animation: config.animation ?? "fade",
120
- onDismiss: config.onDismiss,
121
- sourceTrait: config.sourceTrait,
122
- slot: config.target,
123
- transitionEvent: config.transitionEvent,
124
- fromState: config.fromState,
125
- entity: config.entity
126
- };
127
- if (config.autoDismissMs && config.autoDismissMs > 0) {
128
- content.autoDismissAt = Date.now() + config.autoDismissMs;
129
- const prevTimer = timersRef.current.get(id);
130
- if (prevTimer) clearTimeout(prevTimer);
131
- const timer = setTimeout(() => {
132
- setSources((prev) => {
133
- const slotSources = prev[config.target];
134
- if (slotSources && slotSources[sourceKey] === content) {
135
- content.onDismiss?.();
136
- const next = { ...slotSources };
137
- delete next[sourceKey];
138
- const updated = { ...prev, [config.target]: next };
139
- notifySubscribers(config.target, aggregateSlot(next));
140
- return updated;
141
- }
142
- return prev;
143
- });
144
- timersRef.current.delete(id);
145
- }, config.autoDismissMs);
146
- timersRef.current.set(id, timer);
147
- }
148
- setSources((prev) => {
149
- const slotSources = prev[config.target] ?? {};
150
- const existing = slotSources[sourceKey];
151
- if (existing && existing.priority > content.priority) {
152
- log.warn("Slot already has higher priority content", {
153
- slot: config.target,
154
- sourceKey,
155
- existingPriority: existing.priority,
156
- newPriority: content.priority
157
- });
158
- return prev;
159
- }
160
- const nextSources = {
161
- ...slotSources,
162
- [sourceKey]: content
163
- };
164
- const nextAll = { ...prev, [config.target]: nextSources };
165
- if (content.sourceTrait) {
166
- indexTraitRender(content.sourceTrait, content);
167
- notifyTraitSubscribers(content.sourceTrait, content);
168
- }
169
- log.info("slot:written", {
170
- slot: config.target,
171
- sourceKey,
172
- sourceTrait: content.sourceTrait,
173
- patternType: content.pattern,
174
- priority: content.priority
175
- });
176
- notifySubscribers(config.target, aggregateSlot(nextSources));
177
- return nextAll;
178
- });
179
- return id;
180
- },
181
- [notifySubscribers, notifyTraitSubscribers, indexTraitRender]
182
- );
183
- const clear = useCallback(
184
- (slot) => {
185
- setSources((prev) => {
186
- const slotSources = prev[slot];
187
- if (!slotSources || Object.keys(slotSources).length === 0) {
188
- return prev;
189
- }
190
- for (const content of Object.values(slotSources)) {
191
- const timer = timersRef.current.get(content.id);
192
- if (timer) {
193
- clearTimeout(timer);
194
- timersRef.current.delete(content.id);
195
- }
196
- content.onDismiss?.();
197
- if (content.sourceTrait) {
198
- unindexTrait(content.sourceTrait);
199
- notifyTraitSubscribers(content.sourceTrait, null);
200
- }
201
- }
202
- notifySubscribers(slot, null);
203
- return { ...prev, [slot]: {} };
204
- });
205
- },
206
- [notifySubscribers, notifyTraitSubscribers, unindexTrait]
207
- );
208
- const clearBySource = useCallback(
209
- (slot, sourceTrait) => {
210
- const sourceKey = sourceTrait;
211
- setSources((prev) => {
212
- const slotSources = prev[slot];
213
- if (!slotSources || !(sourceKey in slotSources)) {
214
- log.debug("slot:clear-noop", { slot, sourceTrait, reason: !slotSources ? "no-slot" : "no-source" });
215
- return prev;
216
- }
217
- const content = slotSources[sourceKey];
218
- const timer = timersRef.current.get(content.id);
219
- if (timer) {
220
- clearTimeout(timer);
221
- timersRef.current.delete(content.id);
222
- }
223
- content.onDismiss?.();
224
- if (content.sourceTrait) {
225
- unindexTrait(content.sourceTrait);
226
- notifyTraitSubscribers(content.sourceTrait, null);
227
- }
228
- const nextSources = { ...slotSources };
229
- delete nextSources[sourceKey];
230
- log.info("slot:cleared", { slot, sourceTrait, lastPatternType: content.pattern });
231
- notifySubscribers(slot, aggregateSlot(nextSources));
232
- return { ...prev, [slot]: nextSources };
233
- });
234
- },
235
- [notifySubscribers, notifyTraitSubscribers, unindexTrait]
236
- );
237
- const clearById = useCallback(
238
- (id) => {
239
- setSources((prev) => {
240
- for (const slot of ALL_SLOTS) {
241
- const slotSources = prev[slot];
242
- if (!slotSources) continue;
243
- const matchKey = Object.keys(slotSources).find(
244
- (k) => slotSources[k].id === id
245
- );
246
- if (!matchKey) continue;
247
- const content = slotSources[matchKey];
248
- const timer = timersRef.current.get(id);
249
- if (timer) {
250
- clearTimeout(timer);
251
- timersRef.current.delete(id);
252
- }
253
- content.onDismiss?.();
254
- if (content.sourceTrait) {
255
- unindexTrait(content.sourceTrait);
256
- notifyTraitSubscribers(content.sourceTrait, null);
257
- }
258
- const nextSources = { ...slotSources };
259
- delete nextSources[matchKey];
260
- notifySubscribers(slot, aggregateSlot(nextSources));
261
- return { ...prev, [slot]: nextSources };
262
- }
263
- return prev;
264
- });
265
- },
266
- [notifySubscribers, notifyTraitSubscribers, unindexTrait]
267
- );
268
- const clearAll = useCallback(() => {
269
- timersRef.current.forEach((timer) => clearTimeout(timer));
270
- timersRef.current.clear();
271
- setSources((prev) => {
272
- for (const slot of ALL_SLOTS) {
273
- const slotSources = prev[slot];
274
- if (!slotSources) continue;
275
- for (const content of Object.values(slotSources)) {
276
- content.onDismiss?.();
277
- if (content.sourceTrait) {
278
- notifyTraitSubscribers(content.sourceTrait, null);
279
- }
280
- }
281
- notifySubscribers(slot, null);
282
- }
283
- return DEFAULT_SOURCES;
284
- });
285
- traitIndexRef.current.clear();
286
- }, [notifySubscribers, notifyTraitSubscribers]);
287
- const subscribe = useCallback((callback) => {
288
- subscribersRef.current.add(callback);
289
- return () => {
290
- subscribersRef.current.delete(callback);
291
- };
292
- }, []);
293
- const hasContent = useCallback(
294
- (slot) => slots[slot] !== null,
295
- [slots]
296
- );
297
- const getContent = useCallback(
298
- (slot) => slots[slot],
299
- [slots]
300
- );
301
- const getTraitContent = useCallback(
302
- (traitName) => traitIndexRef.current.get(traitName) ?? null,
303
- []
304
- );
305
- const subscribeTrait = useCallback(
306
- (traitName, callback) => {
307
- let set = traitSubscribersRef.current.get(traitName);
308
- if (!set) {
309
- set = /* @__PURE__ */ new Set();
310
- traitSubscribersRef.current.set(traitName, set);
311
- }
312
- set.add(callback);
313
- return () => {
314
- const s = traitSubscribersRef.current.get(traitName);
315
- if (!s) return;
316
- s.delete(callback);
317
- if (s.size === 0) {
318
- traitSubscribersRef.current.delete(traitName);
319
- }
320
- };
321
- },
322
- []
323
- );
324
- const updateTraitContent = useCallback(
325
- (traitName, content) => {
326
- const id = `slot-content-trait-${traitName}`;
327
- const fullContent = { ...content, id, sourceTrait: traitName };
328
- indexTraitRender(traitName, fullContent);
329
- notifyTraitSubscribers(traitName, fullContent);
330
- return id;
331
- },
332
- [indexTraitRender, notifyTraitSubscribers]
333
- );
334
- return {
335
- slots,
336
- render,
337
- clear,
338
- clearBySource,
339
- clearById,
340
- clearAll,
341
- subscribe,
342
- hasContent,
343
- getContent,
344
- getTraitContent,
345
- subscribeTrait,
346
- updateTraitContent
347
- };
348
- }
349
- var UISlotContext = createContext(null);
350
- function UISlotProvider({ children }) {
351
- const slotManager = useUISlotManager();
352
- const contextValue = useMemo(() => slotManager, [slotManager]);
353
- return /* @__PURE__ */ jsx(UISlotContext.Provider, { value: contextValue, children });
354
- }
355
- function useUISlots() {
356
- const context = useContext(UISlotContext);
357
- if (!context) {
358
- throw new Error(
359
- "useUISlots must be used within a UISlotProvider. Make sure your component tree is wrapped with <UISlotProvider>."
360
- );
361
- }
362
- return context;
363
- }
364
- function useSlotContent(slot) {
365
- const { getContent } = useUISlots();
366
- return getContent(slot);
367
- }
368
- function useSlotHasContent(slot) {
369
- const { hasContent } = useUISlots();
370
- return hasContent(slot);
371
- }
372
- var log2 = createLogger("almadar:ui:theme");
373
- var BUILT_IN_THEMES = [
374
- {
375
- name: "wireframe",
376
- displayName: "Wireframe",
377
- hasLightMode: true,
378
- hasDarkMode: true
379
- },
380
- {
381
- name: "minimalist",
382
- displayName: "Minimalist",
383
- hasLightMode: true,
384
- hasDarkMode: true
385
- },
386
- {
387
- name: "almadar",
388
- displayName: "Almadar",
389
- hasLightMode: true,
390
- hasDarkMode: true
391
- },
392
- {
393
- name: "trait-wars",
394
- displayName: "Trait Wars",
395
- hasLightMode: false,
396
- hasDarkMode: true
397
- },
398
- // Extended themes
399
- {
400
- name: "ocean",
401
- displayName: "Ocean",
402
- hasLightMode: true,
403
- hasDarkMode: true
404
- },
405
- {
406
- name: "forest",
407
- displayName: "Forest",
408
- hasLightMode: true,
409
- hasDarkMode: true
410
- },
411
- {
412
- name: "sunset",
413
- displayName: "Sunset",
414
- hasLightMode: true,
415
- hasDarkMode: true
416
- },
417
- {
418
- name: "lavender",
419
- displayName: "Lavender",
420
- hasLightMode: true,
421
- hasDarkMode: true
422
- },
423
- {
424
- name: "rose",
425
- displayName: "Rose",
426
- hasLightMode: true,
427
- hasDarkMode: true
428
- },
429
- {
430
- name: "slate",
431
- displayName: "Slate",
432
- hasLightMode: true,
433
- hasDarkMode: true
434
- },
435
- {
436
- name: "ember",
437
- displayName: "Ember",
438
- hasLightMode: true,
439
- hasDarkMode: true
440
- },
441
- {
442
- name: "midnight",
443
- displayName: "Midnight",
444
- hasLightMode: true,
445
- hasDarkMode: true
446
- },
447
- {
448
- name: "sand",
449
- displayName: "Sand",
450
- hasLightMode: true,
451
- hasDarkMode: true
452
- },
453
- {
454
- name: "neon",
455
- displayName: "Neon",
456
- hasLightMode: true,
457
- hasDarkMode: true
458
- },
459
- {
460
- name: "arctic",
461
- displayName: "Arctic",
462
- hasLightMode: true,
463
- hasDarkMode: true
464
- },
465
- {
466
- name: "copper",
467
- displayName: "Copper",
468
- hasLightMode: true,
469
- hasDarkMode: true
470
- },
471
- // Layer 1 skin axes — truly-unique themes (compact tech / editorial / brutalist dense / display-heavy / touch-first)
472
- {
473
- name: "prism",
474
- displayName: "Prism",
475
- hasLightMode: true,
476
- hasDarkMode: true
477
- },
478
- {
479
- name: "gazette",
480
- displayName: "Gazette",
481
- hasLightMode: true,
482
- hasDarkMode: true
483
- },
484
- {
485
- name: "terminal",
486
- displayName: "Terminal",
487
- hasLightMode: true,
488
- hasDarkMode: true
489
- },
490
- {
491
- name: "atelier",
492
- displayName: "Atelier",
493
- hasLightMode: true,
494
- hasDarkMode: true
495
- },
496
- {
497
- name: "kiosk",
498
- displayName: "Kiosk",
499
- hasLightMode: true,
500
- hasDarkMode: true
501
- },
502
- {
503
- name: "linear-clean",
504
- displayName: "Linear Clean",
505
- hasLightMode: true,
506
- hasDarkMode: true
507
- },
508
- {
509
- name: "notion-editorial",
510
- displayName: "Notion Editorial",
511
- hasLightMode: true,
512
- hasDarkMode: true
513
- },
514
- {
515
- name: "bloomberg-dense",
516
- displayName: "Bloomberg Dense",
517
- hasLightMode: true,
518
- hasDarkMode: true
519
- }
520
- ];
521
- var ThemeContext = createContext(void 0);
522
- var THEME_STORAGE_KEY = "theme";
523
- var MODE_STORAGE_KEY = "theme-mode";
524
- function getSystemMode() {
525
- if (typeof window === "undefined") return "light";
526
- return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
527
- }
528
- function resolveMode(mode) {
529
- if (mode === "system") {
530
- return getSystemMode();
531
- }
532
- return mode;
533
- }
534
- var ThemeProvider = ({
535
- children,
536
- themes = [],
537
- defaultTheme = "wireframe",
538
- defaultMode = "system",
539
- targetRef
540
- }) => {
541
- const availableThemes = useMemo(() => {
542
- const themeMap = /* @__PURE__ */ new Map();
543
- BUILT_IN_THEMES.forEach((t) => themeMap.set(t.name, t));
544
- themes.forEach((t) => themeMap.set(t.name, t));
545
- return Array.from(themeMap.values());
546
- }, [themes]);
547
- const isScoped = !!targetRef;
548
- const [theme, setThemeState] = useState(() => {
549
- if (isScoped || typeof window === "undefined") return defaultTheme;
550
- const stored = localStorage.getItem(THEME_STORAGE_KEY);
551
- const validThemes = [
552
- ...BUILT_IN_THEMES.map((t) => t.name),
553
- ...themes.map((t) => t.name)
554
- ];
555
- if (stored && validThemes.includes(stored)) {
556
- return stored;
557
- }
558
- return defaultTheme;
559
- });
560
- const [mode, setModeState] = useState(() => {
561
- if (isScoped || typeof window === "undefined") return defaultMode;
562
- const stored = localStorage.getItem(MODE_STORAGE_KEY);
563
- if (stored === "light" || stored === "dark" || stored === "system") {
564
- return stored;
565
- }
566
- return defaultMode;
567
- });
568
- const [resolvedMode, setResolvedMode] = useState(
569
- () => resolveMode(mode)
570
- );
571
- const appliedTheme = useMemo(
572
- () => `${theme}-${resolvedMode}`,
573
- [theme, resolvedMode]
574
- );
575
- useEffect(() => {
576
- const updateResolved = () => {
577
- setResolvedMode(resolveMode(mode));
578
- };
579
- updateResolved();
580
- if (mode === "system") {
581
- const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
582
- const handleChange = () => updateResolved();
583
- mediaQuery.addEventListener("change", handleChange);
584
- return () => mediaQuery.removeEventListener("change", handleChange);
585
- }
586
- return void 0;
587
- }, [mode]);
588
- useEffect(() => {
589
- if (isScoped) {
590
- if (targetRef?.current) {
591
- targetRef.current.setAttribute("data-theme", appliedTheme);
592
- targetRef.current.classList.remove("light", "dark");
593
- targetRef.current.classList.add(resolvedMode);
594
- }
595
- return;
596
- }
597
- const root = document.documentElement;
598
- root.setAttribute("data-theme", appliedTheme);
599
- root.classList.remove("light", "dark");
600
- root.classList.add(resolvedMode);
601
- }, [appliedTheme, resolvedMode, targetRef, isScoped]);
602
- const setTheme = useCallback(
603
- (newTheme) => {
604
- const validTheme = availableThemes.find((t) => t.name === newTheme);
605
- if (validTheme) {
606
- setThemeState(newTheme);
607
- if (!isScoped && typeof window !== "undefined") {
608
- localStorage.setItem(THEME_STORAGE_KEY, newTheme);
609
- }
610
- } else {
611
- log2.warn("Theme not found", {
612
- theme: newTheme,
613
- available: availableThemes.map((t) => t.name)
614
- });
615
- }
616
- },
617
- [availableThemes]
618
- );
619
- const setMode = useCallback((newMode) => {
620
- setModeState(newMode);
621
- if (!isScoped && typeof window !== "undefined") {
622
- localStorage.setItem(MODE_STORAGE_KEY, newMode);
623
- }
624
- }, []);
625
- const toggleMode = useCallback(() => {
626
- const newMode = resolvedMode === "dark" ? "light" : "dark";
627
- setMode(newMode);
628
- }, [resolvedMode, setMode]);
629
- const contextValue = useMemo(
630
- () => ({
631
- theme,
632
- mode,
633
- resolvedMode,
634
- setTheme,
635
- setMode,
636
- toggleMode,
637
- availableThemes,
638
- appliedTheme
639
- }),
640
- [
641
- theme,
642
- mode,
643
- resolvedMode,
644
- setTheme,
645
- setMode,
646
- toggleMode,
647
- availableThemes,
648
- appliedTheme
649
- ]
650
- );
651
- return /* @__PURE__ */ jsx(ThemeContext.Provider, { value: contextValue, children });
652
- };
653
- function useTheme() {
654
- const context = useContext(ThemeContext);
655
- if (context === void 0) {
656
- return {
657
- theme: "wireframe",
658
- mode: "light",
659
- resolvedMode: "light",
660
- setTheme: () => {
661
- },
662
- setMode: () => {
663
- },
664
- toggleMode: () => {
665
- },
666
- availableThemes: BUILT_IN_THEMES,
667
- appliedTheme: "wireframe-light"
668
- };
669
- }
670
- return context;
671
- }
672
- var ThemeContext_default = ThemeContext;
673
-
674
- // context/themeTokens.ts
3
+ // lib/themeTokens.ts
675
4
  function themeTokensToCssVars(tokens, mode = "light", darkVariant) {
676
5
  const vars = {};
677
6
  const isDark = mode === "dark";
@@ -886,138 +215,5 @@ function resolveThemeForRuntime(theme) {
886
215
  if (typeof theme === "string") return void 0;
887
216
  return theme;
888
217
  }
889
- function OrbitalThemeProvider({ theme, children }) {
890
- const resolved = resolveThemeForRuntime(theme);
891
- const { resolvedMode } = useTheme();
892
- if (!resolved) {
893
- return /* @__PURE__ */ jsx(Fragment, { children });
894
- }
895
- const vars = themeTokensToCssVars(resolved.tokens, resolvedMode, resolved.variants?.dark);
896
- return /* @__PURE__ */ jsx(
897
- "div",
898
- {
899
- "data-orbital-theme": resolved.name,
900
- style: { display: "contents", ...vars },
901
- children
902
- }
903
- );
904
- }
905
- OrbitalThemeProvider.displayName = "OrbitalThemeProvider";
906
-
907
- // context/DesignThemeContext.tsx
908
- var DesignThemeProvider = ThemeProvider;
909
- function useDesignTheme() {
910
- const { theme, setTheme, availableThemes } = useTheme();
911
- return {
912
- designTheme: theme,
913
- setDesignTheme: setTheme,
914
- availableThemes: availableThemes.map((t) => t.name)
915
- };
916
- }
917
- var CurrentPagePathContext = createContext(void 0);
918
- var CurrentPagePathProvider = ({
919
- value,
920
- children
921
- }) => /* @__PURE__ */ jsx(CurrentPagePathContext.Provider, { value, children });
922
- CurrentPagePathProvider.displayName = "CurrentPagePathProvider";
923
- var useCurrentPagePath = () => useContext(CurrentPagePathContext);
924
- var ANONYMOUS_USER = {
925
- id: "anonymous",
926
- role: "anonymous",
927
- permissions: []
928
- };
929
- var UserContext = createContext(null);
930
- function UserProvider({
931
- user = null,
932
- children
933
- }) {
934
- const hasRole = useCallback(
935
- (role) => {
936
- if (!user) return role === "anonymous";
937
- return user.role === role;
938
- },
939
- [user]
940
- );
941
- const hasPermission = useCallback(
942
- (permission) => {
943
- if (!user) return false;
944
- return user.permissions?.includes(permission) ?? false;
945
- },
946
- [user]
947
- );
948
- const hasAnyRole = useCallback(
949
- (roles) => {
950
- if (!user) return roles.includes("anonymous");
951
- return user.role ? roles.includes(user.role) : false;
952
- },
953
- [user]
954
- );
955
- const hasAllPermissions = useCallback(
956
- (permissions) => {
957
- if (!user || !user.permissions) return false;
958
- return permissions.every((p) => user.permissions?.includes(p));
959
- },
960
- [user]
961
- );
962
- const getUserField = useCallback(
963
- (path) => {
964
- const userData = user ?? ANONYMOUS_USER;
965
- const parts = path.split(".");
966
- let value = userData;
967
- for (const segment of parts) {
968
- if (value === null || value === void 0) {
969
- return void 0;
970
- }
971
- if (typeof value === "object") {
972
- value = value[segment];
973
- } else {
974
- return void 0;
975
- }
976
- }
977
- return value;
978
- },
979
- [user]
980
- );
981
- const contextValue = useMemo(
982
- () => ({
983
- user,
984
- isLoggedIn: user !== null,
985
- hasRole,
986
- hasPermission,
987
- hasAnyRole,
988
- hasAllPermissions,
989
- getUserField
990
- }),
991
- [user, hasRole, hasPermission, hasAnyRole, hasAllPermissions, getUserField]
992
- );
993
- return /* @__PURE__ */ jsx(UserContext.Provider, { value: contextValue, children });
994
- }
995
- function useUser() {
996
- const context = useContext(UserContext);
997
- if (!context) {
998
- return {
999
- user: null,
1000
- isLoggedIn: false,
1001
- hasRole: (role) => role === "anonymous",
1002
- hasPermission: () => false,
1003
- hasAnyRole: (roles) => roles.includes("anonymous"),
1004
- hasAllPermissions: () => false,
1005
- getUserField: () => void 0
1006
- };
1007
- }
1008
- return context;
1009
- }
1010
- function useHasRole(role) {
1011
- const { hasRole } = useUser();
1012
- return hasRole(role);
1013
- }
1014
- function useHasPermission(permission) {
1015
- const { hasPermission } = useUser();
1016
- return hasPermission(permission);
1017
- }
1018
- function useUserForEvaluation() {
1019
- const { user, isLoggedIn } = useUser();
1020
- return isLoggedIn && user ? user : void 0;
1021
- }
1022
218
 
1023
- export { ANONYMOUS_USER, BUILT_IN_THEMES, CurrentPagePathContext, CurrentPagePathProvider, DesignThemeProvider, OrbitalThemeProvider, ThemeContext_default as ThemeContext, ThemeProvider, UISlotContext, UISlotProvider, UserContext, UserProvider, resolveThemeForRuntime, themeTokensToCssVars, useCurrentPagePath, useDesignTheme, useHasPermission, useHasRole, useSlotContent, useSlotHasContent, useTheme, useUISlots, useUser, useUserForEvaluation };
219
+ export { resolveThemeForRuntime, themeTokensToCssVars };