@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,679 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var react = require('react');
4
- var logger = require('@almadar/logger');
5
- var jsxRuntime = require('react/jsx-runtime');
3
+ var providers = require('@almadar/ui/providers');
6
4
 
7
- var log = logger.createLogger("almadar:ui:ui-slots");
8
- var DEFAULT_SOURCE_KEY = "__default__";
9
- var MULTI_SOURCE_STACK_TRAIT = "__multi_source_stack__";
10
- var ALL_SLOTS = [
11
- "main",
12
- "sidebar",
13
- "modal",
14
- "drawer",
15
- "overlay",
16
- "center",
17
- "toast",
18
- "hud-top",
19
- "hud-bottom",
20
- "hud-left",
21
- "hud-right",
22
- "floating"
23
- ];
24
- var DEFAULT_SLOTS = ALL_SLOTS.reduce(
25
- (acc, slot) => {
26
- acc[slot] = null;
27
- return acc;
28
- },
29
- {}
30
- );
31
- var DEFAULT_SOURCES = ALL_SLOTS.reduce(
32
- (acc, slot) => {
33
- acc[slot] = {};
34
- return acc;
35
- },
36
- {}
37
- );
38
- function aggregateSlot(sources) {
39
- if (!sources) return null;
40
- const entries = Object.entries(sources);
41
- if (entries.length === 0) return null;
42
- if (entries.length === 1) return entries[0][1];
43
- const children = entries.map(([, entry]) => ({
44
- type: entry.pattern,
45
- ...entry.props
46
- }));
47
- const stackId = `slot-content-stack-${entries.map(([k]) => k).join("-")}`;
48
- return {
49
- id: stackId,
50
- pattern: "stack",
51
- props: {
52
- direction: "vertical",
53
- gap: "lg",
54
- children
55
- },
56
- priority: 0,
57
- animation: "fade",
58
- sourceTrait: MULTI_SOURCE_STACK_TRAIT
59
- };
60
- }
61
- function useUISlotManager() {
62
- const [sources, setSources] = react.useState(DEFAULT_SOURCES);
63
- const subscribersRef = react.useRef(/* @__PURE__ */ new Set());
64
- const timersRef = react.useRef(/* @__PURE__ */ new Map());
65
- const traitIndexRef = react.useRef(/* @__PURE__ */ new Map());
66
- const traitSubscribersRef = react.useRef(/* @__PURE__ */ new Map());
67
- const slots = react.useMemo(() => {
68
- const out = { ...DEFAULT_SLOTS };
69
- for (const slot of ALL_SLOTS) {
70
- out[slot] = aggregateSlot(sources[slot]);
71
- }
72
- return out;
73
- }, [sources]);
74
- react.useEffect(() => {
75
- return () => {
76
- timersRef.current.forEach((timer) => clearTimeout(timer));
77
- timersRef.current.clear();
78
- };
79
- }, []);
80
- const notifySubscribers = react.useCallback((slot, content) => {
81
- subscribersRef.current.forEach((callback) => {
82
- try {
83
- callback(slot, content);
84
- } catch (error) {
85
- log.error("Subscriber error", { error: error instanceof Error ? error : String(error) });
86
- }
87
- });
88
- }, []);
89
- const notifyTraitSubscribers = react.useCallback(
90
- (traitName, content) => {
91
- const subs = traitSubscribersRef.current.get(traitName);
92
- if (!subs) return;
93
- subs.forEach((callback) => {
94
- try {
95
- callback(content);
96
- } catch (error) {
97
- log.error("Trait subscriber error", { traitName, error: error instanceof Error ? error : String(error) });
98
- }
99
- });
100
- },
101
- []
102
- );
103
- const indexTraitRender = react.useCallback(
104
- (traitName, content) => {
105
- traitIndexRef.current.set(traitName, content);
106
- },
107
- []
108
- );
109
- const unindexTrait = react.useCallback((traitName) => {
110
- traitIndexRef.current.delete(traitName);
111
- }, []);
112
- const render = react.useCallback(
113
- (config) => {
114
- const sourceKey = config.sourceTrait ?? DEFAULT_SOURCE_KEY;
115
- const id = `slot-content-${config.target}-${sourceKey}`;
116
- const content = {
117
- id,
118
- pattern: config.pattern,
119
- props: config.props ?? {},
120
- priority: config.priority ?? 0,
121
- animation: config.animation ?? "fade",
122
- onDismiss: config.onDismiss,
123
- sourceTrait: config.sourceTrait,
124
- slot: config.target,
125
- transitionEvent: config.transitionEvent,
126
- fromState: config.fromState,
127
- entity: config.entity
128
- };
129
- if (config.autoDismissMs && config.autoDismissMs > 0) {
130
- content.autoDismissAt = Date.now() + config.autoDismissMs;
131
- const prevTimer = timersRef.current.get(id);
132
- if (prevTimer) clearTimeout(prevTimer);
133
- const timer = setTimeout(() => {
134
- setSources((prev) => {
135
- const slotSources = prev[config.target];
136
- if (slotSources && slotSources[sourceKey] === content) {
137
- content.onDismiss?.();
138
- const next = { ...slotSources };
139
- delete next[sourceKey];
140
- const updated = { ...prev, [config.target]: next };
141
- notifySubscribers(config.target, aggregateSlot(next));
142
- return updated;
143
- }
144
- return prev;
145
- });
146
- timersRef.current.delete(id);
147
- }, config.autoDismissMs);
148
- timersRef.current.set(id, timer);
149
- }
150
- setSources((prev) => {
151
- const slotSources = prev[config.target] ?? {};
152
- const existing = slotSources[sourceKey];
153
- if (existing && existing.priority > content.priority) {
154
- log.warn("Slot already has higher priority content", {
155
- slot: config.target,
156
- sourceKey,
157
- existingPriority: existing.priority,
158
- newPriority: content.priority
159
- });
160
- return prev;
161
- }
162
- const nextSources = {
163
- ...slotSources,
164
- [sourceKey]: content
165
- };
166
- const nextAll = { ...prev, [config.target]: nextSources };
167
- if (content.sourceTrait) {
168
- indexTraitRender(content.sourceTrait, content);
169
- notifyTraitSubscribers(content.sourceTrait, content);
170
- }
171
- log.info("slot:written", {
172
- slot: config.target,
173
- sourceKey,
174
- sourceTrait: content.sourceTrait,
175
- patternType: content.pattern,
176
- priority: content.priority
177
- });
178
- notifySubscribers(config.target, aggregateSlot(nextSources));
179
- return nextAll;
180
- });
181
- return id;
182
- },
183
- [notifySubscribers, notifyTraitSubscribers, indexTraitRender]
184
- );
185
- const clear = react.useCallback(
186
- (slot) => {
187
- setSources((prev) => {
188
- const slotSources = prev[slot];
189
- if (!slotSources || Object.keys(slotSources).length === 0) {
190
- return prev;
191
- }
192
- for (const content of Object.values(slotSources)) {
193
- const timer = timersRef.current.get(content.id);
194
- if (timer) {
195
- clearTimeout(timer);
196
- timersRef.current.delete(content.id);
197
- }
198
- content.onDismiss?.();
199
- if (content.sourceTrait) {
200
- unindexTrait(content.sourceTrait);
201
- notifyTraitSubscribers(content.sourceTrait, null);
202
- }
203
- }
204
- notifySubscribers(slot, null);
205
- return { ...prev, [slot]: {} };
206
- });
207
- },
208
- [notifySubscribers, notifyTraitSubscribers, unindexTrait]
209
- );
210
- const clearBySource = react.useCallback(
211
- (slot, sourceTrait) => {
212
- const sourceKey = sourceTrait;
213
- setSources((prev) => {
214
- const slotSources = prev[slot];
215
- if (!slotSources || !(sourceKey in slotSources)) {
216
- log.debug("slot:clear-noop", { slot, sourceTrait, reason: !slotSources ? "no-slot" : "no-source" });
217
- return prev;
218
- }
219
- const content = slotSources[sourceKey];
220
- const timer = timersRef.current.get(content.id);
221
- if (timer) {
222
- clearTimeout(timer);
223
- timersRef.current.delete(content.id);
224
- }
225
- content.onDismiss?.();
226
- if (content.sourceTrait) {
227
- unindexTrait(content.sourceTrait);
228
- notifyTraitSubscribers(content.sourceTrait, null);
229
- }
230
- const nextSources = { ...slotSources };
231
- delete nextSources[sourceKey];
232
- log.info("slot:cleared", { slot, sourceTrait, lastPatternType: content.pattern });
233
- notifySubscribers(slot, aggregateSlot(nextSources));
234
- return { ...prev, [slot]: nextSources };
235
- });
236
- },
237
- [notifySubscribers, notifyTraitSubscribers, unindexTrait]
238
- );
239
- const clearById = react.useCallback(
240
- (id) => {
241
- setSources((prev) => {
242
- for (const slot of ALL_SLOTS) {
243
- const slotSources = prev[slot];
244
- if (!slotSources) continue;
245
- const matchKey = Object.keys(slotSources).find(
246
- (k) => slotSources[k].id === id
247
- );
248
- if (!matchKey) continue;
249
- const content = slotSources[matchKey];
250
- const timer = timersRef.current.get(id);
251
- if (timer) {
252
- clearTimeout(timer);
253
- timersRef.current.delete(id);
254
- }
255
- content.onDismiss?.();
256
- if (content.sourceTrait) {
257
- unindexTrait(content.sourceTrait);
258
- notifyTraitSubscribers(content.sourceTrait, null);
259
- }
260
- const nextSources = { ...slotSources };
261
- delete nextSources[matchKey];
262
- notifySubscribers(slot, aggregateSlot(nextSources));
263
- return { ...prev, [slot]: nextSources };
264
- }
265
- return prev;
266
- });
267
- },
268
- [notifySubscribers, notifyTraitSubscribers, unindexTrait]
269
- );
270
- const clearAll = react.useCallback(() => {
271
- timersRef.current.forEach((timer) => clearTimeout(timer));
272
- timersRef.current.clear();
273
- setSources((prev) => {
274
- for (const slot of ALL_SLOTS) {
275
- const slotSources = prev[slot];
276
- if (!slotSources) continue;
277
- for (const content of Object.values(slotSources)) {
278
- content.onDismiss?.();
279
- if (content.sourceTrait) {
280
- notifyTraitSubscribers(content.sourceTrait, null);
281
- }
282
- }
283
- notifySubscribers(slot, null);
284
- }
285
- return DEFAULT_SOURCES;
286
- });
287
- traitIndexRef.current.clear();
288
- }, [notifySubscribers, notifyTraitSubscribers]);
289
- const subscribe = react.useCallback((callback) => {
290
- subscribersRef.current.add(callback);
291
- return () => {
292
- subscribersRef.current.delete(callback);
293
- };
294
- }, []);
295
- const hasContent = react.useCallback(
296
- (slot) => slots[slot] !== null,
297
- [slots]
298
- );
299
- const getContent = react.useCallback(
300
- (slot) => slots[slot],
301
- [slots]
302
- );
303
- const getTraitContent = react.useCallback(
304
- (traitName) => traitIndexRef.current.get(traitName) ?? null,
305
- []
306
- );
307
- const subscribeTrait = react.useCallback(
308
- (traitName, callback) => {
309
- let set = traitSubscribersRef.current.get(traitName);
310
- if (!set) {
311
- set = /* @__PURE__ */ new Set();
312
- traitSubscribersRef.current.set(traitName, set);
313
- }
314
- set.add(callback);
315
- return () => {
316
- const s = traitSubscribersRef.current.get(traitName);
317
- if (!s) return;
318
- s.delete(callback);
319
- if (s.size === 0) {
320
- traitSubscribersRef.current.delete(traitName);
321
- }
322
- };
323
- },
324
- []
325
- );
326
- const updateTraitContent = react.useCallback(
327
- (traitName, content) => {
328
- const id = `slot-content-trait-${traitName}`;
329
- const fullContent = { ...content, id, sourceTrait: traitName };
330
- indexTraitRender(traitName, fullContent);
331
- notifyTraitSubscribers(traitName, fullContent);
332
- return id;
333
- },
334
- [indexTraitRender, notifyTraitSubscribers]
335
- );
336
- return {
337
- slots,
338
- render,
339
- clear,
340
- clearBySource,
341
- clearById,
342
- clearAll,
343
- subscribe,
344
- hasContent,
345
- getContent,
346
- getTraitContent,
347
- subscribeTrait,
348
- updateTraitContent
349
- };
350
- }
351
- var UISlotContext = react.createContext(null);
352
- function UISlotProvider({ children }) {
353
- const slotManager = useUISlotManager();
354
- const contextValue = react.useMemo(() => slotManager, [slotManager]);
355
- return /* @__PURE__ */ jsxRuntime.jsx(UISlotContext.Provider, { value: contextValue, children });
356
- }
357
- function useUISlots() {
358
- const context = react.useContext(UISlotContext);
359
- if (!context) {
360
- throw new Error(
361
- "useUISlots must be used within a UISlotProvider. Make sure your component tree is wrapped with <UISlotProvider>."
362
- );
363
- }
364
- return context;
365
- }
366
- function useSlotContent(slot) {
367
- const { getContent } = useUISlots();
368
- return getContent(slot);
369
- }
370
- function useSlotHasContent(slot) {
371
- const { hasContent } = useUISlots();
372
- return hasContent(slot);
373
- }
374
- var log2 = logger.createLogger("almadar:ui:theme");
375
- var BUILT_IN_THEMES = [
376
- {
377
- name: "wireframe",
378
- displayName: "Wireframe",
379
- hasLightMode: true,
380
- hasDarkMode: true
381
- },
382
- {
383
- name: "minimalist",
384
- displayName: "Minimalist",
385
- hasLightMode: true,
386
- hasDarkMode: true
387
- },
388
- {
389
- name: "almadar",
390
- displayName: "Almadar",
391
- hasLightMode: true,
392
- hasDarkMode: true
393
- },
394
- {
395
- name: "trait-wars",
396
- displayName: "Trait Wars",
397
- hasLightMode: false,
398
- hasDarkMode: true
399
- },
400
- // Extended themes
401
- {
402
- name: "ocean",
403
- displayName: "Ocean",
404
- hasLightMode: true,
405
- hasDarkMode: true
406
- },
407
- {
408
- name: "forest",
409
- displayName: "Forest",
410
- hasLightMode: true,
411
- hasDarkMode: true
412
- },
413
- {
414
- name: "sunset",
415
- displayName: "Sunset",
416
- hasLightMode: true,
417
- hasDarkMode: true
418
- },
419
- {
420
- name: "lavender",
421
- displayName: "Lavender",
422
- hasLightMode: true,
423
- hasDarkMode: true
424
- },
425
- {
426
- name: "rose",
427
- displayName: "Rose",
428
- hasLightMode: true,
429
- hasDarkMode: true
430
- },
431
- {
432
- name: "slate",
433
- displayName: "Slate",
434
- hasLightMode: true,
435
- hasDarkMode: true
436
- },
437
- {
438
- name: "ember",
439
- displayName: "Ember",
440
- hasLightMode: true,
441
- hasDarkMode: true
442
- },
443
- {
444
- name: "midnight",
445
- displayName: "Midnight",
446
- hasLightMode: true,
447
- hasDarkMode: true
448
- },
449
- {
450
- name: "sand",
451
- displayName: "Sand",
452
- hasLightMode: true,
453
- hasDarkMode: true
454
- },
455
- {
456
- name: "neon",
457
- displayName: "Neon",
458
- hasLightMode: true,
459
- hasDarkMode: true
460
- },
461
- {
462
- name: "arctic",
463
- displayName: "Arctic",
464
- hasLightMode: true,
465
- hasDarkMode: true
466
- },
467
- {
468
- name: "copper",
469
- displayName: "Copper",
470
- hasLightMode: true,
471
- hasDarkMode: true
472
- },
473
- // Layer 1 skin axes — truly-unique themes (compact tech / editorial / brutalist dense / display-heavy / touch-first)
474
- {
475
- name: "prism",
476
- displayName: "Prism",
477
- hasLightMode: true,
478
- hasDarkMode: true
479
- },
480
- {
481
- name: "gazette",
482
- displayName: "Gazette",
483
- hasLightMode: true,
484
- hasDarkMode: true
485
- },
486
- {
487
- name: "terminal",
488
- displayName: "Terminal",
489
- hasLightMode: true,
490
- hasDarkMode: true
491
- },
492
- {
493
- name: "atelier",
494
- displayName: "Atelier",
495
- hasLightMode: true,
496
- hasDarkMode: true
497
- },
498
- {
499
- name: "kiosk",
500
- displayName: "Kiosk",
501
- hasLightMode: true,
502
- hasDarkMode: true
503
- },
504
- {
505
- name: "linear-clean",
506
- displayName: "Linear Clean",
507
- hasLightMode: true,
508
- hasDarkMode: true
509
- },
510
- {
511
- name: "notion-editorial",
512
- displayName: "Notion Editorial",
513
- hasLightMode: true,
514
- hasDarkMode: true
515
- },
516
- {
517
- name: "bloomberg-dense",
518
- displayName: "Bloomberg Dense",
519
- hasLightMode: true,
520
- hasDarkMode: true
521
- }
522
- ];
523
- var ThemeContext = react.createContext(void 0);
524
- var THEME_STORAGE_KEY = "theme";
525
- var MODE_STORAGE_KEY = "theme-mode";
526
- function getSystemMode() {
527
- if (typeof window === "undefined") return "light";
528
- return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
529
- }
530
- function resolveMode(mode) {
531
- if (mode === "system") {
532
- return getSystemMode();
533
- }
534
- return mode;
535
- }
536
- var ThemeProvider = ({
537
- children,
538
- themes = [],
539
- defaultTheme = "wireframe",
540
- defaultMode = "system",
541
- targetRef
542
- }) => {
543
- const availableThemes = react.useMemo(() => {
544
- const themeMap = /* @__PURE__ */ new Map();
545
- BUILT_IN_THEMES.forEach((t) => themeMap.set(t.name, t));
546
- themes.forEach((t) => themeMap.set(t.name, t));
547
- return Array.from(themeMap.values());
548
- }, [themes]);
549
- const isScoped = !!targetRef;
550
- const [theme, setThemeState] = react.useState(() => {
551
- if (isScoped || typeof window === "undefined") return defaultTheme;
552
- const stored = localStorage.getItem(THEME_STORAGE_KEY);
553
- const validThemes = [
554
- ...BUILT_IN_THEMES.map((t) => t.name),
555
- ...themes.map((t) => t.name)
556
- ];
557
- if (stored && validThemes.includes(stored)) {
558
- return stored;
559
- }
560
- return defaultTheme;
561
- });
562
- const [mode, setModeState] = react.useState(() => {
563
- if (isScoped || typeof window === "undefined") return defaultMode;
564
- const stored = localStorage.getItem(MODE_STORAGE_KEY);
565
- if (stored === "light" || stored === "dark" || stored === "system") {
566
- return stored;
567
- }
568
- return defaultMode;
569
- });
570
- const [resolvedMode, setResolvedMode] = react.useState(
571
- () => resolveMode(mode)
572
- );
573
- const appliedTheme = react.useMemo(
574
- () => `${theme}-${resolvedMode}`,
575
- [theme, resolvedMode]
576
- );
577
- react.useEffect(() => {
578
- const updateResolved = () => {
579
- setResolvedMode(resolveMode(mode));
580
- };
581
- updateResolved();
582
- if (mode === "system") {
583
- const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
584
- const handleChange = () => updateResolved();
585
- mediaQuery.addEventListener("change", handleChange);
586
- return () => mediaQuery.removeEventListener("change", handleChange);
587
- }
588
- return void 0;
589
- }, [mode]);
590
- react.useEffect(() => {
591
- if (isScoped) {
592
- if (targetRef?.current) {
593
- targetRef.current.setAttribute("data-theme", appliedTheme);
594
- targetRef.current.classList.remove("light", "dark");
595
- targetRef.current.classList.add(resolvedMode);
596
- }
597
- return;
598
- }
599
- const root = document.documentElement;
600
- root.setAttribute("data-theme", appliedTheme);
601
- root.classList.remove("light", "dark");
602
- root.classList.add(resolvedMode);
603
- }, [appliedTheme, resolvedMode, targetRef, isScoped]);
604
- const setTheme = react.useCallback(
605
- (newTheme) => {
606
- const validTheme = availableThemes.find((t) => t.name === newTheme);
607
- if (validTheme) {
608
- setThemeState(newTheme);
609
- if (!isScoped && typeof window !== "undefined") {
610
- localStorage.setItem(THEME_STORAGE_KEY, newTheme);
611
- }
612
- } else {
613
- log2.warn("Theme not found", {
614
- theme: newTheme,
615
- available: availableThemes.map((t) => t.name)
616
- });
617
- }
618
- },
619
- [availableThemes]
620
- );
621
- const setMode = react.useCallback((newMode) => {
622
- setModeState(newMode);
623
- if (!isScoped && typeof window !== "undefined") {
624
- localStorage.setItem(MODE_STORAGE_KEY, newMode);
625
- }
626
- }, []);
627
- const toggleMode = react.useCallback(() => {
628
- const newMode = resolvedMode === "dark" ? "light" : "dark";
629
- setMode(newMode);
630
- }, [resolvedMode, setMode]);
631
- const contextValue = react.useMemo(
632
- () => ({
633
- theme,
634
- mode,
635
- resolvedMode,
636
- setTheme,
637
- setMode,
638
- toggleMode,
639
- availableThemes,
640
- appliedTheme
641
- }),
642
- [
643
- theme,
644
- mode,
645
- resolvedMode,
646
- setTheme,
647
- setMode,
648
- toggleMode,
649
- availableThemes,
650
- appliedTheme
651
- ]
652
- );
653
- return /* @__PURE__ */ jsxRuntime.jsx(ThemeContext.Provider, { value: contextValue, children });
654
- };
655
- function useTheme() {
656
- const context = react.useContext(ThemeContext);
657
- if (context === void 0) {
658
- return {
659
- theme: "wireframe",
660
- mode: "light",
661
- resolvedMode: "light",
662
- setTheme: () => {
663
- },
664
- setMode: () => {
665
- },
666
- toggleMode: () => {
667
- },
668
- availableThemes: BUILT_IN_THEMES,
669
- appliedTheme: "wireframe-light"
670
- };
671
- }
672
- return context;
673
- }
674
- var ThemeContext_default = ThemeContext;
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var providers__default = /*#__PURE__*/_interopDefault(providers);
675
8
 
676
- // context/themeTokens.ts
9
+ // lib/themeTokens.ts
677
10
  function themeTokensToCssVars(tokens, mode = "light", darkVariant) {
678
11
  const vars = {};
679
12
  const isDark = mode === "dark";
@@ -888,161 +221,94 @@ function resolveThemeForRuntime(theme) {
888
221
  if (typeof theme === "string") return void 0;
889
222
  return theme;
890
223
  }
891
- function OrbitalThemeProvider({ theme, children }) {
892
- const resolved = resolveThemeForRuntime(theme);
893
- const { resolvedMode } = useTheme();
894
- if (!resolved) {
895
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
896
- }
897
- const vars = themeTokensToCssVars(resolved.tokens, resolvedMode, resolved.variants?.dark);
898
- return /* @__PURE__ */ jsxRuntime.jsx(
899
- "div",
900
- {
901
- "data-orbital-theme": resolved.name,
902
- style: { display: "contents", ...vars },
903
- children
904
- }
905
- );
906
- }
907
- OrbitalThemeProvider.displayName = "OrbitalThemeProvider";
908
-
909
- // context/DesignThemeContext.tsx
910
- var DesignThemeProvider = ThemeProvider;
911
- function useDesignTheme() {
912
- const { theme, setTheme, availableThemes } = useTheme();
913
- return {
914
- designTheme: theme,
915
- setDesignTheme: setTheme,
916
- availableThemes: availableThemes.map((t) => t.name)
917
- };
918
- }
919
- var CurrentPagePathContext = react.createContext(void 0);
920
- var CurrentPagePathProvider = ({
921
- value,
922
- children
923
- }) => /* @__PURE__ */ jsxRuntime.jsx(CurrentPagePathContext.Provider, { value, children });
924
- CurrentPagePathProvider.displayName = "CurrentPagePathProvider";
925
- var useCurrentPagePath = () => react.useContext(CurrentPagePathContext);
926
- var ANONYMOUS_USER = {
927
- id: "anonymous",
928
- role: "anonymous",
929
- permissions: []
930
- };
931
- var UserContext = react.createContext(null);
932
- function UserProvider({
933
- user = null,
934
- children
935
- }) {
936
- const hasRole = react.useCallback(
937
- (role) => {
938
- if (!user) return role === "anonymous";
939
- return user.role === role;
940
- },
941
- [user]
942
- );
943
- const hasPermission = react.useCallback(
944
- (permission) => {
945
- if (!user) return false;
946
- return user.permissions?.includes(permission) ?? false;
947
- },
948
- [user]
949
- );
950
- const hasAnyRole = react.useCallback(
951
- (roles) => {
952
- if (!user) return roles.includes("anonymous");
953
- return user.role ? roles.includes(user.role) : false;
954
- },
955
- [user]
956
- );
957
- const hasAllPermissions = react.useCallback(
958
- (permissions) => {
959
- if (!user || !user.permissions) return false;
960
- return permissions.every((p) => user.permissions?.includes(p));
961
- },
962
- [user]
963
- );
964
- const getUserField = react.useCallback(
965
- (path) => {
966
- const userData = user ?? ANONYMOUS_USER;
967
- const parts = path.split(".");
968
- let value = userData;
969
- for (const segment of parts) {
970
- if (value === null || value === void 0) {
971
- return void 0;
972
- }
973
- if (typeof value === "object") {
974
- value = value[segment];
975
- } else {
976
- return void 0;
977
- }
978
- }
979
- return value;
980
- },
981
- [user]
982
- );
983
- const contextValue = react.useMemo(
984
- () => ({
985
- user,
986
- isLoggedIn: user !== null,
987
- hasRole,
988
- hasPermission,
989
- hasAnyRole,
990
- hasAllPermissions,
991
- getUserField
992
- }),
993
- [user, hasRole, hasPermission, hasAnyRole, hasAllPermissions, getUserField]
994
- );
995
- return /* @__PURE__ */ jsxRuntime.jsx(UserContext.Provider, { value: contextValue, children });
996
- }
997
- function useUser() {
998
- const context = react.useContext(UserContext);
999
- if (!context) {
1000
- return {
1001
- user: null,
1002
- isLoggedIn: false,
1003
- hasRole: (role) => role === "anonymous",
1004
- hasPermission: () => false,
1005
- hasAnyRole: (roles) => roles.includes("anonymous"),
1006
- hasAllPermissions: () => false,
1007
- getUserField: () => void 0
1008
- };
1009
- }
1010
- return context;
1011
- }
1012
- function useHasRole(role) {
1013
- const { hasRole } = useUser();
1014
- return hasRole(role);
1015
- }
1016
- function useHasPermission(permission) {
1017
- const { hasPermission } = useUser();
1018
- return hasPermission(permission);
1019
- }
1020
- function useUserForEvaluation() {
1021
- const { user, isLoggedIn } = useUser();
1022
- return isLoggedIn && user ? user : void 0;
1023
- }
1024
224
 
1025
- exports.ANONYMOUS_USER = ANONYMOUS_USER;
1026
- exports.BUILT_IN_THEMES = BUILT_IN_THEMES;
1027
- exports.CurrentPagePathContext = CurrentPagePathContext;
1028
- exports.CurrentPagePathProvider = CurrentPagePathProvider;
1029
- exports.DesignThemeProvider = DesignThemeProvider;
1030
- exports.OrbitalThemeProvider = OrbitalThemeProvider;
1031
- exports.ThemeContext = ThemeContext_default;
1032
- exports.ThemeProvider = ThemeProvider;
1033
- exports.UISlotContext = UISlotContext;
1034
- exports.UISlotProvider = UISlotProvider;
1035
- exports.UserContext = UserContext;
1036
- exports.UserProvider = UserProvider;
225
+ Object.defineProperty(exports, "ANONYMOUS_USER", {
226
+ enumerable: true,
227
+ get: function () { return providers.ANONYMOUS_USER; }
228
+ });
229
+ Object.defineProperty(exports, "BUILT_IN_THEMES", {
230
+ enumerable: true,
231
+ get: function () { return providers.BUILT_IN_THEMES; }
232
+ });
233
+ Object.defineProperty(exports, "CurrentPagePathContext", {
234
+ enumerable: true,
235
+ get: function () { return providers.CurrentPagePathContext; }
236
+ });
237
+ Object.defineProperty(exports, "CurrentPagePathProvider", {
238
+ enumerable: true,
239
+ get: function () { return providers.CurrentPagePathProvider; }
240
+ });
241
+ Object.defineProperty(exports, "DesignThemeProvider", {
242
+ enumerable: true,
243
+ get: function () { return providers.DesignThemeProvider; }
244
+ });
245
+ Object.defineProperty(exports, "OrbitalThemeProvider", {
246
+ enumerable: true,
247
+ get: function () { return providers.OrbitalThemeProvider; }
248
+ });
249
+ Object.defineProperty(exports, "ThemeContext", {
250
+ enumerable: true,
251
+ get: function () { return providers__default.default; }
252
+ });
253
+ Object.defineProperty(exports, "ThemeProvider", {
254
+ enumerable: true,
255
+ get: function () { return providers.ThemeProvider; }
256
+ });
257
+ Object.defineProperty(exports, "UISlotContext", {
258
+ enumerable: true,
259
+ get: function () { return providers.UISlotContext; }
260
+ });
261
+ Object.defineProperty(exports, "UISlotProvider", {
262
+ enumerable: true,
263
+ get: function () { return providers.UISlotProvider; }
264
+ });
265
+ Object.defineProperty(exports, "UserContext", {
266
+ enumerable: true,
267
+ get: function () { return providers.UserContext; }
268
+ });
269
+ Object.defineProperty(exports, "UserProvider", {
270
+ enumerable: true,
271
+ get: function () { return providers.UserProvider; }
272
+ });
273
+ Object.defineProperty(exports, "useCurrentPagePath", {
274
+ enumerable: true,
275
+ get: function () { return providers.useCurrentPagePath; }
276
+ });
277
+ Object.defineProperty(exports, "useDesignTheme", {
278
+ enumerable: true,
279
+ get: function () { return providers.useDesignTheme; }
280
+ });
281
+ Object.defineProperty(exports, "useHasPermission", {
282
+ enumerable: true,
283
+ get: function () { return providers.useHasPermission; }
284
+ });
285
+ Object.defineProperty(exports, "useHasRole", {
286
+ enumerable: true,
287
+ get: function () { return providers.useHasRole; }
288
+ });
289
+ Object.defineProperty(exports, "useSlotContent", {
290
+ enumerable: true,
291
+ get: function () { return providers.useSlotContent; }
292
+ });
293
+ Object.defineProperty(exports, "useSlotHasContent", {
294
+ enumerable: true,
295
+ get: function () { return providers.useSlotHasContent; }
296
+ });
297
+ Object.defineProperty(exports, "useTheme", {
298
+ enumerable: true,
299
+ get: function () { return providers.useTheme; }
300
+ });
301
+ Object.defineProperty(exports, "useUISlots", {
302
+ enumerable: true,
303
+ get: function () { return providers.useUISlots; }
304
+ });
305
+ Object.defineProperty(exports, "useUser", {
306
+ enumerable: true,
307
+ get: function () { return providers.useUser; }
308
+ });
309
+ Object.defineProperty(exports, "useUserForEvaluation", {
310
+ enumerable: true,
311
+ get: function () { return providers.useUserForEvaluation; }
312
+ });
1037
313
  exports.resolveThemeForRuntime = resolveThemeForRuntime;
1038
314
  exports.themeTokensToCssVars = themeTokensToCssVars;
1039
- exports.useCurrentPagePath = useCurrentPagePath;
1040
- exports.useDesignTheme = useDesignTheme;
1041
- exports.useHasPermission = useHasPermission;
1042
- exports.useHasRole = useHasRole;
1043
- exports.useSlotContent = useSlotContent;
1044
- exports.useSlotHasContent = useSlotHasContent;
1045
- exports.useTheme = useTheme;
1046
- exports.useUISlots = useUISlots;
1047
- exports.useUser = useUser;
1048
- exports.useUserForEvaluation = useUserForEvaluation;