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

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 (289) hide show
  1. package/api/@xmachines/play/README.md +5 -0
  2. package/api/@xmachines/play/classes/NonNullableError.md +189 -0
  3. package/api/@xmachines/play/classes/PlayError.md +9 -4
  4. package/api/@xmachines/play/functions/assertNonNullable.md +56 -0
  5. package/api/@xmachines/play/type-aliases/PlayEvent.md +2 -2
  6. package/api/@xmachines/play-actor/README.md +9 -9
  7. package/api/@xmachines/play-actor/classes/AbstractActor.md +3 -3
  8. package/api/@xmachines/play-actor/functions/typedSpec.md +1 -1
  9. package/api/@xmachines/play-actor/interfaces/PlaySpec.md +2 -2
  10. package/api/@xmachines/play-actor/interfaces/Routable.md +3 -3
  11. package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +3 -3
  12. package/api/@xmachines/play-actor/interfaces/Viewable.md +2 -2
  13. package/api/@xmachines/play-dom/README.md +228 -39
  14. package/api/@xmachines/play-dom/classes/PlayRenderer.md +39 -26
  15. package/api/@xmachines/play-dom/functions/connectRenderer.md +39 -20
  16. package/api/@xmachines/play-dom/functions/createRenderer.md +43 -0
  17. package/api/@xmachines/play-dom/functions/defineRegistry.md +5 -5
  18. package/api/@xmachines/play-dom/functions/renderSpec.md +43 -9
  19. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +7 -7
  20. package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +11 -9
  21. package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +7 -7
  22. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +14 -9
  23. package/api/@xmachines/play-dom/interfaces/EventHandle.md +4 -4
  24. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +7 -5
  25. package/api/@xmachines/play-dom/type-aliases/ActionFn.md +23 -7
  26. package/api/@xmachines/play-dom/type-aliases/Actions.md +1 -1
  27. package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +114 -0
  28. package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +25 -0
  29. package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +1 -1
  30. package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +1 -1
  31. package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +39 -0
  32. package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +1 -1
  33. package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +1 -1
  34. package/api/@xmachines/play-dom/type-aliases/DomSchema.md +1 -1
  35. package/api/@xmachines/play-dom/type-aliases/SetState.md +30 -0
  36. package/api/@xmachines/play-dom/variables/schema.md +1 -1
  37. package/api/@xmachines/play-dom-router/README.md +166 -59
  38. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  39. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  40. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +1 -1
  41. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  42. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
  43. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  44. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +4 -4
  45. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +6 -6
  46. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +3 -3
  47. package/api/@xmachines/play-dom-router/interfaces/RouteMapLike.md +3 -3
  48. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  49. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
  50. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
  51. package/api/@xmachines/play-dom-router/type-aliases/RoutableActor.md +1 -1
  52. package/api/@xmachines/play-react/README.md +1 -0
  53. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +5 -5
  54. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  55. package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
  56. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +4 -4
  57. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +3 -3
  58. package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +9 -8
  59. package/api/@xmachines/play-react/type-aliases/PlayActor.md +1 -1
  60. package/api/@xmachines/play-react/type-aliases/RenderErrorHandler.md +22 -0
  61. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  62. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +23 -23
  63. package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
  64. package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +1 -1
  65. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
  66. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +6 -6
  67. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  68. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  69. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  70. package/api/@xmachines/play-router/README.md +1 -1
  71. package/api/@xmachines/play-router/classes/BaseRouteMap.md +4 -4
  72. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +23 -23
  73. package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +1 -1
  74. package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
  75. package/api/@xmachines/play-router/functions/createRouteMap.md +1 -1
  76. package/api/@xmachines/play-router/functions/createRouteMapFromMachine.md +1 -1
  77. package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +1 -1
  78. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
  79. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
  80. package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
  81. package/api/@xmachines/play-router/functions/extractRouteParams.md +1 -1
  82. package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
  83. package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
  84. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
  85. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
  86. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
  87. package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
  88. package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
  89. package/api/@xmachines/play-router/functions/routeExists.md +1 -1
  90. package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
  91. package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
  92. package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
  93. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
  94. package/api/@xmachines/play-router/interfaces/LocationLike.md +3 -3
  95. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
  96. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
  97. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +6 -6
  98. package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
  99. package/api/@xmachines/play-router/interfaces/RouteMap.md +4 -4
  100. package/api/@xmachines/play-router/interfaces/RouteMapping.md +3 -3
  101. package/api/@xmachines/play-router/interfaces/RouteMatch.md +3 -3
  102. package/api/@xmachines/play-router/interfaces/RouteNode.md +10 -10
  103. package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
  104. package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
  105. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
  106. package/api/@xmachines/play-router/interfaces/RouterBridge.md +3 -3
  107. package/api/@xmachines/play-router/interfaces/WindowLike.md +3 -3
  108. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
  109. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
  110. package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
  111. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
  112. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
  113. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
  114. package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
  115. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
  116. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
  117. package/api/@xmachines/play-solid/README.md +1 -0
  118. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  119. package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +9 -8
  120. package/api/@xmachines/play-solid/type-aliases/PlayActor.md +1 -1
  121. package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +22 -0
  122. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  123. package/api/@xmachines/play-solid-router/README.md +2 -2
  124. package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
  125. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +24 -24
  126. package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +28 -1
  127. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +1 -1
  128. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +3 -3
  129. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +6 -6
  130. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +7 -7
  131. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  132. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  133. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
  134. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  135. package/api/@xmachines/play-svelte/README.md +52 -12
  136. package/api/@xmachines/play-svelte/functions/defineRegistry.md +12 -35
  137. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +24 -0
  138. package/api/@xmachines/play-svelte/interfaces/PlayRendererProps.md +9 -8
  139. package/api/@xmachines/play-svelte/type-aliases/ActionFn.md +30 -0
  140. package/api/@xmachines/play-svelte/type-aliases/Actions.md +17 -0
  141. package/api/@xmachines/play-svelte/type-aliases/RenderErrorHandler.md +23 -0
  142. package/api/@xmachines/play-svelte/type-aliases/SetState.md +21 -0
  143. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
  144. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  145. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +1 -1
  146. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +4 -4
  147. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +6 -6
  148. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  149. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  150. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  151. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
  152. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
  153. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  154. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +1 -1
  155. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +4 -4
  156. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  157. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +6 -6
  158. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  159. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  160. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
  161. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
  162. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +23 -23
  163. package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +8 -1
  164. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +1 -1
  165. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  166. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
  167. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +6 -6
  168. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +7 -7
  169. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  170. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
  171. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  172. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  173. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
  174. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
  175. package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +24 -24
  176. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +9 -1
  177. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +1 -1
  178. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +6 -6
  179. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  180. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  181. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  182. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
  183. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  184. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +3 -3
  185. package/api/@xmachines/play-vue/README.md +1 -0
  186. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  187. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  188. package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +7 -6
  189. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  190. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  191. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  192. package/api/@xmachines/play-vue/type-aliases/PlayActor.md +1 -1
  193. package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +22 -0
  194. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  195. package/api/@xmachines/play-vue-router/README.md +3 -3
  196. package/api/@xmachines/play-vue-router/classes/RouteMap.md +4 -4
  197. package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +4 -4
  198. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +39 -26
  199. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
  200. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +6 -6
  201. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +3 -3
  202. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
  203. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
  204. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
  205. package/api/@xmachines/play-xstate/classes/PlayerActor.md +12 -12
  206. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
  207. package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
  208. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
  209. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
  210. package/api/@xmachines/play-xstate/functions/definePlayer.md +1 -1
  211. package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
  212. package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
  213. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
  214. package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
  215. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
  216. package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
  217. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
  218. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
  219. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
  220. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
  221. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
  222. package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
  223. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
  224. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
  225. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
  226. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
  227. package/api/@xmachines/shared/README.md +47 -47
  228. package/api/@xmachines/shared/functions/defineXmVitestConfig.md +1 -1
  229. package/api/@xmachines/shared/functions/xmAliases.md +1 -1
  230. package/api/_media/README.md +321 -0
  231. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
  232. package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
  233. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  234. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  235. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  236. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  237. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  238. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  239. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  240. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  241. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  242. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  243. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  244. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  245. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  246. package/examples/@xmachines/play-react-demo/functions/App.md +1 -1
  247. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  248. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  249. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  250. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  251. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
  252. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  253. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  254. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  255. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  256. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  257. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  258. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  259. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  260. package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
  261. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  262. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  263. package/examples/@xmachines/play-react-router-demo/README.md +1 -3
  264. package/examples/@xmachines/play-solid-demo/functions/App.md +1 -1
  265. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  266. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  267. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  268. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  269. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
  270. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  271. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  272. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  273. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  274. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  275. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  276. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  277. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  278. package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
  279. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  280. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
  281. package/examples/@xmachines/play-solid-router-demo/README.md +1 -3
  282. package/examples/README.md +2 -2
  283. package/examples/form-validation.md +80 -0
  284. package/examples/routing-patterns.md +9 -19
  285. package/guides/getting-started.md +51 -38
  286. package/guides/installation.md +6 -6
  287. package/package.json +6 -6
  288. package/rfc/play.md +19 -19
  289. package/api/@xmachines/play-dom/interfaces/DefineRegistryOptions.md +0 -23
@@ -8,4 +8,4 @@ const DebugPanel: Component<{
8
8
  }>;
9
9
  ```
10
10
 
11
- Defined in: [packages/play-solid/examples/demo/src/components/DebugPanel.tsx:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.31/packages/play-solid/examples/demo/src/components/DebugPanel.tsx#L5)
11
+ Defined in: [packages/play-solid/examples/demo/src/components/DebugPanel.tsx:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-solid/examples/demo/src/components/DebugPanel.tsx#L5)
@@ -6,4 +6,4 @@
6
6
  const Home: ComponentFn<AuthCatalog, "Home">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Home.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.31/packages/play-solid/examples/demo/src/components/Home.tsx#L4)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Home.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-solid/examples/demo/src/components/Home.tsx#L4)
@@ -6,4 +6,4 @@
6
6
  const Login: ComponentFn<AuthCatalog, "Login">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Login.tsx:7](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.31/packages/play-solid/examples/demo/src/components/Login.tsx#L7)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Login.tsx:7](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-solid/examples/demo/src/components/Login.tsx#L7)
@@ -8,4 +8,4 @@ const NavBar: Component<{
8
8
  }>;
9
9
  ```
10
10
 
11
- Defined in: [packages/play-solid/examples/demo/src/components/NavBar.tsx:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.31/packages/play-solid/examples/demo/src/components/NavBar.tsx#L28)
11
+ Defined in: [packages/play-solid/examples/demo/src/components/NavBar.tsx:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-solid/examples/demo/src/components/NavBar.tsx#L28)
@@ -6,7 +6,7 @@
6
6
  const NavBarView: ComponentFn<AuthCatalog, "NavBar">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/NavBar.tsx:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.31/packages/play-solid/examples/demo/src/components/NavBar.tsx#L20)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/NavBar.tsx:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-solid/examples/demo/src/components/NavBar.tsx#L20)
10
10
 
11
11
  Catalog-typed NavBar component for use in defineRegistry components map.
12
12
  Receives props from spec (isAuthenticated, username) and renders a static nav.
@@ -6,4 +6,4 @@
6
6
  const Navigation: ComponentFn<AuthCatalog, "Navigation">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Navigation.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.31/packages/play-solid/examples/demo/src/components/Navigation.tsx#L4)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Navigation.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-solid/examples/demo/src/components/Navigation.tsx#L4)
@@ -6,4 +6,4 @@
6
6
  const Overview: ComponentFn<AuthCatalog, "Overview">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Overview.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.31/packages/play-solid/examples/demo/src/components/Overview.tsx#L4)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Overview.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-solid/examples/demo/src/components/Overview.tsx#L4)
@@ -6,4 +6,4 @@
6
6
  const Profile: ComponentFn<AuthCatalog, "Profile">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Profile.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.31/packages/play-solid/examples/demo/src/components/Profile.tsx#L4)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Profile.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-solid/examples/demo/src/components/Profile.tsx#L4)
@@ -6,4 +6,4 @@
6
6
  const Settings: ComponentFn<AuthCatalog, "Settings">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Settings.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.31/packages/play-solid/examples/demo/src/components/Settings.tsx#L4)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Settings.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-solid/examples/demo/src/components/Settings.tsx#L4)
@@ -10,4 +10,4 @@ const Shell: Component<{
10
10
  }>;
11
11
  ```
12
12
 
13
- Defined in: [packages/play-solid/examples/demo/src/components/Shell.tsx:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.31/packages/play-solid/examples/demo/src/components/Shell.tsx#L8)
13
+ Defined in: [packages/play-solid/examples/demo/src/components/Shell.tsx:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-solid/examples/demo/src/components/Shell.tsx#L8)
@@ -6,4 +6,4 @@
6
6
  const Stats: ComponentFn<AuthCatalog, "Stats">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-solid/examples/demo/src/components/Stats.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.31/packages/play-solid/examples/demo/src/components/Stats.tsx#L4)
9
+ Defined in: [packages/play-solid/examples/demo/src/components/Stats.tsx:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-solid/examples/demo/src/components/Stats.tsx#L4)
@@ -169,4 +169,4 @@ const authCatalog: Catalog<
169
169
  >;
170
170
  ```
171
171
 
172
- Defined in: [packages/play-solid/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.31/packages/play-solid/examples/demo/src/catalog.ts#L5)
172
+ Defined in: [packages/play-solid/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-solid/examples/demo/src/catalog.ts#L5)
@@ -51,9 +51,7 @@ const routeMap = createRouteMap(authMachine);
51
51
  actor={actor}
52
52
  routeMap={routeMap}
53
53
  router={{ navigate, location, params }}
54
- renderer={(currentActor, currentRouter) => (
55
- <Shell actor={currentActor} router={currentRouter} />
56
- )}
54
+ renderer={(currentActor, currentRouter) => <Shell actor={currentActor} router={currentRouter} />}
57
55
  />;
58
56
  ```
59
57
 
@@ -34,7 +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
- <!-- typedoc:renderer-demos:end -->
37
+ <!-- typedoc:renderer-demos:end -->
38
38
 
39
39
  ### Router Demos
40
40
 
@@ -48,7 +48,7 @@ Complete working implementations of actor-authoritative routing with all archite
48
48
  - [@xmachines/play-tanstack-react-router-demo](@xmachines/play-tanstack-react-router-demo/README.md)
49
49
  - [@xmachines/play-tanstack-solid-router-demo](@xmachines/play-tanstack-solid-router-demo/README.md)
50
50
  - [@xmachines/play-vue-router-demo](@xmachines/play-vue-router-demo/README.md)
51
- <!-- typedoc:router-demos:end -->
51
+ <!-- typedoc:router-demos:end -->
52
52
 
53
53
  ## Running the Code Examples
54
54
 
@@ -232,8 +232,88 @@ spec: {
232
232
  - **`always` transitions**: Entry guards on states. Used for protected routes — if the guard fires, the machine redirects before the state is fully entered.
233
233
  - **Lowercase dot-separated event types**: `"auth.login"`, `"auth.logout"`, `"play.route"` — not `SCREAMING_SNAKE_CASE`.
234
234
 
235
+ ## Connecting the Renderer
236
+
237
+ The machine spec above defines view structure — but nothing renders until you wire a renderer. Use `createRenderer` from `@xmachines/play-dom`:
238
+
239
+ ```typescript
240
+ import { createRenderer, schema } from "@xmachines/play-dom";
241
+ import { defineCatalog } from "@json-render/core";
242
+ import { z } from "zod";
243
+ import type { ComponentFn } from "@xmachines/play-dom";
244
+
245
+ const catalog = defineCatalog(schema, {
246
+ components: {
247
+ Home: { props: z.object({ title: z.string() }) },
248
+ Login: { props: z.object({ title: z.string(), username: z.string().optional() }) },
249
+ Dashboard: { props: z.object({ title: z.string() }) },
250
+ },
251
+ actions: {
252
+ // Must declare all actions that appear in meta.view on-bindings
253
+ login: { params: z.object({ username: z.string() }) },
254
+ logout: {},
255
+ },
256
+ });
257
+ type AppCatalog = typeof catalog;
258
+
259
+ // Component implementations receive typed props + emit/on helpers
260
+ const Home: ComponentFn<AppCatalog, "Home"> = ({ props }) => {
261
+ const el = document.createElement("section");
262
+ el.textContent = props.title;
263
+ return el;
264
+ };
265
+
266
+ const Login: ComponentFn<AppCatalog, "Login"> = ({ props, on, ctx }) => {
267
+ const section = document.createElement("section");
268
+ const input = document.createElement("input");
269
+ input.value = props.username ?? "";
270
+ // Keep the local state store in sync as the user types
271
+ input.addEventListener("input", () => {
272
+ ctx.store.update((s) => ({ ...s, username: input.value }));
273
+ });
274
+ const button = document.createElement("button");
275
+ button.textContent = "Log In";
276
+ const submit = on("submit"); // bound to the spec's on.submit binding
277
+ button.addEventListener("click", () => submit.emit()); // resolves $state, calls login action
278
+ section.append(input, button);
279
+ return section;
280
+ };
281
+
282
+ const Dashboard: ComponentFn<AppCatalog, "Dashboard"> = ({ props, on }) => {
283
+ const section = document.createElement("section");
284
+ section.textContent = props.title;
285
+ const btn = document.createElement("button");
286
+ btn.textContent = "Log Out";
287
+ const logout = on("logout");
288
+ btn.addEventListener("click", () => logout.emit());
289
+ section.append(btn);
290
+ return section;
291
+ };
292
+
293
+ // createRenderer builds the factory once — call mount() when the actor is ready
294
+ const mount = createRenderer(catalog, { Home, Login, Dashboard });
295
+
296
+ const actor = createPlayer();
297
+ actor.start();
298
+
299
+ const disconnect = mount(actor, document.getElementById("app")!);
300
+
301
+ // Cleanup
302
+ window.addEventListener("beforeunload", () => {
303
+ disconnect();
304
+ actor.stop();
305
+ });
306
+ ```
307
+
308
+ **Key points:**
309
+
310
+ - `actions` in `defineCatalog` must include every action name referenced in `meta.view` spec `on:` bindings. TypeScript enforces this via `CatalogHasActions`.
311
+ - `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
+ - `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
+
235
314
  ## Next Steps
236
315
 
237
316
  - **[Basic State Machine](basic-state-machine.md)** — Foundational concepts without a view layer
238
317
  - **[Routing Patterns](routing-patterns.md)** — Parameter routes, relative routes, and `always` auth guards
318
+ - **[play-dom README](../../packages/play-dom/README.md)** — Full `ComponentFn`, `ActionFn`, and spec directive reference
239
319
  - **[play-router README](../api/@xmachines/play-router/README.md)** — Route extraction and tree building
@@ -249,20 +249,19 @@ import {
249
249
  connectRouter,
250
250
  createRouteMap,
251
251
  } from "@xmachines/play-dom-router";
252
- import { extractMachineRoutes } from "@xmachines/play-router";
253
252
 
254
- const routeTree = extractMachineRoutes(authMachine);
253
+ // createRouteMap extracts meta.route declarations from the machine
255
254
  const routeMap = createRouteMap(authMachine);
256
255
 
257
256
  const history = createBrowserHistory({ window });
258
- const router = createRouter({ routeTree, history });
257
+ const router = createRouter({ routeTree: authMachine, history });
259
258
 
260
259
  // connectRouter handles all bidirectional sync:
261
- // - actor.currentRoute → browser URL
262
- // - browser URL changes → play.route event to actor
260
+ // - actor.currentRoute signal → browser URL (history.push)
261
+ // - browser URL changes → play.route event sent to actor
263
262
  const disconnect = connectRouter({ actor, router, routeMap });
264
263
 
265
- // cleanup on unload
264
+ // Cleanup on unload
266
265
  window.addEventListener("beforeunload", () => {
267
266
  disconnect();
268
267
  router.destroy();
@@ -271,26 +270,17 @@ window.addEventListener("beforeunload", () => {
271
270
 
272
271
  ## React Router Setup
273
272
 
274
- For React, use `@xmachines/play-react-router` or `@xmachines/play-tanstack-react-router` with the `PlayRouterProvider` and `createRouteMapFromTree`:
273
+ For React, use `@xmachines/play-react-router` or `@xmachines/play-tanstack-react-router`:
275
274
 
276
- ```typescript
277
- import { extractMachineRoutes } from "@xmachines/play-router";
275
+ ```tsx
278
276
  import { PlayRouterProvider, createRouteMapFromTree } from "@xmachines/play-tanstack-react-router";
277
+ import { extractMachineRoutes } from "@xmachines/play-router";
279
278
 
280
279
  const routeTree = extractMachineRoutes(authMachine);
281
280
  const routeMap = createRouteMapFromTree(routeTree);
282
281
 
283
282
  function App() {
284
- return (
285
- <PlayRouterProvider
286
- actor={actor}
287
- router={router}
288
- routeMap={routeMap}
289
- renderer={(currentActor, currentRouter) => (
290
- <Shell actor={currentActor} router={currentRouter} registry={registry} />
291
- )}
292
- />
293
- );
283
+ return <PlayRouterProvider actor={actor} router={router} routeMap={routeMap} />;
294
284
  }
295
285
  ```
296
286
 
@@ -160,56 +160,69 @@ actor.stop();
160
160
 
161
161
  ## Step 6: Add a View Registry (Optional)
162
162
 
163
- Connect a renderer to map `meta.view` specs to real components. The vanilla DOM renderer uses `connectRenderer` + `defineRegistry`:
163
+ Connect a renderer to map `meta.view` specs to real components.
164
164
 
165
- ```typescript
166
- import { connectRenderer, defineRegistry } from "@xmachines/play-dom";
167
- import { authCatalog } from "@xmachines/play-actor-shared";
168
- import { Home, Login } from "./components/index.js";
165
+ **Vanilla DOM** — use `createRenderer` (one-call pattern):
169
166
 
170
- const { registry } = defineRegistry(authCatalog, {
171
- components: { Home, Login },
167
+ ```typescript
168
+ import { createRenderer, schema } from "@xmachines/play-dom";
169
+ import { defineCatalog } from "@json-render/core";
170
+ import { z } from "zod";
171
+ import type { ComponentFn } from "@xmachines/play-dom";
172
+
173
+ const catalog = defineCatalog(schema, {
174
+ components: {
175
+ Home: { props: z.object({ title: z.string() }) },
176
+ Login: { props: z.object({ title: z.string() }) },
177
+ },
178
+ actions: {
179
+ login: { params: z.object({ username: z.string() }) },
180
+ logout: {},
181
+ },
172
182
  });
173
183
 
174
- const disconnectRenderer = connectRenderer({
175
- actor,
176
- registry,
177
- container: document.getElementById("app")!,
178
- });
184
+ const Home: ComponentFn<typeof catalog, "Home"> = ({ props }) => {
185
+ const el = document.createElement("section");
186
+ el.textContent = props.title;
187
+ return el;
188
+ };
189
+ const Login: ComponentFn<typeof catalog, "Login"> = ({ props, on }) => {
190
+ const el = document.createElement("section");
191
+ const btn = document.createElement("button");
192
+ const submit = on("submit");
193
+ btn.addEventListener("click", () => submit.emit());
194
+ el.append(btn);
195
+ return el;
196
+ };
197
+
198
+ // Build factory once, mount when actor + container are ready
199
+ const mount = createRenderer(catalog, { Home, Login });
200
+ const disconnectRenderer = mount(actor, document.getElementById("app")!);
179
201
 
180
- // cleanup
202
+ // Cleanup
181
203
  window.addEventListener("beforeunload", () => {
182
204
  disconnectRenderer();
183
205
  actor.stop();
184
206
  });
185
207
  ```
186
208
 
187
- For React, use `PlayRenderer` from `@xmachines/play-react`:
209
+ **React** use `PlayRenderer` from `@xmachines/play-react`:
188
210
 
189
211
  ```tsx
190
212
  import { PlayRenderer, defineRegistry } from "@xmachines/play-react";
191
213
  import { authCatalog } from "@xmachines/play-actor-shared";
192
214
  import { Home, Login } from "./components/index.js";
193
215
 
194
- const { registry } = defineRegistry(authCatalog, {
216
+ const registryResult = defineRegistry(authCatalog, {
195
217
  components: { Home, Login },
196
218
  actions: {
197
- login: async () => {},
198
- logout: async () => {},
219
+ login: async (params) => actor.send({ type: "auth.login", username: params!.username }),
220
+ logout: async () => actor.send({ type: "auth.logout" }),
199
221
  },
200
222
  });
201
223
 
202
224
  function App() {
203
- return (
204
- <PlayRenderer
205
- actor={actor}
206
- registry={registry}
207
- actions={{
208
- login: "auth.login",
209
- logout: "auth.logout",
210
- }}
211
- />
212
- );
225
+ return <PlayRenderer actor={actor} registryResult={registryResult} />;
213
226
  }
214
227
  ```
215
228
 
@@ -275,17 +288,17 @@ actor.stop();
275
288
 
276
289
  ## Glossary
277
290
 
278
- | Term | Description |
279
- | ---------------------------- | -------------------------------------------------------------------------------------------- |
280
- | `setup({ types })` | XState v5 entry point — declares TypeScript types for context, events, and input |
281
- | `definePlayer({ machine })` | Creates a factory that produces `PlayerActor` instances from the machine |
282
- | `actor.start()` | Activates the machine — always call before sending events |
283
- | `actor.send({ type })` | Sends an event to the machine |
284
- | `actor.getSnapshot()` | Synchronous snapshot of the current state and context |
285
- | `actor.state` | `Signal.State<Snapshot>` — TC39 Signal for reactive state observation |
286
- | `actor.currentRoute` | `Signal.Computed<string \| null>` — resolved URL from the active state's `meta.route` |
287
- | `actor.currentView` | `Signal.State<ViewMetadata \| null>` — current view spec from the active state's `meta.view` |
288
- | `formatPlayRouteTransitions` | Utility that generates `play.route` handlers from `id` + `meta.route` state pairs |
291
+ | Term | Description |
292
+ | ---------------------------- | ------------------------------------------------------------------------------------------------------ |
293
+ | `setup({ types })` | XState v5 entry point — declares TypeScript types for context, events, and input |
294
+ | `definePlayer({ machine })` | Creates a factory that produces `PlayerActor` instances from the machine |
295
+ | `actor.start()` | Activates the machine — always call before sending events |
296
+ | `actor.send({ type })` | Sends an event to the machine |
297
+ | `actor.getSnapshot()` | Synchronous snapshot of the current state and context |
298
+ | `actor.state` | `Signal.State<Snapshot>` — TC39 Signal for reactive state observation |
299
+ | `actor.currentRoute` | `Signal.Computed<string \| null>` — resolved URL from the active state's `meta.route` |
300
+ | `actor.currentView` | `Signal.State<ViewMetadata \| null>` — view spec from the active state's `meta.view`; drives renderers |
301
+ | `formatPlayRouteTransitions` | Utility that generates `play.route` handlers from `id` + `meta.route` state pairs |
289
302
 
290
303
  ## Next Steps
291
304
 
@@ -72,12 +72,12 @@ npx tsx my-script.ts
72
72
  npm install @xmachines/play-dom @xmachines/play-dom-router @xmachines/play-router @json-render/core
73
73
  ```
74
74
 
75
- | Package | Role |
76
- | ---------------------------- | ------------------------------------------------------------------------- |
77
- | `@xmachines/play-dom` | `connectRenderer`, `defineRegistry` |
78
- | `@xmachines/play-dom-router` | `connectRouter`, `createBrowserHistory`, `createRouter`, `createRouteMap` |
79
- | `@xmachines/play-router` | `extractMachineRoutes`, `getRoutableRoutes` |
80
- | `@json-render/core` | Catalog and schema definitions (`defineCatalog`) |
75
+ | Package | Role |
76
+ | ---------------------------- | -------------------------------------------------------------------------------- |
77
+ | `@xmachines/play-dom` | `createRenderer`, `connectRenderer`, `defineRegistry`, `ComponentFn`, `ActionFn` |
78
+ | `@xmachines/play-dom-router` | `connectRouter`, `createBrowserHistory`, `createRouter`, `createRouteMap` |
79
+ | `@xmachines/play-router` | `extractMachineRoutes`, `getRoutableRoutes`, `formatPlayRouteTransitions` |
80
+ | `@json-render/core` | Catalog and schema definitions (`defineCatalog`) |
81
81
 
82
82
  ### React
83
83
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xmachines/docs",
3
- "version": "1.0.0-beta.31",
3
+ "version": "1.0.0-beta.33",
4
4
  "description": "Documentation for XMachines",
5
5
  "keywords": [
6
6
  "documentation",
@@ -49,12 +49,12 @@
49
49
  "test": "vitest run"
50
50
  },
51
51
  "devDependencies": {
52
- "@xmachines/shared": "1.0.0-beta.31",
53
- "oxfmt": "^0.43.0",
54
- "oxlint": "^1.57.0",
55
- "typedoc": "^0.28.18",
52
+ "@xmachines/shared": "1.0.0-beta.33",
53
+ "oxfmt": "^0.45.0",
54
+ "oxlint": "^1.60.0",
55
+ "typedoc": "^0.28.19",
56
56
  "typedoc-plugin-llms-txt": "^0.1.2",
57
57
  "typedoc-plugin-markdown": "^4.11.0",
58
- "vitest": "^4.1.2"
58
+ "vitest": "^4.1.4"
59
59
  }
60
60
  }
package/rfc/play.md CHANGED
@@ -20,24 +20,24 @@ The reference implementation provides a modular monorepo that satisfies the arch
20
20
  ### 2.1 Roles
21
21
 
22
22
  - **The Actor (Logic Engine)**
23
- - Pure, environment-agnostic logic runtime
24
- - Owns state, guards, errors, and route validity
25
- - Emits _Virtual Routes_ as derived intent
23
+ - Pure, environment-agnostic logic runtime
24
+ - Owns state, guards, errors, and route validity
25
+ - Emits _Virtual Routes_ as derived intent
26
26
 
27
27
  - **The Runtime Adapter (Infrastructure Layer)**
28
- - Environment-specific adapter (Browser, Native, Server, Test Runner)
29
- - Reflects Actor output into the environment
30
- - Forwards environment events to the Actor without interpretation
28
+ - Environment-specific adapter (Browser, Native, Server, Test Runner)
29
+ - Reflects Actor output into the environment
30
+ - Forwards environment events to the Actor without interpretation
31
31
 
32
32
  - **The View**
33
- - Passive consumer of Actor state
34
- - No business rules or routing authority
33
+ - Passive consumer of Actor state
34
+ - No business rules or routing authority
35
35
 
36
36
  ### 2.2 Communication Medium
37
37
 
38
38
  - **Signals (TC39 Proposal)**
39
- - Used exclusively for Actor ↔ Adapter communication
40
- - Enables synchronous, glitch-free propagation
39
+ - Used exclusively for Actor ↔ Adapter communication
40
+ - Enables synchronous, glitch-free propagation
41
41
 
42
42
  ---
43
43
 
@@ -75,9 +75,9 @@ The reference implementation provides a modular monorepo that satisfies the arch
75
75
  - Defines **Virtual Routes** as metadata on state nodes
76
76
  - Validates all incoming navigation intents
77
77
  - On invalid intent:
78
- 1. Transitions to an error or fallback state
79
- 2. Emits a corresponding Virtual Route (e.g. `/error`, `/login`)
80
- 3. Forces the environment to realign with Actor state
78
+ 1. Transitions to an error or fallback state
79
+ 2. Emits a corresponding Virtual Route (e.g. `/error`, `/login`)
80
+ 3. Forces the environment to realign with Actor state
81
81
 
82
82
  The Actor has zero knowledge of:
83
83
 
@@ -114,9 +114,9 @@ Wraps the TC39 Signals (Stage 1) polyfill. By isolating the reactive primitive w
114
114
  **Exports:**
115
115
 
116
116
  - `Signal` — Re-exported namespace from `signal-polyfill`:
117
- - `Signal.State` — Actor output snapshot
118
- - `Signal.Computed` — Lazy, pull-based derivation of routes and views
119
- - `Signal.subtle.Watcher` — Synchronous observation for Runtime Adapters
117
+ - `Signal.State` — Actor output snapshot
118
+ - `Signal.Computed` — Lazy, pull-based derivation of routes and views
119
+ - `Signal.subtle.Watcher` — Synchronous observation for Runtime Adapters
120
120
  - `watchSignal` — Convenience function: subscribes to a single signal with a one-shot watcher lifecycle and microtask batching; returns a cleanup function
121
121
 
122
122
  #### 5.1.2 `@xmachines/play`
@@ -251,9 +251,9 @@ Provides the complete routing infrastructure: route extraction from state machin
251
251
  - `RouterBridge` — Interface: `{ connect(): void; disconnect(): void }`
252
252
  - `PlayRouteEvent` — Routing event: `{ type: 'play.route'; to: string; params?; query?; match? }`
253
253
  - `RouterBridgeBase` — Abstract base class that encapsulates common bridge logic (signal watching, route synchronization, param/query extraction). Subclasses implement only three methods:
254
- - `navigateRouter(path)` — Push a path into the framework router
255
- - `watchRouterChanges()` — Subscribe to framework router navigation events
256
- - `unwatchRouterChanges()` — Unsubscribe from framework router events
254
+ - `navigateRouter(path)` — Push a path into the framework router
255
+ - `watchRouterChanges()` — Subscribe to framework router navigation events
256
+ - `unwatchRouterChanges()` — Unsubscribe from framework router events
257
257
 
258
258
  **Route Extraction Exports:**
259
259
 
@@ -1,23 +0,0 @@
1
- [Documentation](../../../README.md) / [@xmachines/play-dom](../README.md) / DefineRegistryOptions
2
-
3
- # Interface: DefineRegistryOptions\<C\>
4
-
5
- Defined in: [json-render/types.ts:144](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.31/packages/play-dom/src/json-render/types.ts#L144)
6
-
7
- Options for `defineRegistry`.
8
-
9
- Mirrors `DefineRegistryOptions<C>` from @json-render/react, /solid, /svelte, /vue.
10
- `actions` accepts catalog-typed async handler functions — params are fully typed.
11
-
12
- ## Type Parameters
13
-
14
- | Type Parameter |
15
- | ----------------------- |
16
- | `C` _extends_ `Catalog` |
17
-
18
- ## Properties
19
-
20
- | Property | Type | Description | Defined in |
21
- | ---------------------------------------------- | ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
22
- | <a id="property-actions"></a> `actions?` | [`Actions`](../type-aliases/Actions.md)\<`C`\> | Map of catalog action name → catalog-typed async handler function. Each handler receives params typed to the action's schema (or `undefined`). Guard against undefined before accessing params: **Example** `actions: { login: async (params) => { if (!params) return; actor.send({ type: 'auth.login', username: params.username }); }, }` | [json-render/types.ts:165](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.31/packages/play-dom/src/json-render/types.ts#L165) |
23
- | <a id="property-components"></a> `components?` | [`ComponentRegistry`](../type-aliases/ComponentRegistry.md)\<`C`\> | Catalog-typed component implementations. | [json-render/types.ts:148](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.31/packages/play-dom/src/json-render/types.ts#L148) |