@xmachines/docs 1.0.0-beta.53 → 1.0.0-beta.55

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 (442) hide show
  1. package/README.md +1 -1
  2. package/api/@xmachines/play/classes/NonNullableError.md +7 -7
  3. package/api/@xmachines/play/classes/PlayError.md +7 -7
  4. package/api/@xmachines/play/functions/assertNonNullable.md +1 -1
  5. package/api/@xmachines/play/type-aliases/PlayEvent.md +2 -2
  6. package/api/@xmachines/play-actor/README.md +2 -0
  7. package/api/@xmachines/play-actor/classes/AbstractActor.md +14 -14
  8. package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +40 -0
  9. package/api/@xmachines/play-actor/functions/toAtomState.md +33 -0
  10. package/api/@xmachines/play-actor/functions/typedSpec.md +1 -1
  11. package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +5 -5
  12. package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +5 -5
  13. package/api/@xmachines/play-actor/interfaces/PlaySpec.md +2 -2
  14. package/api/@xmachines/play-actor/interfaces/Routable.md +3 -3
  15. package/api/@xmachines/play-actor/interfaces/Viewable.md +2 -2
  16. package/api/@xmachines/play-dom/README.md +2 -0
  17. package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
  18. package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
  19. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  20. package/api/@xmachines/play-dom/functions/defineRegistry.md +1 -1
  21. package/api/@xmachines/play-dom/functions/renderSpec.md +12 -30
  22. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +7 -7
  23. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +7 -6
  24. package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +4 -4
  25. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +16 -15
  26. package/api/@xmachines/play-dom/interfaces/EventHandle.md +4 -4
  27. package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
  28. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +9 -8
  29. package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +25 -0
  30. package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +6 -5
  31. package/api/@xmachines/play-dom/type-aliases/ActionFn.md +1 -1
  32. package/api/@xmachines/play-dom/type-aliases/Actions.md +1 -1
  33. package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +7 -7
  34. package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +1 -1
  35. package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +1 -1
  36. package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +1 -1
  37. package/api/@xmachines/play-dom/type-aliases/ConfirmHandler.md +44 -0
  38. package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +2 -2
  39. package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +1 -1
  40. package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +1 -1
  41. package/api/@xmachines/play-dom/type-aliases/DomSchema.md +1 -1
  42. package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
  43. package/api/@xmachines/play-dom/type-aliases/RenderErrorHandler.md +1 -1
  44. package/api/@xmachines/play-dom/type-aliases/SetState.md +1 -1
  45. package/api/@xmachines/play-dom/variables/schema.md +1 -1
  46. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  47. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  48. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +1 -1
  49. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  50. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
  51. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  52. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +4 -4
  53. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +16 -6
  54. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +4 -4
  55. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +7 -3
  56. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +16 -4
  57. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +2 -2
  58. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  59. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +6 -6
  60. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
  61. package/api/@xmachines/play-react/README.md +6 -6
  62. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +18 -18
  63. package/api/@xmachines/play-react/functions/ActionProvider.md +1 -1
  64. package/api/@xmachines/play-react/functions/JSONUIProvider.md +1 -1
  65. package/api/@xmachines/play-react/functions/Renderer.md +1 -1
  66. package/api/@xmachines/play-react/functions/StateProvider.md +1 -1
  67. package/api/@xmachines/play-react/functions/ValidationProvider.md +1 -1
  68. package/api/@xmachines/play-react/functions/VisibilityProvider.md +1 -1
  69. package/api/@xmachines/play-react/functions/defineRegistry.md +1 -1
  70. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  71. package/api/@xmachines/play-react/functions/useBoundProp.md +1 -1
  72. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  73. package/api/@xmachines/play-react/functions/useSignalEffect.md +28 -26
  74. package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +1 -1
  75. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +8 -8
  76. package/api/@xmachines/play-react/interfaces/ComponentContext.md +1 -1
  77. package/api/@xmachines/play-react/interfaces/JSONUIProviderProps.md +1 -1
  78. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +4 -4
  79. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +3 -3
  80. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +8 -8
  81. package/api/@xmachines/play-react/interfaces/RendererProps.md +1 -1
  82. package/api/@xmachines/play-react/interfaces/StateProviderProps.md +1 -1
  83. package/api/@xmachines/play-react/interfaces/ValidationProviderProps.md +1 -1
  84. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +5 -5
  85. package/api/@xmachines/play-react/interfaces/VisibilityProviderProps.md +1 -1
  86. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
  87. package/api/@xmachines/play-react/type-aliases/ComponentFn.md +1 -1
  88. package/api/@xmachines/play-react/type-aliases/RenderErrorHandler.md +1 -1
  89. package/api/@xmachines/play-react/variables/ActorProvider.md +1 -1
  90. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  91. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  92. package/api/@xmachines/play-react-router/README.md +10 -1
  93. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +4 -365
  94. package/api/@xmachines/play-react-router/classes/RouteMap.md +17 -5
  95. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +45 -0
  96. package/api/@xmachines/play-react-router/functions/createRouteMap.md +1 -1
  97. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +2 -2
  98. package/api/@xmachines/play-react-router/interfaces/PlayActor.md +7 -7
  99. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +16 -6
  100. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
  101. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +17 -7
  102. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +2 -2
  103. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  104. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +6 -6
  105. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
  106. package/api/@xmachines/play-react-router/{functions → variables}/PlayRouterProvider.md +6 -6
  107. package/api/@xmachines/play-router/README.md +12 -10
  108. package/api/@xmachines/play-router/classes/RouteMap.md +17 -5
  109. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +9 -345
  110. package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +1 -1
  111. package/api/@xmachines/play-router/functions/buildRouteTree.md +11 -1
  112. package/api/@xmachines/play-router/functions/createRouteMap.md +1 -1
  113. package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +2 -2
  114. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +13 -6
  115. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
  116. package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
  117. package/api/@xmachines/play-router/functions/extractRouteParams.md +9 -1
  118. package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
  119. package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
  120. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
  121. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
  122. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +7 -2
  123. package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
  124. package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
  125. package/api/@xmachines/play-router/functions/routeExists.md +1 -1
  126. package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
  127. package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
  128. package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
  129. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
  130. package/api/@xmachines/play-router/interfaces/LocationLike.md +3 -3
  131. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
  132. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
  133. package/api/@xmachines/play-router/interfaces/PlayActor.md +7 -7
  134. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +16 -6
  135. package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +17 -0
  136. package/api/@xmachines/play-router/interfaces/RoutableActor.md +4 -4
  137. package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
  138. package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +2 -2
  139. package/api/@xmachines/play-router/interfaces/RouteMapping.md +3 -3
  140. package/api/@xmachines/play-router/interfaces/RouteMatch.md +3 -3
  141. package/api/@xmachines/play-router/interfaces/RouteNode.md +10 -10
  142. package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
  143. package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
  144. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
  145. package/api/@xmachines/play-router/interfaces/RouterBridge.md +6 -6
  146. package/api/@xmachines/play-router/interfaces/WindowLike.md +3 -3
  147. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
  148. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
  149. package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
  150. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +4 -2
  151. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
  152. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +4 -2
  153. package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
  154. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
  155. package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +3 -3
  156. package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +4 -4
  157. package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +1 -1
  158. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +5 -5
  159. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +1 -1
  160. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +1 -1
  161. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +1 -1
  162. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +1 -1
  163. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +1 -1
  164. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +1 -1
  165. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +1 -1
  166. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +1 -1
  167. package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +1 -1
  168. package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +1 -1
  169. package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +1 -1
  170. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
  171. package/api/@xmachines/play-solid/functions/ActionProvider.md +1 -1
  172. package/api/@xmachines/play-solid/functions/JSONUIProvider.md +1 -1
  173. package/api/@xmachines/play-solid/functions/Renderer.md +1 -1
  174. package/api/@xmachines/play-solid/functions/StateProvider.md +1 -1
  175. package/api/@xmachines/play-solid/functions/ValidationProvider.md +1 -1
  176. package/api/@xmachines/play-solid/functions/VisibilityProvider.md +1 -1
  177. package/api/@xmachines/play-solid/functions/defineRegistry.md +1 -1
  178. package/api/@xmachines/play-solid/functions/useAction.md +1 -1
  179. package/api/@xmachines/play-solid/functions/useActions.md +1 -1
  180. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  181. package/api/@xmachines/play-solid/functions/useBoundProp.md +1 -1
  182. package/api/@xmachines/play-solid/functions/useFieldValidation.md +1 -1
  183. package/api/@xmachines/play-solid/functions/useIsVisible.md +1 -1
  184. package/api/@xmachines/play-solid/functions/useOptionalValidation.md +1 -1
  185. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  186. package/api/@xmachines/play-solid/functions/useStateBinding.md +1 -1
  187. package/api/@xmachines/play-solid/functions/useStateStore.md +1 -1
  188. package/api/@xmachines/play-solid/functions/useStateValue.md +1 -1
  189. package/api/@xmachines/play-solid/functions/useVisibility.md +1 -1
  190. package/api/@xmachines/play-solid/interfaces/ActionProviderProps.md +1 -1
  191. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +8 -8
  192. package/api/@xmachines/play-solid/interfaces/ComponentContext.md +1 -1
  193. package/api/@xmachines/play-solid/interfaces/DefineRegistryResult.md +1 -1
  194. package/api/@xmachines/play-solid/interfaces/JSONUIProviderProps.md +1 -1
  195. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +8 -8
  196. package/api/@xmachines/play-solid/interfaces/RendererProps.md +1 -1
  197. package/api/@xmachines/play-solid/interfaces/StateProviderProps.md +1 -1
  198. package/api/@xmachines/play-solid/interfaces/ValidationProviderProps.md +1 -1
  199. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
  200. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
  201. package/api/@xmachines/play-solid/type-aliases/ComponentFn.md +1 -1
  202. package/api/@xmachines/play-solid/type-aliases/ComponentRegistry.md +1 -1
  203. package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +1 -1
  204. package/api/@xmachines/play-solid/type-aliases/SetState.md +1 -1
  205. package/api/@xmachines/play-solid/type-aliases/VisibilityProviderProps.md +1 -1
  206. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  207. package/api/@xmachines/play-solid/variables/ActorProvider.md +1 -1
  208. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  209. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  210. package/api/@xmachines/play-solid-router/README.md +7 -1
  211. package/api/@xmachines/play-solid-router/classes/RouteMap.md +17 -5
  212. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +5 -360
  213. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +44 -0
  214. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +1 -1
  215. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +13 -13
  216. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +7 -7
  217. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +16 -6
  218. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +30 -0
  219. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +17 -7
  220. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +2 -2
  221. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  222. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +6 -6
  223. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +34 -0
  224. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
  225. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  226. package/api/@xmachines/play-solid-router/{functions → variables}/PlayRouterProvider.md +6 -6
  227. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  228. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  229. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  230. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  231. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +8 -8
  232. package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +1 -1
  233. package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +1 -1
  234. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +6 -6
  235. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +11 -11
  236. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
  237. package/api/@xmachines/play-svelte/type-aliases/ActionFn.md +1 -1
  238. package/api/@xmachines/play-svelte/type-aliases/Actions.md +1 -1
  239. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
  240. package/api/@xmachines/play-svelte/type-aliases/ComponentFn.md +1 -1
  241. package/api/@xmachines/play-svelte/type-aliases/PlayRenderer.md +1 -1
  242. package/api/@xmachines/play-svelte/type-aliases/SetState.md +1 -1
  243. package/api/@xmachines/play-svelte/variables/PlayRenderer.md +1 -1
  244. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +17 -5
  245. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  246. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +1 -1
  247. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +6 -6
  248. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +16 -6
  249. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +2 -2
  250. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  251. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +6 -6
  252. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  253. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
  254. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +17 -5
  255. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  256. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +1 -1
  257. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +4 -4
  258. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  259. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +16 -6
  260. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +2 -2
  261. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  262. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +6 -6
  263. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
  264. package/api/@xmachines/play-tanstack-react-router/README.md +7 -1
  265. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +17 -5
  266. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +21 -384
  267. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +45 -0
  268. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +1 -1
  269. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +2 -2
  270. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
  271. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +7 -7
  272. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +16 -6
  273. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
  274. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +17 -7
  275. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +2 -2
  276. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  277. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
  278. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +6 -6
  279. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
  280. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  281. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +12 -4
  282. package/api/@xmachines/play-tanstack-react-router/{functions → variables}/PlayRouterProvider.md +8 -6
  283. package/api/@xmachines/play-tanstack-router/README.md +58 -0
  284. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +131 -0
  285. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +57 -0
  286. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +100 -0
  287. package/api/@xmachines/play-tanstack-solid-router/README.md +7 -1
  288. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +17 -5
  289. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +25 -378
  290. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +44 -0
  291. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +1 -1
  292. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +7 -7
  293. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +16 -6
  294. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +31 -0
  295. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +15 -7
  296. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +2 -2
  297. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  298. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +6 -6
  299. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
  300. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
  301. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  302. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +30 -7
  303. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +33 -0
  304. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  305. package/api/@xmachines/play-vue/functions/getPlayViewContext.md +1 -1
  306. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  307. package/api/@xmachines/play-vue/functions/useBoundProp.md +1 -1
  308. package/api/@xmachines/play-vue/interfaces/ActionProviderProps.md +1 -1
  309. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +5 -5
  310. package/api/@xmachines/play-vue/interfaces/ComponentContext.md +1 -1
  311. package/api/@xmachines/play-vue/interfaces/DefineRegistryResult.md +1 -1
  312. package/api/@xmachines/play-vue/interfaces/JSONUIProviderProps.md +1 -1
  313. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +8 -8
  314. package/api/@xmachines/play-vue/interfaces/RendererProps.md +1 -1
  315. package/api/@xmachines/play-vue/interfaces/StateProviderProps.md +1 -1
  316. package/api/@xmachines/play-vue/interfaces/ValidationProviderProps.md +1 -1
  317. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
  318. package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +1 -1
  319. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
  320. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  321. package/api/@xmachines/play-vue/type-aliases/ComponentFn.md +1 -1
  322. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  323. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  324. package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +1 -1
  325. package/api/@xmachines/play-vue/variables/ActionProvider.md +1 -1
  326. package/api/@xmachines/play-vue/variables/JSONUIProvider.md +1 -1
  327. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  328. package/api/@xmachines/play-vue/variables/Renderer.md +1 -1
  329. package/api/@xmachines/play-vue/variables/StateProvider.md +1 -1
  330. package/api/@xmachines/play-vue/variables/ValidationProvider.md +1 -1
  331. package/api/@xmachines/play-vue/variables/VisibilityProvider.md +1 -1
  332. package/api/@xmachines/play-vue-router/classes/RouteMap.md +17 -5
  333. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +6 -395
  334. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
  335. package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +7 -7
  336. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +16 -6
  337. package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +2 -2
  338. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +3 -3
  339. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +6 -6
  340. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
  341. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +3 -3
  342. package/api/@xmachines/play-xstate/classes/PlayerActor.md +70 -169
  343. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
  344. package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
  345. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
  346. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
  347. package/api/@xmachines/play-xstate/functions/definePlayer.md +1 -1
  348. package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
  349. package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
  350. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
  351. package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
  352. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
  353. package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
  354. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
  355. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
  356. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
  357. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
  358. package/api/@xmachines/play-xstate/interfaces/RouteObject.md +2 -2
  359. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
  360. package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
  361. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
  362. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
  363. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
  364. package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +1 -1
  365. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
  366. package/api/@xmachines/shared/vite-aliases/README.md +1 -0
  367. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +7 -3
  368. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  369. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  370. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +6 -5
  371. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +33 -0
  372. package/api/@xmachines/shared/vitest/README.md +5 -0
  373. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +42 -0
  374. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
  375. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +16 -0
  376. package/api/README.md +1 -0
  377. package/api/llms.txt +4 -3
  378. package/contributing/architecture.md +6 -6
  379. package/contributing/configuration.md +1 -16
  380. package/contributing/deployment.md +8 -8
  381. package/contributing/testing.md +4 -4
  382. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
  383. package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
  384. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  385. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  386. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  387. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  388. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  389. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  390. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  391. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  392. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  393. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  394. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  395. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  396. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  397. package/examples/@xmachines/play-react-demo/functions/App.md +1 -1
  398. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  399. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  400. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  401. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  402. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
  403. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  404. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  405. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  406. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  407. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  408. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  409. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  410. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  411. package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
  412. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  413. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  414. package/examples/@xmachines/play-solid-demo/functions/App.md +1 -1
  415. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  416. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  417. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  418. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  419. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
  420. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  421. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  422. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  423. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  424. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  425. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  426. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  427. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  428. package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
  429. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  430. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
  431. package/examples/@xmachines/play-svelte-demo/type-aliases/App.md +1 -1
  432. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
  433. package/examples/@xmachines/play-svelte-demo/variables/App.md +1 -1
  434. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +1 -1
  435. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
  436. package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
  437. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +1 -1
  438. package/guides/README.md +6 -44
  439. package/package.json +6 -3
  440. package/api/@xmachines/play-router/functions/createRouteMatcher.md +0 -53
  441. package/api/@xmachines/play-router/interfaces/RouteMatcher.md +0 -56
  442. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +0 -33
@@ -3,23 +3,10 @@
3
3
  # Function: renderSpec()
4
4
 
5
5
  ```ts
6
- function renderSpec(
7
- spec,
8
- store,
9
- registry,
10
- send,
11
- handlers,
12
- fallback?,
13
- onRenderError?,
14
- functions?,
15
- loading?,
16
- onWatchSetup?,
17
- validationFunctions?,
18
- navigate?,
19
- ): Node | null;
6
+ function renderSpec(spec, store, registry, options?): Node | null;
20
7
  ```
21
8
 
22
- Defined in: [packages/play-dom/src/json-render/renderer.ts:135](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/renderer.ts#L135)
9
+ Defined in: [packages/play-dom/src/json-render/renderer.ts:360](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/renderer.ts#L360)
23
10
 
24
11
  Render a Spec tree into DOM nodes using the provided `DomRegistry`.
25
12
 
@@ -32,20 +19,12 @@ built by `defineRegistry` — this function only orchestrates the traversal.
32
19
 
33
20
  ## Parameters
34
21
 
35
- | Parameter | Type | Description |
36
- | ---------------------- | ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
37
- | `spec` | `Spec` | The json-render `Spec` describing the UI tree. |
38
- | `store` | `StateStore` | Live `StateStore` bound to `spec.state`. |
39
- | `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | Map of element type names → `DomComponentRenderer`. |
40
- | `send` | (`event`) => `void` | Dispatcher for interaction events (e.g. actor.send). |
41
- | `handlers` | `Record`\<`string`, `ActionHandler`\> | Map of catalog action names → async ActionHandler functions. |
42
- | `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`. |
43
- | `onRenderError?` | [`RenderErrorHandler`](../type-aliases/RenderErrorHandler.md) | Optional callback matching `RenderErrorHandler = (error, name)`. Invoked for three distinct error classes: - `(error, elementType)` when a component renderer throws (GAP-08) - `(error, actionName)` when an action handler rejects during `emit()` - `(error, actionName)` when an action handler rejects in a `watch` binding If absent, all three fall back to `console.error`. Forwarded into `DomRenderContext.onRenderError` so `emit()` and `watch` handlers route errors through the same channel as component render errors. |
44
- | `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). |
45
- | `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. |
46
- | `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(). |
47
- | `validationFunctions?` | `Record`\<`string`, (`value`, `args?`) => `boolean`\> | Optional map of custom validation functions forwarded to `DomRenderContext.validationFunctions`. Components pass these as `customFunctions` to `runValidationCheck` / `runValidation` from `@json-render/core`. Has no effect on prop resolution. |
48
- | `navigate?` | (`path`) => `void` | Optional navigation callback forwarded to `DomRenderContext.navigate`. Invoked automatically by `defineRegistry`'s `emit()` when an action binding resolves with `onSuccess: { navigate: "/path" }`. Also readable by component implementations via `ctx.navigate`. |
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
+ | `options` | [`RenderSpecOptions`](../interfaces/RenderSpecOptions.md) | Named options see [RenderSpecOptions](../interfaces/RenderSpecOptions.md). |
49
28
 
50
29
  ## Returns
51
30
 
@@ -80,6 +59,9 @@ const resolvedHandlers = handlers(
80
59
  () => undefined,
81
60
  () => ({}),
82
61
  );
83
- const node = renderSpec(spec, store, registry, actor.send.bind(actor), resolvedHandlers);
62
+ const node = renderSpec(spec, store, registry, {
63
+ send: actor.send.bind(actor),
64
+ handlers: resolvedHandlers,
65
+ });
84
66
  if (node) container.appendChild(node);
85
67
  ```
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: ComponentContext\<C, K\>
4
4
 
5
- Defined in: [packages/play-dom/src/json-render/types.ts:305](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L305)
5
+ Defined in: [packages/play-dom/src/json-render/types.ts:363](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L363)
6
6
 
7
7
  ## Type Parameters
8
8
 
@@ -15,9 +15,9 @@ Defined in: [packages/play-dom/src/json-render/types.ts:305](https://gitlab.com/
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. | [packages/play-dom/src/json-render/types.ts:315](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L315) |
19
- | <a id="property-children"></a> `children` | `Node`[] | Rendered child nodes from the spec's `children` list. | [packages/play-dom/src/json-render/types.ts:311](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L311) |
20
- | <a id="property-ctx"></a> `ctx` | [`DomRenderContext`](DomRenderContext.md) | Low-level render context. | [packages/play-dom/src/json-render/types.ts:327](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L327) |
21
- | <a id="property-emit"></a> `emit` | (`event`) => `void` | Dispatch a named event defined in the spec's `on` map. | [packages/play-dom/src/json-render/types.ts:319](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L319) |
22
- | <a id="property-on"></a> `on` | (`event`) => [`EventHandle`](EventHandle.md) | Get an `EventHandle` for a named event from the spec's `on` map. | [packages/play-dom/src/json-render/types.ts:323](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L323) |
23
- | <a id="property-props"></a> `props` | `InferComponentProps`\<`C`, `K`\> | Catalog-typed, store-resolved props for this component. | [packages/play-dom/src/json-render/types.ts:307](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L307) |
18
+ | <a id="property-bindings"></a> `bindings` | `Record`\<`string`, `string`\> \| `undefined` | Two-way binding paths resolved from `$bindState` / `$bindItem` prop expressions. | [packages/play-dom/src/json-render/types.ts:373](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L373) |
19
+ | <a id="property-children"></a> `children` | `Node`[] | Rendered child nodes from the spec's `children` list. | [packages/play-dom/src/json-render/types.ts:369](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L369) |
20
+ | <a id="property-ctx"></a> `ctx` | [`DomRenderContext`](DomRenderContext.md) | Low-level render context. | [packages/play-dom/src/json-render/types.ts:385](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L385) |
21
+ | <a id="property-emit"></a> `emit` | (`event`) => `void` | Dispatch a named event defined in the spec's `on` map. | [packages/play-dom/src/json-render/types.ts:377](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L377) |
22
+ | <a id="property-on"></a> `on` | (`event`) => [`EventHandle`](EventHandle.md) | Get an `EventHandle` for a named event from the spec's `on` map. | [packages/play-dom/src/json-render/types.ts:381](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L381) |
23
+ | <a id="property-props"></a> `props` | `InferComponentProps`\<`C`, `K`\> | Catalog-typed, store-resolved props for this component. | [packages/play-dom/src/json-render/types.ts:365](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L365) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: CreatePlayUIOptions
4
4
 
5
- Defined in: [packages/play-dom/src/types.ts:67](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/types.ts#L67)
5
+ Defined in: [packages/play-dom/src/types.ts:67](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/types.ts#L67)
6
6
 
7
7
  Options for `createPlayUI()` — the batteries-included DOM factory.
8
8
 
@@ -25,8 +25,9 @@ createPlayUI
25
25
 
26
26
  | Property | Type | Description | Inherited from | Defined in |
27
27
  | ---------------------------------------------------------------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
28
- | <a id="property-fallback"></a> `fallback?` | `HTMLElement` \| `null` | Optional fallback element shown when `currentView` is `null` on **initial mount** only. The fallback is appended immediately after `mount()` 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. | - | [packages/play-dom/src/types.ts:79](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/types.ts#L79) |
29
- | <a id="property-functions"></a> `functions?` | `Record`\<`string`, `ComputedFunction`\> | Named compute functions for `{ $computed: "name", args: {...} }` prop expressions. Each function receives the resolved `args` object and returns the computed value. Forwarded directly to `resolveElementProps` via `PropResolutionContext.functions`, matching the `FunctionsContext` provider in the framework renderers. Without this option, `$computed` expressions resolve to `undefined` (no throw). **Example** `const mount = createPlayUI(registryResult, { functions: { fullName: (args) => `${args.first} ${args.last}`, formatCurrency: (args) => new Intl.NumberFormat().format(args.amount as number), }, });` Mirrors the `functions` prop on `JSONUIProvider` / `JsonUIProvider`. | [`UIProviderOptions`](UIProviderOptions.md).[`functions`](UIProviderOptions.md#property-functions) | [packages/play-dom/src/json-render/types.ts:88](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L88) |
30
- | <a id="property-navigate"></a> `navigate?` | (`path`) => `void` | Programmatic navigation function. Called automatically when an action binding resolves with `onSuccess: { navigate: "/path" }`. The resolved path string is passed as the sole argument. Mirrors the `navigate` prop in `ActionProvider` from the framework renderers, where it is captured in the `execute()` closure. Also available to component implementations directly via `ctx.ctx.navigate` for cases where navigation needs to be triggered outside of an action binding. **Example** `import { useNavigate } from "my-router"; const navigate = useNavigate(); const mount = createPlayUI(registryResult, { navigate });` Spec binding that triggers navigation: `{ "on": { "click": { "action": "doSomething", "onSuccess": { "navigate": "/dashboard" } } } }` | [`UIProviderOptions`](UIProviderOptions.md).[`navigate`](UIProviderOptions.md#property-navigate) | [packages/play-dom/src/json-render/types.ts:152](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L152) |
31
- | <a id="property-onrendererror"></a> `onRenderError?` | [`RenderErrorHandler`](../type-aliases/RenderErrorHandler.md) | Unified error handler for component render errors and action handler rejections. Matches `RenderErrorHandler = (error: unknown, name: string) => void`. Invoked for three distinct error classes: - `(error, elementType)` when a component renderer throws synchronously during `renderSpec` - `(error, actionName)` when an action handler rejects during `emit()` (on-event path) - `(error, actionName)` — when an action handler rejects during a `watch` binding callback When provided, suppresses the `console.error` fallback for all three error types. Forwarded into `renderSpec` as the `onRenderError` parameter and into `DomRenderContext.onRenderError` so both `emit()` and `watch` handlers route their errors through the same channel as component render errors. **Example** `const mount = createPlayUI(registryResult, { onRenderError: (err, name) => { myErrorReporter.capture(err, { context: name }); }, });` | [`UIProviderOptions`](UIProviderOptions.md).[`onRenderError`](UIProviderOptions.md#property-onrendererror) | [packages/play-dom/src/json-render/types.ts:178](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L178) |
32
- | <a id="property-validationfunctions"></a> `validationFunctions?` | `Record`\<`string`, (`value`, `args?`) => `boolean`\> | Custom validation functions for inline field validation. Each function receives `(value, args?)` and returns `true` (valid) or `false` (invalid). Functions are available to component implementations via `ctx.ctx.validationFunctions` and should be passed as `customFunctions` to `runValidationCheck` / `runValidation` from `@json-render/core`. Mirrors `customFunctions` in `ValidationProvider` from the framework renderers. The DOM renderer has no automatic `ValidationProvider` tree validation must be invoked explicitly by component implementations. **Example** `import { runValidationCheck } from "@json-render/core"; const mount = createPlayUI(registryResult, { validationFunctions: { isEven: (value) => typeof value === "number" && value % 2 === 0, phoneNumber: (value) => /^\+?[\d\s\-()]{7,}$/.test(String(value)), }, }); // Inside a ComponentFn: const MyField: ComponentFn<typeof catalog, "MyField"> = ({ ctx }) => { const result = runValidationCheck( { type: "isEven", message: "must be even" }, { value: someValue, stateModel: {}, customFunctions: ctx.ctx.validationFunctions }, ); // result.valid, result.message };` | [`UIProviderOptions`](UIProviderOptions.md).[`validationFunctions`](UIProviderOptions.md#property-validationfunctions) | [packages/play-dom/src/json-render/types.ts:123](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L123) |
28
+ | <a id="property-fallback"></a> `fallback?` | `HTMLElement` \| `null` | Optional fallback element shown when `currentView` is `null` on **initial mount** only. The fallback is appended immediately after `mount()` 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. | - | [packages/play-dom/src/types.ts:79](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/types.ts#L79) |
29
+ | <a id="property-functions"></a> `functions?` | `Record`\<`string`, `ComputedFunction`\> | Named compute functions for `{ $computed: "name", args: {...} }` prop expressions. Each function receives the resolved `args` object and returns the computed value. Forwarded directly to `resolveElementProps` via `PropResolutionContext.functions`, matching the `FunctionsContext` provider in the framework renderers. Without this option, `$computed` expressions resolve to `undefined` (no throw). **Example** `const mount = createPlayUI(registryResult, { functions: { fullName: (args) => `${args.first} ${args.last}`, formatCurrency: (args) => new Intl.NumberFormat().format(args.amount as number), }, });` Mirrors the `functions` prop on `JSONUIProvider` / `JsonUIProvider`. | [`UIProviderOptions`](UIProviderOptions.md).[`functions`](UIProviderOptions.md#property-functions) | [packages/play-dom/src/json-render/types.ts:125](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L125) |
30
+ | <a id="property-navigate"></a> `navigate?` | (`path`) => `void` | Programmatic navigation function. Called automatically when an action binding resolves with `onSuccess: { navigate: "/path" }`. The resolved path string is passed as the sole argument. Mirrors the `navigate` prop in `ActionProvider` from the framework renderers, where it is captured in the `execute()` closure. Also available to component implementations directly via `ctx.ctx.navigate` for cases where navigation needs to be triggered outside of an action binding. **Example** `import { useNavigate } from "my-router"; const navigate = useNavigate(); const mount = createPlayUI(registryResult, { navigate });` Spec binding that triggers navigation: `{ "on": { "click": { "action": "doSomething", "onSuccess": { "navigate": "/dashboard" } } } }` | [`UIProviderOptions`](UIProviderOptions.md).[`navigate`](UIProviderOptions.md#property-navigate) | [packages/play-dom/src/json-render/types.ts:189](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L189) |
31
+ | <a id="property-onconfirm"></a> `onConfirm?` | [`ConfirmHandler`](../type-aliases/ConfirmHandler.md) | Confirmation hook for actions that declare `confirm` in their binding. Consulted by `emit()` before executing a confirm-gated action. Return (or resolve) `true` to execute, `false` to skip. Without this handler, confirm-gated actions are skipped with a `console.warn` they never execute unconfirmed. See [ConfirmHandler](../type-aliases/ConfirmHandler.md) for the full contract. This is the headless equivalent of the `pendingConfirmation` / `confirmAction()` / `cancelAction()` flow in the framework adapters. | [`UIProviderOptions`](UIProviderOptions.md).[`onConfirm`](UIProviderOptions.md#property-onconfirm) | [packages/play-dom/src/json-render/types.ts:228](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L228) |
32
+ | <a id="property-onrendererror"></a> `onRenderError?` | [`RenderErrorHandler`](../type-aliases/RenderErrorHandler.md) | Unified error handler for component render errors and action handler rejections. Matches `RenderErrorHandler = (error: unknown, name: string) => void`. Invoked for three distinct error classes: - `(error, elementType)` when a component renderer throws synchronously during `renderSpec` - `(error, actionName)` when an action handler rejects during `emit()` (on-event path) - `(error, actionName)` — when an action handler rejects during a `watch` binding callback When provided, suppresses the `console.error` fallback for all three error types. Forwarded into `renderSpec` as the `onRenderError` parameter and into `DomRenderContext.onRenderError` so both `emit()` and `watch` handlers route their errors through the same channel as component render errors. **Example** `const mount = createPlayUI(registryResult, { onRenderError: (err, name) => { myErrorReporter.capture(err, { context: name }); }, });` | [`UIProviderOptions`](UIProviderOptions.md).[`onRenderError`](UIProviderOptions.md#property-onrendererror) | [packages/play-dom/src/json-render/types.ts:215](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L215) |
33
+ | <a id="property-validationfunctions"></a> `validationFunctions?` | `Record`\<`string`, (`value`, `args?`) => `boolean`\> | Custom validation functions for inline field validation. Each function receives `(value, args?)` and returns `true` (valid) or `false` (invalid). Functions are available to component implementations via `ctx.ctx.validationFunctions` and should be passed as `customFunctions` to `runValidationCheck` / `runValidation` from `@json-render/core`. Mirrors `customFunctions` in `ValidationProvider` from the framework renderers. The DOM renderer has no automatic `ValidationProvider` tree — validation must be invoked explicitly by component implementations. **Example** `import { runValidationCheck } from "@json-render/core"; const mount = createPlayUI(registryResult, { validationFunctions: { isEven: (value) => typeof value === "number" && value % 2 === 0, phoneNumber: (value) => /^\+?[\d\s\-()]{7,}$/.test(String(value)), }, }); // Inside a ComponentFn: const MyField: ComponentFn<typeof catalog, "MyField"> = ({ ctx }) => { const result = runValidationCheck( { type: "isEven", message: "must be even" }, { value: someValue, stateModel: {}, customFunctions: ctx.ctx.validationFunctions }, ); // result.valid, result.message };` | [`UIProviderOptions`](UIProviderOptions.md).[`validationFunctions`](UIProviderOptions.md#property-validationfunctions) | [packages/play-dom/src/json-render/types.ts:160](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L160) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: DefineRegistryResult
4
4
 
5
- Defined in: [packages/play-dom/src/json-render/types.ts:455](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L455)
5
+ Defined in: [packages/play-dom/src/json-render/types.ts:513](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L513)
6
6
 
7
7
  Result returned by `defineRegistry`.
8
8
 
@@ -12,6 +12,6 @@ Matches `DefineRegistryResult` from @json-render/react, /solid, /svelte, /vue.
12
12
 
13
13
  | Property | Type | Description | Defined in |
14
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. | [packages/play-dom/src/json-render/types.ts:485](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L485) |
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. | [packages/play-dom/src/json-render/types.ts:470](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L470) |
17
- | <a id="property-registry"></a> `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | The built `DomRegistry`, ready to pass to `PlayRenderer`, `createPlayUI`, or `createRenderer`. | [packages/play-dom/src/json-render/types.ts:459](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L459) |
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. | [packages/play-dom/src/json-render/types.ts:543](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L543) |
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. | [packages/play-dom/src/json-render/types.ts:528](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L528) |
17
+ | <a id="property-registry"></a> `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | The built `DomRegistry`, ready to pass to `PlayRenderer`, `createPlayUI`, or `createRenderer`. | [packages/play-dom/src/json-render/types.ts:517](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L517) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: DomRenderContext
4
4
 
5
- Defined in: [packages/play-dom/src/json-render/types.ts:217](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L217)
5
+ Defined in: [packages/play-dom/src/json-render/types.ts:267](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L267)
6
6
 
7
7
  Low-level render context passed to each `DomComponentRenderer`.
8
8
 
@@ -10,17 +10,18 @@ Low-level render context passed to each `DomComponentRenderer`.
10
10
 
11
11
  | Property | Type | Description | Defined in |
12
12
  | ---------------------------------------------------------------- | ------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
13
- | <a id="property-elementbindings"></a> `elementBindings?` | `Record`\<`string`, `string`\> | Pre-computed two-way binding paths for this element's props. | [packages/play-dom/src/json-render/types.ts:231](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L231) |
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. | [packages/play-dom/src/json-render/types.ts:238](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L238) |
15
- | <a id="property-handlers"></a> `handlers` | `Record`\<`string`, `ActionHandler`\> | Map of json-render catalog action names → async ActionHandler functions. | [packages/play-dom/src/json-render/types.ts:225](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L225) |
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. | [packages/play-dom/src/json-render/types.ts:278](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L278) |
17
- | <a id="property-navigate"></a> `navigate?` | (`path`) => `void` | Navigation function forwarded from `UIProviderOptions`. Called when an action binding has `onSuccess: { navigate: "/path" }`. Mirrors the `navigate` prop in `ActionProvider` from framework renderers. | [packages/play-dom/src/json-render/types.ts:258](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L258) |
18
- | <a id="property-onrendererror"></a> `onRenderError?` | [`RenderErrorHandler`](../type-aliases/RenderErrorHandler.md) | Error handler forwarded from `UIProviderOptions.onRenderError`. Matches `RenderErrorHandler = (error: unknown, name: string) => void`. Called by `emit()` when an action handler rejects, with `(error, actionName)`. Also called by `renderSpec` when a component renderer throws, with `(error, elementType)`. When absent, both fall back to `console.error`. Component implementations may call this directly via `ctx.ctx.onRenderError` to surface errors through the application's central error channel. | [packages/play-dom/src/json-render/types.ts:270](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L270) |
19
- | <a id="property-renderchildren"></a> `renderChildren` | (`keys`) => `Node`[] | Render a list of child element keys into DOM nodes. | [packages/play-dom/src/json-render/types.ts:227](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L227) |
20
- | <a id="property-repeatbasepath"></a> `repeatBasePath?` | `string` | Absolute JSON Pointer path to the current repeat item (e.g. "/todos/0"). Mirrors `repeatBasePath` in `PropResolutionContext`. | [packages/play-dom/src/json-render/types.ts:293](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L293) |
21
- | <a id="property-repeatindex"></a> `repeatIndex?` | `number` | Current repeat array index when inside a repeat scope. Mirrors `repeatIndex` in `PropResolutionContext`. | [packages/play-dom/src/json-render/types.ts:288](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L288) |
22
- | <a id="property-repeatitem"></a> `repeatItem?` | `unknown` | Current repeat item when inside a repeat scope. Mirrors `repeatItem` in `@json-render/core`'s `PropResolutionContext`. | [packages/play-dom/src/json-render/types.ts:283](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L283) |
23
- | <a id="property-send"></a> `send` | (`event`) => `void` | Dispatch an event (e.g. to an XState actor). | [packages/play-dom/src/json-render/types.ts:223](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L223) |
24
- | <a id="property-spec"></a> `spec` | `Spec` | Full spec tree for this render pass. | [packages/play-dom/src/json-render/types.ts:219](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L219) |
25
- | <a id="property-store"></a> `store` | `StateStore` | Live state store bound to `spec.state`. | [packages/play-dom/src/json-render/types.ts:221](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L221) |
26
- | <a id="property-validationfunctions"></a> `validationFunctions?` | `Record`\<`string`, (`value`, `args?`) => `boolean`\> | Custom validation functions available to `runValidation` / `runValidationCheck`. Each function receives `(value, args?)` and returns a boolean. Mirrors `customFunctions` in `ValidationProvider` from framework renderers. Components that perform inline validation (e.g. form fields) should read this from `ctx.ctx.validationFunctions` and pass it as `customFunctions` to `runValidationCheck` / `runValidation` from `@json-render/core`. | [packages/play-dom/src/json-render/types.ts:248](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L248) |
13
+ | <a id="property-elementbindings"></a> `elementBindings?` | `Record`\<`string`, `string`\> | Pre-computed two-way binding paths for this element's props. | [packages/play-dom/src/json-render/types.ts:281](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L281) |
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. | [packages/play-dom/src/json-render/types.ts:288](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L288) |
15
+ | <a id="property-handlers"></a> `handlers` | `Record`\<`string`, `ActionHandler`\> | Map of json-render catalog action names → async ActionHandler functions. | [packages/play-dom/src/json-render/types.ts:275](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L275) |
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. | [packages/play-dom/src/json-render/types.ts:336](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L336) |
17
+ | <a id="property-navigate"></a> `navigate?` | (`path`) => `void` | Navigation function forwarded from `UIProviderOptions`. Called when an action binding has `onSuccess: { navigate: "/path" }`. Mirrors the `navigate` prop in `ActionProvider` from framework renderers. | [packages/play-dom/src/json-render/types.ts:308](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L308) |
18
+ | <a id="property-onconfirm"></a> `onConfirm?` | [`ConfirmHandler`](../type-aliases/ConfirmHandler.md) | Confirmation hook forwarded from `UIProviderOptions.onConfirm`. Consulted by `emit()` before executing an action binding that declares `confirm`. When absent, confirm-gated actions are skipped with a `console.warn` instead of executing unconfirmed. | [packages/play-dom/src/json-render/types.ts:328](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L328) |
19
+ | <a id="property-onrendererror"></a> `onRenderError?` | [`RenderErrorHandler`](../type-aliases/RenderErrorHandler.md) | Error handler forwarded from `UIProviderOptions.onRenderError`. Matches `RenderErrorHandler = (error: unknown, name: string) => void`. Called by `emit()` when an action handler rejects, with `(error, actionName)`. Also called by `renderSpec` when a component renderer throws, with `(error, elementType)`. When absent, both fall back to `console.error`. Component implementations may call this directly via `ctx.ctx.onRenderError` to surface errors through the application's central error channel. | [packages/play-dom/src/json-render/types.ts:320](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L320) |
20
+ | <a id="property-renderchildren"></a> `renderChildren` | (`keys`) => `Node`[] | Render a list of child element keys into DOM nodes. | [packages/play-dom/src/json-render/types.ts:277](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L277) |
21
+ | <a id="property-repeatbasepath"></a> `repeatBasePath?` | `string` | Absolute JSON Pointer path to the current repeat item (e.g. "/todos/0"). Mirrors `repeatBasePath` in `PropResolutionContext`. | [packages/play-dom/src/json-render/types.ts:351](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L351) |
22
+ | <a id="property-repeatindex"></a> `repeatIndex?` | `number` | Current repeat array index when inside a repeat scope. Mirrors `repeatIndex` in `PropResolutionContext`. | [packages/play-dom/src/json-render/types.ts:346](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L346) |
23
+ | <a id="property-repeatitem"></a> `repeatItem?` | `unknown` | Current repeat item when inside a repeat scope. Mirrors `repeatItem` in `@json-render/core`'s `PropResolutionContext`. | [packages/play-dom/src/json-render/types.ts:341](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L341) |
24
+ | <a id="property-send"></a> `send` | (`event`) => `void` | Dispatch an event (e.g. to an XState actor). | [packages/play-dom/src/json-render/types.ts:273](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L273) |
25
+ | <a id="property-spec"></a> `spec` | `Spec` | Full spec tree for this render pass. | [packages/play-dom/src/json-render/types.ts:269](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L269) |
26
+ | <a id="property-store"></a> `store` | `StateStore` | Live state store bound to `spec.state`. | [packages/play-dom/src/json-render/types.ts:271](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L271) |
27
+ | <a id="property-validationfunctions"></a> `validationFunctions?` | `Record`\<`string`, (`value`, `args?`) => `boolean`\> | Custom validation functions available to `runValidation` / `runValidationCheck`. Each function receives `(value, args?)` and returns a boolean. Mirrors `customFunctions` in `ValidationProvider` from framework renderers. Components that perform inline validation (e.g. form fields) should read this from `ctx.ctx.validationFunctions` and pass it as `customFunctions` to `runValidationCheck` / `runValidation` from `@json-render/core`. | [packages/play-dom/src/json-render/types.ts:298](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L298) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: EventHandle
4
4
 
5
- Defined in: [packages/play-dom/src/json-render/types.ts:201](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L201)
5
+ Defined in: [packages/play-dom/src/json-render/types.ts:251](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L251)
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. | [packages/play-dom/src/json-render/types.ts:209](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L209) |
14
- | <a id="property-emit"></a> `emit` | () => `void` | Fire the bound action, resolving params from the current state store. | [packages/play-dom/src/json-render/types.ts:203](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L203) |
15
- | <a id="property-shouldpreventdefault"></a> `shouldPreventDefault` | `boolean` | Whether any binding for this event has `preventDefault: true`. | [packages/play-dom/src/json-render/types.ts:207](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L207) |
13
+ | <a id="property-bound"></a> `bound` | `boolean` | `true` if an `on` binding exists for this event name; `false` otherwise. | [packages/play-dom/src/json-render/types.ts:259](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L259) |
14
+ | <a id="property-emit"></a> `emit` | () => `void` | Fire the bound action, resolving params from the current state store. | [packages/play-dom/src/json-render/types.ts:253](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L253) |
15
+ | <a id="property-shouldpreventdefault"></a> `shouldPreventDefault` | `boolean` | Whether any binding for this event has `preventDefault: true`. | [packages/play-dom/src/json-render/types.ts:257](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L257) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: MountOptions
4
4
 
5
- Defined in: [packages/play-dom/src/create-play-ui.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/create-play-ui.ts#L48)
5
+ Defined in: [packages/play-dom/src/create-play-ui.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/create-play-ui.ts#L48)
6
6
 
7
7
  Per-mount options passed to the `MountFn` returned by `createPlayUI`.
8
8
 
@@ -14,5 +14,5 @@ basis. Factory-level options (`functions`, `validationFunctions`, `navigate`,
14
14
 
15
15
  | Property | Type | Description | Defined in |
16
16
  | ---------------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
17
- | <a id="property-loading"></a> `loading?` | `boolean` | When `true`, suppresses missing-child warnings during streaming spec ingestion and exposes `ctx.ctx.loading` to component implementations. | [packages/play-dom/src/create-play-ui.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/create-play-ui.ts#L59) |
18
- | <a id="property-store"></a> `store?` | `StateStore` | Optional external `StateStore` (controlled mode). When omitted, a fresh `@xstate/store` atom is created per view transition seeded from `spec.state`. | [packages/play-dom/src/create-play-ui.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/create-play-ui.ts#L54) |
17
+ | <a id="property-loading"></a> `loading?` | `boolean` | When `true`, suppresses missing-child warnings during streaming spec ingestion and exposes `ctx.ctx.loading` to component implementations. | [packages/play-dom/src/create-play-ui.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/create-play-ui.ts#L59) |
18
+ | <a id="property-store"></a> `store?` | `StateStore` | Optional external `StateStore` (controlled mode). When omitted, a fresh `@xstate/store` atom is created per view transition seeded from `spec.state`. | [packages/play-dom/src/create-play-ui.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/create-play-ui.ts#L54) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: PlayDomOptions
4
4
 
5
- Defined in: [packages/play-dom/src/types.ts:23](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/types.ts#L23)
5
+ Defined in: [packages/play-dom/src/types.ts:23](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/types.ts#L23)
6
6
 
7
7
  Options for `PlayRenderer`.
8
8
 
@@ -19,10 +19,11 @@ by component implementations via `ctx.ctx.*`.
19
19
 
20
20
  | Property | Type | Description | Inherited from | Defined in |
21
21
  | ---------------------------------------------------------------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
22
- | <a id="property-functions"></a> `functions?` | `Record`\<`string`, `ComputedFunction`\> | Named compute functions for `{ $computed: "name", args: {...} }` prop expressions. Each function receives the resolved `args` object and returns the computed value. Forwarded directly to `resolveElementProps` via `PropResolutionContext.functions`, matching the `FunctionsContext` provider in the framework renderers. Without this option, `$computed` expressions resolve to `undefined` (no throw). **Example** `const mount = createPlayUI(registryResult, { functions: { fullName: (args) => `${args.first} ${args.last}`, formatCurrency: (args) => new Intl.NumberFormat().format(args.amount as number), }, });` Mirrors the `functions` prop on `JSONUIProvider` / `JsonUIProvider`. | [`UIProviderOptions`](UIProviderOptions.md).[`functions`](UIProviderOptions.md#property-functions) | [packages/play-dom/src/json-render/types.ts:88](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L88) |
23
- | <a id="property-loading"></a> `loading?` | `boolean` | When `true`, indicates the spec is still streaming (e.g. from an AI provider). Forwarded to `renderSpec` so component implementations can read `ctx.ctx.loading` to render skeleton states. Also suppresses missing-child warnings during stream ingestion, since referenced elements may not yet have arrived in the incremental spec. Mirrors the `loading` prop from framework renderer providers. | - | [packages/play-dom/src/types.ts:52](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/types.ts#L52) |
24
- | <a id="property-navigate"></a> `navigate?` | (`path`) => `void` | Programmatic navigation function. Called automatically when an action binding resolves with `onSuccess: { navigate: "/path" }`. The resolved path string is passed as the sole argument. Mirrors the `navigate` prop in `ActionProvider` from the framework renderers, where it is captured in the `execute()` closure. Also available to component implementations directly via `ctx.ctx.navigate` for cases where navigation needs to be triggered outside of an action binding. **Example** `import { useNavigate } from "my-router"; const navigate = useNavigate(); const mount = createPlayUI(registryResult, { navigate });` Spec binding that triggers navigation: `{ "on": { "click": { "action": "doSomething", "onSuccess": { "navigate": "/dashboard" } } } }` | [`UIProviderOptions`](UIProviderOptions.md).[`navigate`](UIProviderOptions.md#property-navigate) | [packages/play-dom/src/json-render/types.ts:152](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L152) |
25
- | <a id="property-onrendererror"></a> `onRenderError?` | [`RenderErrorHandler`](../type-aliases/RenderErrorHandler.md) | Unified error handler for component render errors and action handler rejections. Matches `RenderErrorHandler = (error: unknown, name: string) => void`. Invoked for three distinct error classes: - `(error, elementType)` when a component renderer throws synchronously during `renderSpec` - `(error, actionName)` when an action handler rejects during `emit()` (on-event path) - `(error, actionName)` — when an action handler rejects during a `watch` binding callback When provided, suppresses the `console.error` fallback for all three error types. Forwarded into `renderSpec` as the `onRenderError` parameter and into `DomRenderContext.onRenderError` so both `emit()` and `watch` handlers route their errors through the same channel as component render errors. **Example** `const mount = createPlayUI(registryResult, { onRenderError: (err, name) => { myErrorReporter.capture(err, { context: name }); }, });` | [`UIProviderOptions`](UIProviderOptions.md).[`onRenderError`](UIProviderOptions.md#property-onrendererror) | [packages/play-dom/src/json-render/types.ts:178](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L178) |
26
- | <a id="property-registryresult"></a> `registryResult?` | [`DefineRegistryResult`](DefineRegistryResult.md) | The result from `defineRegistry` provides both the registry and the handlers factory. When provided, `PlayRenderer` wires `setState` and `getState` from the @xstate/store-backed `StateStore` into the handlers factory automatically. This is the preferred approach as it ensures actions always receive live `setState` and `state` bound to the current store. | - | [packages/play-dom/src/types.ts:31](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/types.ts#L31) |
27
- | <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 and this store is the single source of truth for UI state (form values, etc.). When omitted, a fresh `@xstate/store` atom is created internally per view transition, seeded from `spec.state`. | - | [packages/play-dom/src/types.ts:41](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/types.ts#L41) |
28
- | <a id="property-validationfunctions"></a> `validationFunctions?` | `Record`\<`string`, (`value`, `args?`) => `boolean`\> | Custom validation functions for inline field validation. Each function receives `(value, args?)` and returns `true` (valid) or `false` (invalid). Functions are available to component implementations via `ctx.ctx.validationFunctions` and should be passed as `customFunctions` to `runValidationCheck` / `runValidation` from `@json-render/core`. Mirrors `customFunctions` in `ValidationProvider` from the framework renderers. The DOM renderer has no automatic `ValidationProvider` tree validation must be invoked explicitly by component implementations. **Example** `import { runValidationCheck } from "@json-render/core"; const mount = createPlayUI(registryResult, { validationFunctions: { isEven: (value) => typeof value === "number" && value % 2 === 0, phoneNumber: (value) => /^\+?[\d\s\-()]{7,}$/.test(String(value)), }, }); // Inside a ComponentFn: const MyField: ComponentFn<typeof catalog, "MyField"> = ({ ctx }) => { const result = runValidationCheck( { type: "isEven", message: "must be even" }, { value: someValue, stateModel: {}, customFunctions: ctx.ctx.validationFunctions }, ); // result.valid, result.message };` | [`UIProviderOptions`](UIProviderOptions.md).[`validationFunctions`](UIProviderOptions.md#property-validationfunctions) | [packages/play-dom/src/json-render/types.ts:123](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.53/packages/play-dom/src/json-render/types.ts#L123) |
22
+ | <a id="property-functions"></a> `functions?` | `Record`\<`string`, `ComputedFunction`\> | Named compute functions for `{ $computed: "name", args: {...} }` prop expressions. Each function receives the resolved `args` object and returns the computed value. Forwarded directly to `resolveElementProps` via `PropResolutionContext.functions`, matching the `FunctionsContext` provider in the framework renderers. Without this option, `$computed` expressions resolve to `undefined` (no throw). **Example** `const mount = createPlayUI(registryResult, { functions: { fullName: (args) => `${args.first} ${args.last}`, formatCurrency: (args) => new Intl.NumberFormat().format(args.amount as number), }, });` Mirrors the `functions` prop on `JSONUIProvider` / `JsonUIProvider`. | [`UIProviderOptions`](UIProviderOptions.md).[`functions`](UIProviderOptions.md#property-functions) | [packages/play-dom/src/json-render/types.ts:125](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L125) |
23
+ | <a id="property-loading"></a> `loading?` | `boolean` | When `true`, indicates the spec is still streaming (e.g. from an AI provider). Forwarded to `renderSpec` so component implementations can read `ctx.ctx.loading` to render skeleton states. Also suppresses missing-child warnings during stream ingestion, since referenced elements may not yet have arrived in the incremental spec. Mirrors the `loading` prop from framework renderer providers. | - | [packages/play-dom/src/types.ts:52](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/types.ts#L52) |
24
+ | <a id="property-navigate"></a> `navigate?` | (`path`) => `void` | Programmatic navigation function. Called automatically when an action binding resolves with `onSuccess: { navigate: "/path" }`. The resolved path string is passed as the sole argument. Mirrors the `navigate` prop in `ActionProvider` from the framework renderers, where it is captured in the `execute()` closure. Also available to component implementations directly via `ctx.ctx.navigate` for cases where navigation needs to be triggered outside of an action binding. **Example** `import { useNavigate } from "my-router"; const navigate = useNavigate(); const mount = createPlayUI(registryResult, { navigate });` Spec binding that triggers navigation: `{ "on": { "click": { "action": "doSomething", "onSuccess": { "navigate": "/dashboard" } } } }` | [`UIProviderOptions`](UIProviderOptions.md).[`navigate`](UIProviderOptions.md#property-navigate) | [packages/play-dom/src/json-render/types.ts:189](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L189) |
25
+ | <a id="property-onconfirm"></a> `onConfirm?` | [`ConfirmHandler`](../type-aliases/ConfirmHandler.md) | Confirmation hook for actions that declare `confirm` in their binding. Consulted by `emit()` before executing a confirm-gated action. Return (or resolve) `true` to execute, `false` to skip. Without this handler, confirm-gated actions are skipped with a `console.warn` they never execute unconfirmed. See [ConfirmHandler](../type-aliases/ConfirmHandler.md) for the full contract. This is the headless equivalent of the `pendingConfirmation` / `confirmAction()` / `cancelAction()` flow in the framework adapters. | [`UIProviderOptions`](UIProviderOptions.md).[`onConfirm`](UIProviderOptions.md#property-onconfirm) | [packages/play-dom/src/json-render/types.ts:228](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L228) |
26
+ | <a id="property-onrendererror"></a> `onRenderError?` | [`RenderErrorHandler`](../type-aliases/RenderErrorHandler.md) | Unified error handler for component render errors and action handler rejections. Matches `RenderErrorHandler = (error: unknown, name: string) => void`. Invoked for three distinct error classes: - `(error, elementType)` — when a component renderer throws synchronously during `renderSpec` - `(error, actionName)` when an action handler rejects during `emit()` (on-event path) - `(error, actionName)` when an action handler rejects during a `watch` binding callback When provided, suppresses the `console.error` fallback for all three error types. Forwarded into `renderSpec` as the `onRenderError` parameter and into `DomRenderContext.onRenderError` so both `emit()` and `watch` handlers route their errors through the same channel as component render errors. **Example** `const mount = createPlayUI(registryResult, { onRenderError: (err, name) => { myErrorReporter.capture(err, { context: name }); }, });` | [`UIProviderOptions`](UIProviderOptions.md).[`onRenderError`](UIProviderOptions.md#property-onrendererror) | [packages/play-dom/src/json-render/types.ts:215](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L215) |
27
+ | <a id="property-registryresult"></a> `registryResult?` | [`DefineRegistryResult`](DefineRegistryResult.md) | The result from `defineRegistry` provides both the registry and the handlers factory. When provided, `PlayRenderer` wires `setState` and `getState` from the @xstate/store-backed `StateStore` into the handlers factory automatically. This is the preferred approach as it ensures actions always receive live `setState` and `state` bound to the current store. | - | [packages/play-dom/src/types.ts:31](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/types.ts#L31) |
28
+ | <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 and this store is the single source of truth for UI state (form values, etc.). When omitted, a fresh `@xstate/store` atom is created internally per view transition, seeded from `spec.state`. | - | [packages/play-dom/src/types.ts:41](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/types.ts#L41) |
29
+ | <a id="property-validationfunctions"></a> `validationFunctions?` | `Record`\<`string`, (`value`, `args?`) => `boolean`\> | Custom validation functions for inline field validation. Each function receives `(value, args?)` and returns `true` (valid) or `false` (invalid). Functions are available to component implementations via `ctx.ctx.validationFunctions` and should be passed as `customFunctions` to `runValidationCheck` / `runValidation` from `@json-render/core`. Mirrors `customFunctions` in `ValidationProvider` from the framework renderers. The DOM renderer has no automatic `ValidationProvider` tree — validation must be invoked explicitly by component implementations. **Example** `import { runValidationCheck } from "@json-render/core"; const mount = createPlayUI(registryResult, { validationFunctions: { isEven: (value) => typeof value === "number" && value % 2 === 0, phoneNumber: (value) => /^\+?[\d\s\-()]{7,}$/.test(String(value)), }, }); // Inside a ComponentFn: const MyField: ComponentFn<typeof catalog, "MyField"> = ({ ctx }) => { const result = runValidationCheck( { type: "isEven", message: "must be even" }, { value: someValue, stateModel: {}, customFunctions: ctx.ctx.validationFunctions }, ); // result.valid, result.message };` | [`UIProviderOptions`](UIProviderOptions.md).[`validationFunctions`](UIProviderOptions.md#property-validationfunctions) | [packages/play-dom/src/json-render/types.ts:160](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/types.ts#L160) |
@@ -0,0 +1,25 @@
1
+ [API](../../../README.md) / [@xmachines/play-dom](../README.md) / RenderSpecOptions
2
+
3
+ # Interface: RenderSpecOptions
4
+
5
+ Defined in: [packages/play-dom/src/json-render/renderer.ts:115](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/renderer.ts#L115)
6
+
7
+ Named options for [renderSpec](../functions/renderSpec.md).
8
+
9
+ All fields are optional — `send` defaults to a no-op and `handlers` to an
10
+ empty map, so `renderSpec(spec, store, registry)` renders a static tree.
11
+
12
+ ## Properties
13
+
14
+ | Property | Type | Description | Defined in |
15
+ | ---------------------------------------------------------------- | ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
16
+ | <a id="property-fallback"></a> `fallback?` | [`DomComponentRenderer`](../type-aliases/DomComponentRenderer.md) | Renderer called when `registry` has no entry for an element's `type` (GAP-04). If absent, unknown types render as `null`. | [packages/play-dom/src/json-render/renderer.ts:130](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/renderer.ts#L130) |
17
+ | <a id="property-functions"></a> `functions?` | `Record`\<`string`, `ComputedFunction`\> | Map of named compute functions forwarded to `PropResolutionContext` (GAP-03). Enables `{ $computed: "fn", args }` prop expressions to resolve. When absent, `$computed` expressions return `undefined` (no throw). | [packages/play-dom/src/json-render/renderer.ts:147](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/renderer.ts#L147) |
18
+ | <a id="property-handlers"></a> `handlers?` | `Record`\<`string`, `ActionHandler`\> | Map of catalog action names → async `ActionHandler` functions, consumed by `defineRegistry`'s `emit()`/`watch` dispatch. Defaults to `{}`. | [packages/play-dom/src/json-render/renderer.ts:125](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/renderer.ts#L125) |
19
+ | <a id="property-loading"></a> `loading?` | `boolean` | 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. | [packages/play-dom/src/json-render/renderer.ts:154](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/renderer.ts#L154) |
20
+ | <a id="property-navigate"></a> `navigate?` | (`path`) => `void` | Navigation callback forwarded to `DomRenderContext.navigate`. Invoked automatically by `defineRegistry`'s `emit()` when an action binding resolves with `onSuccess: { navigate: "/path" }`. Also readable by component implementations via `ctx.navigate`. | [packages/play-dom/src/json-render/renderer.ts:182](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/renderer.ts#L182) |
21
+ | <a id="property-onconfirm"></a> `onConfirm?` | [`ConfirmHandler`](../type-aliases/ConfirmHandler.md) | Confirmation hook forwarded to `DomRenderContext.onConfirm`. Consulted by `defineRegistry`'s `emit()` before executing an action binding that declares `confirm`. Without it, confirm-gated actions are skipped with a `console.warn` (never executed unconfirmed). | [packages/play-dom/src/json-render/renderer.ts:189](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/renderer.ts#L189) |
22
+ | <a id="property-onrendererror"></a> `onRenderError?` | [`RenderErrorHandler`](../type-aliases/RenderErrorHandler.md) | Callback matching `RenderErrorHandler = (error, name)`. Invoked for three distinct error classes: - `(error, elementType)` when a component renderer throws (GAP-08) - `(error, actionName)` when an action handler rejects during `emit()` - `(error, actionName)` when an action handler rejects in a `watch` binding If absent, all three fall back to `console.error`. Forwarded into `DomRenderContext.onRenderError` so `emit()` and `watch` handlers route errors through the same channel as component render errors. | [packages/play-dom/src/json-render/renderer.ts:141](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/renderer.ts#L141) |
23
+ | <a id="property-onwatchsetup"></a> `onWatchSetup?` | (`cleanup`) => `void` \| (() => `void`) | 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(). When absent, `watch` bindings are not wired. May return a replacement cleanup: when the caller wraps the supplied cleanup (e.g. to drop it from its own collection when invoked), the incremental renderer registers the returned wrapper so an unmount-driven release also runs the caller's bookkeeping. Returning nothing keeps the supplied cleanup. | [packages/play-dom/src/json-render/renderer.ts:168](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/renderer.ts#L168) |
24
+ | <a id="property-send"></a> `send?` | (`event`) => `void` | Dispatcher for interaction events (e.g. `actor.send`), exposed to component implementations via `ctx.send`. Defaults to a no-op. | [packages/play-dom/src/json-render/renderer.ts:120](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/renderer.ts#L120) |
25
+ | <a id="property-validationfunctions"></a> `validationFunctions?` | `Record`\<`string`, (`value`, `args?`) => `boolean`\> | Custom validation functions forwarded to `DomRenderContext.validationFunctions`. Components pass these as `customFunctions` to `runValidationCheck` / `runValidation` from `@json-render/core`. Has no effect on prop resolution. | [packages/play-dom/src/json-render/renderer.ts:175](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.55/packages/play-dom/src/json-render/renderer.ts#L175) |