@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
@@ -27,64 +27,71 @@ Then open `http://localhost:5173`.
27
27
 
28
28
  Use this order to understand the implementation:
29
29
 
30
- 1. `src/main.tsx` mounts `<App />` inside `<StrictMode>`.
31
- 2. `src/App.tsx` creates the actor via `definePlayer({ machine: authMachine })` inside `useMemo` so it is started once per mounted app.
32
- 3. `defineRegistry(authCatalog, { components, actions })` builds the typed component registry from the shared catalog.
33
- 4. `<PlayRenderer actor={actor} registry={registry} actions={...} />` observes actor view signals and renders the current component.
34
- 5. A `useEffect` cleanup calls `actor.stop()` on unmount.
35
- 6. Browser tests in `test/browser/` validate startup and interaction behavior.
30
+ 1. `src/main.tsx` mounts `<App />`.
31
+ 2. `src/App.tsx` creates the actor at module scope via `definePlayer({ machine: authMachine })()` created once when the module is first evaluated.
32
+ 3. `defineRegistry(authCatalog, { components, actions })` builds the typed `registryResult` real async action handlers dispatching to `actor.send()`.
33
+ 4. `<PlayUIProvider actor={actor} registryResult={registryResult}><PlayRenderer /></PlayUIProvider>` observes `actor.currentView` and renders the active spec.
34
+ 5. A `NavBar` component observes `actor` signals directly for nav visibility.
35
+ 6. `<DebugPanel actor={actor} />` shows live state, auth status, and current route.
36
+ 7. Browser tests in `test/browser/` validate startup and interaction behavior.
36
37
 
37
38
  ```tsx
38
39
  // src/main.tsx (shape)
39
- createRoot(document.getElementById("root")!).render(
40
- <StrictMode>
41
- <App />
42
- </StrictMode>,
43
- );
40
+ createRoot(document.getElementById("root")!).render(<App />);
44
41
  ```
45
42
 
46
43
  ```tsx
47
44
  // src/App.tsx (shape)
48
- const createPlayer = definePlayer({ machine: authMachine });
49
-
50
- const { registry } = defineRegistry(authCatalog, {
51
- components: {
52
- Home,
53
- About,
54
- Contact,
55
- Login,
56
- Dashboard,
57
- Overview,
58
- Stats,
59
- Profile,
60
- Settings,
61
- Navigation,
62
- },
63
- actions: { login: async () => {}, logout: async () => {} },
64
- });
45
+ const actor: AuthActor = definePlayer({ machine: authMachine })();
46
+ actor.start();
65
47
 
66
48
  export function App() {
67
- const actor = useMemo((): DemoActor => {
68
- const a = createPlayer();
69
- a.start();
70
- return a;
71
- }, []);
72
-
73
- useEffect(
74
- () => () => {
75
- actor.stop();
76
- },
77
- [actor],
49
+ const registryResult = useMemo(
50
+ () =>
51
+ defineRegistry(authCatalog, {
52
+ components: {
53
+ Home,
54
+ About,
55
+ Contact,
56
+ Login,
57
+ Dashboard,
58
+ Overview,
59
+ Stats,
60
+ Profile,
61
+ Settings,
62
+ Navigation,
63
+ NavBar: NavBarView,
64
+ },
65
+ actions: {
66
+ login: async (args) =>
67
+ actor.send({
68
+ type: "auth.login",
69
+ username: assertNonNullable(args, "args").username,
70
+ }),
71
+ logout: async () => actor.send({ type: "auth.logout" }),
72
+ route: async (args) => {
73
+ const { to, params } = assertNonNullable(args, "args");
74
+ actor.send({
75
+ type: "play.route",
76
+ to,
77
+ ...(params != null && { params }),
78
+ });
79
+ },
80
+ },
81
+ }),
82
+ [],
78
83
  );
79
84
 
80
85
  return (
81
86
  <div className="demo-app" data-demo-shell>
87
+ <header className="demo-header">
88
+ <h1 className="demo-title">XMachines Play React Demo</h1>
89
+ <NavBar actor={actor} />
90
+ </header>
82
91
  <main className="demo-content" data-demo-content>
83
- <PlayRenderer
84
- actor={actor}
85
- registry={registry}
86
- actions={{ login: "auth.login", logout: "auth.logout" }}
87
- />
92
+ <PlayUIProvider actor={actor} registryResult={registryResult}>
93
+ <PlayRenderer />
94
+ </PlayUIProvider>
88
95
  </main>
89
96
  <DebugPanel actor={actor} />
90
97
  </div>
@@ -94,8 +101,8 @@ export function App() {
94
101
 
95
102
  ## Key Files
96
103
 
97
- - `src/main.tsx` - React entry point that mounts `<App />` inside `StrictMode`
98
- - `src/App.tsx` - actor lifecycle, registry construction, and `PlayRenderer` composition
104
+ - `src/main.tsx` - React entry point that mounts `<App />`
105
+ - `src/App.tsx` - actor lifecycle, registry construction, and `PlayUIProvider` + `PlayRenderer` composition
99
106
  - `src/components/` - demo view components bound to catalog component keys (Home, Login, Dashboard, Profile, etc.)
100
107
  - `test/library-pattern.test.ts` - architecture boundary and invariant assertions
101
108
  - `test/browser/renderer-demo.browser.test.tsx` - browser-mode renderer coverage
@@ -6,7 +6,7 @@
6
6
  function App(): Element;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/examples/demo/src/App.tsx:36](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/App.tsx#L36)
9
+ Defined in: [packages/play-react/examples/demo/src/App.tsx:36](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/App.tsx#L36)
10
10
 
11
11
  ## Returns
12
12
 
@@ -6,4 +6,4 @@
6
6
  type AuthCatalog = typeof authCatalog;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/catalog.ts#L6)
9
+ Defined in: [packages/play-react/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/catalog.ts#L6)
@@ -6,4 +6,4 @@
6
6
  const About: ComponentFn<AuthCatalog, "About">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/examples/demo/src/components/About.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/components/About.tsx#L11)
9
+ Defined in: [packages/play-react/examples/demo/src/components/About.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/components/About.tsx#L11)
@@ -6,4 +6,4 @@
6
6
  const Contact: ComponentFn<AuthCatalog, "Contact">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/examples/demo/src/components/Contact.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/components/Contact.tsx#L11)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Contact.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/components/Contact.tsx#L11)
@@ -6,4 +6,4 @@
6
6
  const Dashboard: ComponentFn<AuthCatalog, "Dashboard">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/examples/demo/src/components/Dashboard.tsx:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/components/Dashboard.tsx#L15)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Dashboard.tsx:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/components/Dashboard.tsx#L15)
@@ -8,4 +8,4 @@ const DebugPanel: FC<{
8
8
  }>;
9
9
  ```
10
10
 
11
- Defined in: [packages/play-react/examples/demo/src/components/DebugPanel.tsx:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/components/DebugPanel.tsx#L6)
11
+ Defined in: [packages/play-react/examples/demo/src/components/DebugPanel.tsx:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/components/DebugPanel.tsx#L6)
@@ -6,4 +6,4 @@
6
6
  const Home: ComponentFn<AuthCatalog, "Home">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/examples/demo/src/components/Home.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/components/Home.tsx#L11)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Home.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/components/Home.tsx#L11)
@@ -6,4 +6,4 @@
6
6
  const Login: ComponentFn<AuthCatalog, "Login">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/examples/demo/src/components/Login.tsx:16](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/components/Login.tsx#L16)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Login.tsx:16](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/components/Login.tsx#L16)
@@ -8,4 +8,4 @@ const NavBar: FC<{
8
8
  }>;
9
9
  ```
10
10
 
11
- Defined in: [packages/play-react/examples/demo/src/components/NavBar.tsx:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/components/NavBar.tsx#L13)
11
+ Defined in: [packages/play-react/examples/demo/src/components/NavBar.tsx:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/components/NavBar.tsx#L13)
@@ -6,4 +6,4 @@
6
6
  const NavBarView: ComponentFn<AuthCatalog, "NavBar">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/examples/demo/src/components/NavBarView.tsx:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/components/NavBarView.tsx#L12)
9
+ Defined in: [packages/play-react/examples/demo/src/components/NavBarView.tsx:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/components/NavBarView.tsx#L12)
@@ -6,4 +6,4 @@
6
6
  const Navigation: ComponentFn<AuthCatalog, "Navigation">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/examples/demo/src/components/Navigation.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/components/Navigation.tsx#L11)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Navigation.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/components/Navigation.tsx#L11)
@@ -6,4 +6,4 @@
6
6
  const Overview: ComponentFn<AuthCatalog, "Overview">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/examples/demo/src/components/Overview.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/components/Overview.tsx#L11)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Overview.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/components/Overview.tsx#L11)
@@ -6,4 +6,4 @@
6
6
  const Profile: ComponentFn<AuthCatalog, "Profile">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/examples/demo/src/components/Profile.tsx:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/components/Profile.tsx#L14)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Profile.tsx:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/components/Profile.tsx#L14)
@@ -6,4 +6,4 @@
6
6
  const Settings: ComponentFn<AuthCatalog, "Settings">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/examples/demo/src/components/Settings.tsx:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/components/Settings.tsx#L14)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Settings.tsx:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/components/Settings.tsx#L14)
@@ -10,4 +10,4 @@ const Shell: FC<{
10
10
  }>;
11
11
  ```
12
12
 
13
- Defined in: [packages/play-react/examples/demo/src/components/Shell.tsx:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/components/Shell.tsx#L15)
13
+ Defined in: [packages/play-react/examples/demo/src/components/Shell.tsx:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/components/Shell.tsx#L15)
@@ -6,4 +6,4 @@
6
6
  const Stats: ComponentFn<AuthCatalog, "Stats">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/examples/demo/src/components/Stats.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/components/Stats.tsx#L11)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Stats.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/components/Stats.tsx#L11)
@@ -169,4 +169,4 @@ const authCatalog: Catalog<
169
169
  >;
170
170
  ```
171
171
 
172
- Defined in: [packages/play-react/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-react/examples/demo/src/catalog.ts#L5)
172
+ Defined in: [packages/play-react/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-react/examples/demo/src/catalog.ts#L5)
@@ -28,11 +28,12 @@ Then open `http://localhost:5173`.
28
28
  Use this order to understand the implementation:
29
29
 
30
30
  1. `src/main.tsx` mounts `<App />` to the DOM root via Solid's `render`.
31
- 2. `src/App.tsx` calls `definePlayer({ machine: authMachine })` and starts the actor at module scope.
32
- 3. `defineRegistry(authCatalog, { components, actions })` builds the typed component registry.
33
- 4. `<PlayRenderer actor={actor} registry={registry} actions={...} />` observes actor view signals and renders the current component.
34
- 5. `onCleanup` calls `actor.stop()` when the `App` component is disposed.
35
- 6. Browser tests in `test/browser/` validate startup and interaction behavior.
31
+ 2. `src/App.tsx` creates the actor at module scope via `definePlayer({ machine: authMachine })()` and starts it.
32
+ 3. `defineRegistry(authCatalog, { components, actions })` builds the typed `registryResult` inside `createMemo` — real async action handlers dispatching to `actor.send()`.
33
+ 4. `<PlayUIProvider actor={actor} registryResult={registryResult()}><PlayRenderer /></PlayUIProvider>` observes `actor.currentView` and renders the active spec.
34
+ 5. A `NavBar` component observes `actor` signals directly for nav visibility.
35
+ 6. `<DebugPanel actor={actor} />` shows live state, auth status, and current route.
36
+ 7. Browser tests in `test/browser/` validate startup and interaction behavior.
36
37
 
37
38
  ```tsx
38
39
  // src/main.tsx (shape)
@@ -41,39 +42,57 @@ render(() => <App />, document.getElementById("app")!);
41
42
 
42
43
  ```tsx
43
44
  // src/App.tsx (shape)
44
- const createPlayer = definePlayer({ machine: authMachine });
45
- const actor = createPlayer() as AuthActor;
45
+ const actor = definePlayer({ machine: authMachine })() as AuthActor;
46
46
  actor.start();
47
47
 
48
- const { registry } = 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
- },
61
- actions: { login: async () => {}, logout: async () => {} },
62
- });
63
-
64
48
  export function App() {
65
- onCleanup(() => {
66
- actor.stop();
67
- });
49
+ const registryResult = createMemo(() =>
50
+ defineRegistry(authCatalog, {
51
+ components: {
52
+ Home,
53
+ About,
54
+ Contact,
55
+ Login,
56
+ Dashboard,
57
+ Overview,
58
+ Stats,
59
+ Profile,
60
+ Settings,
61
+ Navigation,
62
+ NavBar: NavBarView,
63
+ },
64
+ actions: {
65
+ login: async (args) =>
66
+ actor.send({
67
+ type: "auth.login",
68
+ username: assertNonNullable(args, "args").username,
69
+ }),
70
+ logout: async () => actor.send({ type: "auth.logout" }),
71
+ route: async (args) => {
72
+ const { to, params } = assertNonNullable(args, "args");
73
+ actor.send({
74
+ type: "play.route",
75
+ to,
76
+ ...(params != null && { params }),
77
+ });
78
+ },
79
+ },
80
+ }),
81
+ );
68
82
 
69
83
  return (
70
- <main class="demo-content" data-demo-content>
71
- <PlayRenderer
72
- actor={actor}
73
- registry={registry}
74
- actions={{ login: "auth.login", logout: "auth.logout" }}
75
- />
76
- </main>
84
+ <div class="demo-app" data-demo-shell>
85
+ <header class="demo-header">
86
+ <h1 class="demo-title">XMachines Play Solid Demo</h1>
87
+ <NavBar actor={actor} />
88
+ </header>
89
+ <main class="demo-content" data-demo-content>
90
+ <PlayUIProvider actor={actor} registryResult={registryResult()}>
91
+ <PlayRenderer />
92
+ </PlayUIProvider>
93
+ </main>
94
+ <DebugPanel actor={actor} />
95
+ </div>
77
96
  );
78
97
  }
79
98
  ```
@@ -81,7 +100,7 @@ export function App() {
81
100
  ## Key Files
82
101
 
83
102
  - `src/main.tsx` - Vite bootstrap that mounts `<App />` via Solid's `render`
84
- - `src/App.tsx` - actor lifecycle, registry construction, and `PlayRenderer` composition
103
+ - `src/App.tsx` - actor lifecycle, registry construction, and `PlayUIProvider` + `PlayRenderer` composition
85
104
  - `src/components/` - demo view components bound to catalog component keys (Home, Login, Dashboard, Profile, etc.)
86
105
  - `test/library-pattern.test.ts` - architecture boundary and invariant assertions
87
106
  - `test/browser/renderer-demo.browser.test.tsx` - browser-mode renderer coverage
@@ -6,7 +6,7 @@
6
6
  function App(): Element;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/App.tsx:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/App.tsx#L34)
9
+ Defined in: [packages/play-solid/examples/demo/src/App.tsx:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/App.tsx#L34)
10
10
 
11
11
  ## Returns
12
12
 
@@ -6,4 +6,4 @@
6
6
  type AuthCatalog = typeof authCatalog;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/catalog.ts#L6)
9
+ Defined in: [packages/play-solid/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/catalog.ts#L6)
@@ -6,4 +6,4 @@
6
6
  const About: ComponentFn<AuthCatalog, "About">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/About.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/components/About.tsx#L4)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/About.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/components/About.tsx#L4)
@@ -6,4 +6,4 @@
6
6
  const Contact: ComponentFn<AuthCatalog, "Contact">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Contact.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/components/Contact.tsx#L4)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Contact.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/components/Contact.tsx#L4)
@@ -6,4 +6,4 @@
6
6
  const Dashboard: ComponentFn<AuthCatalog, "Dashboard">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Dashboard.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/components/Dashboard.tsx#L4)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Dashboard.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/components/Dashboard.tsx#L4)
@@ -8,4 +8,4 @@ const DebugPanel: Component<{
8
8
  }>;
9
9
  ```
10
10
 
11
- Defined in: [packages/play-solid/examples/demo/src/components/DebugPanel.tsx:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/components/DebugPanel.tsx#L5)
11
+ Defined in: [packages/play-solid/examples/demo/src/components/DebugPanel.tsx:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/components/DebugPanel.tsx#L5)
@@ -6,4 +6,4 @@
6
6
  const Home: ComponentFn<AuthCatalog, "Home">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Home.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/components/Home.tsx#L4)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Home.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/components/Home.tsx#L4)
@@ -6,4 +6,4 @@
6
6
  const Login: ComponentFn<AuthCatalog, "Login">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Login.tsx:7](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/components/Login.tsx#L7)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Login.tsx:7](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/components/Login.tsx#L7)
@@ -8,4 +8,4 @@ const NavBar: Component<{
8
8
  }>;
9
9
  ```
10
10
 
11
- Defined in: [packages/play-solid/examples/demo/src/components/NavBar.tsx:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/components/NavBar.tsx#L28)
11
+ Defined in: [packages/play-solid/examples/demo/src/components/NavBar.tsx:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/components/NavBar.tsx#L28)
@@ -6,7 +6,7 @@
6
6
  const NavBarView: ComponentFn<AuthCatalog, "NavBar">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/NavBar.tsx:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/components/NavBar.tsx#L20)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/NavBar.tsx:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/components/NavBar.tsx#L20)
10
10
 
11
11
  Catalog-typed NavBar component for use in defineRegistry components map.
12
12
  Receives props from spec (isAuthenticated, username) and renders a static nav.
@@ -6,4 +6,4 @@
6
6
  const Navigation: ComponentFn<AuthCatalog, "Navigation">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Navigation.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/components/Navigation.tsx#L4)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Navigation.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/components/Navigation.tsx#L4)
@@ -6,4 +6,4 @@
6
6
  const Overview: ComponentFn<AuthCatalog, "Overview">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Overview.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/components/Overview.tsx#L4)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Overview.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/components/Overview.tsx#L4)
@@ -6,4 +6,4 @@
6
6
  const Profile: ComponentFn<AuthCatalog, "Profile">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Profile.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/components/Profile.tsx#L4)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Profile.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/components/Profile.tsx#L4)
@@ -6,4 +6,4 @@
6
6
  const Settings: ComponentFn<AuthCatalog, "Settings">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Settings.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/components/Settings.tsx#L4)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Settings.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/components/Settings.tsx#L4)
@@ -10,4 +10,4 @@ const Shell: Component<{
10
10
  }>;
11
11
  ```
12
12
 
13
- Defined in: [packages/play-solid/examples/demo/src/components/Shell.tsx:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/components/Shell.tsx#L8)
13
+ Defined in: [packages/play-solid/examples/demo/src/components/Shell.tsx:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/components/Shell.tsx#L8)
@@ -6,4 +6,4 @@
6
6
  const Stats: ComponentFn<AuthCatalog, "Stats">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Stats.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/components/Stats.tsx#L4)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Stats.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/components/Stats.tsx#L4)
@@ -169,4 +169,4 @@ const authCatalog: Catalog<
169
169
  >;
170
170
  ```
171
171
 
172
- Defined in: [packages/play-solid/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-solid/examples/demo/src/catalog.ts#L5)
172
+ Defined in: [packages/play-solid/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.34/packages/play-solid/examples/demo/src/catalog.ts#L5)
@@ -29,16 +29,15 @@ Use this order to understand the implementation:
29
29
 
30
30
  1. `src/main.ts` calls `definePlayer({ machine: authMachine })`, starts the actor, and mounts `App.svelte` via Svelte's `mount`.
31
31
  2. The actor is passed to `App` as a prop.
32
- 3. `src/App.svelte` calls `defineRegistry(authCatalog, { components, actions })` to build the typed component registry.
33
- 4. `App.svelte` delegates to `Shell.svelte`, which renders `<PlayRenderer>` with the actor and registry.
34
- 5. `Shell.svelte` also renders `<HeaderNav>` and `<DebugPanel>` — both observe actor signals directly.
32
+ 3. `src/App.svelte` calls `defineRegistry(authCatalog, { components, actions })` to build the typed `registryResult` — real async action handlers dispatching to `actor.send()`.
33
+ 4. `App.svelte` delegates to `Shell.svelte`, passing both `actor` and `registryResult`.
34
+ 5. `Shell.svelte` renders `<PlayUIProvider><PlayRenderer /></PlayUIProvider>`, `<NavBar>`, and `<DebugPanel>` — the latter two observe actor signals directly.
35
35
  6. HMR cleanup calls `actor.stop()` via `import.meta.hot.dispose`.
36
36
  7. Browser tests in `test/browser/` validate startup and interaction behavior.
37
37
 
38
38
  ```ts
39
39
  // src/main.ts (shape)
40
- const createPlayer = definePlayer({ machine: authMachine });
41
- const actor = createPlayer();
40
+ const actor = definePlayer({ machine: authMachine })();
42
41
  actor.start();
43
42
 
44
43
  mount(App, { target: document.getElementById("app")!, props: { actor } });
@@ -47,30 +46,34 @@ mount(App, { target: document.getElementById("app")!, props: { actor } });
47
46
  ```svelte
48
47
  <!-- src/App.svelte (shape) -->
49
48
  <script lang="ts">
50
- let { actor } = $props();
51
- const { registry } = defineRegistry(authCatalog, {
52
- components: { Home, About, Contact, Login, Dashboard, Overview, Stats, Profile, Settings, Navigation },
53
- actions: { login: async () => {}, logout: async () => {} },
49
+ let { actor }: { actor: AuthActor } = $props();
50
+
51
+ const registryResult = defineRegistry(authCatalog, {
52
+ components: {
53
+ Home, About, Contact, Login, Dashboard,
54
+ Overview, Stats, Profile, Settings, Navigation,
55
+ NavBar: NavBarView,
56
+ },
57
+ actions: {
58
+ login: async (args) =>
59
+ actor.send({ type: "auth.login", username: assertNonNullable(args, "args").username }),
60
+ logout: async () => actor.send({ type: "auth.logout" }),
61
+ route: async (args) => {
62
+ const { to, params } = assertNonNullable(args, "args");
63
+ actor.send({ type: "play.route", to, ...(params != null && { params }) });
64
+ },
65
+ },
54
66
  });
55
67
  </script>
56
68
 
57
- <Shell {actor} {registry} />
58
- ```
59
-
60
- ```svelte
61
- <!-- src/components/Shell.svelte (shape) -->
62
- <PlayRenderer
63
- actor={props.actor}
64
- registry={props.registry}
65
- actions={{ login: "auth.login", logout: "auth.logout" }}
66
- />
69
+ <Shell {actor} {registryResult} />
67
70
  ```
68
71
 
69
72
  ## Key Files
70
73
 
71
74
  - `src/main.ts` - actor creation/start and Svelte app mount with actor as prop
72
75
  - `src/App.svelte` - registry construction, delegates rendering to `Shell.svelte`
73
- - `src/components/Shell.svelte` - shared shell with `PlayRenderer`, `HeaderNav`, and `DebugPanel`
76
+ - `src/components/Shell.svelte` - shared shell with `PlayUIProvider` + `PlayRenderer`, `HeaderNav`, and `DebugPanel`
74
77
  - `src/components/` - demo view Svelte components bound to catalog component keys
75
78
  - `test/library-pattern.test.ts` - architecture boundary and invariant assertions
76
79
  - `test/browser/renderer-demo.browser.test.ts` - browser-mode renderer coverage
@@ -31,7 +31,7 @@ Use this order to understand the implementation:
31
31
  2. `src/lib/router.ts` creates the actor, builds the registry, calls `createRouteMap(authMachine)`, and wires `connectRouter({ actor, routeMap })`.
32
32
  3. `connectRouter` synchronizes hash URL changes with the actor via `play.route` events and reflects actor-approved routes back to the hash URL.
33
33
  4. `src/App.svelte` imports the singleton `actor` and `registry` from `src/lib/router.ts` and delegates to the shared `Shell.svelte`.
34
- 5. `Shell.svelte` renders `<PlayRenderer>` with the actor and registry and provides the shared UI shell (nav, debug panel).
34
+ 5. `Shell.svelte` renders `<PlayUIProvider>` + `<PlayRenderer />` with the actor and registryResult and provides the shared UI shell (nav, debug panel).
35
35
  6. Browser tests in `test/browser/` validate startup and auth route transitions.
36
36
 
37
37
  ```ts
@@ -52,20 +52,18 @@ export function cleanupDemo(): void {
52
52
  ```svelte
53
53
  <!-- src/App.svelte (shape) -->
54
54
  <script lang="ts">
55
- import Shell from "@xmachines/play-svelte-demo/src/components/Shell.svelte";
56
- import { actor, registry } from "./lib/router.js";
55
+ import { Shell } from "@xmachines/play-svelte-demo";
56
+ import { actor, registryResult } from "./lib/router.js";
57
57
  </script>
58
58
 
59
- <Shell {actor} {registry} />
59
+ <Shell {actor} {registryResult} />
60
60
  ```
61
61
 
62
62
  ```svelte
63
- <!-- Shell.svelte — sending events (shape) -->
64
- <PlayRenderer
65
- actor={props.actor}
66
- registry={props.registry}
67
- actions={{ login: "auth.login", logout: "auth.logout" }}
68
- />
63
+ <!-- Shell.svelte — rendering (shape) -->
64
+ <PlayUIProvider actor={props.actor} registryResult={props.registryResult}>
65
+ <PlayRenderer />
66
+ </PlayUIProvider>
69
67
  ```
70
68
 
71
69
  ## Key Files