@xmachines/docs 1.0.0-beta.32 → 1.0.0-beta.34

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 (370) hide show
  1. package/api/@xmachines/play/classes/NonNullableError.md +4 -4
  2. package/api/@xmachines/play/classes/PlayError.md +4 -4
  3. package/api/@xmachines/play/functions/assertNonNullable.md +1 -1
  4. package/api/@xmachines/play/type-aliases/PlayEvent.md +2 -2
  5. package/api/@xmachines/play-actor/README.md +9 -10
  6. package/api/@xmachines/play-actor/classes/AbstractActor.md +3 -3
  7. package/api/@xmachines/play-actor/functions/typedSpec.md +7 -10
  8. package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +46 -0
  9. package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +33 -0
  10. package/api/@xmachines/play-actor/interfaces/PlaySpec.md +2 -2
  11. package/api/@xmachines/play-actor/interfaces/Routable.md +3 -3
  12. package/api/@xmachines/play-actor/interfaces/Viewable.md +4 -4
  13. package/api/@xmachines/play-dom/README.md +309 -37
  14. package/api/@xmachines/play-dom/classes/PlayRenderer.md +39 -26
  15. package/api/@xmachines/play-dom/functions/connectRenderer.md +39 -20
  16. package/api/@xmachines/play-dom/functions/createPlayUI.md +28 -0
  17. package/api/@xmachines/play-dom/functions/createRenderer.md +43 -0
  18. package/api/@xmachines/play-dom/functions/defineRegistry.md +5 -5
  19. package/api/@xmachines/play-dom/functions/renderSpec.md +43 -9
  20. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +9 -9
  21. package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +19 -9
  22. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +29 -0
  23. package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +7 -7
  24. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +14 -9
  25. package/api/@xmachines/play-dom/interfaces/EventHandle.md +6 -6
  26. package/api/@xmachines/play-dom/interfaces/MountOptions.md +14 -0
  27. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +7 -5
  28. package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +27 -0
  29. package/api/@xmachines/play-dom/type-aliases/ActionFn.md +23 -7
  30. package/api/@xmachines/play-dom/type-aliases/Actions.md +1 -1
  31. package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +114 -0
  32. package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +25 -0
  33. package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +1 -1
  34. package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +1 -1
  35. package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +39 -0
  36. package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +1 -1
  37. package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +1 -1
  38. package/api/@xmachines/play-dom/type-aliases/DomSchema.md +1 -1
  39. package/api/@xmachines/play-dom/type-aliases/MountFn.md +25 -0
  40. package/api/@xmachines/play-dom/type-aliases/RenderErrorHandler.md +23 -0
  41. package/api/@xmachines/play-dom/type-aliases/SetState.md +30 -0
  42. package/api/@xmachines/play-dom/variables/schema.md +1 -1
  43. package/api/@xmachines/play-dom-router/README.md +166 -59
  44. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  45. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  46. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +1 -1
  47. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  48. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
  49. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  50. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +4 -4
  51. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +6 -6
  52. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +3 -3
  53. package/api/@xmachines/play-dom-router/interfaces/RouteMapLike.md +3 -3
  54. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  55. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
  56. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
  57. package/api/@xmachines/play-dom-router/type-aliases/RoutableActor.md +1 -1
  58. package/api/@xmachines/play-react/README.md +166 -48
  59. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +5 -5
  60. package/api/@xmachines/play-react/functions/ActionProvider.md +21 -0
  61. package/api/@xmachines/play-react/functions/JSONUIProvider.md +21 -0
  62. package/api/@xmachines/play-react/functions/Renderer.md +21 -0
  63. package/api/@xmachines/play-react/functions/StateProvider.md +27 -0
  64. package/api/@xmachines/play-react/functions/ValidationProvider.md +21 -0
  65. package/api/@xmachines/play-react/functions/VisibilityProvider.md +21 -0
  66. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  67. package/api/@xmachines/play-react/functions/usePlayView.md +32 -0
  68. package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
  69. package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +15 -0
  70. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +27 -0
  71. package/api/@xmachines/play-react/interfaces/JSONUIProviderProps.md +21 -0
  72. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +4 -4
  73. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +3 -3
  74. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +26 -0
  75. package/api/@xmachines/play-react/interfaces/RendererProps.md +17 -0
  76. package/api/@xmachines/play-react/interfaces/StateProviderProps.md +16 -0
  77. package/api/@xmachines/play-react/interfaces/ValidationProviderProps.md +14 -0
  78. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +20 -0
  79. package/api/@xmachines/play-react/interfaces/VisibilityProviderProps.md +13 -0
  80. package/api/@xmachines/play-react/type-aliases/PlayActor.md +1 -1
  81. package/api/@xmachines/play-react/type-aliases/RenderErrorHandler.md +23 -0
  82. package/api/@xmachines/play-react/variables/ActorProvider.md +33 -0
  83. package/api/@xmachines/play-react/variables/PlayRenderer.md +5 -50
  84. package/api/@xmachines/play-react/variables/PlayUIProvider.md +43 -0
  85. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +23 -23
  86. package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
  87. package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +1 -1
  88. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
  89. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +6 -6
  90. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  91. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  92. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  93. package/api/@xmachines/play-router/classes/BaseRouteMap.md +4 -4
  94. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +23 -23
  95. package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +1 -1
  96. package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
  97. package/api/@xmachines/play-router/functions/createRouteMap.md +1 -1
  98. package/api/@xmachines/play-router/functions/createRouteMapFromMachine.md +1 -1
  99. package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +1 -1
  100. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
  101. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
  102. package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
  103. package/api/@xmachines/play-router/functions/extractRouteParams.md +1 -1
  104. package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
  105. package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
  106. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
  107. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
  108. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
  109. package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
  110. package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
  111. package/api/@xmachines/play-router/functions/routeExists.md +1 -1
  112. package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
  113. package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
  114. package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
  115. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
  116. package/api/@xmachines/play-router/interfaces/LocationLike.md +3 -3
  117. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
  118. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
  119. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +6 -6
  120. package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
  121. package/api/@xmachines/play-router/interfaces/RouteMap.md +4 -4
  122. package/api/@xmachines/play-router/interfaces/RouteMapping.md +3 -3
  123. package/api/@xmachines/play-router/interfaces/RouteMatch.md +3 -3
  124. package/api/@xmachines/play-router/interfaces/RouteNode.md +10 -10
  125. package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
  126. package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
  127. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
  128. package/api/@xmachines/play-router/interfaces/RouterBridge.md +3 -3
  129. package/api/@xmachines/play-router/interfaces/WindowLike.md +3 -3
  130. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
  131. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
  132. package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
  133. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
  134. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
  135. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
  136. package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
  137. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
  138. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
  139. package/api/@xmachines/play-solid/README.md +159 -42
  140. package/api/@xmachines/play-solid/functions/ActionProvider.md +19 -0
  141. package/api/@xmachines/play-solid/functions/JSONUIProvider.md +21 -0
  142. package/api/@xmachines/play-solid/functions/Renderer.md +21 -0
  143. package/api/@xmachines/play-solid/functions/StateProvider.md +19 -0
  144. package/api/@xmachines/play-solid/functions/ValidationProvider.md +19 -0
  145. package/api/@xmachines/play-solid/functions/VisibilityProvider.md +20 -0
  146. package/api/@xmachines/play-solid/functions/defineRegistry.md +1 -1
  147. package/api/@xmachines/play-solid/functions/useAction.md +24 -0
  148. package/api/@xmachines/play-solid/functions/useActions.md +13 -0
  149. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  150. package/api/@xmachines/play-solid/functions/useFieldValidation.md +29 -0
  151. package/api/@xmachines/play-solid/functions/useIsVisible.md +19 -0
  152. package/api/@xmachines/play-solid/functions/useOptionalValidation.md +13 -0
  153. package/api/@xmachines/play-solid/functions/usePlayView.md +30 -0
  154. package/api/@xmachines/play-solid/functions/useStateBinding.md +25 -0
  155. package/api/@xmachines/play-solid/functions/useStateStore.md +13 -0
  156. package/api/@xmachines/play-solid/functions/useStateValue.md +25 -0
  157. package/api/@xmachines/play-solid/functions/useVisibility.md +13 -0
  158. package/api/@xmachines/play-solid/interfaces/ActionProviderProps.md +12 -0
  159. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +30 -0
  160. package/api/@xmachines/play-solid/interfaces/DefineRegistryResult.md +15 -0
  161. package/api/@xmachines/play-solid/interfaces/JSONUIProviderProps.md +21 -0
  162. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +26 -0
  163. package/api/@xmachines/play-solid/interfaces/RendererProps.md +17 -0
  164. package/api/@xmachines/play-solid/interfaces/StateProviderProps.md +13 -0
  165. package/api/@xmachines/play-solid/interfaces/ValidationProviderProps.md +11 -0
  166. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +21 -0
  167. package/api/@xmachines/play-solid/type-aliases/ComponentRegistry.md +17 -0
  168. package/api/@xmachines/play-solid/type-aliases/PlayActor.md +1 -1
  169. package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +23 -0
  170. package/api/@xmachines/play-solid/type-aliases/SetState.md +21 -0
  171. package/api/@xmachines/play-solid/type-aliases/VisibilityProviderProps.md +9 -0
  172. package/api/@xmachines/play-solid/variables/ActorContext.md +13 -0
  173. package/api/@xmachines/play-solid/variables/ActorProvider.md +27 -0
  174. package/api/@xmachines/play-solid/variables/PlayRenderer.md +5 -18
  175. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +26 -0
  176. package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
  177. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +24 -24
  178. package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +1 -1
  179. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +1 -1
  180. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +3 -3
  181. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +6 -6
  182. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  183. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  184. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  185. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
  186. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  187. package/api/@xmachines/play-svelte/README.md +142 -27
  188. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  189. package/api/@xmachines/play-svelte/functions/getActorContext.md +21 -0
  190. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +19 -0
  191. package/api/@xmachines/play-svelte/functions/setActorContext.md +19 -0
  192. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +40 -0
  193. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +6 -5
  194. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +24 -0
  195. package/api/@xmachines/play-svelte/type-aliases/PlayActor.md +9 -0
  196. package/api/@xmachines/play-svelte/type-aliases/RenderErrorHandler.md +7 -0
  197. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
  198. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  199. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +1 -1
  200. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +4 -4
  201. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +6 -6
  202. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  203. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  204. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  205. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
  206. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
  207. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  208. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +1 -1
  209. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +4 -4
  210. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  211. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +6 -6
  212. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  213. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  214. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
  215. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
  216. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +23 -23
  217. package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +1 -1
  218. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +1 -1
  219. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  220. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
  221. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +6 -6
  222. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  223. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  224. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
  225. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  226. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  227. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
  228. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
  229. package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +24 -24
  230. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +1 -1
  231. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +1 -1
  232. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +6 -6
  233. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  234. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  235. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  236. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
  237. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  238. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +3 -3
  239. package/api/@xmachines/play-vue/README.md +137 -40
  240. package/api/@xmachines/play-vue/functions/defineRegistry.md +2 -2
  241. package/api/@xmachines/play-vue/functions/getPlayViewContext.md +28 -0
  242. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  243. package/api/@xmachines/play-vue/interfaces/ActionProviderProps.md +12 -0
  244. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +25 -0
  245. package/api/@xmachines/play-vue/interfaces/DefineRegistryResult.md +15 -0
  246. package/api/@xmachines/play-vue/interfaces/JSONUIProviderProps.md +20 -0
  247. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +24 -0
  248. package/api/@xmachines/play-vue/interfaces/RendererProps.md +17 -0
  249. package/api/@xmachines/play-vue/interfaces/StateProviderProps.md +15 -0
  250. package/api/@xmachines/play-vue/interfaces/ValidationProviderProps.md +11 -0
  251. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +21 -0
  252. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  253. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  254. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  255. package/api/@xmachines/play-vue/type-aliases/PlayActor.md +1 -1
  256. package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +23 -0
  257. package/api/@xmachines/play-vue/variables/ActionProvider.md +64 -0
  258. package/api/@xmachines/play-vue/variables/JSONUIProvider.md +96 -0
  259. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  260. package/api/@xmachines/play-vue/variables/Renderer.md +79 -0
  261. package/api/@xmachines/play-vue/variables/StateProvider.md +79 -0
  262. package/api/@xmachines/play-vue/variables/ValidationProvider.md +55 -0
  263. package/api/@xmachines/play-vue/variables/VisibilityProvider.md +40 -0
  264. package/api/@xmachines/play-vue-router/classes/RouteMap.md +4 -4
  265. package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +4 -4
  266. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +24 -24
  267. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
  268. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +6 -6
  269. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +3 -3
  270. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
  271. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
  272. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
  273. package/api/@xmachines/play-xstate/classes/PlayerActor.md +24 -24
  274. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
  275. package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
  276. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
  277. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
  278. package/api/@xmachines/play-xstate/functions/definePlayer.md +1 -1
  279. package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
  280. package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
  281. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
  282. package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
  283. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
  284. package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
  285. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
  286. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
  287. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
  288. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
  289. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
  290. package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
  291. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
  292. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
  293. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
  294. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
  295. package/api/@xmachines/shared/functions/defineXmVitestConfig.md +1 -1
  296. package/api/@xmachines/shared/functions/xmAliases.md +1 -1
  297. package/api/_media/README.md +404 -0
  298. package/examples/@xmachines/play-dom-demo/README.md +42 -22
  299. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
  300. package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
  301. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  302. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  303. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  304. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  305. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  306. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  307. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  308. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  309. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  310. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  311. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  312. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  313. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  314. package/examples/@xmachines/play-react-demo/README.md +53 -46
  315. package/examples/@xmachines/play-react-demo/functions/App.md +1 -1
  316. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  317. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  318. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  319. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  320. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
  321. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  322. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  323. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  324. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  325. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  326. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  327. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  328. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  329. package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
  330. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  331. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  332. package/examples/@xmachines/play-solid-demo/README.md +53 -34
  333. package/examples/@xmachines/play-solid-demo/functions/App.md +1 -1
  334. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  335. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  336. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  337. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  338. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
  339. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  340. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  341. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  342. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  343. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  344. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  345. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  346. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  347. package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
  348. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  349. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
  350. package/examples/@xmachines/play-svelte-demo/README.md +23 -20
  351. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +8 -10
  352. package/examples/@xmachines/play-sveltekit-router-demo/README.md +10 -12
  353. package/examples/@xmachines/play-vue-demo/README.md +55 -37
  354. package/examples/form-validation.md +112 -41
  355. package/examples/routing-patterns.md +9 -19
  356. package/guides/README.md +8 -0
  357. package/guides/actor-model.md +180 -0
  358. package/guides/getting-started.md +54 -37
  359. package/guides/installation.md +6 -6
  360. package/guides/signals.md +166 -0
  361. package/guides/state-machines.md +288 -0
  362. package/package.json +2 -2
  363. package/rfc/play.md +62 -35
  364. package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +0 -17
  365. package/api/@xmachines/play-dom/interfaces/DefineRegistryOptions.md +0 -23
  366. package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +0 -23
  367. package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +0 -23
  368. package/api/@xmachines/play-svelte/interfaces/PlayRendererProps.md +0 -21
  369. package/api/@xmachines/play-svelte/variables/getBoundProp.md +0 -7
  370. package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +0 -21
@@ -0,0 +1,404 @@
1
+ [Documentation](../../README.md) / @xmachines/play-dom
2
+
3
+ # @xmachines/play-dom
4
+
5
+ **Vanilla DOM renderer for XMachines**
6
+
7
+ Framework-free view rendering driven by an XState v5 actor's `currentView` TC39 Signal. Implements the same catalog-typed `defineRegistry` / `ComponentFn` / `ActionFn` API surface as `@json-render/react`, `/solid`, `/vue`, and `/svelte`.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ npm install @xmachines/play-dom @json-render/core zod
13
+ ```
14
+
15
+ ## Key Exports
16
+
17
+ | Export | Description |
18
+ | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
19
+ | `createPlayUI(registryResult, options?)` | Batteries-included factory: returns `mount(actor, container) → disconnect` — parallel to `PlayUIProvider` in framework packages |
20
+ | `createRenderer(catalog, componentMap)` | One-call factory: returns `mount(actor, container, options?) → disconnect` |
21
+ | `connectRenderer(options)` | Functional API: connect actor → DOM with full options |
22
+ | `defineRegistry(catalog, { components, actions })` | Build a catalog-typed `DomRegistry` with typed action handlers |
23
+ | `UIProviderOptions` | Standard options interface: `validationFunctions`, `navigate`, `functions`, `onRenderError`, `fallback` |
24
+ | `PlayRenderer` | Class-based renderer — `connect()` / `disconnect()` lifecycle |
25
+ | `schema` | DOM schema for `defineCatalog` (mirrors `@json-render/react/schema`) |
26
+ | `ComponentFn<C, K>` | Catalog-typed DOM component function type |
27
+ | `ComponentContext<C, K>` | Context passed to each `ComponentFn` — `props`, `on`, `emit`, `children`, `bindings`, `ctx` |
28
+ | `ActionFn<C, K>` | `(params, setState, state) => Promise<void>` — catalog-typed action handler |
29
+ | `SetState` | `(updater: prev => next) => void` — write to the local state store |
30
+ | `BaseComponentProps<P>` | Base type for catalog component prop definitions |
31
+ | `CatalogHasActions<C>` | Conditional type: `true` when catalog declares actions |
32
+ | `renderSpec(spec, store, registry, send, handlers)` | Pure Spec → DOM renderer (advanced use) |
33
+
34
+ ## Quick Start — `createPlayUI`
35
+
36
+ The standard entry point — mirrors `PlayUIProvider` in framework packages. Pass a `registryResult` (from `defineRegistry`) plus optional `UIProviderOptions`, and get back a `mount` function:
37
+
38
+ ```typescript
39
+ import { defineRegistry, createPlayUI, schema } from "@xmachines/play-dom";
40
+ import { defineCatalog } from "@json-render/core";
41
+ import { z } from "zod";
42
+ import type { ComponentFn } from "@xmachines/play-dom";
43
+
44
+ // 1. Define catalog
45
+ const catalog = defineCatalog(schema, {
46
+ components: {
47
+ Home: { props: z.object({ title: z.string() }) },
48
+ Login: { props: z.object({ title: z.string(), username: z.string().optional() }) },
49
+ },
50
+ actions: {
51
+ login: { params: z.object({ username: z.string() }) },
52
+ logout: {},
53
+ },
54
+ });
55
+
56
+ // 2. Build registry with typed action handlers
57
+ const registryResult = defineRegistry(catalog, {
58
+ components: {
59
+ Home: ({ props }) => {
60
+ const el = document.createElement("section");
61
+ el.textContent = props.title;
62
+ return el;
63
+ },
64
+ Login: ({ props, on }) => {
65
+ const section = document.createElement("section");
66
+ const button = document.createElement("button");
67
+ button.textContent = "Log In";
68
+ const submit = on("submit");
69
+ button.addEventListener("click", () => submit.emit());
70
+ section.append(button);
71
+ return section;
72
+ },
73
+ },
74
+ actions: {
75
+ login: async (params) => {
76
+ if (!params) return;
77
+ actor.send({ type: "auth.login", username: params.username });
78
+ },
79
+ logout: async () => actor.send({ type: "auth.logout" }),
80
+ },
81
+ });
82
+
83
+ // 3. Create the UI factory (once, at module level)
84
+ const ui = createPlayUI(registryResult, {
85
+ onRenderError: (error, elementType) => console.warn(`<${elementType}> crashed:`, error),
86
+ fallback: (() => {
87
+ const el = document.createElement("p");
88
+ el.textContent = "Loading…";
89
+ return el;
90
+ })(),
91
+ });
92
+
93
+ // 4. Mount when actor and container are ready
94
+ const actor = createPlayer()();
95
+ actor.start();
96
+
97
+ const disconnect = ui.mount(actor, document.getElementById("app")!);
98
+
99
+ // Cleanup:
100
+ disconnect();
101
+ ```
102
+
103
+ ## Quick Start — `createRenderer`
104
+
105
+ The lower-level one-call pattern — takes a catalog and component map directly:
106
+
107
+ ```typescript
108
+ import { createRenderer, schema } from "@xmachines/play-dom";
109
+ import { defineCatalog } from "@json-render/core";
110
+ import { z } from "zod";
111
+ import type { ComponentFn } from "@xmachines/play-dom";
112
+
113
+ // 1. Define catalog
114
+ const catalog = defineCatalog(schema, {
115
+ components: {
116
+ Home: { props: z.object({ title: z.string() }) },
117
+ Login: { props: z.object({ title: z.string(), username: z.string().optional() }) },
118
+ },
119
+ actions: {
120
+ login: { params: z.object({ username: z.string() }) },
121
+ logout: {},
122
+ },
123
+ });
124
+ type AppCatalog = typeof catalog;
125
+
126
+ // 2. Implement components
127
+ const Home: ComponentFn<AppCatalog, "Home"> = ({ props }) => {
128
+ const el = document.createElement("section");
129
+ el.textContent = props.title;
130
+ return el;
131
+ };
132
+
133
+ const Login: ComponentFn<AppCatalog, "Login"> = ({ props, on }) => {
134
+ const section = document.createElement("section");
135
+ const input = document.createElement("input");
136
+ input.value = props.username ?? "";
137
+ input.addEventListener("input", () => ctx.store.update((s) => ({ ...s, username: input.value })));
138
+
139
+ const button = document.createElement("button");
140
+ button.textContent = "Log In";
141
+ const submit = on("submit");
142
+ button.addEventListener("click", () => submit.emit());
143
+
144
+ section.append(input, button);
145
+ return section;
146
+ };
147
+
148
+ // 3. Create the renderer factory (once, at module level)
149
+ const mount = createRenderer(catalog, { Home, Login });
150
+
151
+ // 4. Mount when actor and container are ready
152
+ const actor = createPlayer()();
153
+ actor.start();
154
+
155
+ const disconnect = mount(actor, document.getElementById("app")!);
156
+
157
+ // Cleanup:
158
+ disconnect();
159
+ ```
160
+
161
+ ## `defineRegistry` — Full Control
162
+
163
+ When you need `registryResult.executeAction()` or want to share the registry with `connectRenderer`:
164
+
165
+ ```typescript
166
+ import { defineRegistry, connectRenderer, schema } from "@xmachines/play-dom";
167
+ import { defineCatalog } from "@json-render/core";
168
+ import { z } from "zod";
169
+
170
+ const catalog = defineCatalog(schema, {
171
+ components: {
172
+ Home: { props: z.object({ title: z.string() }) },
173
+ },
174
+ actions: {
175
+ login: { params: z.object({ username: z.string() }) },
176
+ logout: {},
177
+ },
178
+ });
179
+
180
+ // Action handlers receive (params, setState, state)
181
+ // - params: resolved from the spec's on.submit.params (e.g. { $state: "/username" })
182
+ // - setState: write to the local state store (e.g. to clear a form)
183
+ // - state: current local state store snapshot
184
+ const registryResult = defineRegistry(catalog, {
185
+ components: {
186
+ Home: ({ props }) => {
187
+ const el = document.createElement("section");
188
+ el.textContent = props.title;
189
+ return el;
190
+ },
191
+ },
192
+ actions: {
193
+ login: async (params, setState) => {
194
+ if (!params) return;
195
+ actor.send({ type: "auth.login", username: params.username });
196
+ setState((prev) => ({ ...prev, username: "" })); // clear the form
197
+ },
198
+ logout: async () => actor.send({ type: "auth.logout" }),
199
+ },
200
+ });
201
+
202
+ const disconnect = connectRenderer({
203
+ actor,
204
+ registry: registryResult.registry,
205
+ registryResult, // wires setState/state from xstate store automatically
206
+ container: document.getElementById("app")!,
207
+ });
208
+ ```
209
+
210
+ ## Component API
211
+
212
+ ### `ComponentFn<C, K>` — component function signature
213
+
214
+ ```typescript
215
+ const MyCard: ComponentFn<AppCatalog, "Card"> = ({
216
+ props, // catalog-typed props for this component
217
+ children, // Node[] — rendered child nodes
218
+ on, // (eventName) => EventHandle — get emit() for catalog-declared events
219
+ emit, // (eventName) => void — fire an event directly
220
+ bindings, // Record<string, string> — $bindState paths for two-way bindings
221
+ ctx, // DomRenderContext — store, send, handlers, loading, functions
222
+ }) => {
223
+ const el = document.createElement("div");
224
+ el.append(...children);
225
+ return el;
226
+ };
227
+ ```
228
+
229
+ ### Two-way binding with `$bindState`
230
+
231
+ In the view spec:
232
+
233
+ ```json
234
+ { "username": { "$bindState": "/username" } }
235
+ ```
236
+
237
+ In the component:
238
+
239
+ ```typescript
240
+ const Login: ComponentFn<AppCatalog, "Login"> = ({ props, ctx }) => {
241
+ const input = document.createElement("input");
242
+ input.value = props.username ?? "";
243
+ // Write back to the store on user input
244
+ input.addEventListener("input", () => {
245
+ ctx.store.update((s) => ({ ...s, username: input.value }));
246
+ });
247
+ return input;
248
+ };
249
+ ```
250
+
251
+ ### `on()` — event handle
252
+
253
+ ```typescript
254
+ const submit = on("submit"); // EventHandle
255
+ if (submit.bound) {
256
+ button.addEventListener("click", (e) => {
257
+ if (submit.shouldPreventDefault) e.preventDefault();
258
+ submit.emit(); // resolves params from store, calls action handler
259
+ });
260
+ }
261
+ ```
262
+
263
+ ### `ActionFn` — action handler signature
264
+
265
+ ```typescript
266
+ // Full signature — all three params are available
267
+ login: async (params, setState, state) => {
268
+ actor.send({ type: "auth.login", username: params!.username });
269
+ setState(prev => ({ ...prev, username: "" }));
270
+ console.log("previous state was:", state);
271
+ },
272
+
273
+ // Params-only — setState/state can be omitted if unused
274
+ logout: async () => actor.send({ type: "auth.logout" }),
275
+ route: async (params) => actor.send({ type: "play.route", to: params!.to }),
276
+ ```
277
+
278
+ ## Spec Features
279
+
280
+ `renderSpec` / `renderElement` supports these spec directives:
281
+
282
+ | Directive | Description |
283
+ | ------------------------------------------------------ | ------------------------------------------------------------------------------------- |
284
+ | `visible` | Boolean or `{ $state: "/path" }` — hide element when false |
285
+ | `on.submit` / `on.click` | Action binding — `{ action: "login", params: { username: { $state: "/username" } } }` |
286
+ | `repeat: { statePath, key? }` | Render children once per item in the state array at `statePath` |
287
+ | `watch: { "/path": actionBinding }` | Fire action when store path changes after mount |
288
+ | `props.username: { $bindState: "/username" }` | Two-way binding — read from store, write back via `ctx.store.update()` |
289
+ | `props.value: { $state: "/value" }` | Read-only store reference |
290
+ | `props.label: { $computed: "computeFn", args: [...] }` | Computed prop via `functions` map |
291
+
292
+ ## `PlayRenderer` — class API
293
+
294
+ ```typescript
295
+ import { PlayRenderer, defineRegistry } from "@xmachines/play-dom";
296
+
297
+ const { registry, registryResult } = defineRegistry(catalog, { components, actions });
298
+
299
+ const renderer = new PlayRenderer(document.getElementById("app")!, actor, registry, {
300
+ registryResult,
301
+ });
302
+
303
+ renderer.connect(); // starts watching actor.currentView
304
+ renderer.disconnect(); // stops watching, clears container
305
+
306
+ // double-connect is safe — connect() calls disconnect() internally if already connected
307
+ ```
308
+
309
+ ## Options Reference
310
+
311
+ ### `ConnectRendererOptions` / `PlayDomOptions`
312
+
313
+ | Option | Type | Description |
314
+ | ---------------- | ------------------------------- | ----------------------------------------------------------------------------- |
315
+ | `actor` | `AbstractActor & Viewable` | Actor providing `currentView` signal |
316
+ | `registry` | `DomRegistry` | Component renderer map from `defineRegistry` |
317
+ | `registryResult` | `DefineRegistryResult` | Preferred — auto-wires `setState`/`state` from xstate store |
318
+ | `handlers` | `Record<string, ActionHandler>` | Pre-resolved handlers (legacy / advanced) |
319
+ | `container` | `HTMLElement` | DOM element to render into |
320
+ | `fallback` | `HTMLElement \| null` | Shown on initial mount when view is `null` (initial mount only) |
321
+ | `store` | `StateStore` | External store — controlled mode, overrides `spec.state` |
322
+ | `loading` | `boolean` | Streaming mode — suppresses missing-child warnings, exposes `ctx.ctx.loading` |
323
+
324
+ ## Learn More
325
+
326
+ - [DOM Router adapter `@xmachines/play-dom-router`](../play-dom-router/README.md)
327
+ - [API reference](../../_media/README.md)
328
+ - [Play RFC](../../packages/docs/rfc/play.md)
329
+
330
+ @xmachines/play-dom — Vanilla DOM renderer for XMachines Play architecture.
331
+
332
+ Public API split into two layers:
333
+
334
+ **XMachines layer** (this package):
335
+
336
+ - `createRenderer()` — one-call factory: returns `mount(actor, container, options?) → disconnect`
337
+ - `PlayRenderer` — class-based renderer with `connect()` / `disconnect()` lifecycle
338
+ - `connectRenderer()` — functional API (backward-compat alternative to `PlayRenderer`)
339
+ - `ConnectRendererOptions`, `PlayDomOptions`
340
+
341
+ **json-render layer** (upstreamable to @json-render/dom):
342
+
343
+ - `defineRegistry` — build a catalog-typed DomRegistry
344
+ - `renderSpec` — pure Spec → DOM renderer (uses resolveElementProps from core)
345
+ - `ComponentFn` — catalog-typed component function type
346
+ - `ComponentContext` — catalog-typed render context (props, emit, on, children, bindings)
347
+ - `ComponentRegistry` — catalog-typed registry input type
348
+ - `DomComponentRenderer` — raw element-level renderer type
349
+ - `DomRegistry` — raw registry type
350
+ - `DomRenderContext` — raw render context
351
+ - `EventHandle` — event handle returned by on()
352
+ - `SetState` — state updater function passed to ActionFn
353
+ - `CatalogHasActions` — conditional type: true when catalog declares actions
354
+ - `BaseComponentProps` — base props type for catalog component definitions
355
+
356
+ ## Classes
357
+
358
+ - [PlayRenderer](classes/PlayRenderer.md)
359
+
360
+ ## Interfaces
361
+
362
+ - [ComponentContext](interfaces/ComponentContext.md)
363
+ - [ConnectRendererOptions](interfaces/ConnectRendererOptions.md)
364
+ - [CreatePlayUIOptions](interfaces/CreatePlayUIOptions.md)
365
+ - [DefineRegistryResult](interfaces/DefineRegistryResult.md)
366
+ - [DomRenderContext](interfaces/DomRenderContext.md)
367
+ - [EventHandle](interfaces/EventHandle.md)
368
+ - [MountOptions](interfaces/MountOptions.md)
369
+ - [PlayDomOptions](interfaces/PlayDomOptions.md)
370
+ - [UIProviderOptions](interfaces/UIProviderOptions.md)
371
+
372
+ ## Type Aliases
373
+
374
+ - [ActionFn](type-aliases/ActionFn.md)
375
+ - [Actions](type-aliases/Actions.md)
376
+ - [BaseComponentProps](type-aliases/BaseComponentProps.md)
377
+ - [CatalogHasActions](type-aliases/CatalogHasActions.md)
378
+ - [ComponentFn](type-aliases/ComponentFn.md)
379
+ - [ComponentRegistry](type-aliases/ComponentRegistry.md)
380
+ - [DefineRegistryOptions](type-aliases/DefineRegistryOptions.md)
381
+ - [DomComponentRenderer](type-aliases/DomComponentRenderer.md)
382
+ - [DomRegistry](type-aliases/DomRegistry.md)
383
+ - [DomSchema](type-aliases/DomSchema.md)
384
+ - [MountFn](type-aliases/MountFn.md)
385
+ - [RenderErrorHandler](type-aliases/RenderErrorHandler.md)
386
+ - [SetState](type-aliases/SetState.md)
387
+
388
+ ## Variables
389
+
390
+ - [schema](variables/schema.md)
391
+
392
+ ## Functions
393
+
394
+ - [connectRenderer](functions/connectRenderer.md)
395
+ - [createPlayUI](functions/createPlayUI.md)
396
+ - [createRenderer](functions/createRenderer.md)
397
+ - [defineRegistry](functions/defineRegistry.md)
398
+ - [renderSpec](functions/renderSpec.md)
399
+
400
+ ## References
401
+
402
+ ### RenderErrorHandler
403
+
404
+ Re-exports [RenderErrorHandler](type-aliases/RenderErrorHandler.md)
@@ -28,44 +28,64 @@ Then open `http://localhost:5173`.
28
28
  Use this order to understand the implementation:
29
29
 
30
30
  1. `src/main.ts` calls `definePlayer({ machine: authMachine })` and starts the actor.
31
- 2. `initShell(actor, app)` from `src/shell.ts` builds the HTML scaffold and registers all event listeners.
32
- 3. `makeComponents(actor)` constructs a `DomRegistry` of stateless and stateful `DomComponentRenderer` functions.
33
- 4. `connectRenderer({ actor, registry, container })` wires the registry to the actor — view switches happen automatically when actor state changes.
34
- 5. `watchSignal(actor.state, ...)` drives nav login/logout button visibility and the debug panel.
31
+ 2. `initShell(actor, app)` from `src/shell.ts` builds the HTML scaffold, mounts a reactive `NavBar`, and wires the debug panel.
32
+ 3. `defineRegistry(authCatalog, { components, actions })` builds the typed `registryResult` real async action handlers dispatching to `actor.send()`.
33
+ 4. `connectRenderer({ actor, registry, container, registryResult })` wires the registry to the actor — view switches happen automatically when `actor.currentView` changes.
34
+ 5. `watchSignal(actor.state, ...)` and `watchSignal(actor.currentRoute, ...)` drive the debug panel updates.
35
35
  6. Browser tests in `test/browser/` validate startup rendering and auth interactions.
36
36
 
37
37
  ```ts
38
38
  // src/main.ts (shape)
39
- const createPlayer = definePlayer({ machine: authMachine });
40
- const actor = createPlayer();
39
+ const actor = definePlayer({ machine: authMachine })();
41
40
  actor.start();
42
41
 
43
42
  const app = document.getElementById("app");
44
- if (app) {
45
- initShell(actor, app);
46
- }
43
+ if (app) initShell(actor, app);
47
44
  ```
48
45
 
49
46
  ```ts
50
47
  // src/shell.ts (shape)
48
+ const registryResult = defineRegistry(authCatalog, {
49
+ components: {
50
+ Home,
51
+ About,
52
+ Contact,
53
+ Login,
54
+ Dashboard,
55
+ Overview,
56
+ Stats,
57
+ Profile,
58
+ Settings,
59
+ Navigation,
60
+ NavBar: NavBarView,
61
+ },
62
+ actions: {
63
+ login: async (args) =>
64
+ actor.send({
65
+ type: "auth.login",
66
+ username: assertNonNullable(args, "args").username,
67
+ }),
68
+ logout: async () => actor.send({ type: "auth.logout" }),
69
+ route: async (args) => {
70
+ const { to, params } = assertNonNullable(args, "args");
71
+ actor.send({
72
+ type: "play.route",
73
+ to,
74
+ ...(params != null && { params }),
75
+ });
76
+ },
77
+ },
78
+ });
79
+
51
80
  const disconnectRenderer = connectRenderer({
52
81
  actor,
53
- registry,
82
+ registry: registryResult.registry,
54
83
  container: viewContent,
84
+ registryResult,
55
85
  });
56
86
 
57
- const unwatchState = watchSignal(actor.state, () => {
58
- const snapshot = actor.getSnapshot();
59
- navLogin.hidden = snapshot.context.isAuthenticated;
60
- navLogout.hidden = !snapshot.context.isAuthenticated;
61
- });
62
- ```
63
-
64
- ```ts
65
- // src/shell.ts — sending events (shape)
66
- actor.send({ type: "play.route", to: "#login" });
67
- actor.send({ type: "auth.login", username });
68
- actor.send({ type: "auth.logout" });
87
+ const unwatchState = watchSignal(actor.state, () => updateDebugPanel(actor));
88
+ const unwatchRoute = watchSignal(actor.currentRoute, () => updateDebugPanel(actor));
69
89
  ```
70
90
 
71
91
  ## Key Files
@@ -6,7 +6,7 @@
6
6
  function createNavBar(actor, container): () => void;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/NavBar.ts:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/examples/demo/src/components/NavBar.ts#L15)
9
+ Defined in: [play-dom/examples/demo/src/components/NavBar.ts:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-dom/examples/demo/src/components/NavBar.ts#L15)
10
10
 
11
11
  Create and mount a reactive NavBar into the given container element.
12
12
  Returns a cleanup function to stop watching.
@@ -6,7 +6,7 @@
6
6
  function initShell(actor, appElement): () => void;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/shell.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/examples/demo/src/shell.ts#L33)
9
+ Defined in: [play-dom/examples/demo/src/shell.ts:35](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-dom/examples/demo/src/shell.ts#L35)
10
10
 
11
11
  ## Parameters
12
12
 
@@ -6,4 +6,4 @@
6
6
  type AuthCatalog = typeof authCatalog;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/examples/demo/src/catalog.ts#L6)
9
+ Defined in: [play-dom/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-dom/examples/demo/src/catalog.ts#L6)
@@ -6,4 +6,4 @@
6
6
  const About: ComponentFn<AuthCatalog, "About">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/About.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/examples/demo/src/components/About.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/About.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-dom/examples/demo/src/components/About.ts#L4)
@@ -6,4 +6,4 @@
6
6
  const Contact: ComponentFn<AuthCatalog, "Contact">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Contact.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/examples/demo/src/components/Contact.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Contact.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-dom/examples/demo/src/components/Contact.ts#L4)
@@ -6,4 +6,4 @@
6
6
  const Dashboard: ComponentFn<AuthCatalog, "Dashboard">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Dashboard.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/examples/demo/src/components/Dashboard.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Dashboard.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-dom/examples/demo/src/components/Dashboard.ts#L4)
@@ -6,4 +6,4 @@
6
6
  const Home: ComponentFn<AuthCatalog, "Home">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Home.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/examples/demo/src/components/Home.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Home.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-dom/examples/demo/src/components/Home.ts#L4)
@@ -6,4 +6,4 @@
6
6
  const Login: ComponentFn<AuthCatalog, "Login">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Login.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/examples/demo/src/components/Login.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Login.ts:7](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-dom/examples/demo/src/components/Login.ts#L7)
@@ -6,4 +6,4 @@
6
6
  const NavBarView: ComponentFn<AuthCatalog, "NavBar">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/NavBarView.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/examples/demo/src/components/NavBarView.ts#L13)
9
+ Defined in: [play-dom/examples/demo/src/components/NavBarView.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-dom/examples/demo/src/components/NavBarView.ts#L13)
@@ -6,4 +6,4 @@
6
6
  const Navigation: ComponentFn<AuthCatalog, "Navigation">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Navigation.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/examples/demo/src/components/Navigation.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Navigation.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-dom/examples/demo/src/components/Navigation.ts#L4)
@@ -6,4 +6,4 @@
6
6
  const Overview: ComponentFn<AuthCatalog, "Overview">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Overview.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/examples/demo/src/components/Overview.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Overview.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-dom/examples/demo/src/components/Overview.ts#L4)
@@ -6,4 +6,4 @@
6
6
  const Profile: ComponentFn<AuthCatalog, "Profile">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Profile.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/examples/demo/src/components/Profile.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Profile.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-dom/examples/demo/src/components/Profile.ts#L4)
@@ -6,4 +6,4 @@
6
6
  const Settings: ComponentFn<AuthCatalog, "Settings">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Settings.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/examples/demo/src/components/Settings.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Settings.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-dom/examples/demo/src/components/Settings.ts#L4)
@@ -6,4 +6,4 @@
6
6
  const Stats: ComponentFn<AuthCatalog, "Stats">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Stats.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/examples/demo/src/components/Stats.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Stats.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-dom/examples/demo/src/components/Stats.ts#L4)
@@ -169,4 +169,4 @@ const authCatalog: Catalog<
169
169
  >;
170
170
  ```
171
171
 
172
- Defined in: [play-dom/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/examples/demo/src/catalog.ts#L5)
172
+ Defined in: [play-dom/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-dom/examples/demo/src/catalog.ts#L5)