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