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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/api/@xmachines/play/classes/NonNullableError.md +4 -4
  2. package/api/@xmachines/play/classes/PlayError.md +4 -4
  3. package/api/@xmachines/play/functions/assertNonNullable.md +1 -1
  4. package/api/@xmachines/play/type-aliases/PlayEvent.md +2 -2
  5. package/api/@xmachines/play-actor/README.md +18 -19
  6. package/api/@xmachines/play-actor/classes/AbstractActor.md +3 -3
  7. package/api/@xmachines/play-actor/functions/typedSpec.md +7 -10
  8. package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +46 -0
  9. package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +33 -0
  10. package/api/@xmachines/play-actor/interfaces/PlaySpec.md +2 -2
  11. package/api/@xmachines/play-actor/interfaces/Routable.md +3 -3
  12. package/api/@xmachines/play-actor/interfaces/Viewable.md +4 -4
  13. package/api/@xmachines/play-dom/README.md +102 -18
  14. package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
  15. package/api/@xmachines/play-dom/functions/connectRenderer.md +1 -1
  16. package/api/@xmachines/play-dom/functions/createPlayUI.md +28 -0
  17. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  18. package/api/@xmachines/play-dom/functions/defineRegistry.md +1 -23
  19. package/api/@xmachines/play-dom/functions/renderSpec.md +1 -1
  20. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +9 -9
  21. package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +19 -11
  22. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +29 -0
  23. package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +6 -6
  24. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +14 -14
  25. package/api/@xmachines/play-dom/interfaces/EventHandle.md +6 -6
  26. package/api/@xmachines/play-dom/interfaces/MountOptions.md +14 -0
  27. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +7 -7
  28. package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +27 -0
  29. package/api/@xmachines/play-dom/type-aliases/ActionFn.md +1 -1
  30. package/api/@xmachines/play-dom/type-aliases/Actions.md +1 -1
  31. package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +7 -7
  32. package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +1 -1
  33. package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +1 -1
  34. package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +1 -1
  35. package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +4 -4
  36. package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +1 -1
  37. package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +1 -1
  38. package/api/@xmachines/play-dom/type-aliases/DomSchema.md +1 -1
  39. package/api/@xmachines/play-dom/type-aliases/MountFn.md +25 -0
  40. package/api/@xmachines/play-dom/type-aliases/RenderErrorHandler.md +23 -0
  41. package/api/@xmachines/play-dom/type-aliases/SetState.md +1 -1
  42. package/api/@xmachines/play-dom/variables/schema.md +1 -1
  43. package/api/@xmachines/play-dom-router/README.md +3 -3
  44. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  45. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  46. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +3 -3
  47. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  48. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
  49. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  50. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +4 -4
  51. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +6 -6
  52. package/api/@xmachines/play-dom-router/interfaces/{RouteMapLike.md → RouteLookupContract.md} +7 -7
  53. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +6 -11
  54. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +8 -8
  55. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
  56. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
  57. package/api/@xmachines/play-dom-router/type-aliases/RoutableActor.md +1 -1
  58. package/api/@xmachines/play-react/README.md +165 -48
  59. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +5 -5
  60. package/api/@xmachines/play-react/functions/ActionProvider.md +21 -0
  61. package/api/@xmachines/play-react/functions/JSONUIProvider.md +21 -0
  62. package/api/@xmachines/play-react/functions/Renderer.md +21 -0
  63. package/api/@xmachines/play-react/functions/StateProvider.md +27 -0
  64. package/api/@xmachines/play-react/functions/ValidationProvider.md +21 -0
  65. package/api/@xmachines/play-react/functions/VisibilityProvider.md +21 -0
  66. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  67. package/api/@xmachines/play-react/functions/usePlayView.md +32 -0
  68. package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
  69. package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +15 -0
  70. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +27 -0
  71. package/api/@xmachines/play-react/interfaces/JSONUIProviderProps.md +21 -0
  72. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +4 -4
  73. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +3 -3
  74. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +26 -0
  75. package/api/@xmachines/play-react/interfaces/RendererProps.md +17 -0
  76. package/api/@xmachines/play-react/interfaces/StateProviderProps.md +16 -0
  77. package/api/@xmachines/play-react/interfaces/ValidationProviderProps.md +14 -0
  78. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +20 -0
  79. package/api/@xmachines/play-react/interfaces/VisibilityProviderProps.md +13 -0
  80. package/api/@xmachines/play-react/type-aliases/PlayActor.md +1 -1
  81. package/api/@xmachines/play-react/type-aliases/RenderErrorHandler.md +3 -2
  82. package/api/@xmachines/play-react/variables/ActorProvider.md +33 -0
  83. package/api/@xmachines/play-react/variables/PlayRenderer.md +5 -50
  84. package/api/@xmachines/play-react/variables/PlayUIProvider.md +43 -0
  85. package/api/@xmachines/play-react-router/README.md +1 -0
  86. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +24 -24
  87. package/api/@xmachines/play-react-router/classes/RouteMap.md +38 -22
  88. package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +1 -1
  89. package/api/@xmachines/play-react-router/functions/createRouteMap.md +21 -0
  90. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +5 -5
  91. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +6 -6
  92. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  93. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +8 -8
  94. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  95. package/api/@xmachines/play-router/README.md +6 -6
  96. package/api/@xmachines/play-router/classes/{BaseRouteMap.md → RouteMap.md} +11 -11
  97. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +24 -24
  98. package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +2 -2
  99. package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
  100. package/api/@xmachines/play-router/functions/createRouteMap.md +6 -6
  101. package/api/@xmachines/play-router/functions/createRouteMapFromMachine.md +5 -5
  102. package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +6 -6
  103. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
  104. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
  105. package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
  106. package/api/@xmachines/play-router/functions/extractRouteParams.md +1 -1
  107. package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
  108. package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
  109. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
  110. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
  111. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
  112. package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
  113. package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
  114. package/api/@xmachines/play-router/functions/routeExists.md +1 -1
  115. package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
  116. package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
  117. package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
  118. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
  119. package/api/@xmachines/play-router/interfaces/LocationLike.md +3 -3
  120. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
  121. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
  122. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +6 -6
  123. package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
  124. package/api/@xmachines/play-router/interfaces/RouteMapping.md +8 -8
  125. package/api/@xmachines/play-router/interfaces/RouteMatch.md +3 -3
  126. package/api/@xmachines/play-router/interfaces/{RouteMap.md → RouteMatcher.md} +13 -13
  127. package/api/@xmachines/play-router/interfaces/RouteNode.md +10 -10
  128. package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
  129. package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
  130. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
  131. package/api/@xmachines/play-router/interfaces/RouterBridge.md +3 -3
  132. package/api/@xmachines/play-router/interfaces/WindowLike.md +3 -3
  133. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
  134. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
  135. package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
  136. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
  137. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
  138. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
  139. package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
  140. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
  141. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
  142. package/api/@xmachines/play-solid/README.md +158 -42
  143. package/api/@xmachines/play-solid/functions/ActionProvider.md +19 -0
  144. package/api/@xmachines/play-solid/functions/JSONUIProvider.md +21 -0
  145. package/api/@xmachines/play-solid/functions/Renderer.md +21 -0
  146. package/api/@xmachines/play-solid/functions/StateProvider.md +19 -0
  147. package/api/@xmachines/play-solid/functions/ValidationProvider.md +19 -0
  148. package/api/@xmachines/play-solid/functions/VisibilityProvider.md +20 -0
  149. package/api/@xmachines/play-solid/functions/defineRegistry.md +1 -1
  150. package/api/@xmachines/play-solid/functions/useAction.md +24 -0
  151. package/api/@xmachines/play-solid/functions/useActions.md +13 -0
  152. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  153. package/api/@xmachines/play-solid/functions/useFieldValidation.md +29 -0
  154. package/api/@xmachines/play-solid/functions/useIsVisible.md +19 -0
  155. package/api/@xmachines/play-solid/functions/useOptionalValidation.md +13 -0
  156. package/api/@xmachines/play-solid/functions/usePlayView.md +30 -0
  157. package/api/@xmachines/play-solid/functions/useStateBinding.md +25 -0
  158. package/api/@xmachines/play-solid/functions/useStateStore.md +13 -0
  159. package/api/@xmachines/play-solid/functions/useStateValue.md +25 -0
  160. package/api/@xmachines/play-solid/functions/useVisibility.md +13 -0
  161. package/api/@xmachines/play-solid/interfaces/ActionProviderProps.md +12 -0
  162. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +30 -0
  163. package/api/@xmachines/play-solid/interfaces/DefineRegistryResult.md +15 -0
  164. package/api/@xmachines/play-solid/interfaces/JSONUIProviderProps.md +21 -0
  165. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +26 -0
  166. package/api/@xmachines/play-solid/interfaces/RendererProps.md +17 -0
  167. package/api/@xmachines/play-solid/interfaces/StateProviderProps.md +13 -0
  168. package/api/@xmachines/play-solid/interfaces/ValidationProviderProps.md +11 -0
  169. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +21 -0
  170. package/api/@xmachines/play-solid/type-aliases/ComponentRegistry.md +17 -0
  171. package/api/@xmachines/play-solid/type-aliases/PlayActor.md +1 -1
  172. package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +3 -2
  173. package/api/@xmachines/play-solid/type-aliases/SetState.md +21 -0
  174. package/api/@xmachines/play-solid/type-aliases/VisibilityProviderProps.md +9 -0
  175. package/api/@xmachines/play-solid/variables/ActorContext.md +13 -0
  176. package/api/@xmachines/play-solid/variables/ActorProvider.md +27 -0
  177. package/api/@xmachines/play-solid/variables/PlayRenderer.md +5 -18
  178. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +26 -0
  179. package/api/@xmachines/play-solid-router/README.md +2 -2
  180. package/api/@xmachines/play-solid-router/classes/RouteMap.md +9 -9
  181. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +25 -25
  182. package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +1 -1
  183. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +3 -3
  184. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +3 -3
  185. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +6 -6
  186. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  187. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +8 -8
  188. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  189. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
  190. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  191. package/api/@xmachines/play-svelte/README.md +105 -25
  192. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  193. package/api/@xmachines/play-svelte/functions/getActorContext.md +21 -0
  194. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +19 -0
  195. package/api/@xmachines/play-svelte/functions/setActorContext.md +19 -0
  196. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +40 -0
  197. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +6 -6
  198. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +24 -0
  199. package/api/@xmachines/play-svelte/type-aliases/PlayActor.md +9 -0
  200. package/api/@xmachines/play-svelte/type-aliases/RenderErrorHandler.md +1 -17
  201. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +9 -9
  202. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  203. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +3 -3
  204. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +4 -4
  205. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +6 -6
  206. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +8 -8
  207. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  208. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  209. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
  210. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +9 -9
  211. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  212. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +3 -3
  213. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +4 -4
  214. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  215. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +6 -6
  216. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +8 -8
  217. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  218. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
  219. package/api/@xmachines/play-tanstack-react-router/README.md +1 -1
  220. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +38 -22
  221. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +24 -24
  222. package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +1 -1
  223. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +7 -39
  224. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +5 -5
  225. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
  226. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +6 -6
  227. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  228. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +8 -8
  229. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
  230. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  231. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  232. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
  233. package/api/@xmachines/play-tanstack-solid-router/README.md +1 -1
  234. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +9 -9
  235. package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +25 -25
  236. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +1 -1
  237. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +3 -3
  238. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +6 -6
  239. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  240. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +8 -8
  241. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  242. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
  243. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  244. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +3 -3
  245. package/api/@xmachines/play-vue/README.md +136 -40
  246. package/api/@xmachines/play-vue/functions/defineRegistry.md +2 -2
  247. package/api/@xmachines/play-vue/functions/getPlayViewContext.md +28 -0
  248. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  249. package/api/@xmachines/play-vue/interfaces/ActionProviderProps.md +12 -0
  250. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +25 -0
  251. package/api/@xmachines/play-vue/interfaces/DefineRegistryResult.md +15 -0
  252. package/api/@xmachines/play-vue/interfaces/JSONUIProviderProps.md +20 -0
  253. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +24 -0
  254. package/api/@xmachines/play-vue/interfaces/RendererProps.md +17 -0
  255. package/api/@xmachines/play-vue/interfaces/StateProviderProps.md +15 -0
  256. package/api/@xmachines/play-vue/interfaces/ValidationProviderProps.md +11 -0
  257. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +21 -0
  258. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  259. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  260. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  261. package/api/@xmachines/play-vue/type-aliases/PlayActor.md +1 -1
  262. package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +3 -2
  263. package/api/@xmachines/play-vue/variables/ActionProvider.md +64 -0
  264. package/api/@xmachines/play-vue/variables/JSONUIProvider.md +96 -0
  265. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  266. package/api/@xmachines/play-vue/variables/Renderer.md +79 -0
  267. package/api/@xmachines/play-vue/variables/StateProvider.md +79 -0
  268. package/api/@xmachines/play-vue/variables/ValidationProvider.md +55 -0
  269. package/api/@xmachines/play-vue/variables/VisibilityProvider.md +40 -0
  270. package/api/@xmachines/play-vue-router/README.md +9 -4
  271. package/api/@xmachines/play-vue-router/classes/RouteMap.md +38 -20
  272. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +25 -25
  273. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
  274. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +6 -6
  275. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +8 -8
  276. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
  277. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
  278. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
  279. package/api/@xmachines/play-xstate/README.md +1 -1
  280. package/api/@xmachines/play-xstate/classes/PlayerActor.md +26 -26
  281. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
  282. package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
  283. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
  284. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
  285. package/api/@xmachines/play-xstate/functions/definePlayer.md +1 -1
  286. package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
  287. package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
  288. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
  289. package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
  290. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
  291. package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
  292. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
  293. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
  294. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
  295. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
  296. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
  297. package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
  298. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
  299. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
  300. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
  301. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
  302. package/api/@xmachines/shared/README.md +47 -47
  303. package/api/@xmachines/shared/functions/defineXmVitestConfig.md +1 -1
  304. package/api/@xmachines/shared/functions/xmAliases.md +1 -1
  305. package/api/llms.txt +4 -2
  306. package/examples/@xmachines/play-dom-demo/README.md +44 -24
  307. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +4 -3
  308. package/examples/@xmachines/play-dom-demo/functions/initShell.md +5 -1
  309. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  310. package/examples/@xmachines/play-dom-demo/variables/About.md +4 -1
  311. package/examples/@xmachines/play-dom-demo/variables/Contact.md +4 -1
  312. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +5 -1
  313. package/examples/@xmachines/play-dom-demo/variables/Home.md +5 -1
  314. package/examples/@xmachines/play-dom-demo/variables/Login.md +5 -1
  315. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +8 -1
  316. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +5 -1
  317. package/examples/@xmachines/play-dom-demo/variables/Overview.md +5 -1
  318. package/examples/@xmachines/play-dom-demo/variables/Profile.md +5 -1
  319. package/examples/@xmachines/play-dom-demo/variables/Settings.md +5 -1
  320. package/examples/@xmachines/play-dom-demo/variables/Stats.md +5 -1
  321. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  322. package/examples/@xmachines/play-dom-router-demo/README.md +26 -22
  323. package/examples/@xmachines/play-react-demo/README.md +55 -48
  324. package/examples/@xmachines/play-react-demo/functions/App.md +1 -1
  325. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  326. package/examples/@xmachines/play-react-demo/variables/About.md +6 -1
  327. package/examples/@xmachines/play-react-demo/variables/Contact.md +6 -1
  328. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +7 -1
  329. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +5 -1
  330. package/examples/@xmachines/play-react-demo/variables/Home.md +6 -1
  331. package/examples/@xmachines/play-react-demo/variables/Login.md +8 -1
  332. package/examples/@xmachines/play-react-demo/variables/NavBar.md +6 -1
  333. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +7 -1
  334. package/examples/@xmachines/play-react-demo/variables/Navigation.md +6 -1
  335. package/examples/@xmachines/play-react-demo/variables/Overview.md +6 -1
  336. package/examples/@xmachines/play-react-demo/variables/Profile.md +6 -1
  337. package/examples/@xmachines/play-react-demo/variables/Settings.md +6 -1
  338. package/examples/@xmachines/play-react-demo/variables/Shell.md +6 -1
  339. package/examples/@xmachines/play-react-demo/variables/Stats.md +6 -1
  340. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  341. package/examples/@xmachines/play-react-router-demo/README.md +5 -3
  342. package/examples/@xmachines/play-solid-demo/README.md +55 -36
  343. package/examples/@xmachines/play-solid-demo/functions/App.md +1 -1
  344. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  345. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  346. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  347. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  348. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +5 -1
  349. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  350. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  351. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  352. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +6 -3
  353. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  354. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  355. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  356. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  357. package/examples/@xmachines/play-solid-demo/variables/Shell.md +5 -1
  358. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  359. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
  360. package/examples/@xmachines/play-solid-router-demo/README.md +6 -4
  361. package/examples/@xmachines/play-svelte-demo/README.md +34 -21
  362. package/examples/@xmachines/play-svelte-demo/type-aliases/App.md +9 -0
  363. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +9 -0
  364. package/examples/@xmachines/play-svelte-demo/variables/App.md +9 -0
  365. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +172 -0
  366. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +10 -12
  367. package/examples/@xmachines/play-sveltekit-router-demo/README.md +12 -14
  368. package/examples/@xmachines/play-tanstack-react-router-demo/README.md +3 -3
  369. package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +4 -4
  370. package/examples/@xmachines/play-vue-demo/README.md +66 -39
  371. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +9 -0
  372. package/examples/@xmachines/play-vue-demo/variables/App.md +9 -0
  373. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +172 -0
  374. package/examples/@xmachines/play-vue-router-demo/README.md +21 -24
  375. package/examples/README.md +2 -0
  376. package/examples/form-validation.md +33 -42
  377. package/guides/README.md +8 -0
  378. package/guides/actor-model.md +180 -0
  379. package/guides/getting-started.md +18 -14
  380. package/guides/signals.md +166 -0
  381. package/guides/state-machines.md +288 -0
  382. package/package.json +2 -2
  383. package/rfc/play.md +81 -54
  384. package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +0 -17
  385. package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +0 -24
  386. package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +0 -24
  387. package/api/@xmachines/play-svelte/interfaces/PlayRendererProps.md +0 -22
  388. package/api/@xmachines/play-svelte/variables/getBoundProp.md +0 -7
  389. package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +0 -22
  390. package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +0 -141
  391. package/api/_media/README.md +0 -321
@@ -1,22 +0,0 @@
1
- [Documentation](../../../README.md) / [@xmachines/play-svelte](../README.md) / PlayRendererProps
2
-
3
- # Interface: PlayRendererProps\<TLogic\>
4
-
5
- Defined in: [packages/play-svelte/src/types.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-svelte/src/types.ts#L13)
6
-
7
- ## Type Parameters
8
-
9
- | Type Parameter | Default type |
10
- | ---------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
11
- | `TLogic` _extends_ [`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic) | [`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic) |
12
-
13
- ## Properties
14
-
15
- | Property | Type | Description | Defined in |
16
- | ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
17
- | <a id="property-actor"></a> `actor` | [`AbstractActor`](../../play-actor/classes/AbstractActor.md)\<`TLogic`, [`EventObject`](https://www.jsdocs.io/package/xstate#EventObject)\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | - | [packages/play-svelte/src/types.ts:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-svelte/src/types.ts#L14) |
18
- | <a id="property-fallback"></a> `fallback?` | `Snippet`\<\[\]\> | Svelte snippet rendered when currentView is null (no active view). Also shown when a catalog component throws during render. | [packages/play-svelte/src/types.ts:29](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-svelte/src/types.ts#L29) |
19
- | <a id="property-onerror"></a> `onError?` | (`error`, `reset`) => `void` | Called when a catalog component throws during render. Receives the thrown error and a `reset` function that clears the boundary and attempts to re-render. Matches Svelte 5's `<svelte:boundary onerror>` signature. | [packages/play-svelte/src/types.ts:36](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-svelte/src/types.ts#L36) |
20
- | <a id="property-onrendererror"></a> `onRenderError?` | [`RenderErrorHandler`](../type-aliases/RenderErrorHandler.md) | Called when an individual catalog component throws during render. Caught by the inner `<svelte:boundary>` inside each rendered element — the failed component is silently removed from the DOM while the rest of the spec continues rendering. Unlike `onError`, this does not take a `reset` callback because the inner boundary never re-renders the failed element. When not provided, `@json-render/svelte` logs the error to `console.error`. **Example** `<PlayRenderer {actor} {registryResult} onRenderError={(error, elementType) => { console.warn(`<${elementType}> crashed:`, error); }} />` | [packages/play-svelte/src/types.ts:60](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-svelte/src/types.ts#L60) |
21
- | <a id="property-registryresult"></a> `registryResult` | `DefineRegistryResult` | Full result from defineRegistry() — contains component registry and action handlers. Action handlers are async functions that dispatch to the actor (not string-mapped event type stubs). Replaces the old `registry` + `actions` prop pair. | [packages/play-svelte/src/types.ts:21](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-svelte/src/types.ts#L21) |
22
- | <a id="property-store"></a> `store?` | `StateStore` | - | [packages/play-svelte/src/types.ts:23](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-svelte/src/types.ts#L23) |
@@ -1,7 +0,0 @@
1
- [Documentation](../../../README.md) / [@xmachines/play-svelte](../README.md) / getBoundProp
2
-
3
- # Variable: getBoundProp
4
-
5
- ```ts
6
- getBoundProp: any;
7
- ```
@@ -1,22 +0,0 @@
1
- [Documentation](../../../README.md) / [@xmachines/play-vue](../README.md) / PlayRendererProps
2
-
3
- # Interface: PlayRendererProps\<TLogic\>
4
-
5
- Defined in: [packages/play-vue/src/types.ts:23](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-vue/src/types.ts#L23)
6
-
7
- Props for PlayRenderer component
8
-
9
- ## Type Parameters
10
-
11
- | Type Parameter | Default type | Description |
12
- | ---------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
13
- | `TLogic` _extends_ [`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic) | [`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic) | The XState actor logic type. Defaults to `AnyActorLogic` for non-generic usage. |
14
-
15
- ## Properties
16
-
17
- | Property | Type | Description | Defined in |
18
- | ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
19
- | <a id="property-actor"></a> `actor` | [`AbstractActor`](../../play-actor/classes/AbstractActor.md)\<`TLogic`, [`EventObject`](https://www.jsdocs.io/package/xstate#EventObject)\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | Actor instance with currentView signal (requires Viewable capability) | [packages/play-vue/src/types.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-vue/src/types.ts#L25) |
20
- | <a id="property-onrendererror"></a> `onRenderError?` | [`RenderErrorHandler`](../type-aliases/RenderErrorHandler.md) | Called when an individual catalog component throws during render. Caught by the inner error boundary inside each rendered element — the failed component is silently removed while the rest of the spec continues rendering. Takes precedence over any `onRenderError` set via `defineRegistry`. When not provided, `@json-render/vue` logs the error to `console.error`. | [packages/play-vue/src/types.ts:52](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-vue/src/types.ts#L52) |
21
- | <a id="property-registryresult"></a> `registryResult` | `DefineRegistryResult` | Full result from defineRegistry() in @json-render/vue. Contains both the component registry and the action handlers factory. Action handlers are real async functions dispatching to the actor (not string-mapped event types). | [packages/play-vue/src/types.ts:32](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-vue/src/types.ts#L32) |
22
- | <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-vue/src/types.ts:41](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-vue/src/types.ts#L41) |
@@ -1,141 +0,0 @@
1
- [Documentation](../../../README.md) / [@xmachines/play-vue-router](../README.md) / VueBaseRouteMap
2
-
3
- # Class: VueBaseRouteMap
4
-
5
- Defined in: [play-router/src/base-route-map.ts:100](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-router/src/base-route-map.ts#L100)
6
-
7
- Shared bidirectional route map base class.
8
-
9
- All framework adapter `RouteMap` classes extend this — they add no logic of their
10
- own and inherit the full public API from here.
11
-
12
- **Lookup strategy:**
13
-
14
- - Static paths (no `:param`) → O(1) `Map` lookup
15
- - Dynamic paths → O(k) bucket-indexed scan using `URLPattern`, where `k` is the number
16
- of routes sharing the same first path segment
17
- - Results are cached after the first match in an LRU cache (default 500 entries,
18
- configurable via the `cacheSize` constructor option)
19
-
20
- **Pattern syntax** (`:param` / `:param?`):
21
-
22
- - `:param` — required segment, matches exactly one non-`/` segment
23
- - `:param?` — optional segment, matches zero or one non-`/` segment
24
-
25
- ## Example
26
-
27
- ```typescript
28
- import { BaseRouteMap } from "@xmachines/play-router";
29
-
30
- const map = new BaseRouteMap([
31
- { stateId: "home", path: "/" },
32
- { stateId: "profile", path: "/profile/:userId" },
33
- { stateId: "settings", path: "/settings/:section?" },
34
- ]);
35
-
36
- map.getStateIdByPath("/"); // "home"
37
- map.getStateIdByPath("/profile/123"); // "profile"
38
- map.getStateIdByPath("/settings"); // "settings"
39
- map.getStateIdByPath("/unknown"); // null
40
-
41
- map.getPathByStateId("profile"); // "/profile/:userId"
42
- map.getPathByStateId("missing"); // null
43
- ```
44
-
45
- ## Extended by
46
-
47
- - [`RouteMap`](RouteMap.md)
48
-
49
- ## Constructors
50
-
51
- ### Constructor
52
-
53
- ```ts
54
- new VueBaseRouteMap(mappings, options?): BaseRouteMap;
55
- ```
56
-
57
- Defined in: [play-router/src/base-route-map.ts:125](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-router/src/base-route-map.ts#L125)
58
-
59
- Build a route map from an array of state ID ↔ path mappings.
60
-
61
- Static paths (no `:param`) are indexed in an O(1) `Map`.
62
- Parameterized paths are compiled to `URLPattern` and grouped into first-segment
63
- buckets for efficient candidate selection.
64
-
65
- #### Parameters
66
-
67
- | Parameter | Type | Description |
68
- | -------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
69
- | `mappings` | [`RouteMapping`](../interfaces/RouteMapping.md)[] | Array of `{ stateId, path }` entries. Order determines priority when multiple patterns could match the same path. |
70
- | `options` | \{ `cacheSize?`: `number`; \} | Optional configuration. `options.cacheSize`: Maximum number of resolved parameterized path lookups to cache. Defaults to `500`. Increase for applications with many unique parameterized URL values (e.g. user profile pages with thousands of distinct IDs). After eviction the path falls back to the O(k) bucket pattern scan — correct but slower. Minimum effective value is `1` (QuickLRU constraint). |
71
- | `options.cacheSize?` | `number` | - |
72
-
73
- #### Returns
74
-
75
- `BaseRouteMap`
76
-
77
- ## Methods
78
-
79
- ### getPathByStateId()
80
-
81
- ```ts
82
- getPathByStateId(stateId): string | null;
83
- ```
84
-
85
- Defined in: [play-router/src/base-route-map.ts:209](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-router/src/base-route-map.ts#L209)
86
-
87
- Look up the path pattern registered for a state ID.
88
-
89
- #### Parameters
90
-
91
- | Parameter | Type | Description |
92
- | --------- | -------- | --------------------------------------------------------- |
93
- | `stateId` | `string` | State machine state ID (e.g., `"profile"`, `"#settings"`) |
94
-
95
- #### Returns
96
-
97
- `string` \| `null`
98
-
99
- The registered path pattern, or `null` if the state ID is unknown
100
-
101
- #### Example
102
-
103
- ```typescript
104
- map.getPathByStateId("profile"); // "/profile/:userId"
105
- map.getPathByStateId("missing"); // null
106
- ```
107
-
108
- ---
109
-
110
- ### getStateIdByPath()
111
-
112
- ```ts
113
- getStateIdByPath(path): string | null;
114
- ```
115
-
116
- Defined in: [play-router/src/base-route-map.ts:174](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-router/src/base-route-map.ts#L174)
117
-
118
- Resolve a URL path to its mapped state ID.
119
-
120
- Strips query strings and hash fragments before matching. Tries an O(1) exact
121
- lookup first, then falls back to bucket-indexed pattern matching. Results are
122
- cached after the first pattern match.
123
-
124
- #### Parameters
125
-
126
- | Parameter | Type | Description |
127
- | --------- | -------- | ------------------------------------------------------------------------------ |
128
- | `path` | `string` | URL pathname, optionally including query/hash (e.g., `"/profile/123?ref=nav"`) |
129
-
130
- #### Returns
131
-
132
- `string` \| `null`
133
-
134
- The mapped state ID, or `null` if no route matches
135
-
136
- #### Example
137
-
138
- ```typescript
139
- map.getStateIdByPath("/profile/123"); // "profile"
140
- map.getStateIdByPath("/unknown"); // null
141
- ```
@@ -1,321 +0,0 @@
1
- [Documentation](../../README.md) / @xmachines/play-dom
2
-
3
- # @xmachines/play-dom
4
-
5
- **Vanilla DOM renderer for XMachines**
6
-
7
- Framework-free view rendering driven by an XState v5 actor's `currentView` TC39 Signal. Implements the same catalog-typed `defineRegistry` / `ComponentFn` / `ActionFn` API surface as `@json-render/react`, `/solid`, `/vue`, and `/svelte`.
8
-
9
- ## Installation
10
-
11
- ```bash
12
- npm install @xmachines/play-dom @json-render/core zod
13
- ```
14
-
15
- ## Key Exports
16
-
17
- | Export | Description |
18
- | --------------------------------------------------- | ------------------------------------------------------------------------------------------- |
19
- | `createRenderer(catalog, componentMap)` | One-call factory: returns `mount(actor, container, options?) → disconnect` |
20
- | `connectRenderer(options)` | Functional API: connect actor → DOM with full options |
21
- | `defineRegistry(catalog, { components, actions })` | Build a catalog-typed `DomRegistry` with typed action handlers |
22
- | `PlayRenderer` | Class-based renderer — `connect()` / `disconnect()` lifecycle |
23
- | `schema` | DOM schema for `defineCatalog` (mirrors `@json-render/react/schema`) |
24
- | `ComponentFn<C, K>` | Catalog-typed DOM component function type |
25
- | `ComponentContext<C, K>` | Context passed to each `ComponentFn` — `props`, `on`, `emit`, `children`, `bindings`, `ctx` |
26
- | `ActionFn<C, K>` | `(params, setState, state) => Promise<void>` — catalog-typed action handler |
27
- | `SetState` | `(updater: prev => next) => void` — write to the local state store |
28
- | `BaseComponentProps<P>` | Base type for catalog component prop definitions |
29
- | `CatalogHasActions<C>` | Conditional type: `true` when catalog declares actions |
30
- | `renderSpec(spec, store, registry, send, handlers)` | Pure Spec → DOM renderer (advanced use) |
31
-
32
- ## Quick Start — `createRenderer`
33
-
34
- The preferred one-call pattern — mirrors all framework renderers:
35
-
36
- ```typescript
37
- import { createRenderer, schema } from "@xmachines/play-dom";
38
- import { defineCatalog } from "@json-render/core";
39
- import { z } from "zod";
40
- import type { ComponentFn } from "@xmachines/play-dom";
41
-
42
- // 1. Define catalog
43
- const catalog = defineCatalog(schema, {
44
- components: {
45
- Home: { props: z.object({ title: z.string() }) },
46
- Login: { props: z.object({ title: z.string(), username: z.string().optional() }) },
47
- },
48
- actions: {
49
- login: { params: z.object({ username: z.string() }) },
50
- logout: {},
51
- },
52
- });
53
- type AppCatalog = typeof catalog;
54
-
55
- // 2. Implement components
56
- const Home: ComponentFn<AppCatalog, "Home"> = ({ props }) => {
57
- const el = document.createElement("section");
58
- el.textContent = props.title;
59
- return el;
60
- };
61
-
62
- const Login: ComponentFn<AppCatalog, "Login"> = ({ props, on }) => {
63
- const section = document.createElement("section");
64
- const input = document.createElement("input");
65
- input.value = props.username ?? "";
66
- input.addEventListener("input", () => ctx.store.update((s) => ({ ...s, username: input.value })));
67
-
68
- const button = document.createElement("button");
69
- button.textContent = "Log In";
70
- const submit = on("submit");
71
- button.addEventListener("click", () => submit.emit());
72
-
73
- section.append(input, button);
74
- return section;
75
- };
76
-
77
- // 3. Create the renderer factory (once, at module level)
78
- const mount = createRenderer(catalog, { Home, Login });
79
-
80
- // 4. Mount when actor and container are ready
81
- const actor = createPlayer()();
82
- actor.start();
83
-
84
- const disconnect = mount(actor, document.getElementById("app")!);
85
-
86
- // Cleanup:
87
- disconnect();
88
- ```
89
-
90
- ## `defineRegistry` — Full Control
91
-
92
- When you need `registryResult.executeAction()` or want to share the registry with `connectRenderer`:
93
-
94
- ```typescript
95
- import { defineRegistry, connectRenderer, schema } from "@xmachines/play-dom";
96
- import { defineCatalog } from "@json-render/core";
97
- import { z } from "zod";
98
-
99
- const catalog = defineCatalog(schema, {
100
- components: {
101
- Home: { props: z.object({ title: z.string() }) },
102
- },
103
- actions: {
104
- login: { params: z.object({ username: z.string() }) },
105
- logout: {},
106
- },
107
- });
108
-
109
- // Action handlers receive (params, setState, state)
110
- // - params: resolved from the spec's on.submit.params (e.g. { $state: "/username" })
111
- // - setState: write to the local state store (e.g. to clear a form)
112
- // - state: current local state store snapshot
113
- const registryResult = defineRegistry(catalog, {
114
- components: {
115
- Home: ({ props }) => {
116
- const el = document.createElement("section");
117
- el.textContent = props.title;
118
- return el;
119
- },
120
- },
121
- actions: {
122
- login: async (params, setState) => {
123
- if (!params) return;
124
- actor.send({ type: "auth.login", username: params.username });
125
- setState((prev) => ({ ...prev, username: "" })); // clear the form
126
- },
127
- logout: async () => actor.send({ type: "auth.logout" }),
128
- },
129
- });
130
-
131
- const disconnect = connectRenderer({
132
- actor,
133
- registry: registryResult.registry,
134
- registryResult, // wires setState/state from xstate store automatically
135
- container: document.getElementById("app")!,
136
- });
137
- ```
138
-
139
- ## Component API
140
-
141
- ### `ComponentFn<C, K>` — component function signature
142
-
143
- ```typescript
144
- const MyCard: ComponentFn<AppCatalog, "Card"> = ({
145
- props, // catalog-typed props for this component
146
- children, // Node[] — rendered child nodes
147
- on, // (eventName) => EventHandle — get emit() for catalog-declared events
148
- emit, // (eventName) => void — fire an event directly
149
- bindings, // Record<string, string> — $bindState paths for two-way bindings
150
- ctx, // DomRenderContext — store, send, handlers, loading, functions
151
- }) => {
152
- const el = document.createElement("div");
153
- el.append(...children);
154
- return el;
155
- };
156
- ```
157
-
158
- ### Two-way binding with `$bindState`
159
-
160
- In the view spec:
161
-
162
- ```json
163
- { "username": { "$bindState": "/username" } }
164
- ```
165
-
166
- In the component:
167
-
168
- ```typescript
169
- const Login: ComponentFn<AppCatalog, "Login"> = ({ props, ctx }) => {
170
- const input = document.createElement("input");
171
- input.value = props.username ?? "";
172
- // Write back to the store on user input
173
- input.addEventListener("input", () => {
174
- ctx.store.update((s) => ({ ...s, username: input.value }));
175
- });
176
- return input;
177
- };
178
- ```
179
-
180
- ### `on()` — event handle
181
-
182
- ```typescript
183
- const submit = on("submit"); // EventHandle
184
- if (submit.bound) {
185
- button.addEventListener("click", (e) => {
186
- if (submit.shouldPreventDefault) e.preventDefault();
187
- submit.emit(); // resolves params from store, calls action handler
188
- });
189
- }
190
- ```
191
-
192
- ### `ActionFn` — action handler signature
193
-
194
- ```typescript
195
- // Full signature — all three params are available
196
- login: async (params, setState, state) => {
197
- actor.send({ type: "auth.login", username: params!.username });
198
- setState(prev => ({ ...prev, username: "" }));
199
- console.log("previous state was:", state);
200
- },
201
-
202
- // Params-only — setState/state can be omitted if unused
203
- logout: async () => actor.send({ type: "auth.logout" }),
204
- route: async (params) => actor.send({ type: "play.route", to: params!.to }),
205
- ```
206
-
207
- ## Spec Features
208
-
209
- `renderSpec` / `renderElement` supports these spec directives:
210
-
211
- | Directive | Description |
212
- | ------------------------------------------------------ | ------------------------------------------------------------------------------------- |
213
- | `visible` | Boolean or `{ $state: "/path" }` — hide element when false |
214
- | `on.submit` / `on.click` | Action binding — `{ action: "login", params: { username: { $state: "/username" } } }` |
215
- | `repeat: { statePath, key? }` | Render children once per item in the state array at `statePath` |
216
- | `watch: { "/path": actionBinding }` | Fire action when store path changes after mount |
217
- | `props.username: { $bindState: "/username" }` | Two-way binding — read from store, write back via `ctx.store.update()` |
218
- | `props.value: { $state: "/value" }` | Read-only store reference |
219
- | `props.label: { $computed: "computeFn", args: [...] }` | Computed prop via `functions` map |
220
-
221
- ## `PlayRenderer` — class API
222
-
223
- ```typescript
224
- import { PlayRenderer, defineRegistry } from "@xmachines/play-dom";
225
-
226
- const { registry, registryResult } = defineRegistry(catalog, { components, actions });
227
-
228
- const renderer = new PlayRenderer(document.getElementById("app")!, actor, registry, {
229
- registryResult,
230
- });
231
-
232
- renderer.connect(); // starts watching actor.currentView
233
- renderer.disconnect(); // stops watching, clears container
234
-
235
- // double-connect is safe — connect() calls disconnect() internally if already connected
236
- ```
237
-
238
- ## Options Reference
239
-
240
- ### `ConnectRendererOptions` / `PlayDomOptions`
241
-
242
- | Option | Type | Description |
243
- | ---------------- | ------------------------------- | ----------------------------------------------------------------------------- |
244
- | `actor` | `AbstractActor & Viewable` | Actor providing `currentView` signal |
245
- | `registry` | `DomRegistry` | Component renderer map from `defineRegistry` |
246
- | `registryResult` | `DefineRegistryResult` | Preferred — auto-wires `setState`/`state` from xstate store |
247
- | `handlers` | `Record<string, ActionHandler>` | Pre-resolved handlers (legacy / advanced) |
248
- | `container` | `HTMLElement` | DOM element to render into |
249
- | `fallback` | `HTMLElement \| null` | Shown on initial mount when view is `null` (initial mount only) |
250
- | `store` | `StateStore` | External store — controlled mode, overrides `spec.state` |
251
- | `loading` | `boolean` | Streaming mode — suppresses missing-child warnings, exposes `ctx.ctx.loading` |
252
-
253
- ## Learn More
254
-
255
- - [DOM Router adapter `@xmachines/play-dom-router`](../play-dom-router/README.md)
256
- - [API reference](../../_media/README.md)
257
- - [Play RFC](../../packages/docs/rfc/play.md)
258
-
259
- @xmachines/play-dom — Vanilla DOM renderer for XMachines Play architecture.
260
-
261
- Public API split into two layers:
262
-
263
- **XMachines layer** (this package):
264
-
265
- - `createRenderer()` — one-call factory: returns `mount(actor, container, options?) → disconnect`
266
- - `PlayRenderer` — class-based renderer with `connect()` / `disconnect()` lifecycle
267
- - `connectRenderer()` — functional API (backward-compat alternative to `PlayRenderer`)
268
- - `ConnectRendererOptions`, `PlayDomOptions`
269
-
270
- **json-render layer** (upstreamable to @json-render/dom):
271
-
272
- - `defineRegistry` — build a catalog-typed DomRegistry
273
- - `renderSpec` — pure Spec → DOM renderer (uses resolveElementProps from core)
274
- - `ComponentFn` — catalog-typed component function type
275
- - `ComponentContext` — catalog-typed render context (props, emit, on, children, bindings)
276
- - `ComponentRegistry` — catalog-typed registry input type
277
- - `DomComponentRenderer` — raw element-level renderer type
278
- - `DomRegistry` — raw registry type
279
- - `DomRenderContext` — raw render context
280
- - `EventHandle` — event handle returned by on()
281
- - `SetState` — state updater function passed to ActionFn
282
- - `CatalogHasActions` — conditional type: true when catalog declares actions
283
- - `BaseComponentProps` — base props type for catalog component definitions
284
-
285
- ## Classes
286
-
287
- - [PlayRenderer](classes/PlayRenderer.md)
288
-
289
- ## Interfaces
290
-
291
- - [ComponentContext](interfaces/ComponentContext.md)
292
- - [ConnectRendererOptions](interfaces/ConnectRendererOptions.md)
293
- - [DefineRegistryResult](interfaces/DefineRegistryResult.md)
294
- - [DomRenderContext](interfaces/DomRenderContext.md)
295
- - [EventHandle](interfaces/EventHandle.md)
296
- - [PlayDomOptions](interfaces/PlayDomOptions.md)
297
-
298
- ## Type Aliases
299
-
300
- - [ActionFn](type-aliases/ActionFn.md)
301
- - [Actions](type-aliases/Actions.md)
302
- - [BaseComponentProps](type-aliases/BaseComponentProps.md)
303
- - [CatalogHasActions](type-aliases/CatalogHasActions.md)
304
- - [ComponentFn](type-aliases/ComponentFn.md)
305
- - [ComponentRegistry](type-aliases/ComponentRegistry.md)
306
- - [DefineRegistryOptions](type-aliases/DefineRegistryOptions.md)
307
- - [DomComponentRenderer](type-aliases/DomComponentRenderer.md)
308
- - [DomRegistry](type-aliases/DomRegistry.md)
309
- - [DomSchema](type-aliases/DomSchema.md)
310
- - [SetState](type-aliases/SetState.md)
311
-
312
- ## Variables
313
-
314
- - [schema](variables/schema.md)
315
-
316
- ## Functions
317
-
318
- - [connectRenderer](functions/connectRenderer.md)
319
- - [createRenderer](functions/createRenderer.md)
320
- - [defineRegistry](functions/defineRegistry.md)
321
- - [renderSpec](functions/renderSpec.md)