@xmachines/docs 1.0.0-beta.32 → 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 (276) 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/classes/AbstractActor.md +3 -3
  6. package/api/@xmachines/play-actor/functions/typedSpec.md +1 -1
  7. package/api/@xmachines/play-actor/interfaces/PlaySpec.md +2 -2
  8. package/api/@xmachines/play-actor/interfaces/Routable.md +3 -3
  9. package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +3 -3
  10. package/api/@xmachines/play-actor/interfaces/Viewable.md +2 -2
  11. package/api/@xmachines/play-dom/README.md +228 -39
  12. package/api/@xmachines/play-dom/classes/PlayRenderer.md +39 -26
  13. package/api/@xmachines/play-dom/functions/connectRenderer.md +39 -20
  14. package/api/@xmachines/play-dom/functions/createRenderer.md +43 -0
  15. package/api/@xmachines/play-dom/functions/defineRegistry.md +5 -5
  16. package/api/@xmachines/play-dom/functions/renderSpec.md +43 -9
  17. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +7 -7
  18. package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +11 -9
  19. package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +7 -7
  20. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +14 -9
  21. package/api/@xmachines/play-dom/interfaces/EventHandle.md +4 -4
  22. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +7 -5
  23. package/api/@xmachines/play-dom/type-aliases/ActionFn.md +23 -7
  24. package/api/@xmachines/play-dom/type-aliases/Actions.md +1 -1
  25. package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +114 -0
  26. package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +25 -0
  27. package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +1 -1
  28. package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +1 -1
  29. package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +39 -0
  30. package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +1 -1
  31. package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +1 -1
  32. package/api/@xmachines/play-dom/type-aliases/DomSchema.md +1 -1
  33. package/api/@xmachines/play-dom/type-aliases/SetState.md +30 -0
  34. package/api/@xmachines/play-dom/variables/schema.md +1 -1
  35. package/api/@xmachines/play-dom-router/README.md +166 -59
  36. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  37. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  38. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +1 -1
  39. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  40. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
  41. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  42. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +4 -4
  43. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +6 -6
  44. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +3 -3
  45. package/api/@xmachines/play-dom-router/interfaces/RouteMapLike.md +3 -3
  46. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  47. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
  48. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
  49. package/api/@xmachines/play-dom-router/type-aliases/RoutableActor.md +1 -1
  50. package/api/@xmachines/play-react/README.md +1 -0
  51. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +5 -5
  52. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  53. package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
  54. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +4 -4
  55. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +3 -3
  56. package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +9 -8
  57. package/api/@xmachines/play-react/type-aliases/PlayActor.md +1 -1
  58. package/api/@xmachines/play-react/type-aliases/RenderErrorHandler.md +22 -0
  59. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  60. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +23 -23
  61. package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
  62. package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +1 -1
  63. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
  64. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +6 -6
  65. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  66. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  67. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  68. package/api/@xmachines/play-router/classes/BaseRouteMap.md +4 -4
  69. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +23 -23
  70. package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +1 -1
  71. package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
  72. package/api/@xmachines/play-router/functions/createRouteMap.md +1 -1
  73. package/api/@xmachines/play-router/functions/createRouteMapFromMachine.md +1 -1
  74. package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +1 -1
  75. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
  76. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
  77. package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
  78. package/api/@xmachines/play-router/functions/extractRouteParams.md +1 -1
  79. package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
  80. package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
  81. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
  82. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
  83. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
  84. package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
  85. package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
  86. package/api/@xmachines/play-router/functions/routeExists.md +1 -1
  87. package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
  88. package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
  89. package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
  90. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
  91. package/api/@xmachines/play-router/interfaces/LocationLike.md +3 -3
  92. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
  93. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
  94. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +6 -6
  95. package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
  96. package/api/@xmachines/play-router/interfaces/RouteMap.md +4 -4
  97. package/api/@xmachines/play-router/interfaces/RouteMapping.md +3 -3
  98. package/api/@xmachines/play-router/interfaces/RouteMatch.md +3 -3
  99. package/api/@xmachines/play-router/interfaces/RouteNode.md +10 -10
  100. package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
  101. package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
  102. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
  103. package/api/@xmachines/play-router/interfaces/RouterBridge.md +3 -3
  104. package/api/@xmachines/play-router/interfaces/WindowLike.md +3 -3
  105. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
  106. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
  107. package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
  108. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
  109. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
  110. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
  111. package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
  112. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
  113. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
  114. package/api/@xmachines/play-solid/README.md +1 -0
  115. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  116. package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +9 -8
  117. package/api/@xmachines/play-solid/type-aliases/PlayActor.md +1 -1
  118. package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +22 -0
  119. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  120. package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
  121. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +24 -24
  122. package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +1 -1
  123. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +1 -1
  124. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +3 -3
  125. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +6 -6
  126. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  127. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  128. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  129. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
  130. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  131. package/api/@xmachines/play-svelte/README.md +44 -9
  132. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  133. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +6 -5
  134. package/api/@xmachines/play-svelte/interfaces/PlayRendererProps.md +9 -8
  135. package/api/@xmachines/play-svelte/type-aliases/RenderErrorHandler.md +23 -0
  136. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
  137. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  138. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +1 -1
  139. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +4 -4
  140. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +6 -6
  141. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  142. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  143. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  144. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
  145. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
  146. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  147. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +1 -1
  148. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +4 -4
  149. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  150. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +6 -6
  151. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  152. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  153. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
  154. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
  155. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +23 -23
  156. package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +1 -1
  157. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +1 -1
  158. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  159. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
  160. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +6 -6
  161. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  162. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  163. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
  164. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  165. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  166. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
  167. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
  168. package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +24 -24
  169. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +1 -1
  170. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +1 -1
  171. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +6 -6
  172. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  173. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  174. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  175. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
  176. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  177. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +3 -3
  178. package/api/@xmachines/play-vue/README.md +1 -0
  179. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  180. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  181. package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +7 -6
  182. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  183. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  184. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  185. package/api/@xmachines/play-vue/type-aliases/PlayActor.md +1 -1
  186. package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +22 -0
  187. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  188. package/api/@xmachines/play-vue-router/classes/RouteMap.md +4 -4
  189. package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +4 -4
  190. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +24 -24
  191. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
  192. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +6 -6
  193. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +3 -3
  194. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
  195. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
  196. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
  197. package/api/@xmachines/play-xstate/classes/PlayerActor.md +12 -12
  198. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
  199. package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
  200. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
  201. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
  202. package/api/@xmachines/play-xstate/functions/definePlayer.md +1 -1
  203. package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
  204. package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
  205. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
  206. package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
  207. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
  208. package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
  209. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
  210. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
  211. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
  212. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
  213. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
  214. package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
  215. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
  216. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
  217. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
  218. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
  219. package/api/@xmachines/shared/functions/defineXmVitestConfig.md +1 -1
  220. package/api/@xmachines/shared/functions/xmAliases.md +1 -1
  221. package/api/_media/README.md +321 -0
  222. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
  223. package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
  224. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  225. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  226. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  227. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  228. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  229. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  230. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  231. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  232. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  233. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  234. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  235. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  236. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  237. package/examples/@xmachines/play-react-demo/functions/App.md +1 -1
  238. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  239. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  240. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  241. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  242. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
  243. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  244. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  245. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  246. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  247. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  248. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  249. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  250. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  251. package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
  252. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  253. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  254. package/examples/@xmachines/play-solid-demo/functions/App.md +1 -1
  255. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  256. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  257. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  258. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  259. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
  260. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  261. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  262. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  263. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  264. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  265. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  266. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  267. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  268. package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
  269. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  270. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
  271. package/examples/form-validation.md +80 -0
  272. package/examples/routing-patterns.md +9 -19
  273. package/guides/getting-started.md +51 -38
  274. package/guides/installation.md +6 -6
  275. package/package.json +2 -2
  276. package/api/@xmachines/play-dom/interfaces/DefineRegistryOptions.md +0 -23
@@ -2,34 +2,42 @@
2
2
 
3
3
  # Class: PlayRenderer
4
4
 
5
- Defined in: [PlayRenderer.ts:60](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/PlayRenderer.ts#L60)
5
+ Defined in: [PlayRenderer.ts:78](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/PlayRenderer.ts#L78)
6
6
 
7
- PlayRenderer connects an actor's currentView signal to the DOM renderer.
7
+ PlayRenderer connects an actor's `currentView` signal to the DOM renderer.
8
8
 
9
- Usage:
9
+ Watches `actor.currentView` via TC39 Signals and renders `DomComponentRenderer`
10
+ functions into `container` on every view transition. Cleared on `disconnect()`.
11
+
12
+ **Preferred usage — via `registryResult`:**
10
13
 
11
14
  ```typescript
12
- const { registry, handlers } = defineRegistry(catalog, { components, actions });
13
- const resolvedHandlers = handlers(
14
- () => undefined,
15
- () => ({}),
16
- );
17
- const renderer = new PlayRenderer(container, actor, registry, { handlers: resolvedHandlers });
15
+ import { PlayRenderer, defineRegistry } from "@xmachines/play-dom";
16
+
17
+ const registryResult = defineRegistry(catalog, { components, actions });
18
+ const renderer = new PlayRenderer(container, actor, registryResult.registry, {
19
+ registryResult, // wires setState/getState from xstate store automatically
20
+ });
18
21
  renderer.connect();
22
+ // Later:
23
+ renderer.disconnect();
24
+ ```
25
+
26
+ **Controlled store mode** — bring your own `StateStore`:
19
27
 
20
- // Controlled mode — bring your own store:
28
+ ```typescript
21
29
  import { createAtom } from "@xstate/store";
22
30
  import { xstateStoreStateStore } from "@json-render/xstate";
23
- const store = xstateStoreStateStore({ atom: createAtom({ username: "" }) });
24
- const renderer = new PlayRenderer(container, actor, registry, {
25
- store,
26
- handlers: resolvedHandlers,
27
- });
28
31
 
29
- // Later:
30
- renderer.disconnect();
32
+ const atom = createAtom({ username: "" });
33
+ const store = xstateStoreStateStore({ atom });
34
+ const renderer = new PlayRenderer(container, actor, registry, { registryResult, store });
35
+ renderer.connect();
31
36
  ```
32
37
 
38
+ Double `connect()` is safe — calling `connect()` while already connected
39
+ automatically disconnects first, preventing double-render subscriptions.
40
+
33
41
  ## Constructors
34
42
 
35
43
  ### Constructor
@@ -42,16 +50,16 @@ new PlayRenderer(
42
50
  options?): PlayRenderer;
43
51
  ```
44
52
 
45
- Defined in: [PlayRenderer.ts:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/PlayRenderer.ts#L72)
53
+ Defined in: [PlayRenderer.ts:101](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/PlayRenderer.ts#L101)
46
54
 
47
55
  #### Parameters
48
56
 
49
- | Parameter | Type | Description |
50
- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
51
- | `container` | `HTMLElement` | The `HTMLElement` to render into. Cleared and repopulated on every view transition. |
52
- | `actor` | [`AbstractActor`](../../play-actor/classes/AbstractActor.md)\<[`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic), [`EventObject`](https://www.jsdocs.io/package/xstate#EventObject)\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | Actor instance providing the `currentView` signal (must implement `Viewable`). |
53
- | `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | Map of component type names to `DomComponentRenderer` functions. |
54
- | `options` | [`PlayDomOptions`](../interfaces/PlayDomOptions.md) | Optional configuration: `handlers` map (action name async handler) and optional external `store` (controlled mode when omitted, a fresh `@xstate/store` atom is created per view transition seeded from `spec.state`). |
57
+ | Parameter | Type | Description |
58
+ | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
59
+ | `container` | `HTMLElement` | `HTMLElement` to render into. Cleared and repopulated on every view transition. |
60
+ | `actor` | [`AbstractActor`](../../play-actor/classes/AbstractActor.md)\<[`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic), [`EventObject`](https://www.jsdocs.io/package/xstate#EventObject)\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | Actor providing the `currentView` signal (must implement `Viewable`). |
61
+ | `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | Component renderer map typically `registryResult.registry` from `defineRegistry`. |
62
+ | `options` | [`PlayDomOptions`](../interfaces/PlayDomOptions.md) | Configuration: - `registryResult` preferred; auto-wires `setState`/`state` from the xstate store. - `handlers` — pre-resolved handler map (legacy; used when `registryResult` is absent). - `store` external `StateStore` (controlled mode; overrides `spec.state` seeding). - `loading` — streaming mode flag; suppresses missing-child warnings. |
55
63
 
56
64
  #### Returns
57
65
 
@@ -65,11 +73,16 @@ Defined in: [PlayRenderer.ts:72](https://gitlab.com/xmachin-es/xmachines-js/-/bl
65
73
  connect(): void;
66
74
  ```
67
75
 
68
- Defined in: [PlayRenderer.ts:83](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/PlayRenderer.ts#L83)
76
+ Defined in: [PlayRenderer.ts:117](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/PlayRenderer.ts#L117)
69
77
 
70
78
  Start watching actor.currentView and render to container.
71
79
  Renders the initial view synchronously, then subscribes to signal changes.
72
80
 
81
+ Calling `connect()` on an already-connected renderer (where a previous
82
+ `connect()` was never followed by `disconnect()`) would silently install a
83
+ second `watchSignal` subscription, causing double-renders on every view
84
+ change. Guard against this by auto-disconnecting first.
85
+
73
86
  #### Returns
74
87
 
75
88
  `void`
@@ -82,7 +95,7 @@ Renders the initial view synchronously, then subscribes to signal changes.
82
95
  disconnect(): void;
83
96
  ```
84
97
 
85
- Defined in: [PlayRenderer.ts:91](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/PlayRenderer.ts#L91)
98
+ Defined in: [PlayRenderer.ts:126](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/PlayRenderer.ts#L126)
86
99
 
87
100
  Stop watching and clear the container.
88
101
 
@@ -6,46 +6,65 @@
6
6
  function connectRenderer(options): () => void;
7
7
  ```
8
8
 
9
- Defined in: [connect-renderer.ts:46](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/connect-renderer.ts#L46)
9
+ Defined in: [connect-renderer.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/connect-renderer.ts#L65)
10
10
 
11
- Connect a signal-driven DOM renderer to an actor's currentView signal.
11
+ Connect a signal-driven DOM renderer to an actor's `currentView` signal.
12
12
 
13
- Subscribes to `actor.currentView` via TC39 Signals and renders `DomComponentRenderer`
14
- functions into the provided `container` element on every state change.
13
+ Subscribes to `actor.currentView` via TC39 Signals and renders catalog-typed
14
+ components into `container` on every view transition. Clears the container
15
+ when the view is `null` (optionally appends `fallback` on initial mount).
15
16
 
16
- - Renders the initial view immediately (synchronous)
17
- - Re-renders when `actor.currentView` signal changes (via microtask)
18
- - Clears container when view is `null` (optionally appends fallback)
17
+ - Initial render is **synchronous** — the container is populated before `connectRenderer` returns.
18
+ - Signal-driven re-renders are **microtask-deferred** — `watchSignal` schedules them
19
+ on the next microtask queue tick, not synchronously within the signal update.
20
+
21
+ For the one-call pattern, prefer [createRenderer](createRenderer.md) which wraps `defineRegistry`
22
+ and `PlayRenderer` into a single factory function.
19
23
 
20
24
  ## Parameters
21
25
 
22
- | Parameter | Type | Description |
23
- | --------- | ------------------------------------------------------------------- | ---------------------- |
24
- | `options` | [`ConnectRendererOptions`](../interfaces/ConnectRendererOptions.md) | ConnectRendererOptions |
26
+ | Parameter | Type | Description |
27
+ | --------- | ------------------------------------------------------------------- | ----------------------------------------------------------------- |
28
+ | `options` | [`ConnectRendererOptions`](../interfaces/ConnectRendererOptions.md) | [ConnectRendererOptions](../interfaces/ConnectRendererOptions.md) |
25
29
 
26
30
  ## Returns
27
31
 
28
- A cleanup function that stops all DOM mutations
32
+ A cleanup function call to stop all DOM mutations and remove subscriptions.
29
33
 
30
34
  () => `void`
31
35
 
32
36
  ## Example
33
37
 
34
38
  ```typescript
35
- import { connectRenderer, type DomComponentRenderer } from "@xmachines/play-dom";
39
+ import { connectRenderer, defineRegistry, schema } from "@xmachines/play-dom";
40
+ import { defineCatalog } from "@json-render/core";
41
+ import { z } from "zod";
36
42
 
37
- const unwatch = connectRenderer({
38
- actor,
39
- registry: {
40
- Home: (element, ctx) => {
41
- const el = document.createElement("div");
42
- el.textContent = element.props.title as string;
43
+ const catalog = defineCatalog(schema, {
44
+ components: { Home: { props: z.object({ title: z.string() }) } },
45
+ actions: { logout: {} },
46
+ });
47
+
48
+ const registryResult = defineRegistry(catalog, {
49
+ components: {
50
+ Home: ({ props }) => {
51
+ const el = document.createElement("section");
52
+ el.textContent = props.title;
43
53
  return el;
44
54
  },
45
55
  },
56
+ actions: {
57
+ logout: async () => actor.send({ type: "auth.logout" }),
58
+ },
59
+ });
60
+
61
+ const disconnect = connectRenderer({
62
+ actor,
63
+ registry: registryResult.registry,
64
+ registryResult, // preferred — wires setState/state from xstate store automatically
46
65
  container: document.getElementById("app")!,
47
66
  });
48
67
 
49
- // Later: stop watching
50
- unwatch();
68
+ // Later:
69
+ disconnect();
51
70
  ```
@@ -0,0 +1,43 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-dom](../README.md) / createRenderer
2
+
3
+ # Function: createRenderer()
4
+
5
+ ```ts
6
+ function createRenderer<C>(catalog, componentMap): (actor, container, options?) => () => void;
7
+ ```
8
+
9
+ Defined in: [create-renderer.ts:83](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/create-renderer.ts#L83)
10
+
11
+ Create a reusable DOM renderer factory from a catalog and component map.
12
+
13
+ Returns a `mount(actor, container, options?)` function that wires up the
14
+ PlayRenderer in one call and returns a `disconnect` cleanup function.
15
+
16
+ ## Type Parameters
17
+
18
+ | Type Parameter |
19
+ | ------------------------------------------------------------------------------------------------------------------------------------ |
20
+ | `C` _extends_ `Catalog`\<`SchemaDefinition`\<`SchemaType`\<`string`, `unknown`\>, `SchemaType`\<`string`, `unknown`\>\>, `unknown`\> |
21
+
22
+ ## Parameters
23
+
24
+ | Parameter | Type | Description |
25
+ | -------------- | ------------------------------------------------------------------ | ---------------------------------------------------------------- |
26
+ | `catalog` | `C` | The json-render Catalog describing component and action schemas. |
27
+ | `componentMap` | [`ComponentRegistry`](../type-aliases/ComponentRegistry.md)\<`C`\> | Component implementations keyed by catalog component name. |
28
+
29
+ ## Returns
30
+
31
+ A `mount` function that accepts `(actor, container, options?)` and returns `disconnect`.
32
+
33
+ (`actor`, `container`, `options?`) => () => `void`
34
+
35
+ ## Remarks
36
+
37
+ `createRenderer` manages `registryResult` internally — it calls `defineRegistry` once and
38
+ reuses the result across all `mount()` calls. The `mount` options type therefore excludes
39
+ `registryResult` (it is always provided by `createRenderer` itself and cannot be overridden).
40
+
41
+ If you need to call `registryResult.executeAction()` programmatically (outside the emit/on
42
+ flow), or share the same `registryResult` with `connectRenderer`, use `defineRegistry` and
43
+ `PlayRenderer` directly rather than `createRenderer`.
@@ -6,7 +6,7 @@
6
6
  function defineRegistry<C>(_catalog, options): DefineRegistryResult;
7
7
  ```
8
8
 
9
- Defined in: [json-render/types.ts:213](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L213)
9
+ Defined in: [json-render/types.ts:351](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L351)
10
10
 
11
11
  Build a `DomRegistry` from a catalog and component/action options.
12
12
 
@@ -18,10 +18,10 @@ Build a `DomRegistry` from a catalog and component/action options.
18
18
 
19
19
  ## Parameters
20
20
 
21
- | Parameter | Type |
22
- | ---------- | ------------------------------------------------------------------------ |
23
- | `_catalog` | `C` |
24
- | `options` | [`DefineRegistryOptions`](../interfaces/DefineRegistryOptions.md)\<`C`\> |
21
+ | Parameter | Type |
22
+ | ---------- | -------------------------------------------------------------------------- |
23
+ | `_catalog` | `C` |
24
+ | `options` | [`DefineRegistryOptions`](../type-aliases/DefineRegistryOptions.md)\<`C`\> |
25
25
 
26
26
  ## Returns
27
27
 
@@ -3,10 +3,21 @@
3
3
  # Function: renderSpec()
4
4
 
5
5
  ```ts
6
- function renderSpec(spec, store, registry, send, handlers): Node | null;
6
+ function renderSpec(
7
+ spec,
8
+ store,
9
+ registry,
10
+ send,
11
+ handlers,
12
+ fallback?,
13
+ onRenderError?,
14
+ functions?,
15
+ loading?,
16
+ onWatchSetup?,
17
+ ): Node | null;
7
18
  ```
8
19
 
9
- Defined in: [json-render/renderer.ts:53](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/renderer.ts#L53)
20
+ Defined in: [json-render/renderer.ts:116](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/renderer.ts#L116)
10
21
 
11
22
  Render a Spec tree into DOM nodes using the provided `DomRegistry`.
12
23
 
@@ -19,13 +30,18 @@ built by `defineRegistry` — this function only orchestrates the traversal.
19
30
 
20
31
  ## Parameters
21
32
 
22
- | Parameter | Type | Description |
23
- | ---------- | ----------------------------------------------- | ------------------------------------------------------------ |
24
- | `spec` | `Spec` | The json-render `Spec` describing the UI tree. |
25
- | `store` | `StateStore` | Live `StateStore` bound to `spec.state`. |
26
- | `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | Map of element type names → `DomComponentRenderer`. |
27
- | `send` | (`event`) => `void` | Dispatcher for interaction events (e.g. actor.send). |
28
- | `handlers` | `Record`\<`string`, `ActionHandler`\> | Map of catalog action names → async ActionHandler functions. |
33
+ | Parameter | Type | Description |
34
+ | ---------------- | ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
35
+ | `spec` | `Spec` | The json-render `Spec` describing the UI tree. |
36
+ | `store` | `StateStore` | Live `StateStore` bound to `spec.state`. |
37
+ | `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | Map of element type names → `DomComponentRenderer`. |
38
+ | `send` | (`event`) => `void` | Dispatcher for interaction events (e.g. actor.send). |
39
+ | `handlers` | `Record`\<`string`, `ActionHandler`\> | Map of catalog action names → async ActionHandler functions. |
40
+ | `fallback?` | [`DomComponentRenderer`](../type-aliases/DomComponentRenderer.md) | Optional renderer called when `registry` has no entry for an element's `type` (GAP-04). If absent, unknown types return `null`. |
41
+ | `onRenderError?` | (`type`, `err`) => `void` | Optional callback invoked with `(type, error)` when a component renderer throws (GAP-08). If absent, errors are logged via `console.error` with the prefix `[json-render] Rendering error in`. |
42
+ | `functions?` | `Record`\<`string`, `ComputedFunction`\> | Optional map of named compute functions forwarded to `PropResolutionContext` (GAP-03). Enables `{ $computed: "fn", args }` prop expressions to resolve. When absent, `$computed` expressions return `undefined` (backward-compatible, no throw). |
43
+ | `loading?` | `boolean` | Optional flag indicating the spec is still streaming (GAP-06). When `true`, components can read `ctx.loading` to render skeleton states, and missing-child warnings (GAP-07) are suppressed since referenced elements may not yet have arrived in the incremental spec. |
44
+ | `onWatchSetup?` | (`cleanup`) => `void` | Optional callback invoked with each watch subscription cleanup function (GAP-02). When an element declares `watch`, the renderer sets up a store subscription and passes its unsubscribe function to this callback. Callers (e.g. PlayRenderer) collect these to call on disconnect(). |
29
45
 
30
46
  ## Returns
31
47
 
@@ -34,6 +50,24 @@ built by `defineRegistry` — this function only orchestrates the traversal.
34
50
  The root DOM `Node`, or `null` if the root is invisible
35
51
  or has no registered renderer.
36
52
 
53
+ ## Remarks
54
+
55
+ **Devtools isolation in tests:** The module-level `_devtoolsActive` flag is a
56
+ singleton that persists for the lifetime of the module. In test environments,
57
+ any call to `markDevtoolsActive()` MUST be paired with a `release()` call
58
+ inside a `try/finally` block. Failing to do so leaves `_devtoolsActive = true`
59
+ for all subsequent tests, causing false positives in devtools-conditional
60
+ rendering paths (e.g. `data-jr-key` wrapper spans).
61
+
62
+ ```ts
63
+ const release = markDevtoolsActive();
64
+ try {
65
+ // test code
66
+ } finally {
67
+ release();
68
+ }
69
+ ```
70
+
37
71
  ## Example
38
72
 
39
73
  ```ts
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: ComponentContext\<C, K\>
4
4
 
5
- Defined in: [json-render/types.ts:78](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L78)
5
+ Defined in: [json-render/types.ts:141](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L141)
6
6
 
7
7
  ## Type Parameters
8
8
 
@@ -15,9 +15,9 @@ Defined in: [json-render/types.ts:78](https://gitlab.com/xmachin-es/xmachines-js
15
15
 
16
16
  | Property | Type | Description | Defined in |
17
17
  | ----------------------------------------- | --------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
18
- | <a id="property-bindings"></a> `bindings` | `Record`\<`string`, `string`\> \| `undefined` | Two-way binding paths resolved from `$bindState` / `$bindItem` prop expressions. | [json-render/types.ts:88](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L88) |
19
- | <a id="property-children"></a> `children` | `Node`[] | Rendered child nodes from the spec's `children` list. | [json-render/types.ts:84](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L84) |
20
- | <a id="property-ctx"></a> `ctx` | [`DomRenderContext`](DomRenderContext.md) | Low-level render context. | [json-render/types.ts:100](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L100) |
21
- | <a id="property-emit"></a> `emit` | (`event`) => `void` | Dispatch a named event defined in the spec's `on` map. | [json-render/types.ts:92](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L92) |
22
- | <a id="property-on"></a> `on` | (`event`) => [`EventHandle`](EventHandle.md) | Get an `EventHandle` for a named event from the spec's `on` map. | [json-render/types.ts:96](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L96) |
23
- | <a id="property-props"></a> `props` | `InferComponentProps`\<`C`, `K`\> | Catalog-typed, store-resolved props for this component. | [json-render/types.ts:80](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L80) |
18
+ | <a id="property-bindings"></a> `bindings` | `Record`\<`string`, `string`\> \| `undefined` | Two-way binding paths resolved from `$bindState` / `$bindItem` prop expressions. | [json-render/types.ts:151](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L151) |
19
+ | <a id="property-children"></a> `children` | `Node`[] | Rendered child nodes from the spec's `children` list. | [json-render/types.ts:147](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L147) |
20
+ | <a id="property-ctx"></a> `ctx` | [`DomRenderContext`](DomRenderContext.md) | Low-level render context. | [json-render/types.ts:163](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L163) |
21
+ | <a id="property-emit"></a> `emit` | (`event`) => `void` | Dispatch a named event defined in the spec's `on` map. | [json-render/types.ts:155](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L155) |
22
+ | <a id="property-on"></a> `on` | (`event`) => [`EventHandle`](EventHandle.md) | Get an `EventHandle` for a named event from the spec's `on` map. | [json-render/types.ts:159](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L159) |
23
+ | <a id="property-props"></a> `props` | `InferComponentProps`\<`C`, `K`\> | Catalog-typed, store-resolved props for this component. | [json-render/types.ts:143](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L143) |
@@ -2,17 +2,19 @@
2
2
 
3
3
  # Interface: ConnectRendererOptions
4
4
 
5
- Defined in: [xm-types.ts:38](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/xm-types.ts#L38)
5
+ Defined in: [xm-types.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/xm-types.ts#L59)
6
6
 
7
7
  Options for connectRenderer() — backward compat API.
8
8
 
9
9
  ## Properties
10
10
 
11
- | Property | Type | Description | Defined in |
12
- | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
13
- | <a id="property-actor"></a> `actor` | [`AbstractActor`](../../play-actor/classes/AbstractActor.md)\<[`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic), [`EventObject`](https://www.jsdocs.io/package/xstate#EventObject)\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | Actor instance with currentView signal (requires Viewable capability) | [xm-types.ts:40](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/xm-types.ts#L40) |
14
- | <a id="property-container"></a> `container` | `HTMLElement` | Container element to render into | [xm-types.ts:46](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/xm-types.ts#L46) |
15
- | <a id="property-fallback"></a> `fallback?` | `HTMLElement` \| `null` | Optional element shown when currentView is null (defaults to nothing clears container) | [xm-types.ts:49](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/xm-types.ts#L49) |
16
- | <a id="property-handlers"></a> `handlers?` | `Record`\<`string`, `ActionHandler`\> | Map of catalog action name async ActionHandler function. Replaces the old `actions: Record<string, string>` string-map approach. | [xm-types.ts:55](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/xm-types.ts#L55) |
17
- | <a id="property-registry"></a> `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | Registry of component renderers replaces old `components` map | [xm-types.ts:43](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/xm-types.ts#L43) |
18
- | <a id="property-store"></a> `store?` | `StateStore` | Optional external StateStore (e.g. from `xstateStoreStateStore` in @json-render/xstate). When provided, PlayRenderer operates in controlled mode spec.state is ignored. When omitted, a fresh @xstate/store atom is created internally per view transition. | [xm-types.ts:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/xm-types.ts#L62) |
11
+ | Property | Type | Description | Defined in |
12
+ | ------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
13
+ | <a id="property-actor"></a> `actor` | [`AbstractActor`](../../play-actor/classes/AbstractActor.md)\<[`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic), [`EventObject`](https://www.jsdocs.io/package/xstate#EventObject)\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | Actor instance with currentView signal (requires Viewable capability) | [xm-types.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/xm-types.ts#L61) |
14
+ | <a id="property-container"></a> `container` | `HTMLElement` | Container element to render into | [xm-types.ts:85](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/xm-types.ts#L85) |
15
+ | <a id="property-fallback"></a> `fallback?` | `HTMLElement` \| `null` | Optional element shown when `currentView` is `null` on **initial mount** only. The fallback is appended immediately after `renderer.connect()` if the container is empty at that moment (i.e. the actor's initial view is `null`). **Limitation:** If the actor's view transitions to `null` after mount, the container will be cleared but this fallback will NOT be re-appended. For dynamic fallback behavior (null view after non-null), use `PlayRenderer` directly and wrap the `actor.currentView` signal to inject fallback content. | [xm-types.ts:98](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/xm-types.ts#L98) |
16
+ | <a id="property-handlers"></a> `handlers?` | `Record`\<`string`, `ActionHandler`\> | Pre-resolved handler map for backward compatibility. Ignored when `registryResult` is provided. | [xm-types.ts:110](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/xm-types.ts#L110) |
17
+ | <a id="property-loading"></a> `loading?` | `boolean` | When true, indicates the spec is still streaming (e.g. from an AI provider). Forwarded to PlayRenderer which threads it into renderSpec so components can read ctx.ctx.loading to show skeleton states. Also suppresses missing-child warnings. Mirrors the `loading` prop from framework renderer providers. | [xm-types.ts:125](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/xm-types.ts#L125) |
18
+ | <a id="property-registry"></a> `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | Registry of component renderers — replaces old `components` map. When also providing `registryResult`, this **must** be the `.registry` field from the **same** `defineRegistry()` call to keep component renderers and action handlers aligned. Mixing a `registry` from one catalog with a `registryResult` from another will cause component wrappers and action handlers to be mismatched, producing silent runtime failures. **Example** `const registryResult = defineRegistry(catalog, { components, actions }); connectRenderer({ registry: registryResult.registry, // ← from the same call registryResult, // ... });` | [xm-types.ts:82](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/xm-types.ts#L82) |
19
+ | <a id="property-registryresult"></a> `registryResult?` | [`DefineRegistryResult`](DefineRegistryResult.md) | The result from `defineRegistry` — wires setState/getState from the xstate store into action handlers automatically. Preferred over `handlers` for new code. | [xm-types.ts:104](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/xm-types.ts#L104) |
20
+ | <a id="property-store"></a> `store?` | `StateStore` | Optional external StateStore (e.g. from `xstateStoreStateStore` in @json-render/xstate). When provided, PlayRenderer operates in controlled mode — spec.state is ignored. When omitted, a fresh @xstate/store atom is created internally per view transition. | [xm-types.ts:117](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/xm-types.ts#L117) |
@@ -2,16 +2,16 @@
2
2
 
3
3
  # Interface: DefineRegistryResult
4
4
 
5
- Defined in: [json-render/types.ts:174](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L174)
5
+ Defined in: [json-render/types.ts:291](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L291)
6
6
 
7
7
  Result returned by `defineRegistry`.
8
8
 
9
- Matches `DefineRegistryResult` from @json-render/react, /solid, /svelte, /vue
10
- returns `{ registry, handlers }` instead of the old `{ registry, actorActions }`.
9
+ Matches `DefineRegistryResult` from @json-render/react, /solid, /svelte, /vue.
11
10
 
12
11
  ## Properties
13
12
 
14
- | Property | Type | Description | Defined in |
15
- | ----------------------------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
16
- | <a id="property-handlers"></a> `handlers` | (`getSetState`, `getState`) => `Record`\<`string`, `ActionHandler`\> | Create ActionProvider-compatible handlers. Accepts getter functions so handlers always read the latest state. For DOM rendering, pass `() => undefined, () => ({})` since DOM actions dispatch directly to actor without needing setState. | [json-render/types.ts:185](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L185) |
17
- | <a id="property-registry"></a> `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | The built `DomRegistry`, ready to pass to `connectRenderer` or `PlayRenderer`. | [json-render/types.ts:178](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L178) |
13
+ | Property | Type | Description | Defined in |
14
+ | --------------------------------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
15
+ | <a id="property-executeaction"></a> `executeAction` | (`actionName`, `params`, `setState`, `state?`) => `Promise`\<`void`\> | Execute a named action by name, with optional params. Mirrors `executeAction` on `DefineRegistryResult` from @json-render/react, /solid, /vue, /svelte. Useful for programmatically triggering actions outside of the emit/on flow. | [json-render/types.ts:321](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L321) |
16
+ | <a id="property-handlers"></a> `handlers` | (`getSetState`, `getState`) => `Record`\<`string`, `ActionHandler`\> | Create ActionProvider-compatible handlers. Accepts getter functions (called lazily at action-invocation time) so handlers always see the latest setState and state snapshot — matching the pattern from the framework renderers. In `PlayRenderer`, these are wired automatically from the xstate store. Pass `() => undefined, () => ({})` only in tests or when state management is not needed. | [json-render/types.ts:306](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L306) |
17
+ | <a id="property-registry"></a> `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | The built `DomRegistry`, ready to pass to `connectRenderer` or `PlayRenderer`. | [json-render/types.ts:295](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L295) |
@@ -2,17 +2,22 @@
2
2
 
3
3
  # Interface: DomRenderContext
4
4
 
5
- Defined in: [json-render/types.ts:52](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L52)
5
+ Defined in: [json-render/types.ts:85](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L85)
6
6
 
7
7
  Low-level render context passed to each `DomComponentRenderer`.
8
8
 
9
9
  ## Properties
10
10
 
11
- | Property | Type | Description | Defined in |
12
- | -------------------------------------------------------- | ------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
13
- | <a id="property-elementbindings"></a> `elementBindings?` | `Record`\<`string`, `string`\> | Pre-computed two-way binding paths for this element's props. | [json-render/types.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L66) |
14
- | <a id="property-handlers"></a> `handlers` | `Record`\<`string`, `ActionHandler`\> | Map of json-render catalog action names async ActionHandler functions. | [json-render/types.ts:60](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L60) |
15
- | <a id="property-renderchildren"></a> `renderChildren` | (`keys`) => `Node`[] | Render a list of child element keys into DOM nodes. | [json-render/types.ts:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L62) |
16
- | <a id="property-send"></a> `send` | (`event`) => `void` | Dispatch an event (e.g. to an XState actor). | [json-render/types.ts:58](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L58) |
17
- | <a id="property-spec"></a> `spec` | `Spec` | Full spec tree for this render pass. | [json-render/types.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L54) |
18
- | <a id="property-store"></a> `store` | `StateStore` | Live state store bound to `spec.state`. | [json-render/types.ts:56](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L56) |
11
+ | Property | Type | Description | Defined in |
12
+ | -------------------------------------------------------- | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
13
+ | <a id="property-elementbindings"></a> `elementBindings?` | `Record`\<`string`, `string`\> | Pre-computed two-way binding paths for this element's props. | [json-render/types.ts:99](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L99) |
14
+ | <a id="property-functions"></a> `functions?` | `Record`\<`string`, `ComputedFunction`\> | Optional map of named compute functions, forwarded to PropResolutionContext. Enables { $computed: "funcName", args: {...} } prop expressions to resolve. Mirrors the `functions` prop from framework renderer providers. | [json-render/types.ts:106](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L106) |
15
+ | <a id="property-handlers"></a> `handlers` | `Record`\<`string`, `ActionHandler`\> | Map of json-render catalog action names async ActionHandler functions. | [json-render/types.ts:93](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L93) |
16
+ | <a id="property-loading"></a> `loading?` | `boolean` | When true, indicates the spec is still streaming (e.g. from an AI provider). Component implementations can use this to show skeleton/loading states. When loading=true, missing-child warnings are suppressed. Mirrors the `loading` prop from framework renderer providers. | [json-render/types.ts:114](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L114) |
17
+ | <a id="property-renderchildren"></a> `renderChildren` | (`keys`) => `Node`[] | Render a list of child element keys into DOM nodes. | [json-render/types.ts:95](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L95) |
18
+ | <a id="property-repeatbasepath"></a> `repeatBasePath?` | `string` | Absolute JSON Pointer path to the current repeat item (e.g. "/todos/0"). Mirrors `repeatBasePath` in `PropResolutionContext`. | [json-render/types.ts:129](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L129) |
19
+ | <a id="property-repeatindex"></a> `repeatIndex?` | `number` | Current repeat array index when inside a repeat scope. Mirrors `repeatIndex` in `PropResolutionContext`. | [json-render/types.ts:124](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L124) |
20
+ | <a id="property-repeatitem"></a> `repeatItem?` | `unknown` | Current repeat item when inside a repeat scope. Mirrors `repeatItem` in `@json-render/core`'s `PropResolutionContext`. | [json-render/types.ts:119](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L119) |
21
+ | <a id="property-send"></a> `send` | (`event`) => `void` | Dispatch an event (e.g. to an XState actor). | [json-render/types.ts:91](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L91) |
22
+ | <a id="property-spec"></a> `spec` | `Spec` | Full spec tree for this render pass. | [json-render/types.ts:87](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L87) |
23
+ | <a id="property-store"></a> `store` | `StateStore` | Live state store bound to `spec.state`. | [json-render/types.ts:89](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L89) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: EventHandle
4
4
 
5
- Defined in: [json-render/types.ts:36](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L36)
5
+ Defined in: [json-render/types.ts:69](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L69)
6
6
 
7
7
  Handle returned by `ComponentContext.on(eventName)`.
8
8
 
@@ -10,6 +10,6 @@ Handle returned by `ComponentContext.on(eventName)`.
10
10
 
11
11
  | Property | Type | Description | Defined in |
12
12
  | ----------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
13
- | <a id="property-bound"></a> `bound` | `boolean` | `true` if an `on` binding exists for this event name; `false` otherwise. | [json-render/types.ts:44](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L44) |
14
- | <a id="property-emit"></a> `emit` | () => `void` | Fire the bound action, resolving params from the current state store. | [json-render/types.ts:38](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L38) |
15
- | <a id="property-shouldpreventdefault"></a> `shouldPreventDefault` | `boolean` | Whether any binding for this event has `preventDefault: true`. | [json-render/types.ts:42](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.32/packages/play-dom/src/json-render/types.ts#L42) |
13
+ | <a id="property-bound"></a> `bound` | `boolean` | `true` if an `on` binding exists for this event name; `false` otherwise. | [json-render/types.ts:77](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L77) |
14
+ | <a id="property-emit"></a> `emit` | () => `void` | Fire the bound action, resolving params from the current state store. | [json-render/types.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L71) |
15
+ | <a id="property-shouldpreventdefault"></a> `shouldPreventDefault` | `boolean` | Whether any binding for this event has `preventDefault: true`. | [json-render/types.ts:75](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/src/json-render/types.ts#L75) |