@xmachines/docs 1.0.0-beta.33 → 1.0.0-beta.35

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 (391) 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 +18 -19
  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 +102 -18
  14. package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
  15. package/api/@xmachines/play-dom/functions/connectRenderer.md +1 -1
  16. package/api/@xmachines/play-dom/functions/createPlayUI.md +28 -0
  17. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  18. package/api/@xmachines/play-dom/functions/defineRegistry.md +1 -23
  19. package/api/@xmachines/play-dom/functions/renderSpec.md +1 -1
  20. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +9 -9
  21. package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +19 -11
  22. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +29 -0
  23. package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +6 -6
  24. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +14 -14
  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 -7
  28. package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +27 -0
  29. package/api/@xmachines/play-dom/type-aliases/ActionFn.md +1 -1
  30. package/api/@xmachines/play-dom/type-aliases/Actions.md +1 -1
  31. package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +7 -7
  32. package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +1 -1
  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 +4 -4
  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 +1 -1
  42. package/api/@xmachines/play-dom/variables/schema.md +1 -1
  43. package/api/@xmachines/play-dom-router/README.md +3 -3
  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 +3 -3
  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/{RouteMapLike.md → RouteLookupContract.md} +7 -7
  53. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +6 -11
  54. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +8 -8
  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 +165 -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 +3 -2
  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/README.md +1 -0
  86. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +24 -24
  87. package/api/@xmachines/play-react-router/classes/RouteMap.md +38 -22
  88. package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +1 -1
  89. package/api/@xmachines/play-react-router/functions/createRouteMap.md +21 -0
  90. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +5 -5
  91. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +6 -6
  92. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  93. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +8 -8
  94. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  95. package/api/@xmachines/play-router/README.md +6 -6
  96. package/api/@xmachines/play-router/classes/{BaseRouteMap.md → RouteMap.md} +11 -11
  97. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +24 -24
  98. package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +2 -2
  99. package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
  100. package/api/@xmachines/play-router/functions/createRouteMap.md +6 -6
  101. package/api/@xmachines/play-router/functions/createRouteMapFromMachine.md +5 -5
  102. package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +6 -6
  103. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
  104. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
  105. package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
  106. package/api/@xmachines/play-router/functions/extractRouteParams.md +1 -1
  107. package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
  108. package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
  109. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
  110. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
  111. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
  112. package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
  113. package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
  114. package/api/@xmachines/play-router/functions/routeExists.md +1 -1
  115. package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
  116. package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
  117. package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
  118. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
  119. package/api/@xmachines/play-router/interfaces/LocationLike.md +3 -3
  120. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
  121. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
  122. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +6 -6
  123. package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
  124. package/api/@xmachines/play-router/interfaces/RouteMapping.md +8 -8
  125. package/api/@xmachines/play-router/interfaces/RouteMatch.md +3 -3
  126. package/api/@xmachines/play-router/interfaces/{RouteMap.md → RouteMatcher.md} +13 -13
  127. package/api/@xmachines/play-router/interfaces/RouteNode.md +10 -10
  128. package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
  129. package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
  130. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
  131. package/api/@xmachines/play-router/interfaces/RouterBridge.md +3 -3
  132. package/api/@xmachines/play-router/interfaces/WindowLike.md +3 -3
  133. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
  134. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
  135. package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
  136. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
  137. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
  138. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
  139. package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
  140. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
  141. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
  142. package/api/@xmachines/play-solid/README.md +158 -42
  143. package/api/@xmachines/play-solid/functions/ActionProvider.md +19 -0
  144. package/api/@xmachines/play-solid/functions/JSONUIProvider.md +21 -0
  145. package/api/@xmachines/play-solid/functions/Renderer.md +21 -0
  146. package/api/@xmachines/play-solid/functions/StateProvider.md +19 -0
  147. package/api/@xmachines/play-solid/functions/ValidationProvider.md +19 -0
  148. package/api/@xmachines/play-solid/functions/VisibilityProvider.md +20 -0
  149. package/api/@xmachines/play-solid/functions/defineRegistry.md +1 -1
  150. package/api/@xmachines/play-solid/functions/useAction.md +24 -0
  151. package/api/@xmachines/play-solid/functions/useActions.md +13 -0
  152. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  153. package/api/@xmachines/play-solid/functions/useFieldValidation.md +29 -0
  154. package/api/@xmachines/play-solid/functions/useIsVisible.md +19 -0
  155. package/api/@xmachines/play-solid/functions/useOptionalValidation.md +13 -0
  156. package/api/@xmachines/play-solid/functions/usePlayView.md +30 -0
  157. package/api/@xmachines/play-solid/functions/useStateBinding.md +25 -0
  158. package/api/@xmachines/play-solid/functions/useStateStore.md +13 -0
  159. package/api/@xmachines/play-solid/functions/useStateValue.md +25 -0
  160. package/api/@xmachines/play-solid/functions/useVisibility.md +13 -0
  161. package/api/@xmachines/play-solid/interfaces/ActionProviderProps.md +12 -0
  162. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +30 -0
  163. package/api/@xmachines/play-solid/interfaces/DefineRegistryResult.md +15 -0
  164. package/api/@xmachines/play-solid/interfaces/JSONUIProviderProps.md +21 -0
  165. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +26 -0
  166. package/api/@xmachines/play-solid/interfaces/RendererProps.md +17 -0
  167. package/api/@xmachines/play-solid/interfaces/StateProviderProps.md +13 -0
  168. package/api/@xmachines/play-solid/interfaces/ValidationProviderProps.md +11 -0
  169. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +21 -0
  170. package/api/@xmachines/play-solid/type-aliases/ComponentRegistry.md +17 -0
  171. package/api/@xmachines/play-solid/type-aliases/PlayActor.md +1 -1
  172. package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +3 -2
  173. package/api/@xmachines/play-solid/type-aliases/SetState.md +21 -0
  174. package/api/@xmachines/play-solid/type-aliases/VisibilityProviderProps.md +9 -0
  175. package/api/@xmachines/play-solid/variables/ActorContext.md +13 -0
  176. package/api/@xmachines/play-solid/variables/ActorProvider.md +27 -0
  177. package/api/@xmachines/play-solid/variables/PlayRenderer.md +5 -18
  178. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +26 -0
  179. package/api/@xmachines/play-solid-router/README.md +2 -2
  180. package/api/@xmachines/play-solid-router/classes/RouteMap.md +9 -9
  181. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +25 -25
  182. package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +1 -1
  183. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +3 -3
  184. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +3 -3
  185. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +6 -6
  186. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  187. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +8 -8
  188. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  189. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
  190. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  191. package/api/@xmachines/play-svelte/README.md +105 -25
  192. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  193. package/api/@xmachines/play-svelte/functions/getActorContext.md +21 -0
  194. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +19 -0
  195. package/api/@xmachines/play-svelte/functions/setActorContext.md +19 -0
  196. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +40 -0
  197. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +6 -6
  198. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +24 -0
  199. package/api/@xmachines/play-svelte/type-aliases/PlayActor.md +9 -0
  200. package/api/@xmachines/play-svelte/type-aliases/RenderErrorHandler.md +1 -17
  201. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +9 -9
  202. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  203. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +3 -3
  204. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +4 -4
  205. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +6 -6
  206. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +8 -8
  207. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  208. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  209. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
  210. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +9 -9
  211. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  212. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +3 -3
  213. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +4 -4
  214. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  215. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +6 -6
  216. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +8 -8
  217. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  218. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
  219. package/api/@xmachines/play-tanstack-react-router/README.md +1 -1
  220. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +38 -22
  221. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +24 -24
  222. package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +1 -1
  223. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +7 -39
  224. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +5 -5
  225. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
  226. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +6 -6
  227. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  228. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +8 -8
  229. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
  230. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  231. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  232. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
  233. package/api/@xmachines/play-tanstack-solid-router/README.md +1 -1
  234. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +9 -9
  235. package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +25 -25
  236. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +1 -1
  237. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +3 -3
  238. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +6 -6
  239. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  240. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +8 -8
  241. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  242. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
  243. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  244. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +3 -3
  245. package/api/@xmachines/play-vue/README.md +136 -40
  246. package/api/@xmachines/play-vue/functions/defineRegistry.md +2 -2
  247. package/api/@xmachines/play-vue/functions/getPlayViewContext.md +28 -0
  248. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  249. package/api/@xmachines/play-vue/interfaces/ActionProviderProps.md +12 -0
  250. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +25 -0
  251. package/api/@xmachines/play-vue/interfaces/DefineRegistryResult.md +15 -0
  252. package/api/@xmachines/play-vue/interfaces/JSONUIProviderProps.md +20 -0
  253. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +24 -0
  254. package/api/@xmachines/play-vue/interfaces/RendererProps.md +17 -0
  255. package/api/@xmachines/play-vue/interfaces/StateProviderProps.md +15 -0
  256. package/api/@xmachines/play-vue/interfaces/ValidationProviderProps.md +11 -0
  257. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +21 -0
  258. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  259. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  260. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  261. package/api/@xmachines/play-vue/type-aliases/PlayActor.md +1 -1
  262. package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +3 -2
  263. package/api/@xmachines/play-vue/variables/ActionProvider.md +64 -0
  264. package/api/@xmachines/play-vue/variables/JSONUIProvider.md +96 -0
  265. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  266. package/api/@xmachines/play-vue/variables/Renderer.md +79 -0
  267. package/api/@xmachines/play-vue/variables/StateProvider.md +79 -0
  268. package/api/@xmachines/play-vue/variables/ValidationProvider.md +55 -0
  269. package/api/@xmachines/play-vue/variables/VisibilityProvider.md +40 -0
  270. package/api/@xmachines/play-vue-router/README.md +9 -4
  271. package/api/@xmachines/play-vue-router/classes/RouteMap.md +38 -20
  272. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +25 -25
  273. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
  274. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +6 -6
  275. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +8 -8
  276. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
  277. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
  278. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
  279. package/api/@xmachines/play-xstate/README.md +1 -1
  280. package/api/@xmachines/play-xstate/classes/PlayerActor.md +26 -26
  281. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
  282. package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
  283. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
  284. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
  285. package/api/@xmachines/play-xstate/functions/definePlayer.md +1 -1
  286. package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
  287. package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
  288. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
  289. package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
  290. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
  291. package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
  292. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
  293. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
  294. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
  295. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
  296. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
  297. package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
  298. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
  299. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
  300. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
  301. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
  302. package/api/@xmachines/shared/README.md +47 -47
  303. package/api/@xmachines/shared/functions/defineXmVitestConfig.md +1 -1
  304. package/api/@xmachines/shared/functions/xmAliases.md +1 -1
  305. package/api/llms.txt +4 -2
  306. package/examples/@xmachines/play-dom-demo/README.md +44 -24
  307. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +4 -3
  308. package/examples/@xmachines/play-dom-demo/functions/initShell.md +5 -1
  309. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  310. package/examples/@xmachines/play-dom-demo/variables/About.md +4 -1
  311. package/examples/@xmachines/play-dom-demo/variables/Contact.md +4 -1
  312. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +5 -1
  313. package/examples/@xmachines/play-dom-demo/variables/Home.md +5 -1
  314. package/examples/@xmachines/play-dom-demo/variables/Login.md +5 -1
  315. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +8 -1
  316. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +5 -1
  317. package/examples/@xmachines/play-dom-demo/variables/Overview.md +5 -1
  318. package/examples/@xmachines/play-dom-demo/variables/Profile.md +5 -1
  319. package/examples/@xmachines/play-dom-demo/variables/Settings.md +5 -1
  320. package/examples/@xmachines/play-dom-demo/variables/Stats.md +5 -1
  321. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  322. package/examples/@xmachines/play-dom-router-demo/README.md +26 -22
  323. package/examples/@xmachines/play-react-demo/README.md +55 -48
  324. package/examples/@xmachines/play-react-demo/functions/App.md +1 -1
  325. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  326. package/examples/@xmachines/play-react-demo/variables/About.md +6 -1
  327. package/examples/@xmachines/play-react-demo/variables/Contact.md +6 -1
  328. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +7 -1
  329. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +5 -1
  330. package/examples/@xmachines/play-react-demo/variables/Home.md +6 -1
  331. package/examples/@xmachines/play-react-demo/variables/Login.md +8 -1
  332. package/examples/@xmachines/play-react-demo/variables/NavBar.md +6 -1
  333. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +7 -1
  334. package/examples/@xmachines/play-react-demo/variables/Navigation.md +6 -1
  335. package/examples/@xmachines/play-react-demo/variables/Overview.md +6 -1
  336. package/examples/@xmachines/play-react-demo/variables/Profile.md +6 -1
  337. package/examples/@xmachines/play-react-demo/variables/Settings.md +6 -1
  338. package/examples/@xmachines/play-react-demo/variables/Shell.md +6 -1
  339. package/examples/@xmachines/play-react-demo/variables/Stats.md +6 -1
  340. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  341. package/examples/@xmachines/play-react-router-demo/README.md +5 -3
  342. package/examples/@xmachines/play-solid-demo/README.md +55 -36
  343. package/examples/@xmachines/play-solid-demo/functions/App.md +1 -1
  344. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  345. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  346. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  347. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  348. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +5 -1
  349. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  350. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  351. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  352. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +6 -3
  353. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  354. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  355. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  356. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  357. package/examples/@xmachines/play-solid-demo/variables/Shell.md +5 -1
  358. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  359. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
  360. package/examples/@xmachines/play-solid-router-demo/README.md +6 -4
  361. package/examples/@xmachines/play-svelte-demo/README.md +34 -21
  362. package/examples/@xmachines/play-svelte-demo/type-aliases/App.md +9 -0
  363. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +9 -0
  364. package/examples/@xmachines/play-svelte-demo/variables/App.md +9 -0
  365. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +172 -0
  366. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +10 -12
  367. package/examples/@xmachines/play-sveltekit-router-demo/README.md +12 -14
  368. package/examples/@xmachines/play-tanstack-react-router-demo/README.md +3 -3
  369. package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +4 -4
  370. package/examples/@xmachines/play-vue-demo/README.md +66 -39
  371. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +9 -0
  372. package/examples/@xmachines/play-vue-demo/variables/App.md +9 -0
  373. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +172 -0
  374. package/examples/@xmachines/play-vue-router-demo/README.md +21 -24
  375. package/examples/README.md +2 -0
  376. package/examples/form-validation.md +33 -42
  377. package/guides/README.md +8 -0
  378. package/guides/actor-model.md +180 -0
  379. package/guides/getting-started.md +18 -14
  380. package/guides/signals.md +166 -0
  381. package/guides/state-machines.md +288 -0
  382. package/package.json +2 -2
  383. package/rfc/play.md +81 -54
  384. package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +0 -17
  385. package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +0 -24
  386. package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +0 -24
  387. package/api/@xmachines/play-svelte/interfaces/PlayRendererProps.md +0 -22
  388. package/api/@xmachines/play-svelte/variables/getBoundProp.md +0 -7
  389. package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +0 -22
  390. package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +0 -141
  391. package/api/_media/README.md +0 -321
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Class: NonNullableError
4
4
 
5
- Defined in: [packages/play/src/errors.ts:111](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play/src/errors.ts#L111)
5
+ Defined in: [packages/play/src/errors.ts:111](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play/src/errors.ts#L111)
6
6
 
7
7
  Thrown by [assertNonNullable](../functions/assertNonNullable.md) when a value is `null` or `undefined`.
8
8
 
@@ -35,7 +35,7 @@ try {
35
35
  new NonNullableError(message, options?): NonNullableError;
36
36
  ```
37
37
 
38
- Defined in: [packages/play/src/errors.ts:112](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play/src/errors.ts#L112)
38
+ Defined in: [packages/play/src/errors.ts:112](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play/src/errors.ts#L112)
39
39
 
40
40
  #### Parameters
41
41
 
@@ -57,10 +57,10 @@ Defined in: [packages/play/src/errors.ts:112](https://gitlab.com/xmachin-es/xmac
57
57
  | Property | Modifier | Type | Description | Inherited from | Defined in |
58
58
  | ------------------------------------------------------- | ---------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
59
59
  | <a id="property-cause"></a> `cause?` | `public` | `unknown` | - | [`PlayError`](PlayError.md).[`cause`](PlayError.md#property-cause) | - |
60
- | <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable error identifier. Error codes follow the `PLAY_<PACKAGE>_<DESCRIPTION>` naming convention and are guaranteed stable across patch and minor releases within a major version. Never match on `.message` — always match on `.code` or the subclass. | [`PlayError`](PlayError.md).[`code`](PlayError.md#property-code) | [packages/play/src/errors.ts:75](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play/src/errors.ts#L75) |
60
+ | <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable error identifier. Error codes follow the `PLAY_<PACKAGE>_<DESCRIPTION>` naming convention and are guaranteed stable across patch and minor releases within a major version. Never match on `.message` — always match on `.code` or the subclass. | [`PlayError`](PlayError.md).[`code`](PlayError.md#property-code) | [packages/play/src/errors.ts:75](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play/src/errors.ts#L75) |
61
61
  | <a id="property-message"></a> `message` | `public` | `string` | - | [`PlayError`](PlayError.md).[`message`](PlayError.md#property-message) | - |
62
62
  | <a id="property-name"></a> `name` | `public` | `string` | - | [`PlayError`](PlayError.md).[`name`](PlayError.md#property-name) | - |
63
- | <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or module that threw this error (e.g. `"RouterBridgeBase"`). | [`PlayError`](PlayError.md).[`scope`](PlayError.md#property-scope) | [packages/play/src/errors.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play/src/errors.ts#L66) |
63
+ | <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or module that threw this error (e.g. `"RouterBridgeBase"`). | [`PlayError`](PlayError.md).[`scope`](PlayError.md#property-scope) | [packages/play/src/errors.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play/src/errors.ts#L66) |
64
64
  | <a id="property-stack"></a> `stack?` | `public` | `string` | - | [`PlayError`](PlayError.md).[`stack`](PlayError.md#property-stack) | - |
65
65
  | <a id="property-stacktracelimit"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | [`PlayError`](PlayError.md).[`stackTraceLimit`](PlayError.md#property-stacktracelimit) | - |
66
66
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Class: PlayError
4
4
 
5
- Defined in: [packages/play/src/errors.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play/src/errors.ts#L64)
5
+ Defined in: [packages/play/src/errors.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play/src/errors.ts#L64)
6
6
 
7
7
  Base class for all typed runtime errors thrown by `@xmachines/*` packages.
8
8
 
@@ -87,7 +87,7 @@ new PlayError(
87
87
  options?): PlayError;
88
88
  ```
89
89
 
90
- Defined in: [packages/play/src/errors.ts:83](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play/src/errors.ts#L83)
90
+ Defined in: [packages/play/src/errors.ts:83](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play/src/errors.ts#L83)
91
91
 
92
92
  #### Parameters
93
93
 
@@ -113,10 +113,10 @@ Error.constructor;
113
113
  | Property | Modifier | Type | Description | Inherited from | Defined in |
114
114
  | ------------------------------------------------------- | ---------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
115
115
  | <a id="property-cause"></a> `cause?` | `public` | `unknown` | - | `Error.cause` | - |
116
- | <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable error identifier. Error codes follow the `PLAY_<PACKAGE>_<DESCRIPTION>` naming convention and are guaranteed stable across patch and minor releases within a major version. Never match on `.message` — always match on `.code` or the subclass. | - | [packages/play/src/errors.ts:75](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play/src/errors.ts#L75) |
116
+ | <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable error identifier. Error codes follow the `PLAY_<PACKAGE>_<DESCRIPTION>` naming convention and are guaranteed stable across patch and minor releases within a major version. Never match on `.message` — always match on `.code` or the subclass. | - | [packages/play/src/errors.ts:75](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play/src/errors.ts#L75) |
117
117
  | <a id="property-message"></a> `message` | `public` | `string` | - | `Error.message` | - |
118
118
  | <a id="property-name"></a> `name` | `public` | `string` | - | `Error.name` | - |
119
- | <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or module that threw this error (e.g. `"RouterBridgeBase"`). | - | [packages/play/src/errors.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play/src/errors.ts#L66) |
119
+ | <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or module that threw this error (e.g. `"RouterBridgeBase"`). | - | [packages/play/src/errors.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play/src/errors.ts#L66) |
120
120
  | <a id="property-stack"></a> `stack?` | `public` | `string` | - | `Error.stack` | - |
121
121
  | <a id="property-stacktracelimit"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | `Error.stackTraceLimit` | - |
122
122
 
@@ -6,7 +6,7 @@
6
6
  function assertNonNullable<V>(value, name?): NonNullable<V>;
7
7
  ```
8
8
 
9
- Defined in: [packages/play/src/utils.ts:39](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play/src/utils.ts#L39)
9
+ Defined in: [packages/play/src/utils.ts:39](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play/src/utils.ts#L39)
10
10
 
11
11
  Assert that `value` is neither `null` nor `undefined`, and return it typed
12
12
  as `NonNullable<V>` — combining the guard and the narrowed value in a single
@@ -6,7 +6,7 @@
6
6
  type PlayEvent<TPayload> = object & TPayload;
7
7
  ```
8
8
 
9
- Defined in: [packages/play/src/types.ts:69](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play/src/types.ts#L69)
9
+ Defined in: [packages/play/src/types.ts:69](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play/src/types.ts#L69)
10
10
 
11
11
  Generic event type for Play Architecture
12
12
 
@@ -34,7 +34,7 @@ Robot, and other state machine libraries.
34
34
 
35
35
  | Name | Type | Defined in |
36
36
  | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------- |
37
- | `type` | `string` | [packages/play/src/types.ts:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play/src/types.ts#L70) |
37
+ | `type` | `string` | [packages/play/src/types.ts:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play/src/types.ts#L70) |
38
38
 
39
39
  ## Type Parameters
40
40
 
@@ -30,7 +30,10 @@ npm install @xmachines/play-actor
30
30
  - `AbstractActor`
31
31
  - `Routable` (type)
32
32
  - `Viewable` (type)
33
- - `ViewMetadata` (type)
33
+ - `PlaySpec` (type)
34
+ - `typedSpec`
35
+ - `BaseActorProviderProps` (type)
36
+ - `BaseViewContextValue` (type)
34
37
 
35
38
  **Peer dependencies:**
36
39
 
@@ -74,7 +77,7 @@ Implement `Routable` to add routing support:
74
77
 
75
78
  Implement `Viewable` to add view rendering support:
76
79
 
77
- - `currentView: Signal.State<ViewMetadata | null>` - Current view spec (updated on every state transition). `ViewMetadata` has the shape `{ component: string; spec: Spec }` where `spec` is a `@json-render/core` spec object driving the renderer.
80
+ - `currentView: Signal.State<PlaySpec | null>` - Current view spec (updated on every state transition). `PlaySpec` is a `@json-render/core` spec object (`{ root, elements }`) that drives the renderer directly.
78
81
 
79
82
  **Inherited from XState Actor:**
80
83
 
@@ -86,12 +89,7 @@ Implement `Viewable` to add view rendering support:
86
89
  **Example implementation pattern:**
87
90
 
88
91
  ```typescript
89
- import {
90
- AbstractActor,
91
- type Routable,
92
- type Viewable,
93
- type ViewMetadata,
94
- } from "@xmachines/play-actor";
92
+ import { AbstractActor, type Routable, type Viewable, type PlaySpec } from "@xmachines/play-actor";
95
93
  import { Signal } from "@xmachines/play-signals";
96
94
  import type { AnyActorLogic, AnyMachineSnapshot } from "xstate";
97
95
 
@@ -108,7 +106,7 @@ class PlayerActor<TLogic extends AnyActorLogic>
108
106
  });
109
107
 
110
108
  // Viewable: current view spec — Signal.State, updated on every state transition
111
- currentView = new Signal.State<ViewMetadata | null>(null);
109
+ currentView = new Signal.State<PlaySpec | null>(null);
112
110
 
113
111
  constructor(logic: TLogic) {
114
112
  super(logic);
@@ -180,19 +178,19 @@ function connectBrowserNavigation(actor: AbstractActor<any>) {
180
178
  This base class enforces three architectural invariants:
181
179
 
182
180
  1. **Actor Authority (INV-01):**
183
- - Actor decides all state transitions via guards
184
- - Infrastructure sends events, actor validates and processes
185
- - Actor's decision is final — no override by infrastructure
181
+ - Actor decides all state transitions via guards
182
+ - Infrastructure sends events, actor validates and processes
183
+ - Actor's decision is final — no override by infrastructure
186
184
 
187
185
  2. **Signal-Only Reactivity (INV-05):**
188
- - All reactive state exposed via TC39 Signals
189
- - Infrastructure uses `Signal.subtle.Watcher` to observe
190
- - No direct queries (`getSnapshot()` for internal use only)
186
+ - All reactive state exposed via TC39 Signals
187
+ - Infrastructure uses `Signal.subtle.Watcher` to observe
188
+ - No direct queries (`getSnapshot()` for internal use only)
191
189
 
192
190
  3. **Passive Infrastructure (INV-04):**
193
- - Infrastructure reflects actor state (via signals)
194
- - Infrastructure never decides transitions
195
- - Browser/router events sent as commands to actor
191
+ - Infrastructure reflects actor state (via signals)
192
+ - Infrastructure never decides transitions
193
+ - Browser/router events sent as commands to actor
196
194
 
197
195
  ## XState Compatibility
198
196
 
@@ -242,10 +240,11 @@ reactive signals for Infrastructure layer communication.
242
240
 
243
241
  ## Interfaces
244
242
 
243
+ - [BaseActorProviderProps](interfaces/BaseActorProviderProps.md)
244
+ - [BaseViewContextValue](interfaces/BaseViewContextValue.md)
245
245
  - [PlaySpec](interfaces/PlaySpec.md)
246
246
  - [Routable](interfaces/Routable.md)
247
247
  - [Viewable](interfaces/Viewable.md)
248
- - [ViewMetadata](interfaces/ViewMetadata.md)
249
248
 
250
249
  ## Functions
251
250
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Abstract Class: AbstractActor\<TLogic, TEvent\>
4
4
 
5
- Defined in: [packages/play-actor/src/abstract-actor.ts:141](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-actor/src/abstract-actor.ts#L141)
5
+ Defined in: [packages/play-actor/src/abstract-actor.ts:180](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L180)
6
6
 
7
7
  Abstract base class for Play Architecture actors.
8
8
 
@@ -67,7 +67,7 @@ Actor<TLogic>.constructor
67
67
  | <a id="property-ref"></a> `ref` | `public` | [`ActorRef`](https://www.jsdocs.io/package/xstate#ActorRef)\<[`SnapshotFrom`](https://www.jsdocs.io/package/xstate#SnapshotFrom)\<`TLogic`\>, [`EventFromLogic`](https://www.jsdocs.io/package/xstate#EventFromLogic)\<`TLogic`\>, [`EmittedFrom`](https://www.jsdocs.io/package/xstate#EmittedFrom)\<`TLogic`\>\> | - | `Actor.ref` | - |
68
68
  | <a id="property-sessionid"></a> `sessionId` | `public` | `string` | The globally unique process ID for this invocation. | `Actor.sessionId` | - |
69
69
  | <a id="property-src"></a> `src` | `public` | \| `string` \| [`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic) | - | `Actor.src` | - |
70
- | <a id="property-state"></a> `state` | `abstract` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<`unknown`\> | Reactive snapshot of current actor state. Infrastructure observes this signal to react to state changes without directly coupling to the actor's internal state machine implementation. | - | [packages/play-actor/src/abstract-actor.ts:151](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-actor/src/abstract-actor.ts#L151) |
70
+ | <a id="property-state"></a> `state` | `abstract` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<`unknown`\> | Reactive snapshot of current actor state. Infrastructure observes this signal to react to state changes without directly coupling to the actor's internal state machine implementation. | - | [packages/play-actor/src/abstract-actor.ts:190](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L190) |
71
71
  | <a id="property-system"></a> `system` | `public` | [`AnyActorSystem`](https://www.jsdocs.io/package/xstate#AnyActorSystem) | The system to which this actor belongs. | `Actor.system` | - |
72
72
  | <a id="property-systemid"></a> `systemId` | `public` | `string` \| `undefined` | - | `Actor.systemId` | - |
73
73
 
@@ -238,7 +238,7 @@ Actor.select;
238
238
  abstract send(event): void;
239
239
  ```
240
240
 
241
- Defined in: [packages/play-actor/src/abstract-actor.ts:158](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-actor/src/abstract-actor.ts#L158)
241
+ Defined in: [packages/play-actor/src/abstract-actor.ts:197](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L197)
242
242
 
243
243
  Send event to Actor.
244
244
 
@@ -6,7 +6,7 @@
6
6
  function typedSpec<TContext>(spec): PlaySpec;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-actor/src/abstract-actor.ts:86](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-actor/src/abstract-actor.ts#L86)
9
+ Defined in: [packages/play-actor/src/abstract-actor.ts:83](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L83)
10
10
 
11
11
  Identity helper that constrains a `PlaySpec` object's `contextProps` to keys
12
12
  of a specific machine context type, giving compile-time validation and IDE
@@ -44,14 +44,11 @@ interface DashboardCtx {
44
44
  }
45
45
 
46
46
  meta: {
47
- view: {
48
- component: "Dashboard",
49
- spec: typedSpec<DashboardCtx>({
50
- root: "root",
51
- contextProps: ["username"], // key of DashboardCtx
52
- // contextProps: ["usernaem"], // ✗ compile error
53
- elements: { root: { type: "Dashboard", props: {}, children: [] } },
54
- }),
55
- },
47
+ view: typedSpec<DashboardCtx>({
48
+ root: "root",
49
+ contextProps: ["username"], // ✓ key of DashboardCtx
50
+ // contextProps: ["usernaem"], // ✗ compile error
51
+ elements: { root: { type: "Dashboard", props: {}, children: [] } },
52
+ }),
56
53
  }
57
54
  ```
@@ -0,0 +1,46 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-actor](../README.md) / BaseActorProviderProps
2
+
3
+ # Interface: BaseActorProviderProps\<TRegistry\>
4
+
5
+ Defined in: [packages/play-actor/src/abstract-actor.ts:150](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L150)
6
+
7
+ Framework-agnostic base props shared by every `ActorProvider` implementation
8
+ (React, Vue, Solid, Svelte). `TRegistry` captures the framework-specific
9
+ `DefineRegistryResult` type; `RenderErrorHandler` is sourced from
10
+ `@json-render/core` so no second generic is needed.
11
+
12
+ Framework packages extend this with their `fallback`, `onError`, and `children` fields.
13
+
14
+ ## Example
15
+
16
+ ```ts
17
+ import type { BaseActorProviderProps } from "@xmachines/play-actor";
18
+ import type { DefineRegistryResult } from "@json-render/react";
19
+
20
+ interface ActorProviderProps extends BaseActorProviderProps<DefineRegistryResult> {
21
+ fallback?: React.ReactNode;
22
+ children: React.ReactNode;
23
+ }
24
+ ```
25
+
26
+ ## Extended by
27
+
28
+ - [`ActorProviderProps`](../../play-react/interfaces/ActorProviderProps.md)
29
+ - [`ActorProviderProps`](../../play-solid/interfaces/ActorProviderProps.md)
30
+ - [`ActorProviderProps`](../../play-svelte/interfaces/ActorProviderProps.md)
31
+ - [`ActorProviderProps`](../../play-vue/interfaces/ActorProviderProps.md)
32
+
33
+ ## Type Parameters
34
+
35
+ | Type Parameter | Description |
36
+ | ------------------------------ | -------------------------------------------- |
37
+ | `TRegistry` _extends_ `object` | The framework's `DefineRegistryResult` type. |
38
+
39
+ ## Properties
40
+
41
+ | Property | Type | Description | Defined in |
42
+ | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
43
+ | <a id="property-actor"></a> `actor` | [`AbstractActor`](../classes/AbstractActor.md)\<[`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic), [`EventObject`](https://www.jsdocs.io/package/xstate#EventObject)\> & [`Viewable`](Viewable.md) | Actor instance with currentView signal (requires Viewable capability). | [packages/play-actor/src/abstract-actor.ts:154](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L154) |
44
+ | <a id="property-onrendererror"></a> `onRenderError?` | [`RenderErrorHandler`](../../play-dom/type-aliases/RenderErrorHandler.md) | Called when an individual catalog component throws during render. Takes precedence over any onRenderError set via defineRegistry. | [packages/play-actor/src/abstract-actor.ts:167](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L167) |
45
+ | <a id="property-registryresult"></a> `registryResult` | `TRegistry` | Full result from defineRegistry() — contains the component registry and action handlers factory. | [packages/play-actor/src/abstract-actor.ts:156](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L156) |
46
+ | <a id="property-store"></a> `store?` | `StateStore` | Optional external StateStore (controlled mode). When provided, spec.state is ignored and this store is the single source of truth. When omitted, a fresh @xstate/store atom is created per view transition from spec.state. | [packages/play-actor/src/abstract-actor.ts:162](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L162) |
@@ -0,0 +1,33 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-actor](../README.md) / BaseViewContextValue
2
+
3
+ # Interface: BaseViewContextValue\<TRegistry\>
4
+
5
+ Defined in: [packages/play-actor/src/abstract-actor.ts:118](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L118)
6
+
7
+ Framework-agnostic base for every framework's `ViewContextValue`.
8
+
9
+ Holds the three fields that are identical across React, Vue, Solid, and Svelte.
10
+ `registry` is framework-specific (each framework has its own `ComponentRegistry`
11
+ type) so it is typed via `TRegistry` — the same generic used in `BaseActorProviderProps`.
12
+
13
+ ## Extended by
14
+
15
+ - [`ViewContextValue`](../../play-react/interfaces/ViewContextValue.md)
16
+ - [`ViewContextValue`](../../play-solid/interfaces/ViewContextValue.md)
17
+ - [`ViewContextValue`](../../play-svelte/interfaces/ViewContextValue.md)
18
+ - [`ViewContextValue`](../../play-vue/interfaces/ViewContextValue.md)
19
+
20
+ ## Type Parameters
21
+
22
+ | Type Parameter | Description |
23
+ | ------------------------------ | --------------------------------------------------------------------------------------------- |
24
+ | `TRegistry` _extends_ `object` | The framework's component registry type (e.g. `ComponentRegistry` from `@json-render/react`). |
25
+
26
+ ## Properties
27
+
28
+ | Property | Type | Description | Defined in |
29
+ | ----------------------------------------- | ------------------------------------- | --------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
30
+ | <a id="property-handlers"></a> `handlers` | `Record`\<`string`, `ActionHandler`\> | Action handlers resolved against the live StateStore. | [packages/play-actor/src/abstract-actor.ts:122](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L122) |
31
+ | <a id="property-registry"></a> `registry` | `TRegistry` | Component registry from registryResult.registry. | [packages/play-actor/src/abstract-actor.ts:124](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L124) |
32
+ | <a id="property-spec"></a> `spec` | [`PlaySpec`](PlaySpec.md) | The current PlaySpec to render. | [packages/play-actor/src/abstract-actor.ts:120](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L120) |
33
+ | <a id="property-store"></a> `store` | `StateStore` | The active StateStore — pass to JSONUIProvider/JsonUIProvider as `store` to share state across providers. | [packages/play-actor/src/abstract-actor.ts:126](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L126) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: PlaySpec
4
4
 
5
- Defined in: [packages/play-actor/src/abstract-actor.ts:43](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-actor/src/abstract-actor.ts#L43)
5
+ Defined in: [packages/play-actor/src/abstract-actor.ts:43](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L43)
6
6
 
7
7
  XMachines extension of `@json-render/core` `Spec`.
8
8
 
@@ -22,7 +22,7 @@ entries against your machine's context type at compile time.
22
22
 
23
23
  | Property | Modifier | Type | Description | Inherited from | Defined in |
24
24
  | -------------------------------------------------- | ---------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
25
- | <a id="property-contextprops"></a> `contextProps?` | `readonly` | readonly `string`[] | Explicit allowlist of machine context field names to expose as prop slots. Each named field is merged into every spec element's `props` at view derivation time, filling any slot whose current value is `undefined`. Use `typedSpec<TContext>(...)` to constrain entries to `keyof TContext & string`. | - | [packages/play-actor/src/abstract-actor.ts:51](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-actor/src/abstract-actor.ts#L51) |
25
+ | <a id="property-contextprops"></a> `contextProps?` | `readonly` | readonly `string`[] | Explicit allowlist of machine context field names to expose as prop slots. Each named field is merged into every spec element's `props` at view derivation time, filling any slot whose current value is `undefined`. Use `typedSpec<TContext>(...)` to constrain entries to `keyof TContext & string`. | - | [packages/play-actor/src/abstract-actor.ts:51](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L51) |
26
26
  | <a id="property-elements"></a> `elements` | `public` | `Record`\<`string`, `UIElement`\> | Flat map of elements by key | `Spec.elements` | - |
27
27
  | <a id="property-root"></a> `root` | `public` | `string` | Root element key | `Spec.root` | - |
28
28
  | <a id="property-state"></a> `state?` | `public` | `Record`\<`string`, `unknown`\> | Optional initial state to seed the state model. Components using statePath will read from / write to this state. | `Spec.state` | - |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: Routable
4
4
 
5
- Defined in: [packages/play-actor/src/abstract-actor.ts:27](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-actor/src/abstract-actor.ts#L27)
5
+ Defined in: [packages/play-actor/src/abstract-actor.ts:27](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L27)
6
6
 
7
7
  Optional capability: Routing support
8
8
 
@@ -10,5 +10,5 @@ Optional capability: Routing support
10
10
 
11
11
  | Property | Modifier | Type | Defined in |
12
12
  | ------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
13
- | <a id="property-currentroute"></a> `currentRoute` | `readonly` | [`Computed`](../../play-signals/namespaces/Signal/classes/Computed.md)\<`string` \| `null`\> | [packages/play-actor/src/abstract-actor.ts:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-actor/src/abstract-actor.ts#L28) |
14
- | <a id="property-initialroute"></a> `initialRoute` | `readonly` | `string` \| `null` | [packages/play-actor/src/abstract-actor.ts:29](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-actor/src/abstract-actor.ts#L29) |
13
+ | <a id="property-currentroute"></a> `currentRoute` | `readonly` | [`Computed`](../../play-signals/namespaces/Signal/classes/Computed.md)\<`string` \| `null`\> | [packages/play-actor/src/abstract-actor.ts:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L28) |
14
+ | <a id="property-initialroute"></a> `initialRoute` | `readonly` | `string` \| `null` | [packages/play-actor/src/abstract-actor.ts:29](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L29) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: Viewable
4
4
 
5
- Defined in: [packages/play-actor/src/abstract-actor.ts:121](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-actor/src/abstract-actor.ts#L121)
5
+ Defined in: [packages/play-actor/src/abstract-actor.ts:99](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L99)
6
6
 
7
7
  Actor capability for exposing renderable view state.
8
8
 
@@ -13,6 +13,6 @@ framework adapter.
13
13
 
14
14
  ## Properties
15
15
 
16
- | Property | Modifier | Type | Description | Defined in |
17
- | ----------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
18
- | <a id="property-currentview"></a> `currentView` | `readonly` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<[`ViewMetadata`](ViewMetadata.md) \| `null`\> | Current view signal. State signal containing view.component and view.spec from meta.view. Infrastructure renders view — Logic-Driven UI invariant. | [packages/play-actor/src/abstract-actor.ts:128](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-actor/src/abstract-actor.ts#L128) |
16
+ | Property | Modifier | Type | Description | Defined in |
17
+ | ----------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
18
+ | <a id="property-currentview"></a> `currentView` | `readonly` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<[`PlaySpec`](PlaySpec.md) \| `null`\> | Current view signal. Contains the json-render PlaySpec for the current machine state, or null when no view is active. Infrastructure renders view — Logic-Driven UI invariant. | [packages/play-actor/src/abstract-actor.ts:106](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-actor/src/abstract-actor.ts#L106) |
@@ -14,24 +14,95 @@ npm install @xmachines/play-dom @json-render/core zod
14
14
 
15
15
  ## Key Exports
16
16
 
17
- | Export | Description |
18
- | --------------------------------------------------- | ------------------------------------------------------------------------------------------- |
19
- | `createRenderer(catalog, componentMap)` | One-call factory: returns `mount(actor, container, options?) → disconnect` |
20
- | `connectRenderer(options)` | Functional API: connect actor DOM with full options |
21
- | `defineRegistry(catalog, { components, actions })` | Build a catalog-typed `DomRegistry` with typed action handlers |
22
- | `PlayRenderer` | Class-based renderer `connect()` / `disconnect()` lifecycle |
23
- | `schema` | DOM schema for `defineCatalog` (mirrors `@json-render/react/schema`) |
24
- | `ComponentFn<C, K>` | Catalog-typed DOM component function type |
25
- | `ComponentContext<C, K>` | Context passed to each `ComponentFn` `props`, `on`, `emit`, `children`, `bindings`, `ctx` |
26
- | `ActionFn<C, K>` | `(params, setState, state) => Promise<void>` — catalog-typed action handler |
27
- | `SetState` | `(updater: prev => next) => void` — write to the local state store |
28
- | `BaseComponentProps<P>` | Base type for catalog component prop definitions |
29
- | `CatalogHasActions<C>` | Conditional type: `true` when catalog declares actions |
30
- | `renderSpec(spec, store, registry, send, handlers)` | Pure Spec DOM renderer (advanced use) |
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
+ ```
31
102
 
32
103
  ## Quick Start — `createRenderer`
33
104
 
34
- The preferred one-call pattern — mirrors all framework renderers:
105
+ The lower-level one-call pattern — takes a catalog and component map directly:
35
106
 
36
107
  ```typescript
37
108
  import { createRenderer, schema } from "@xmachines/play-dom";
@@ -63,7 +134,9 @@ const Login: ComponentFn<AppCatalog, "Login"> = ({ props, on }) => {
63
134
  const section = document.createElement("section");
64
135
  const input = document.createElement("input");
65
136
  input.value = props.username ?? "";
66
- input.addEventListener("input", () => ctx.store.update((s) => ({ ...s, username: input.value })));
137
+ input.addEventListener("input", () =>
138
+ ctx.store.update((s) => ({ ...s, username: input.value })),
139
+ );
67
140
 
68
141
  const button = document.createElement("button");
69
142
  button.textContent = "Log In";
@@ -252,8 +325,7 @@ renderer.disconnect(); // stops watching, clears container
252
325
 
253
326
  ## Learn More
254
327
 
255
- - [DOM Router adapter `@xmachines/play-dom-router`](../play-dom-router/README.md)
256
- - [API reference](../../_media/README.md)
328
+ - [DOM Router adapter `@xmachines/play-dom-router`](../play-dom-router)
257
329
  - [Play RFC](../../packages/docs/rfc/play.md)
258
330
 
259
331
  @xmachines/play-dom — Vanilla DOM renderer for XMachines Play architecture.
@@ -290,10 +362,13 @@ Public API split into two layers:
290
362
 
291
363
  - [ComponentContext](interfaces/ComponentContext.md)
292
364
  - [ConnectRendererOptions](interfaces/ConnectRendererOptions.md)
365
+ - [CreatePlayUIOptions](interfaces/CreatePlayUIOptions.md)
293
366
  - [DefineRegistryResult](interfaces/DefineRegistryResult.md)
294
367
  - [DomRenderContext](interfaces/DomRenderContext.md)
295
368
  - [EventHandle](interfaces/EventHandle.md)
369
+ - [MountOptions](interfaces/MountOptions.md)
296
370
  - [PlayDomOptions](interfaces/PlayDomOptions.md)
371
+ - [UIProviderOptions](interfaces/UIProviderOptions.md)
297
372
 
298
373
  ## Type Aliases
299
374
 
@@ -307,6 +382,8 @@ Public API split into two layers:
307
382
  - [DomComponentRenderer](type-aliases/DomComponentRenderer.md)
308
383
  - [DomRegistry](type-aliases/DomRegistry.md)
309
384
  - [DomSchema](type-aliases/DomSchema.md)
385
+ - [MountFn](type-aliases/MountFn.md)
386
+ - [RenderErrorHandler](type-aliases/RenderErrorHandler.md)
310
387
  - [SetState](type-aliases/SetState.md)
311
388
 
312
389
  ## Variables
@@ -316,6 +393,13 @@ Public API split into two layers:
316
393
  ## Functions
317
394
 
318
395
  - [connectRenderer](functions/connectRenderer.md)
396
+ - [createPlayUI](functions/createPlayUI.md)
319
397
  - [createRenderer](functions/createRenderer.md)
320
398
  - [defineRegistry](functions/defineRegistry.md)
321
399
  - [renderSpec](functions/renderSpec.md)
400
+
401
+ ## References
402
+
403
+ ### RenderErrorHandler
404
+
405
+ Re-exports [RenderErrorHandler](type-aliases/RenderErrorHandler.md)