@almadar/ui 5.74.0 → 5.76.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/dist/avl/index.cjs +39646 -43579
  2. package/dist/avl/index.css +0 -504
  3. package/dist/avl/index.d.ts +43 -43
  4. package/dist/avl/index.js +38906 -42838
  5. package/dist/components/avl/atoms/AvlApplication.d.ts +1 -1
  6. package/dist/components/avl/atoms/AvlBindingRef.d.ts +1 -1
  7. package/dist/components/avl/atoms/AvlEffect.d.ts +1 -1
  8. package/dist/components/avl/atoms/AvlEntity.d.ts +1 -1
  9. package/dist/components/avl/atoms/AvlEvent.d.ts +1 -1
  10. package/dist/components/avl/atoms/AvlField.d.ts +1 -1
  11. package/dist/components/avl/atoms/AvlFieldType.d.ts +1 -1
  12. package/dist/components/avl/atoms/AvlGuard.d.ts +1 -1
  13. package/dist/components/avl/atoms/AvlLiteral.d.ts +1 -1
  14. package/dist/components/avl/atoms/AvlOperator.d.ts +1 -1
  15. package/dist/components/avl/atoms/AvlPage.d.ts +1 -1
  16. package/dist/components/avl/atoms/AvlPersistence.d.ts +1 -1
  17. package/dist/components/avl/atoms/AvlSExpr.d.ts +1 -1
  18. package/dist/components/avl/atoms/AvlState.d.ts +2 -2
  19. package/dist/components/avl/atoms/index.d.ts +4 -4
  20. package/dist/components/avl/{molecules → lib}/avl-behavior-compose-converter.d.ts +1 -1
  21. package/dist/components/avl/{molecules → lib}/avl-elk-layout.d.ts +2 -2
  22. package/dist/components/avl/{molecules → lib}/avl-flow-converter.d.ts +1 -1
  23. package/dist/components/avl/{molecules → lib}/avl-preview-converter.d.ts +1 -1
  24. package/dist/components/avl/{molecules → lib}/avl-story-schemas.d.ts +6 -6
  25. package/dist/components/avl/{molecules → lib}/avl-zoom-band.d.ts +1 -1
  26. package/dist/components/avl/molecules/Avl3DExprTree.d.ts +1 -1
  27. package/dist/components/avl/molecules/AvlBehaviorGlyph.d.ts +1 -1
  28. package/dist/components/avl/molecules/AvlClosedCircuit.d.ts +1 -1
  29. package/dist/components/avl/molecules/AvlOrbitalUnit.d.ts +1 -1
  30. package/dist/components/avl/molecules/AvlStateMachine.d.ts +1 -1
  31. package/dist/components/avl/molecules/AvlTransitionLane.d.ts +1 -1
  32. package/dist/components/avl/molecules/BehaviorView.d.ts +1 -1
  33. package/dist/components/avl/molecules/DetailView.d.ts +1 -1
  34. package/dist/components/avl/molecules/MiniStateMachine.d.ts +1 -1
  35. package/dist/components/avl/molecules/ModuleCard.d.ts +1 -1
  36. package/dist/components/avl/molecules/OrbPreviewNode.d.ts +1 -1
  37. package/dist/components/avl/molecules/SystemNode.d.ts +1 -1
  38. package/dist/components/avl/molecules/index.d.ts +9 -9
  39. package/dist/components/avl/organisms/Avl3DApplicationScene.d.ts +1 -1
  40. package/dist/components/avl/organisms/Avl3DEffects.d.ts +1 -1
  41. package/dist/components/avl/organisms/Avl3DOrbitalScene.d.ts +1 -1
  42. package/dist/components/avl/organisms/Avl3DTraitScene.d.ts +1 -1
  43. package/dist/components/avl/organisms/Avl3DTransitionScene.d.ts +1 -1
  44. package/dist/components/avl/organisms/Avl3DViewer.d.ts +2 -2
  45. package/dist/components/avl/organisms/AvlCosmicZoom.d.ts +1 -1
  46. package/dist/components/avl/organisms/AvlLegend.d.ts +1 -1
  47. package/dist/components/avl/organisms/AvlTraitScene.d.ts +1 -1
  48. package/dist/components/avl/organisms/AvlTransitionDetail.d.ts +1 -1
  49. package/dist/components/avl/organisms/AvlTransitionScene.d.ts +1 -1
  50. package/dist/components/avl/organisms/FlowCanvas.d.ts +2 -2
  51. package/dist/components/avl/organisms/OrbInspector.d.ts +1 -1
  52. package/dist/components/avl/organisms/ZoomBreadcrumb.d.ts +1 -1
  53. package/dist/components/avl/organisms/ZoomLegend.d.ts +1 -1
  54. package/dist/components/avl/organisms/index.d.ts +2 -2
  55. package/dist/components/avl/{molecules → types}/avl-behavior-compose-types.d.ts +1 -1
  56. package/dist/components/avl/{molecules → types}/avl-canvas-types.d.ts +1 -1
  57. package/dist/components/core/atoms/index.d.ts +2 -3
  58. package/dist/components/core/molecules/Breadcrumb.d.ts +1 -1
  59. package/dist/components/core/molecules/Card.d.ts +1 -1
  60. package/dist/components/core/molecules/Chart.d.ts +0 -2
  61. package/dist/components/core/molecules/ConfirmDialog.d.ts +0 -2
  62. package/dist/components/core/molecules/DataGrid.d.ts +1 -1
  63. package/dist/components/core/molecules/DataList.d.ts +1 -1
  64. package/dist/components/core/molecules/EmptyState.d.ts +1 -1
  65. package/dist/components/core/molecules/FloatingActionButton.d.ts +1 -1
  66. package/dist/components/core/molecules/FormSectionHeader.d.ts +1 -1
  67. package/dist/components/core/molecules/GraphCanvas.d.ts +0 -2
  68. package/dist/components/core/molecules/Header.d.ts +1 -1
  69. package/dist/components/core/molecules/Menu.d.ts +1 -1
  70. package/dist/components/core/molecules/Navigation.d.ts +1 -1
  71. package/dist/components/core/molecules/OrbitalVisualization.d.ts +0 -2
  72. package/dist/components/core/molecules/PageHeader.d.ts +1 -1
  73. package/dist/components/core/molecules/RepeatableFormSection.d.ts +6 -5
  74. package/dist/components/core/molecules/Section.d.ts +0 -2
  75. package/dist/components/core/molecules/Sidebar.d.ts +1 -1
  76. package/dist/components/core/molecules/SignaturePad.d.ts +0 -2
  77. package/dist/components/core/molecules/Split.d.ts +0 -2
  78. package/dist/components/core/molecules/StatDisplay.d.ts +1 -1
  79. package/dist/components/core/molecules/SwipeableRow.d.ts +1 -1
  80. package/dist/components/core/molecules/TableView.d.ts +1 -1
  81. package/dist/components/core/molecules/Tabs.d.ts +1 -1
  82. package/dist/components/core/molecules/UploadDropZone.d.ts +1 -1
  83. package/dist/components/core/molecules/WizardContainer.d.ts +0 -2
  84. package/dist/components/core/molecules/index.d.ts +1 -1
  85. package/dist/components/core/organisms/UISlotRenderer.d.ts +1 -1
  86. package/dist/components/core/organisms/index.d.ts +4 -4
  87. package/dist/components/core/templates/index.d.ts +12 -12
  88. package/dist/components/game/{atoms → 2d/atoms}/ActionButton.d.ts +1 -1
  89. package/dist/components/game/{atoms → 2d/atoms}/ChoiceButton.d.ts +1 -1
  90. package/dist/components/game/{atoms → 2d/atoms}/ControlButton.d.ts +1 -1
  91. package/dist/components/game/{organisms → 2d/atoms}/GameAudioToggle.d.ts +1 -3
  92. package/dist/components/game/2d/atoms/GameCard.d.ts +26 -0
  93. package/dist/components/game/2d/atoms/GameIcon.d.ts +18 -0
  94. package/dist/components/game/2d/atoms/HealthBar.d.ts +26 -0
  95. package/dist/components/game/{atoms → 2d/atoms}/ItemSlot.d.ts +1 -1
  96. package/dist/components/game/{atoms → 2d/atoms}/MiniMap.d.ts +1 -1
  97. package/dist/components/game/{atoms → 2d/atoms}/ResourceCounter.d.ts +2 -2
  98. package/dist/components/game/{atoms → 2d/atoms}/ScoreDisplay.d.ts +1 -1
  99. package/dist/components/game/{atoms → 2d/atoms}/Sprite.d.ts +1 -1
  100. package/dist/components/game/{atoms → 2d/atoms}/StateIndicator.d.ts +5 -4
  101. package/dist/components/game/{atoms → 2d/atoms}/StatusEffect.d.ts +2 -2
  102. package/dist/components/game/{atoms → 2d/atoms}/WaypointMarker.d.ts +1 -1
  103. package/dist/components/game/2d/molecules/Canvas2D.d.ts +161 -0
  104. package/dist/components/game/2d/molecules/ControlGrid.d.ts +42 -0
  105. package/dist/components/game/{molecules → 2d/molecules}/GameHud.d.ts +3 -1
  106. package/dist/components/game/{molecules → 2d/molecules}/GameMenu.d.ts +1 -1
  107. package/dist/components/game/{molecules → 2d/molecules}/InventoryGrid.d.ts +3 -2
  108. package/dist/components/game/{molecules → 2d/molecules}/ResourceBar.d.ts +3 -1
  109. package/dist/components/game/{molecules → 2d/molecules}/StatBadge.d.ts +1 -1
  110. package/dist/components/game/2d/molecules/index.d.ts +107 -0
  111. package/dist/components/game/{organisms/puzzles/sequencer → 2d/organisms}/ActionPalette.d.ts +1 -1
  112. package/dist/components/game/{organisms/puzzles/sequencer → 2d/organisms}/ActionTile.d.ts +2 -2
  113. package/dist/components/game/{organisms → 2d/organisms}/BattleBoard.d.ts +4 -3
  114. package/dist/components/game/{organisms → 2d/organisms}/BoardgameBoard.d.ts +5 -5
  115. package/dist/components/game/{organisms/puzzles/builder → 2d/organisms}/BuilderBoard.d.ts +7 -3
  116. package/dist/components/game/{organisms → 2d/organisms}/CanvasEffect.d.ts +4 -4
  117. package/dist/components/game/{organisms → 2d/organisms}/CardBattlerBoard.d.ts +1 -1
  118. package/dist/components/game/{organisms → 2d/organisms}/CastleBoard.d.ts +2 -1
  119. package/dist/components/game/{organisms → 2d/organisms}/CityBuilderBoard.d.ts +1 -1
  120. package/dist/components/game/{organisms/puzzles/classifier → 2d/organisms}/ClassifierBoard.d.ts +7 -3
  121. package/dist/components/game/{organisms/puzzles/debugger → 2d/organisms}/DebuggerBoard.d.ts +7 -3
  122. package/dist/components/game/{organisms/puzzles/event-handler → 2d/organisms}/EventHandlerBoard.d.ts +1 -1
  123. package/dist/components/game/{organisms → 2d/organisms}/FishingBoard.d.ts +12 -2
  124. package/dist/components/game/{organisms → 2d/organisms}/HexStrategyBoard.d.ts +13 -6
  125. package/dist/components/game/{organisms → 2d/organisms}/HolidayRunnerBoard.d.ts +5 -5
  126. package/dist/components/game/{organisms → 2d/organisms}/MatchPuzzleBoard.d.ts +5 -5
  127. package/dist/components/game/{organisms → 2d/organisms}/MinigolfBoard.d.ts +5 -5
  128. package/dist/components/game/{organisms/puzzles/negotiator → 2d/organisms}/NegotiatorBoard.d.ts +7 -3
  129. package/dist/components/game/{organisms → 2d/organisms}/PinballBoard.d.ts +12 -4
  130. package/dist/components/game/{organisms → 2d/organisms}/PirateBoard.d.ts +13 -6
  131. package/dist/components/game/{organisms → 2d/organisms}/PlatformerBoard.d.ts +9 -14
  132. package/dist/components/game/{organisms → 2d/organisms}/RacingBoard.d.ts +13 -6
  133. package/dist/components/game/{organisms → 2d/organisms}/RoguelikeBoard.d.ts +2 -2
  134. package/dist/components/game/{organisms/puzzles/sequencer → 2d/organisms}/SequenceBar.d.ts +1 -1
  135. package/dist/components/game/{organisms/puzzles/sequencer → 2d/organisms}/SequencerBoard.d.ts +1 -1
  136. package/dist/components/game/{organisms/physics-sim → 2d/organisms}/SimulationCanvas.d.ts +3 -2
  137. package/dist/components/game/{organisms/physics-sim → 2d/organisms}/SimulationControls.d.ts +6 -1
  138. package/dist/components/game/{organisms/puzzles/simulator → 2d/organisms}/SimulatorBoard.d.ts +7 -3
  139. package/dist/components/game/{organisms → 2d/organisms}/SokobanBoard.d.ts +5 -5
  140. package/dist/components/game/{organisms → 2d/organisms}/SpaceShmupBoard.d.ts +13 -6
  141. package/dist/components/game/{organisms → 2d/organisms}/SpaceStationBoard.d.ts +5 -5
  142. package/dist/components/game/{organisms → 2d/organisms}/SportsBoard.d.ts +5 -5
  143. package/dist/components/game/{organisms/puzzles/state-architect → 2d/organisms}/StateArchitectBoard.d.ts +1 -1
  144. package/dist/components/game/{organisms/puzzles/state-architect → 2d/organisms}/StateNode.d.ts +1 -1
  145. package/dist/components/game/{organisms → 2d/organisms}/TanksBoard.d.ts +5 -5
  146. package/dist/components/game/{organisms → 2d/organisms}/TowerDefenseBoard.d.ts +1 -1
  147. package/dist/components/game/{organisms → 2d/organisms}/TraitSlot.d.ts +1 -1
  148. package/dist/components/game/{organisms → 2d/organisms}/TraitStateViewer.d.ts +1 -1
  149. package/dist/components/game/{organisms/puzzles/state-architect → 2d/organisms}/TransitionArrow.d.ts +1 -1
  150. package/dist/components/game/{organisms → 2d/organisms}/UncontrolledBattleBoard.d.ts +1 -1
  151. package/dist/components/game/{organisms → 2d/organisms}/VisualNovelBoard.d.ts +1 -9
  152. package/dist/components/game/{organisms → 2d/organisms}/WorldMapBoard.d.ts +4 -3
  153. package/dist/components/game/{templates → 2d/templates}/BattleTemplate.d.ts +2 -2
  154. package/dist/components/game/{templates → 2d/templates}/CardBattlerTemplate.d.ts +1 -1
  155. package/dist/components/game/{templates → 2d/templates}/CastleTemplate.d.ts +2 -2
  156. package/dist/components/game/{templates → 2d/templates}/CityBuilderTemplate.d.ts +1 -1
  157. package/dist/components/game/{templates → 2d/templates}/GameTemplate.d.ts +1 -1
  158. package/dist/components/game/{templates → 2d/templates}/PlatformerTemplate.d.ts +1 -1
  159. package/dist/components/game/{templates → 2d/templates}/RoguelikeTemplate.d.ts +2 -2
  160. package/dist/components/game/{templates → 2d/templates}/TopDownShooterTemplate.d.ts +1 -1
  161. package/dist/components/game/{templates → 2d/templates}/TowerDefenseTemplate.d.ts +1 -1
  162. package/dist/components/game/{templates → 2d/templates}/VisualNovelTemplate.d.ts +1 -1
  163. package/dist/components/game/{templates → 2d/templates}/WorldMapTemplate.d.ts +2 -2
  164. package/dist/components/game/3d/molecules/Canvas3D.d.ts +45 -0
  165. package/dist/components/game/{molecules → 3d/molecules}/GameCanvas3D.d.ts +3 -3
  166. package/dist/components/game/{molecules/three → 3d/molecules}/index.d.ts +22 -21
  167. package/dist/components/game/{organisms → 3d/organisms}/GameBoard3D.d.ts +1 -1
  168. package/dist/components/game/{templates → 3d/templates}/GameCanvas3DBattleTemplate.d.ts +3 -3
  169. package/dist/components/game/{templates → 3d/templates}/GameCanvas3DCastleTemplate.d.ts +3 -3
  170. package/dist/components/game/{templates → 3d/templates}/GameCanvas3DWorldMapTemplate.d.ts +3 -3
  171. package/dist/components/game/{organisms/utils → shared}/canvasEffects.d.ts +1 -1
  172. package/dist/components/game/{organisms/utils → shared}/combatPresets.d.ts +1 -1
  173. package/dist/components/game/{organisms/types → shared}/game.d.ts +2 -2
  174. package/dist/components/game/{molecules/three → shared}/hooks/useAssetLoader.d.ts +1 -1
  175. package/dist/components/game/{organisms → shared}/hooks/useBattleState.d.ts +1 -1
  176. package/dist/components/game/{organisms → shared}/hooks/useCamera.d.ts +1 -1
  177. package/dist/components/game/{organisms → shared/hooks}/useCanvasEffects.d.ts +1 -1
  178. package/dist/components/game/{molecules/three → shared}/hooks/useGameCanvas3DEvents.d.ts +1 -1
  179. package/dist/components/game/{molecules/three → shared}/hooks/useThree.d.ts +1 -1
  180. package/dist/components/game/{molecules → shared/hooks}/useUnitSpriteAtlas.d.ts +2 -2
  181. package/dist/components/game/shared/index.d.ts +21 -0
  182. package/dist/components/game/{organisms/types/isometric.d.ts → shared/isometricTypes.d.ts} +3 -7
  183. package/dist/components/game/{organisms/editor → shared/lib}/editorUtils.d.ts +6 -1
  184. package/dist/components/game/{templates → shared/lib}/game3dAssetManifest.d.ts +1 -1
  185. package/dist/components/game/{organisms/physics-sim/presets → shared/lib}/mechanics.d.ts +1 -1
  186. package/dist/components/game/{organisms/physics-sim/presets/index.d.ts → shared/lib/physicsPresets.d.ts} +2 -2
  187. package/dist/components/game/{organisms/puzzles/event-handler → shared/lib}/puzzleObject.d.ts +1 -1
  188. package/dist/components/game/{organisms → shared/providers}/GameAudioProvider.d.ts +3 -4
  189. package/dist/components/game/{organisms/utils → shared}/spriteAnimation.d.ts +1 -1
  190. package/dist/components/game/{organisms/utils → shared}/spriteSheetConstants.d.ts +1 -1
  191. package/dist/components/index.cjs +26303 -27705
  192. package/dist/components/index.css +0 -504
  193. package/dist/components/index.d.ts +5 -5
  194. package/dist/components/index.js +25707 -27155
  195. package/dist/context/index.cjs +93 -829
  196. package/dist/context/index.d.ts +8 -8
  197. package/dist/context/index.js +3 -809
  198. package/dist/hooks/index.cjs +14 -285
  199. package/dist/hooks/index.d.ts +5 -6
  200. package/dist/hooks/index.js +16 -269
  201. package/dist/hooks/useAgentChat.d.ts +7 -6
  202. package/dist/{renderer → hooks}/useClientEffects.d.ts +1 -1
  203. package/dist/hooks/useCompile.d.ts +2 -6
  204. package/dist/hooks/useDeepAgentGeneration.d.ts +4 -4
  205. package/dist/hooks/useEventBus.d.ts +5 -3
  206. package/dist/hooks/useFileSystem.d.ts +11 -1
  207. package/dist/hooks/useOrbitalHistory.d.ts +2 -2
  208. package/dist/hooks/useQuerySingleton.d.ts +5 -4
  209. package/dist/{runtime → hooks}/useResolvedSchema.d.ts +1 -1
  210. package/dist/{runtime → hooks}/useTraitStateMachine.d.ts +5 -5
  211. package/dist/hooks/useUISlots.d.ts +7 -10
  212. package/dist/lib/api-client.d.ts +4 -3
  213. package/dist/{renderer → lib}/client-effect-executor.d.ts +4 -15
  214. package/dist/{runtime → lib}/createClientEffectHandlers.d.ts +4 -4
  215. package/dist/{renderer → lib}/data-resolver.d.ts +3 -16
  216. package/dist/lib/debugRegistry.d.ts +8 -7
  217. package/dist/lib/entityDebug.d.ts +4 -3
  218. package/dist/lib/getNestedValue.d.ts +15 -3
  219. package/dist/lib/guardRegistry.d.ts +3 -2
  220. package/dist/lib/index.cjs +11 -12
  221. package/dist/lib/index.d.ts +1 -1
  222. package/dist/lib/index.js +11 -12
  223. package/dist/lib/jazari/layout.d.ts +3 -2
  224. package/dist/{renderer → lib}/offline-executor.d.ts +6 -5
  225. package/dist/lib/parseContentSegments.d.ts +2 -1
  226. package/dist/{renderer → lib}/pattern-resolver.d.ts +2 -2
  227. package/dist/{runtime → lib}/perf.d.ts +0 -2
  228. package/dist/{renderer → lib}/slot-definitions.d.ts +3 -15
  229. package/dist/{renderer → lib}/trait-binding-resolver.d.ts +6 -2
  230. package/dist/lib/visualizer/browser.d.ts +3 -2
  231. package/dist/lib/visualizer/index.d.ts +6 -5
  232. package/dist/marketing/index.cjs +6 -6
  233. package/dist/marketing/index.js +6 -6
  234. package/dist/{runtime → providers}/EntitySchemaContext.d.ts +0 -4
  235. package/dist/providers/EventBusProvider.d.ts +3 -2
  236. package/dist/providers/OfflineModeProvider.d.ts +1 -1
  237. package/dist/providers/OrbitalProvider.d.ts +5 -4
  238. package/dist/providers/SelectionProvider.d.ts +6 -5
  239. package/dist/{runtime → providers}/ServerBridge.d.ts +14 -11
  240. package/dist/{context → providers}/ThemeContext.d.ts +5 -5
  241. package/dist/{runtime → providers}/TraitProvider.d.ts +4 -3
  242. package/dist/{context → providers}/UISlotContext.d.ts +2 -2
  243. package/dist/{context → providers}/UserContext.d.ts +3 -2
  244. package/dist/providers/VerificationProvider.d.ts +2 -1
  245. package/dist/providers/index.cjs +40362 -43663
  246. package/dist/providers/index.css +0 -504
  247. package/dist/providers/index.d.ts +1 -1
  248. package/dist/providers/index.js +41036 -44336
  249. package/dist/{renderer → providers}/navigation.d.ts +7 -7
  250. package/dist/renderer/index.cjs +84 -322
  251. package/dist/renderer/index.d.ts +12 -12
  252. package/dist/renderer/index.js +30 -301
  253. package/dist/runtime/OrbPreview.d.ts +1 -1
  254. package/dist/runtime/index.cjs +41094 -45072
  255. package/dist/runtime/index.css +0 -504
  256. package/dist/runtime/index.d.ts +11 -11
  257. package/dist/runtime/index.js +40822 -44823
  258. package/dist/{hooks → types}/event-bus-types.d.ts +2 -1
  259. package/dist/{renderer/types.d.ts → types/renderer-types.d.ts} +14 -28
  260. package/dist/types/runtime-types.d.ts +21 -0
  261. package/dist/{runtime/ui → types}/slot-types.d.ts +5 -4
  262. package/locales/index.ts +1 -1
  263. package/package.json +14 -31
  264. package/dist/components/core/atoms/ThemeSelector.d.ts +0 -21
  265. package/dist/components/game/atoms/HealthBar.d.ts +0 -18
  266. package/dist/components/game/atoms/XPBar.d.ts +0 -20
  267. package/dist/components/game/atoms/index.d.ts +0 -25
  268. package/dist/components/game/molecules/ActionButtons.d.ts +0 -38
  269. package/dist/components/game/molecules/CardHand.d.ts +0 -35
  270. package/dist/components/game/molecules/CombatLog.d.ts +0 -30
  271. package/dist/components/game/molecules/CraftingRecipe.d.ts +0 -40
  272. package/dist/components/game/molecules/DPad.d.ts +0 -26
  273. package/dist/components/game/molecules/DialogueBox.d.ts +0 -66
  274. package/dist/components/game/molecules/EnemyPlate.d.ts +0 -30
  275. package/dist/components/game/molecules/GameCanvas2D.d.ts +0 -27
  276. package/dist/components/game/molecules/GameOverScreen.d.ts +0 -57
  277. package/dist/components/game/molecules/HealthPanel.d.ts +0 -31
  278. package/dist/components/game/molecules/InventoryPanel.d.ts +0 -58
  279. package/dist/components/game/molecules/IsometricCanvas.d.ts +0 -137
  280. package/dist/components/game/molecules/PlatformerCanvas.d.ts +0 -60
  281. package/dist/components/game/molecules/PowerupSlots.d.ts +0 -26
  282. package/dist/components/game/molecules/QuestTracker.d.ts +0 -20
  283. package/dist/components/game/molecules/ScoreBoard.d.ts +0 -18
  284. package/dist/components/game/molecules/TurnPanel.d.ts +0 -32
  285. package/dist/components/game/molecules/UnitCommandBar.d.ts +0 -25
  286. package/dist/components/game/molecules/index.d.ts +0 -32
  287. package/dist/components/game/molecules/three/components/PhysicsObject3D.d.ts +0 -74
  288. package/dist/components/game/molecules/three/components/index.d.ts +0 -10
  289. package/dist/components/game/molecules/three/index.cjs +0 -7798
  290. package/dist/components/game/molecules/three/index.css +0 -503
  291. package/dist/components/game/molecules/three/index.js +0 -7717
  292. package/dist/components/game/molecules/three/patterns.d.ts +0 -20
  293. package/dist/components/game/molecules/three/renderers/FeatureRenderer.d.ts +0 -38
  294. package/dist/components/game/molecules/three/renderers/FeatureRenderer3D.d.ts +0 -44
  295. package/dist/components/game/molecules/three/renderers/TileRenderer.d.ts +0 -57
  296. package/dist/components/game/molecules/three/renderers/UnitRenderer.d.ts +0 -46
  297. package/dist/components/game/molecules/three/renderers/index.d.ts +0 -11
  298. package/dist/components/game/organisms/editor/index.d.ts +0 -9
  299. package/dist/components/game/organisms/hooks/usePhysics2D.d.ts +0 -45
  300. package/dist/components/game/organisms/hooks/useSpriteAnimations.d.ts +0 -43
  301. package/dist/components/game/organisms/index.d.ts +0 -66
  302. package/dist/components/game/organisms/managers/PhysicsManager.d.ts +0 -103
  303. package/dist/components/game/organisms/physics-sim/index.d.ts +0 -7
  304. package/dist/components/game/organisms/puzzles/builder/index.d.ts +0 -2
  305. package/dist/components/game/organisms/puzzles/classifier/index.d.ts +0 -2
  306. package/dist/components/game/organisms/puzzles/debugger/index.d.ts +0 -2
  307. package/dist/components/game/organisms/puzzles/event-handler/index.d.ts +0 -8
  308. package/dist/components/game/organisms/puzzles/negotiator/index.d.ts +0 -2
  309. package/dist/components/game/organisms/puzzles/sequencer/index.d.ts +0 -8
  310. package/dist/components/game/organisms/puzzles/simulator/index.d.ts +0 -2
  311. package/dist/components/game/organisms/puzzles/state-architect/index.d.ts +0 -10
  312. package/dist/components/game/organisms/utils/combatEffects.d.ts +0 -64
  313. package/dist/components/game/templates/index.d.ts +0 -4
  314. package/dist/docs/index.cjs +0 -6969
  315. package/dist/docs/index.css +0 -1756
  316. package/dist/docs/index.d.cts +0 -574
  317. package/dist/docs/index.d.ts +0 -29
  318. package/dist/docs/index.js +0 -6926
  319. package/dist/hooks/useAgentTrace.d.ts +0 -85
  320. package/dist/hooks/useEntities.d.ts +0 -52
  321. package/dist/hooks/usePinchZoom.d.ts +0 -22
  322. package/dist/runtime/types.d.ts +0 -37
  323. package/dist/stores/entityStore.d.ts +0 -99
  324. package/dist/stores/filtering.d.ts +0 -51
  325. package/dist/stores/index.cjs +0 -217
  326. package/dist/stores/index.d.ts +0 -7
  327. package/dist/stores/index.js +0 -194
  328. /package/dist/components/avl/{molecules → hooks}/useCanvasDnd.d.ts +0 -0
  329. /package/dist/components/avl/{organisms → lib}/avl-3d-layout.d.ts +0 -0
  330. /package/dist/components/avl/{molecules → lib}/avl-layout.d.ts +0 -0
  331. /package/dist/components/avl/{organisms → lib}/avl-schema-parser.d.ts +0 -0
  332. /package/dist/components/avl/{organisms → lib}/avl-zoom-state.d.ts +0 -0
  333. /package/dist/components/avl/{derive-edit-focus.d.ts → lib/derive-edit-focus.d.ts} +0 -0
  334. /package/dist/components/avl/{molecules → lib}/wire-validation.d.ts +0 -0
  335. /package/dist/components/avl/{organisms → providers}/avl-3d-context.d.ts +0 -0
  336. /package/dist/components/avl/{atoms/types.d.ts → types/avl-atom-types.d.ts} +0 -0
  337. /package/dist/components/avl/{molecules → types}/avl-preview-types.d.ts +0 -0
  338. /package/dist/components/game/{atoms → 2d/atoms}/ComboCounter.d.ts +0 -0
  339. /package/dist/components/game/{atoms → 2d/atoms}/DamageNumber.d.ts +0 -0
  340. /package/dist/components/game/{atoms → 2d/atoms}/DialogueBubble.d.ts +0 -0
  341. /package/dist/components/game/{atoms → 2d/atoms}/TimerDisplay.d.ts +0 -0
  342. /package/dist/components/game/{atoms → 2d/atoms}/TurnIndicator.d.ts +0 -0
  343. /package/dist/components/game/{organisms/puzzles/event-handler → 2d/organisms}/EventLog.d.ts +0 -0
  344. /package/dist/components/game/{organisms/puzzles/event-handler → 2d/organisms}/ObjectRulePanel.d.ts +0 -0
  345. /package/dist/components/game/{organisms/puzzles/event-handler → 2d/organisms}/RuleEditor.d.ts +0 -0
  346. /package/dist/components/game/{organisms/physics-sim → 2d/organisms}/SimulationGraph.d.ts +0 -0
  347. /package/dist/components/game/{organisms/puzzles/state-architect → 2d/organisms}/StateJsonView.d.ts +0 -0
  348. /package/dist/components/game/{organisms → 2d/organisms}/TopDownShooterBoard.d.ts +0 -0
  349. /package/dist/components/game/{organisms/puzzles/state-architect → 2d/organisms}/VariablePanel.d.ts +0 -0
  350. /package/dist/components/game/{templates → 2d/templates}/GameShell.d.ts +0 -0
  351. /package/dist/components/game/{molecules/three → 3d/molecules}/Camera3D.d.ts +0 -0
  352. /package/dist/components/game/{molecules/three/components → 3d/molecules}/Canvas3DErrorBoundary.d.ts +0 -0
  353. /package/dist/components/game/{molecules/three/components → 3d/molecules}/Canvas3DLoadingState.d.ts +0 -0
  354. /package/dist/components/game/{molecules/three → 3d/molecules}/Lighting3D.d.ts +0 -0
  355. /package/dist/components/game/{molecules/three/components → 3d/molecules}/ModelLoader.d.ts +0 -0
  356. /package/dist/components/game/{molecules/three → 3d/molecules}/Scene3D.d.ts +0 -0
  357. /package/dist/components/game/{organisms → shared}/boardEntity.d.ts +0 -0
  358. /package/dist/components/game/{organisms/types → shared}/effects.d.ts +0 -0
  359. /package/dist/components/game/{organisms → shared}/hooks/useGameAudio.d.ts +0 -0
  360. /package/dist/components/game/{molecules/three → shared}/hooks/useRaycaster.d.ts +0 -0
  361. /package/dist/components/game/{molecules/three → shared}/hooks/useSceneGraph.d.ts +0 -0
  362. /package/dist/components/game/{organisms/utils → shared}/isometric.d.ts +0 -0
  363. /package/dist/components/game/{molecules/three/loaders → shared/lib}/AssetLoader.d.ts +0 -0
  364. /package/dist/components/game/{molecules/three/utils → shared/lib}/culling.d.ts +0 -0
  365. /package/dist/components/game/{molecules/three/utils → shared/lib}/grid3D.d.ts +0 -0
  366. /package/dist/components/game/{organisms/physics-sim/presets/types.d.ts → shared/lib/physicsTypes.d.ts} +0 -0
  367. /package/dist/components/game/{organisms/utils → shared}/makeAsset.d.ts +0 -0
  368. /package/dist/components/game/{organisms/types/spriteAnimation.d.ts → shared/spriteAnimationTypes.d.ts} +0 -0
  369. /package/dist/components/game/{organisms/hooks → shared}/useImageCache.d.ts +0 -0
  370. /package/dist/{runtime → lib}/embedded-traits.d.ts +0 -0
  371. /package/dist/{runtime → lib}/fn-form-lambda.d.ts +0 -0
  372. /package/dist/{renderer → lib}/init.d.ts +0 -0
  373. /package/dist/{runtime → lib}/orbitalsByTrait.d.ts +0 -0
  374. /package/dist/{runtime → lib}/prepareSchemaForPreview.d.ts +0 -0
  375. /package/dist/{context → lib}/themeTokens.d.ts +0 -0
  376. /package/dist/{runtime → lib}/wrapCallbackForEvent.d.ts +0 -0
  377. /package/dist/{context → providers}/CurrentPagePathContext.d.ts +0 -0
  378. /package/dist/{context → providers}/DesignThemeContext.d.ts +0 -0
  379. /package/dist/{context → providers}/OrbitalThemeProvider.d.ts +0 -0
@@ -1,679 +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
- var idCounter = 0;
37
- function generateId() {
38
- return `slot-content-${++idCounter}-${Date.now()}`;
39
- }
40
- function aggregateSlot(sources) {
41
- if (!sources) return null;
42
- const entries = Object.entries(sources);
43
- if (entries.length === 0) return null;
44
- if (entries.length === 1) return entries[0][1];
45
- const children = entries.map(([, entry]) => ({
46
- type: entry.pattern,
47
- ...entry.props
48
- }));
49
- const stackId = `slot-content-stack-${entries.map(([k]) => k).join("-")}`;
50
- return {
51
- id: stackId,
52
- pattern: "stack",
53
- props: {
54
- direction: "vertical",
55
- gap: "lg",
56
- children
57
- },
58
- priority: 0,
59
- animation: "fade",
60
- sourceTrait: MULTI_SOURCE_STACK_TRAIT
61
- };
62
- }
63
- function useUISlotManager() {
64
- const [sources, setSources] = useState(DEFAULT_SOURCES);
65
- const subscribersRef = useRef(/* @__PURE__ */ new Set());
66
- const timersRef = useRef(/* @__PURE__ */ new Map());
67
- const traitIndexRef = useRef(/* @__PURE__ */ new Map());
68
- const traitSubscribersRef = useRef(/* @__PURE__ */ new Map());
69
- const slots = useMemo(() => {
70
- const out = { ...DEFAULT_SLOTS };
71
- for (const slot of ALL_SLOTS) {
72
- out[slot] = aggregateSlot(sources[slot]);
73
- }
74
- return out;
75
- }, [sources]);
76
- useEffect(() => {
77
- return () => {
78
- timersRef.current.forEach((timer) => clearTimeout(timer));
79
- timersRef.current.clear();
80
- };
81
- }, []);
82
- const notifySubscribers = useCallback((slot, content) => {
83
- subscribersRef.current.forEach((callback) => {
84
- try {
85
- callback(slot, content);
86
- } catch (error) {
87
- log.error("Subscriber error", { error: error instanceof Error ? error : String(error) });
88
- }
89
- });
90
- }, []);
91
- const notifyTraitSubscribers = useCallback(
92
- (traitName, content) => {
93
- const subs = traitSubscribersRef.current.get(traitName);
94
- if (!subs) return;
95
- subs.forEach((callback) => {
96
- try {
97
- callback(content);
98
- } catch (error) {
99
- log.error("Trait subscriber error", { traitName, error: error instanceof Error ? error : String(error) });
100
- }
101
- });
102
- },
103
- []
104
- );
105
- const indexTraitRender = useCallback(
106
- (traitName, content) => {
107
- traitIndexRef.current.set(traitName, content);
108
- },
109
- []
110
- );
111
- const unindexTrait = useCallback((traitName) => {
112
- traitIndexRef.current.delete(traitName);
113
- }, []);
114
- const render = useCallback(
115
- (config) => {
116
- const id = generateId();
117
- const sourceKey = config.sourceTrait ?? DEFAULT_SOURCE_KEY;
118
- const content = {
119
- id,
120
- pattern: config.pattern,
121
- props: config.props ?? {},
122
- priority: config.priority ?? 0,
123
- animation: config.animation ?? "fade",
124
- onDismiss: config.onDismiss,
125
- sourceTrait: config.sourceTrait,
126
- slot: config.target,
127
- transitionEvent: config.transitionEvent,
128
- fromState: config.fromState,
129
- entity: config.entity
130
- };
131
- if (config.autoDismissMs && config.autoDismissMs > 0) {
132
- content.autoDismissAt = Date.now() + config.autoDismissMs;
133
- const timer = setTimeout(() => {
134
- setSources((prev) => {
135
- const slotSources = prev[config.target];
136
- if (slotSources && slotSources[sourceKey]?.id === id) {
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 = 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 = 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 = 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 = 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 = useCallback((callback) => {
290
- subscribersRef.current.add(callback);
291
- return () => {
292
- subscribersRef.current.delete(callback);
293
- };
294
- }, []);
295
- const hasContent = useCallback(
296
- (slot) => slots[slot] !== null,
297
- [slots]
298
- );
299
- const getContent = useCallback(
300
- (slot) => slots[slot],
301
- [slots]
302
- );
303
- const getTraitContent = useCallback(
304
- (traitName) => traitIndexRef.current.get(traitName) ?? null,
305
- []
306
- );
307
- const subscribeTrait = 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 = useCallback(
327
- (traitName, content) => {
328
- const id = generateId();
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 = createContext(null);
352
- function UISlotProvider({ children }) {
353
- const slotManager = useUISlotManager();
354
- const contextValue = useMemo(() => slotManager, [slotManager]);
355
- return /* @__PURE__ */ jsx(UISlotContext.Provider, { value: contextValue, children });
356
- }
357
- function useUISlots() {
358
- const context = 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 = 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 = 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 = 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] = 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] = 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] = useState(
571
- () => resolveMode(mode)
572
- );
573
- const appliedTheme = useMemo(
574
- () => `${theme}-${resolvedMode}`,
575
- [theme, resolvedMode]
576
- );
577
- 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
- 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 = 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 = useCallback((newMode) => {
622
- setModeState(newMode);
623
- if (!isScoped && typeof window !== "undefined") {
624
- localStorage.setItem(MODE_STORAGE_KEY, newMode);
625
- }
626
- }, []);
627
- const toggleMode = useCallback(() => {
628
- const newMode = resolvedMode === "dark" ? "light" : "dark";
629
- setMode(newMode);
630
- }, [resolvedMode, setMode]);
631
- const contextValue = 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__ */ jsx(ThemeContext.Provider, { value: contextValue, children });
654
- };
655
- function useTheme() {
656
- const context = 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;
675
-
676
- // context/themeTokens.ts
3
+ // lib/themeTokens.ts
677
4
  function themeTokensToCssVars(tokens, mode = "light", darkVariant) {
678
5
  const vars = {};
679
6
  const isDark = mode === "dark";
@@ -888,138 +215,5 @@ function resolveThemeForRuntime(theme) {
888
215
  if (typeof theme === "string") return void 0;
889
216
  return theme;
890
217
  }
891
- function OrbitalThemeProvider({ theme, children }) {
892
- const resolved = resolveThemeForRuntime(theme);
893
- const { resolvedMode } = useTheme();
894
- if (!resolved) {
895
- return /* @__PURE__ */ jsx(Fragment, { children });
896
- }
897
- const vars = themeTokensToCssVars(resolved.tokens, resolvedMode, resolved.variants?.dark);
898
- return /* @__PURE__ */ 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 = createContext(void 0);
920
- var CurrentPagePathProvider = ({
921
- value,
922
- children
923
- }) => /* @__PURE__ */ jsx(CurrentPagePathContext.Provider, { value, children });
924
- CurrentPagePathProvider.displayName = "CurrentPagePathProvider";
925
- var useCurrentPagePath = () => useContext(CurrentPagePathContext);
926
- var ANONYMOUS_USER = {
927
- id: "anonymous",
928
- role: "anonymous",
929
- permissions: []
930
- };
931
- var UserContext = createContext(null);
932
- function UserProvider({
933
- user = null,
934
- children
935
- }) {
936
- const hasRole = useCallback(
937
- (role) => {
938
- if (!user) return role === "anonymous";
939
- return user.role === role;
940
- },
941
- [user]
942
- );
943
- const hasPermission = useCallback(
944
- (permission) => {
945
- if (!user) return false;
946
- return user.permissions?.includes(permission) ?? false;
947
- },
948
- [user]
949
- );
950
- const hasAnyRole = 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 = 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 = 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 = 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__ */ jsx(UserContext.Provider, { value: contextValue, children });
996
- }
997
- function useUser() {
998
- const context = 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
218
 
1025
- 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 };