@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
@@ -8,7 +8,7 @@ Svelte 5 + SvelteKit router adapter integration demo for the XMachines Play arch
8
8
 
9
9
  - Shared auth machine reused without framework-specific business logic
10
10
  - `connectRouter` pathname URL ↔ actor sync via `@xmachines/play-sveltekit-router`
11
- - Shell-driven rendering via `PlayRenderer` with actor-authoritative navigation
11
+ - Shell-driven rendering via `PlayUIProvider` + `PlayRenderer` with actor-authoritative navigation
12
12
  - Canonical TC39 Signals lifecycle integrated with Svelte 5 runes
13
13
  - Non-browser invariant tests plus browser E2E coverage
14
14
 
@@ -30,8 +30,8 @@ Use this order to understand the implementation:
30
30
  1. `src/main.ts` mounts `App.svelte` and registers HMR cleanup via `cleanupDemo`.
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 browser pathname changes with the actor via `play.route` events and reflects actor-approved routes back to the pathname URL.
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).
33
+ 4. `src/App.svelte` imports the singleton `actor` and `registryResult` from `src/lib/router.ts` and delegates to the shared `Shell.svelte`.
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
@@ -126,5 +124,5 @@ Expected result: library-pattern invariant tests pass and the browser demo suite
126
124
 
127
125
  ## Learn More
128
126
 
129
- - [SvelteKit Router package README](../../README.md)
130
- - [Svelte package README](../../../play-svelte/README.md)
127
+ - [SvelteKit Router](../../README.md)
128
+ - [Svelte](../../../play-svelte)
@@ -125,6 +125,6 @@ Expected result: invariant test suite and the browser shared-demo suite both pas
125
125
 
126
126
  ## Learn More
127
127
 
128
- - [TanStack React Router package README](../../README.md)
129
- - [React package README](../../../play-react/README.md)
130
- - [TanStack Solid Router demo README](../../../play-tanstack-solid-router/examples/demo/README.md)
128
+ - [TanStack React Router](../../README.md)
129
+ - [React](../../../play-react)
130
+ - [TanStack Solid Router](../../../play-tanstack-solid-router/examples/demo)
@@ -119,7 +119,7 @@ Expected result: library-pattern invariant tests and the browser shared-demo sui
119
119
 
120
120
  ## Learn More
121
121
 
122
- - [TanStack Solid Router package README](../../README.md)
123
- - [SolidJS package README](../../../play-solid/README.md)
124
- - [Solid Router demo README](../../../play-solid-router/examples/demo/README.md)
125
- - [TanStack React Router demo README](../../../play-tanstack-react-router/examples/demo/README.md)
122
+ - [TanStack Solid Router](../../README.md)
123
+ - [SolidJS](../../../play-solid)
124
+ - [Solid Router](../../../play-solid-router/examples/demo)
125
+ - [TanStack React Router](../../../play-tanstack-react-router/examples/demo)
@@ -29,15 +29,16 @@ Use this order to understand the implementation:
29
29
 
30
30
  1. `src/main.ts` calls `definePlayer({ machine: authMachine })`, starts the actor, and mounts the Vue app.
31
31
  2. The actor is provided to all components via `app.provide("actor", actor)`.
32
- 3. `src/App.vue` injects the actor and builds the component registry with `defineRegistry(authCatalog, { components, actions })`.
33
- 4. `<PlayRenderer :actor="actor" :registry="registry" :actions="..." />` observes actor view signals and renders the active view component.
34
- 5. HMR cleanup calls `actor.stop()` via `import.meta.hot.dispose`.
35
- 6. Browser tests in `test/browser/` validate startup and interaction behavior.
32
+ 3. `src/App.vue` injects the actor and builds the typed `registryResult` with `defineRegistry(authCatalog, { components, actions })` inside `computed` — 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` SFC observes `actor` signals directly for nav visibility.
35
+ 6. `<DebugPanel :actor="actor" />` shows live state, auth status, and current route.
36
+ 7. HMR cleanup calls `actor.stop()` via `import.meta.hot.dispose`.
37
+ 8. Browser tests in `test/browser/` validate startup and interaction behavior.
36
38
 
37
39
  ```ts
38
40
  // src/main.ts (shape)
39
- const createPlayer = definePlayer({ machine: authMachine });
40
- const actor = createPlayer();
41
+ const actor = definePlayer({ machine: authMachine })();
41
42
  actor.start();
42
43
 
43
44
  const app = createApp(App);
@@ -48,46 +49,63 @@ app.mount("#app");
48
49
  ```vue
49
50
  <!-- src/App.vue (shape) -->
50
51
  <script setup lang="ts">
51
- const actor = inject<AuthActor>("actor")!;
52
-
53
- const { registry } = defineRegistry(authCatalog, {
54
- components: {
55
- Home,
56
- About,
57
- Contact,
58
- Login,
59
- Dashboard,
60
- Overview,
61
- Stats,
62
- Profile,
63
- Settings,
64
- Navigation,
65
- },
66
- actions: { login: async () => {}, logout: async () => {} },
67
- });
52
+ const typedActor = assertNonNullable(inject<AuthActor>("actor"), "actor");
53
+
54
+ const registryResult = computed(() =>
55
+ defineRegistry(authCatalog, {
56
+ components: {
57
+ Home: HomeSFC,
58
+ About: AboutSFC,
59
+ Contact: ContactSFC,
60
+ Login: LoginSFC,
61
+ Dashboard: DashboardSFC,
62
+ Overview: OverviewSFC,
63
+ Stats: StatsSFC,
64
+ Profile: ProfileSFC,
65
+ Settings: SettingsSFC,
66
+ Navigation: NavigationSFC,
67
+ NavBar: NavBarViewSFC,
68
+ },
69
+ actions: {
70
+ login: async (args) =>
71
+ typedActor.send({
72
+ type: "auth.login",
73
+ username: assertNonNullable(args, "args").username,
74
+ }),
75
+ logout: async () => typedActor.send({ type: "auth.logout" }),
76
+ route: async (args) => {
77
+ const { to, params } = assertNonNullable(args, "args");
78
+ typedActor.send({
79
+ type: "play.route",
80
+ to,
81
+ ...(params != null && { params }),
82
+ });
83
+ },
84
+ },
85
+ }),
86
+ );
68
87
  </script>
69
88
 
70
89
  <template>
71
- <PlayRenderer
72
- :actor="actor"
73
- :registry="registry"
74
- :actions="{ login: 'auth.login', logout: 'auth.logout' }"
75
- />
90
+ <div class="demo-app" data-demo-shell>
91
+ <header class="demo-header">
92
+ <h1 class="demo-title">XMachines Play Vue Demo</h1>
93
+ <NavBar :actor="typedActor" />
94
+ </header>
95
+ <main class="demo-content" data-demo-content>
96
+ <PlayUIProvider :actor="typedActor" :registryResult="registryResult">
97
+ <PlayRenderer />
98
+ </PlayUIProvider>
99
+ </main>
100
+ <DebugPanel :actor="typedActor" />
101
+ </div>
76
102
  </template>
77
103
  ```
78
104
 
79
- ```vue
80
- <!-- src/components/Login.vue (shape) -->
81
- <script setup lang="ts">
82
- const actor = inject("actor")!;
83
- const login = () => actor.send({ type: "auth.login", username: "demo" });
84
- </script>
85
- ```
86
-
87
105
  ## Key Files
88
106
 
89
107
  - `src/main.ts` - actor creation/start and Vue app mount with actor injection
90
- - `src/App.vue` - registry construction and `PlayRenderer` composition
108
+ - `src/App.vue` - registry construction and `PlayUIProvider` + `PlayRenderer` composition
91
109
  - `src/components/` - demo view components bound to catalog component keys (Home, Login, Dashboard, Profile, etc.)
92
110
  - `test/library-pattern.test.ts` - architecture boundary and invariant assertions
93
111
  - `test/browser/renderer-demo.browser.test.ts` - browser-mode renderer coverage
@@ -141,5 +159,14 @@ Expected result: library-pattern invariant tests pass and the browser renderer s
141
159
 
142
160
  ## Learn More
143
161
 
144
- - [Vue package README](../../README.md)
145
- - [Vue Router demo README](../../../play-vue-router/examples/demo/README.md)
162
+ - [Vue](../../README.md)
163
+ - [Vue Router](../../../play-vue-router/examples/demo)
164
+
165
+ ## Type Aliases
166
+
167
+ - [AuthCatalog](type-aliases/AuthCatalog.md)
168
+
169
+ ## Variables
170
+
171
+ - [App](variables/App.md)
172
+ - [authCatalog](variables/authCatalog.md)
@@ -0,0 +1,9 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-vue-demo](../README.md) / AuthCatalog
2
+
3
+ # Type Alias: AuthCatalog
4
+
5
+ ```ts
6
+ type AuthCatalog = typeof authCatalog;
7
+ ```
8
+
9
+ Defined in: [packages/play-vue/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-vue/examples/demo/src/catalog.ts#L6)
@@ -0,0 +1,9 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-vue-demo](../README.md) / App
2
+
3
+ # Variable: App
4
+
5
+ ```ts
6
+ const App: DefineComponent<{}, {}, unknown>;
7
+ ```
8
+
9
+ Defined in: [packages/play-vue/examples/demo/src/env.d.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-vue/examples/demo/src/env.d.ts#L5)
@@ -0,0 +1,172 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-vue-demo](../README.md) / authCatalog
2
+
3
+ # Variable: authCatalog
4
+
5
+ ```ts
6
+ const authCatalog: Catalog<
7
+ {
8
+ catalog: SchemaType<
9
+ "object",
10
+ {
11
+ actions: SchemaType<
12
+ "map",
13
+ {
14
+ description: SchemaType<"string", unknown>;
15
+ params: SchemaType<"zod", unknown>;
16
+ }
17
+ >;
18
+ components: SchemaType<
19
+ "map",
20
+ {
21
+ description: SchemaType<"string", unknown>;
22
+ example: SchemaType<"any", unknown>;
23
+ props: SchemaType<"zod", unknown>;
24
+ slots: SchemaType<"array", SchemaType<"string", unknown>>;
25
+ }
26
+ >;
27
+ }
28
+ >;
29
+ spec: SchemaType<
30
+ "object",
31
+ {
32
+ elements: SchemaType<
33
+ "record",
34
+ SchemaType<
35
+ "object",
36
+ {
37
+ children: SchemaType<"array", SchemaType<"string", unknown>>;
38
+ props: SchemaType<"propsOf", string>;
39
+ type: SchemaType<"ref", string>;
40
+ visible: SchemaType<"any", unknown>;
41
+ }
42
+ >
43
+ >;
44
+ root: SchemaType<"string", unknown>;
45
+ }
46
+ >;
47
+ },
48
+ {
49
+ actions: {
50
+ login: {
51
+ description: "Login with username";
52
+ params: ZodObject<
53
+ {
54
+ username: ZodString;
55
+ },
56
+ $strip
57
+ >;
58
+ };
59
+ logout: {
60
+ description: "Logout and return to home";
61
+ };
62
+ route: {
63
+ description: "Navigate to a route by path (e.g. '#home', '#login', '#dashboard')";
64
+ params: ZodObject<
65
+ {
66
+ params: ZodOptional<ZodRecord<ZodString, ZodString>>;
67
+ to: ZodString;
68
+ },
69
+ $strip
70
+ >;
71
+ };
72
+ };
73
+ components: {
74
+ About: {
75
+ props: ZodObject<
76
+ {
77
+ title: ZodString;
78
+ },
79
+ $strip
80
+ >;
81
+ };
82
+ Contact: {
83
+ props: ZodObject<
84
+ {
85
+ title: ZodString;
86
+ },
87
+ $strip
88
+ >;
89
+ };
90
+ Dashboard: {
91
+ props: ZodObject<
92
+ {
93
+ username: ZodString;
94
+ welcome: ZodBoolean;
95
+ },
96
+ $strip
97
+ >;
98
+ };
99
+ Home: {
100
+ props: ZodObject<
101
+ {
102
+ title: ZodString;
103
+ },
104
+ $strip
105
+ >;
106
+ };
107
+ Login: {
108
+ props: ZodObject<
109
+ {
110
+ title: ZodString;
111
+ username: ZodOptional<ZodString>;
112
+ },
113
+ $strip
114
+ >;
115
+ };
116
+ NavBar: {
117
+ props: ZodObject<
118
+ {
119
+ isAuthenticated: ZodBoolean;
120
+ username: ZodNullable<ZodString>;
121
+ },
122
+ $strip
123
+ >;
124
+ };
125
+ Navigation: {
126
+ props: ZodObject<
127
+ {
128
+ currentPath: ZodString;
129
+ isAuthenticated: ZodBoolean;
130
+ },
131
+ $strip
132
+ >;
133
+ };
134
+ Overview: {
135
+ props: ZodObject<
136
+ {
137
+ title: ZodString;
138
+ },
139
+ $strip
140
+ >;
141
+ };
142
+ Profile: {
143
+ props: ZodObject<
144
+ {
145
+ username: ZodString;
146
+ },
147
+ $strip
148
+ >;
149
+ };
150
+ Settings: {
151
+ props: ZodObject<
152
+ {
153
+ section: ZodOptional<ZodString>;
154
+ username: ZodString;
155
+ },
156
+ $strip
157
+ >;
158
+ };
159
+ Stats: {
160
+ props: ZodObject<
161
+ {
162
+ title: ZodString;
163
+ },
164
+ $strip
165
+ >;
166
+ };
167
+ };
168
+ }
169
+ >;
170
+ ```
171
+
172
+ Defined in: [packages/play-vue/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-vue/examples/demo/src/catalog.ts#L5)
@@ -27,21 +27,17 @@ Then open `http://localhost:3001`.
27
27
 
28
28
  Use this order to understand how the demo is wired:
29
29
 
30
- 1. `src/main.ts` calls `definePlayer({ machine: authMachine })`, starts the actor, creates the Vue app, provides the actor, installs Vue Router, and mounts.
31
- 2. `src/router.ts` installs a single catch-all route; `PlayRenderer` selects the actual view from actor state.
32
- 3. `src/App.vue` calls `createRouteMap(authMachine)` and renders `<PlayRouterProvider>` with the actor, route map, router instance, and a `renderShell` renderer function.
33
- 4. The renderer function creates the shared `Shell` component with actor, router, and registry as props.
34
- 5. `PlayRouterProvider` waits for `router.isReady()` so direct URL loads are handled correctly.
35
- 6. Browser tests in `test/browser/` validate startup and auth route transitions.
30
+ 1. `src/main.ts` creates the Vue app, installs Vue Router, mounts, and wires HMR cleanup.
31
+ 2. `src/runtime.ts` creates the actor, starts it, builds the shared `registryResult`, and creates the `routeMap`.
32
+ 3. `src/router.ts` installs a single catch-all route; `PlayRenderer` selects the actual view from actor state.
33
+ 4. `src/App.vue` renders `<PlayRouterProvider>` with the shared actor, routeMap, router instance, and a `renderShell` renderer function.
34
+ 5. The renderer function creates the shared `Shell` component with actor, router, and registry as props.
35
+ 6. `PlayRouterProvider` waits for `router.isReady()` so direct URL loads are handled correctly.
36
+ 7. Browser tests in `test/browser/` validate startup and auth route transitions.
36
37
 
37
38
  ```ts
38
39
  // src/main.ts (shape)
39
- const createPlayer = definePlayer({ machine: authMachine });
40
- const actor = createPlayer();
41
- actor.start();
42
-
43
40
  const app = createApp(App);
44
- app.provide("actor", actor);
45
41
  app.use(router);
46
42
  app.mount("#app");
47
43
  ```
@@ -54,11 +50,10 @@ export const routes = [{ path: "/:pathMatch(.*)*", name: "xmachines-play", compo
54
50
  ```vue
55
51
  <!-- src/App.vue (shape) -->
56
52
  <script setup lang="ts">
57
- const actor = inject<AuthActor>("actor")!;
58
- const routeMap = createRouteMap(authMachine);
53
+ import { actor, routeMap, registryResult } from "./runtime.js";
59
54
 
60
55
  const renderShell = (currentActor, currentRouter) =>
61
- h(SharedShell, { actor: currentActor, router: currentRouter, registry });
56
+ h(SharedShell, { actor: currentActor, router: currentRouter, registryResult });
62
57
  </script>
63
58
 
64
59
  <template>
@@ -71,19 +66,21 @@ const renderShell = (currentActor, currentRouter) =>
71
66
  </template>
72
67
  ```
73
68
 
74
- ```vue
75
- <!-- src/components/Login.vue (shape) -->
76
- <script setup lang="ts">
77
- const actor = inject("actor")!;
78
- const login = () => actor.send({ type: "auth.login", username: "demo" });
79
- </script>
69
+ ```ts
70
+ // src/runtime.ts (shape)
71
+ export const actor = createPlayer();
72
+ actor.start();
73
+
74
+ export const routeMap = createRouteMap(authMachine);
75
+ export const registryResult = defineRegistry(authCatalog, { components, actions });
80
76
  ```
81
77
 
82
78
  ## Key Files
83
79
 
84
- - `src/main.ts` - actor creation/start and Vue app mount with actor injection
80
+ - `src/main.ts` - Vue app bootstrap (mount + router install + HMR cleanup)
81
+ - `src/runtime.ts` - actor startup, routeMap creation, and registry construction
85
82
  - `src/router.ts` - single catch-all route record
86
- - `src/App.vue` - `createRouteMap`, `PlayRouterProvider` wiring, and renderer composition
83
+ - `src/App.vue` - `PlayRouterProvider` wiring and renderer composition using the shared runtime
87
84
  - `test/reactivity.test.ts` - reactive integration assertions
88
85
  - `test/browser/shared-demo.browser.test.ts` - browser startup and full auth flow coverage
89
86
 
@@ -136,5 +133,5 @@ Expected result: reactivity integration tests and the browser shared-demo suite
136
133
 
137
134
  ## Learn More
138
135
 
139
- - [Vue Router package README](../../README.md)
140
- - [Vue package README](../../../play-vue/README.md)
136
+ - [Vue Router](../../README.md)
137
+ - [Vue](../../../play-vue)
@@ -34,6 +34,7 @@ Complete working implementations of actor-authoritative routing with all archite
34
34
  - [@xmachines/play-solid-demo](@xmachines/play-solid-demo/README.md)
35
35
  - [@xmachines/play-svelte-demo](@xmachines/play-svelte-demo/README.md)
36
36
  - [@xmachines/play-vue-demo](@xmachines/play-vue-demo/README.md)
37
+
37
38
  <!-- typedoc:renderer-demos:end -->
38
39
 
39
40
  ### Router Demos
@@ -48,6 +49,7 @@ Complete working implementations of actor-authoritative routing with all archite
48
49
  - [@xmachines/play-tanstack-react-router-demo](@xmachines/play-tanstack-react-router-demo/README.md)
49
50
  - [@xmachines/play-tanstack-solid-router-demo](@xmachines/play-tanstack-solid-router-demo/README.md)
50
51
  - [@xmachines/play-vue-router-demo](@xmachines/play-vue-router-demo/README.md)
52
+
51
53
  <!-- typedoc:router-demos:end -->
52
54
 
53
55
  ## Running the Code Examples
@@ -90,12 +90,9 @@ const loginMachine = loginSetup.createMachine(
90
90
  meta: {
91
91
  route: "/",
92
92
  view: {
93
- component: "Home",
94
- spec: {
95
- root: "root",
96
- elements: {
97
- root: { type: "Home", props: { title: "Welcome" }, children: [] },
98
- },
93
+ root: "root",
94
+ elements: {
95
+ root: { type: "Home", props: { title: "Welcome" }, children: [] },
99
96
  },
100
97
  },
101
98
  },
@@ -106,26 +103,23 @@ const loginMachine = loginSetup.createMachine(
106
103
  meta: {
107
104
  route: "/login",
108
105
  view: {
109
- component: "Login",
110
- spec: {
111
- root: "root",
112
- // Local state store — initial value shown in the form field
113
- state: { username: "" },
114
- elements: {
115
- root: {
116
- type: "Login",
117
- props: {
118
- title: "Sign In",
119
- // $bindState wires the prop to the local state store (two-way)
120
- username: { $bindState: "/username" },
121
- },
122
- children: [],
123
- on: {
124
- // emit("submit") → resolves username from $state, calls login action
125
- submit: {
126
- action: "login",
127
- params: { username: { $state: "/username" } },
128
- },
106
+ root: "root",
107
+ // Local state store — initial value shown in the form field
108
+ state: { username: "" },
109
+ elements: {
110
+ root: {
111
+ type: "Login",
112
+ props: {
113
+ title: "Sign In",
114
+ // $bindState wires the prop to the local state store (two-way)
115
+ username: { $bindState: "/username" },
116
+ },
117
+ children: [],
118
+ on: {
119
+ // emit("submit") → resolves username from $state, calls login action
120
+ submit: {
121
+ action: "login",
122
+ params: { username: { $state: "/username" } },
129
123
  },
130
124
  },
131
125
  },
@@ -139,17 +133,14 @@ const loginMachine = loginSetup.createMachine(
139
133
  meta: {
140
134
  route: "/dashboard",
141
135
  view: {
142
- component: "Dashboard",
143
- spec: {
144
- root: "root",
145
- elements: {
146
- root: {
147
- type: "Dashboard",
148
- props: { title: "Dashboard" },
149
- children: [],
150
- on: {
151
- logout: { action: "logout" },
152
- },
136
+ root: "root",
137
+ elements: {
138
+ root: {
139
+ type: "Dashboard",
140
+ props: { title: "Dashboard" },
141
+ children: [],
142
+ on: {
143
+ logout: { action: "logout" },
153
144
  },
154
145
  },
155
146
  },
@@ -193,18 +184,18 @@ actor.stop();
193
184
 
194
185
  ## `$bindState` and `$state` Pattern
195
186
 
196
- `meta.view.spec` uses the `@json-render/core` spec format. Two special directives wire the component to a local per-state state store:
187
+ `meta.view` uses the `@json-render/core` spec format (`PlaySpec`). Two special directives wire the component to a local per-state state store:
197
188
 
198
189
  | Directive | Direction | Usage |
199
190
  | ----------------------------- | --------- | ----------------------------------------------------------- |
200
191
  | `{ $bindState: "/username" }` | Two-way | Prop reads and writes the state store key `/username` |
201
192
  | `{ $state: "/username" }` | Read-only | Reads the current value from the state store at `/username` |
202
193
 
203
- The `state:` object in the spec sets the initial values for the local store. When the user types in the form field, the renderer keeps the store in sync. On submit, action params read the final value via `$state`.
194
+ The `state:` key in `meta.view` sets the initial values for the local store. When the user types in the form field, the renderer keeps the store in sync. On submit, action params read the final value via `$state`.
204
195
 
205
196
  ```typescript
206
- // In the machine spec — the renderer handles the rest:
207
- spec: {
197
+ // In the machine meta.view — the renderer handles the rest:
198
+ view: {
208
199
  root: "root",
209
200
  state: { username: "" }, // initial store value
210
201
  elements: {
@@ -307,7 +298,7 @@ window.addEventListener("beforeunload", () => {
307
298
 
308
299
  **Key points:**
309
300
 
310
- - `actions` in `defineCatalog` must include every action name referenced in `meta.view` spec `on:` bindings. TypeScript enforces this via `CatalogHasActions`.
301
+ - `actions` in `defineCatalog` must include every action name referenced in `meta.view` `on:` bindings. TypeScript enforces this via `CatalogHasActions`.
311
302
  - `on("submit").emit()` resolves `params` from the current state store at call time — the `$state: "/username"` in the spec is read at that moment, not at render time.
312
303
  - `ctx.store.update(fn)` is the standard write path for two-way binding. The spec's `$bindState` directive only wires the read direction (prop ← store); the write direction (store ← input) must be implemented in the component.
313
304
 
package/guides/README.md CHANGED
@@ -9,6 +9,14 @@ Entry points for the current XMachines Play architecture.
9
9
  - **[Installation](installation.md)** — Core packages, framework-specific additions, TypeScript config, ESM setup
10
10
  - **[Getting Started](getting-started.md)** — `setup().createMachine()` → `definePlayer()` → `actor.start()` → TC39 Signals
11
11
 
12
+ ## Concepts
13
+
14
+ Background reading that explains the _why_ behind XMachines design decisions. Read these when you want to understand the architecture, not just use the API.
15
+
16
+ - **[Understanding State Machines](state-machines.md)** — What finite state machines are, how `meta.route` and `meta.view` extend them, and why they replace boolean flags, scattered guards, and component-level routing logic
17
+ - **[Understanding the Actor Model](actor-model.md)** — The actor/infrastructure split, what `AbstractActor` enforces, why the machine has zero framework imports, and how the reset invariant works
18
+ - **[Understanding TC39 Signals](signals.md)** — The three signal primitives (`Signal.State`, `Signal.Computed`, `Signal.subtle.Watcher`), why XMachines uses them instead of observables, and the five architectural invariants they enforce
19
+
12
20
  ## Examples
13
21
 
14
22
  - **[Examples Index](../examples/README.md)** — Conceptual patterns and complete runnable demo applications