@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
@@ -6,4 +6,4 @@
6
6
  type AuthCatalog = typeof authCatalog;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/catalog.ts#L6)
9
+ Defined in: [play-dom/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/catalog.ts#L6)
@@ -6,4 +6,7 @@
6
6
  const About: ComponentFn<AuthCatalog, "About">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/About.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/About.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/About.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/About.ts#L8)
10
+
11
+ About — Public information page. Catalog-typed DOM component
12
+ (ComponentFn<AuthCatalog, 'About'>). Renders static content from props.
@@ -6,4 +6,7 @@
6
6
  const Contact: ComponentFn<AuthCatalog, "Contact">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Contact.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Contact.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Contact.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Contact.ts#L8)
10
+
11
+ Contact — Public contact page. Catalog-typed DOM component
12
+ (ComponentFn<AuthCatalog, 'Contact'>). Renders static content from props.
@@ -6,4 +6,8 @@
6
6
  const Dashboard: ComponentFn<AuthCatalog, "Dashboard">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Dashboard.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Dashboard.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Dashboard.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Dashboard.ts#L9)
10
+
11
+ Dashboard — Protected authenticated home. Catalog-typed DOM component
12
+ (ComponentFn<AuthCatalog, 'Dashboard'>). Renders welcome message; logout
13
+ button emits 'logout' action.
@@ -6,4 +6,8 @@
6
6
  const Home: ComponentFn<AuthCatalog, "Home">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Home.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Home.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Home.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Home.ts#L9)
10
+
11
+ Home — Public landing page. Catalog-typed DOM component
12
+ (ComponentFn<AuthCatalog, 'Home'>). Renders static welcome content from
13
+ props.
@@ -6,4 +6,8 @@
6
6
  const Login: ComponentFn<AuthCatalog, "Login">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Login.ts:7](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Login.ts#L7)
9
+ Defined in: [play-dom/examples/demo/src/components/Login.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Login.ts#L9)
10
+
11
+ Login — Authentication form. Catalog-typed DOM component
12
+ (ComponentFn<AuthCatalog, 'Login'>). Binds username input to ctx.store via
13
+ $bindState; emits 'submit' on form submit.
@@ -6,4 +6,11 @@
6
6
  const NavBarView: ComponentFn<AuthCatalog, "NavBar">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/NavBarView.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/NavBarView.ts#L13)
9
+ Defined in: [play-dom/examples/demo/src/components/NavBarView.ts:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/NavBarView.ts#L12)
10
+
11
+ NavBarView — Catalog-typed NavBar component for DOM renderer.
12
+
13
+ Receives props from spec (isAuthenticated, username) and renders a static nav element.
14
+ Used in the defineRegistry components map.
15
+
16
+ The actor-driven NavBar (createNavBar) is mounted at the shell level.
@@ -6,4 +6,8 @@
6
6
  const Navigation: ComponentFn<AuthCatalog, "Navigation">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Navigation.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Navigation.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Navigation.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Navigation.ts#L9)
10
+
11
+ Navigation — Navigation status display. Catalog-typed DOM component
12
+ (ComponentFn<AuthCatalog, 'Navigation'>). Renders current path and auth
13
+ status from props.
@@ -6,4 +6,8 @@
6
6
  const Overview: ComponentFn<AuthCatalog, "Overview">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Overview.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Overview.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Overview.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Overview.ts#L9)
10
+
11
+ Overview — Dashboard overview child route. Catalog-typed DOM component
12
+ (ComponentFn<AuthCatalog, 'Overview'>). Relative route resolves to
13
+ /dashboard/overview. Logout and goToStats buttons emit actions.
@@ -6,4 +6,8 @@
6
6
  const Profile: ComponentFn<AuthCatalog, "Profile">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Profile.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Profile.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Profile.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Profile.ts#L9)
10
+
11
+ Profile — Protected user profile page. Catalog-typed DOM component
12
+ (ComponentFn<AuthCatalog, 'Profile'>). Renders username from route params
13
+ filled into props.
@@ -6,4 +6,8 @@
6
6
  const Settings: ComponentFn<AuthCatalog, "Settings">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Settings.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Settings.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Settings.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Settings.ts#L9)
10
+
11
+ Settings — Protected settings page. Catalog-typed DOM component
12
+ (ComponentFn<AuthCatalog, 'Settings'>). Renders active section and username
13
+ from props.
@@ -6,4 +6,8 @@
6
6
  const Stats: ComponentFn<AuthCatalog, "Stats">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Stats.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Stats.ts#L4)
9
+ Defined in: [play-dom/examples/demo/src/components/Stats.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Stats.ts#L9)
10
+
11
+ Stats — Dashboard stats child route. Catalog-typed DOM component
12
+ (ComponentFn<AuthCatalog, 'Stats'>). Relative route resolves to
13
+ /dashboard/stats. goToOverview button emits action.
@@ -169,4 +169,4 @@ const authCatalog: Catalog<
169
169
  >;
170
170
  ```
171
171
 
172
- Defined in: [play-dom/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/catalog.ts#L5)
172
+ Defined in: [play-dom/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/catalog.ts#L5)
@@ -27,22 +27,22 @@ Then open `http://localhost:5174`.
27
27
 
28
28
  Use this order to understand the implementation:
29
29
 
30
- 1. `src/main.ts` creates the actor from the shared machine and starts it.
31
- 2. `initRouter(actor)` from `src/router.ts` extracts route metadata, creates a browser history wrapper, instantiates a router, and calls `connectRouter` to wire bidirectional actor URL sync.
32
- 3. `initShell(actor, app)` from `src/shell.ts` builds the DOM scaffold and sets up the `connectRenderer` loop for view switching.
33
- 4. Navigation buttons and links dispatch `play.route`, `auth.login`, and `auth.logout` events directly to the actor no URL mutations from the shell.
34
- 5. Browser tests in `test/browser/` validate startup rendering and the full auth route flow.
30
+ 1. `src/main.ts` looks up the host element, calls `initApp(app)` from `src/runtime.ts`, and registers unload cleanup.
31
+ 2. `src/runtime.ts` creates the actor from the shared machine, starts it, initializes router sync via `initRouter(actor)`, mounts the shared DOM shell via `initShell(actor, host)`, and returns one cleanup function.
32
+ 3. `initRouter(actor)` from `src/router.ts` extracts route metadata, creates a browser history wrapper, instantiates a router, and calls `connectRouter` to wire bidirectional actor ↔ URL sync.
33
+ 4. `initShell(actor, host)` is imported from `@xmachines/play-dom-demo`, so the router demo reuses the shared DOM shell instead of duplicating the scaffold and renderer wiring.
34
+ 5. Navigation buttons and links dispatch `play.route`, `auth.login`, and `auth.logout` events directly to the actor no URL mutations from the shell.
35
+ 6. Browser tests in `test/browser/` validate startup rendering and the full auth route flow.
35
36
 
36
37
  ```ts
37
38
  // src/main.ts (shape)
38
- const actor = createPlayer();
39
- actor.start();
40
-
41
- const cleanupRouter = initRouter(actor);
42
39
  const app = document.getElementById("app");
40
+ let cleanup;
43
41
  if (app) {
44
- initShell(actor, app);
42
+ cleanup = initApp(app);
45
43
  }
44
+
45
+ window.addEventListener("beforeunload", () => cleanup?.());
46
46
  ```
47
47
 
48
48
  ```ts
@@ -62,22 +62,26 @@ export function initRouter(actor) {
62
62
  ```
63
63
 
64
64
  ```ts
65
- // src/shell.ts (shape)
66
- const disconnectRenderer = connectRenderer({ actor, registry, container: viewContent });
65
+ // src/runtime.ts (shape)
66
+ const actor = createPlayer();
67
+ actor.start();
67
68
 
68
- const unwatchState = watchSignal(actor.state, () => {
69
- navLogin.hidden = snapshot.context.isAuthenticated;
70
- navLogout.hidden = !snapshot.context.isAuthenticated;
71
- });
69
+ const cleanupRouter = initRouter(actor);
70
+ const cleanupShell = initShell(actor, host);
72
71
 
73
- navLogin.addEventListener("click", () => actor.send({ type: "play.route", to: "#login" }));
72
+ return () => {
73
+ cleanupShell();
74
+ cleanupRouter();
75
+ actor.stop();
76
+ };
74
77
  ```
75
78
 
76
79
  ## Key Files
77
80
 
78
- - `src/main.ts` - actor startup, router initialization, and shell bootstrap
81
+ - `src/main.ts` - host lookup, app bootstrap, and unload cleanup
82
+ - `src/runtime.ts` - actor startup, router initialization, and shared shell wiring
79
83
  - `src/router.ts` - `createBrowserHistory`, `createRouter`, and `connectRouter` wiring
80
- - `src/shell.ts` - DOM scaffold, `DomRegistry` construction, `connectRenderer`, and reactive watcher loop
84
+ - `@xmachines/play-dom-demo` - shared DOM shell, NavBar, DebugPanel, and renderer wiring reused by this router demo
81
85
  - `test/library-pattern.test.ts` - architecture boundary and invariant assertions
82
86
  - `test/browser/startup.browser.test.ts` - startup rendering assertion for public home + login action
83
87
  - `test/browser/auth-flow.browser.test.ts` - login → dashboard → profile → logout browser flow
@@ -131,6 +135,6 @@ Expected result: tests pass, including startup rendering and the full browser au
131
135
 
132
136
  ## Learn More
133
137
 
134
- - [Play DOM Router package README](../../README.md)
135
- - [Play DOM demo README](../../../play-dom/examples/demo/README.md)
136
- - [Play Router package README](../../../play-router/README.md)
138
+ - [Play DOM Router](../../README.md)
139
+ - [Play DOM](../../../play-dom/examples/demo)
140
+ - [Play Router](../../../play-router)
@@ -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
@@ -149,8 +156,8 @@ Expected result: library-pattern invariant tests pass and the browser renderer s
149
156
 
150
157
  ## Learn More
151
158
 
152
- - [React package README](../../README.md)
153
- - [React Router demo README](../../../play-react-router/examples/demo/README.md)
159
+ - [React](../../README.md)
160
+ - [React Router](../../../play-react-router/examples/demo)
154
161
 
155
162
  ## Type Aliases
156
163
 
@@ -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.33/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.35/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.33/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.35/packages/play-react/examples/demo/src/catalog.ts#L6)
@@ -6,4 +6,9 @@
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.33/packages/play-react/examples/demo/src/components/About.tsx#L11)
9
+ Defined in: [packages/play-react/examples/demo/src/components/About.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/components/About.tsx#L10)
10
+
11
+ About — Public information page
12
+
13
+ Uses ComponentFn<AuthCatalog, "About"> for catalog-typed props.
14
+ Navigation is handled by HeaderNav — this component only renders content.
@@ -6,4 +6,9 @@
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.33/packages/play-react/examples/demo/src/components/Contact.tsx#L11)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Contact.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/components/Contact.tsx#L10)
10
+
11
+ Contact — Public contact page
12
+
13
+ Uses ComponentFn<AuthCatalog, "Contact"> for catalog-typed props.
14
+ Navigation is handled by HeaderNav — this component only renders content.
@@ -6,4 +6,10 @@
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.33/packages/play-react/examples/demo/src/components/Dashboard.tsx#L15)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Dashboard.tsx:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/components/Dashboard.tsx#L12)
10
+
11
+ Dashboard — Protected authenticated home
12
+
13
+ Uses ComponentFn<AuthCatalog, "Dashboard"> for catalog-typed props.
14
+ Emits "logout" to trigger the auth.logout event via PlayRenderer actions map.
15
+ Navigation is handled by HeaderNav — this component only handles auth actions.
@@ -8,4 +8,8 @@ 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.33/packages/play-react/examples/demo/src/components/DebugPanel.tsx#L6)
11
+ Defined in: [packages/play-react/examples/demo/src/components/DebugPanel.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/components/DebugPanel.tsx#L11)
12
+
13
+ DebugPanel — Live debug footer. Observes actor.state and actor.currentRoute
14
+ via useSignalEffect and displays current state value, can-logout status,
15
+ and active route.
@@ -6,4 +6,9 @@
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.33/packages/play-react/examples/demo/src/components/Home.tsx#L11)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Home.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/components/Home.tsx#L10)
10
+
11
+ Home - Public landing page component
12
+
13
+ Uses ComponentFn<AuthCatalog, "Home"> for catalog-typed props.
14
+ Navigation is handled by HeaderNav — this component only renders content.
@@ -6,4 +6,11 @@
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.33/packages/play-react/examples/demo/src/components/Login.tsx#L16)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Login.tsx:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/components/Login.tsx#L14)
10
+
11
+ Login — Authentication form
12
+
13
+ Uses ComponentFn<AuthCatalog, "Login"> for catalog-typed props.
14
+ Username is bound via $bindState from the spec — useStateBinding provides reactive two-way
15
+ binding to the @xstate/store atom backing the current view's state store.
16
+ Emits "submit" on form submit — spec resolves the username state and calls login handler.
@@ -8,4 +8,9 @@ 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.33/packages/play-react/examples/demo/src/components/NavBar.tsx#L13)
11
+ Defined in: [packages/play-react/examples/demo/src/components/NavBar.tsx:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/components/NavBar.tsx#L12)
12
+
13
+ NavBar — App-shell navigation component.
14
+
15
+ Framework component (takes `actor`) used in the App shell header.
16
+ Calls actor.send() directly for navigation — ActionProvider not needed here.
@@ -6,4 +6,10 @@
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.33/packages/play-react/examples/demo/src/components/NavBarView.tsx#L12)
9
+ Defined in: [packages/play-react/examples/demo/src/components/NavBarView.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/components/NavBarView.tsx#L11)
10
+
11
+ NavBarView — Catalog-typed NavBar for use in defineRegistry components map.
12
+
13
+ Receives props from the spec (isAuthenticated, username) and renders a
14
+ static status indicator. Navigation buttons live in the shell-level NavBar
15
+ component which calls actor.send() directly.
@@ -6,4 +6,9 @@
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.33/packages/play-react/examples/demo/src/components/Navigation.tsx#L11)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Navigation.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/components/Navigation.tsx#L10)
10
+
11
+ Navigation - Status display component
12
+
13
+ Uses ComponentFn<AuthCatalog, "Navigation"> for catalog-typed props.
14
+ This component displays navigation state info. Actual navigation is handled by HeaderNav.
@@ -6,4 +6,9 @@
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.33/packages/play-react/examples/demo/src/components/Overview.tsx#L11)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Overview.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/components/Overview.tsx#L10)
10
+
11
+ Overview - Dashboard overview child route component
12
+
13
+ Uses ComponentFn<AuthCatalog, "Overview"> for catalog-typed props.
14
+ Relative route "overview" resolves to /dashboard/overview.
@@ -6,4 +6,9 @@
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.33/packages/play-react/examples/demo/src/components/Profile.tsx#L14)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Profile.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/components/Profile.tsx#L11)
10
+
11
+ Profile — Protected user profile page
12
+
13
+ Uses ComponentFn<AuthCatalog, "Profile"> for catalog-typed props.
14
+ Navigation is handled by HeaderNav — this component only renders content.
@@ -6,4 +6,9 @@
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.33/packages/play-react/examples/demo/src/components/Settings.tsx#L14)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Settings.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/components/Settings.tsx#L11)
10
+
11
+ Settings — Protected settings page
12
+
13
+ Uses ComponentFn<AuthCatalog, "Settings"> for catalog-typed props.
14
+ Navigation is handled by HeaderNav — this component only renders content.
@@ -10,4 +10,9 @@ 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.33/packages/play-react/examples/demo/src/components/Shell.tsx#L15)
13
+ Defined in: [packages/play-react/examples/demo/src/components/Shell.tsx:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/components/Shell.tsx#L14)
14
+
15
+ Demo Shell layout component.
16
+
17
+ Wraps NavBar, PlayRenderer, and DebugPanel in the standard demo chrome.
18
+ Router-agnostic — all navigation is driven via play.route events on the actor.
@@ -6,4 +6,9 @@
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.33/packages/play-react/examples/demo/src/components/Stats.tsx#L11)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Stats.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/components/Stats.tsx#L10)
10
+
11
+ Stats - Dashboard stats child route component
12
+
13
+ Uses ComponentFn<AuthCatalog, "Stats"> for catalog-typed props.
14
+ Relative route "stats" resolves to /dashboard/stats.
@@ -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.33/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.35/packages/play-react/examples/demo/src/catalog.ts#L5)
@@ -79,7 +79,9 @@ return (
79
79
  // src/components/Login.tsx (shape)
80
80
  export function Login() {
81
81
  return (
82
- <button onClick={() => actor.send({ type: "auth.login", username, password })}>Login</button>
82
+ <button onClick={() => actor.send({ type: "auth.login", username, password })}>
83
+ Login
84
+ </button>
83
85
  );
84
86
  }
85
87
  ```
@@ -141,5 +143,5 @@ Expected result: tests pass for startup and auth-flow browser scenarios.
141
143
 
142
144
  ## Learn More
143
145
 
144
- - [React Router package README](../../README.md)
145
- - [React package README](../../../play-react/README.md)
146
+ - [React Router](../../README.md)
147
+ - [React](../../../play-react)