@xmachines/docs 1.0.0-beta.9 → 1.0.0

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 (544) hide show
  1. package/README.md +137 -7
  2. package/api/@xmachines/play/README.md +160 -38
  3. package/api/@xmachines/play/classes/NonNullableError.md +189 -0
  4. package/api/@xmachines/play/classes/PlayError.md +251 -0
  5. package/api/@xmachines/play/functions/assertNonNullable.md +56 -0
  6. package/api/@xmachines/play/type-aliases/PlayEvent.md +6 -6
  7. package/api/@xmachines/play-actor/README.md +141 -160
  8. package/api/@xmachines/play-actor/classes/AbstractActor.md +91 -122
  9. package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +40 -0
  10. package/api/@xmachines/play-actor/functions/toAtomState.md +33 -0
  11. package/api/@xmachines/play-actor/functions/typedSpec.md +54 -0
  12. package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +46 -0
  13. package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +33 -0
  14. package/api/@xmachines/play-actor/interfaces/PlaySpec.md +28 -0
  15. package/api/@xmachines/play-actor/interfaces/Routable.md +6 -21
  16. package/api/@xmachines/play-actor/interfaces/Viewable.md +12 -6
  17. package/api/@xmachines/play-dom/README.md +384 -0
  18. package/api/@xmachines/play-dom/classes/PlayRenderer.md +115 -0
  19. package/api/@xmachines/play-dom/functions/createPlayUI.md +28 -0
  20. package/api/@xmachines/play-dom/functions/createRenderer.md +44 -0
  21. package/api/@xmachines/play-dom/functions/defineRegistry.md +26 -0
  22. package/api/@xmachines/play-dom/functions/renderSpec.md +67 -0
  23. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +23 -0
  24. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +34 -0
  25. package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +17 -0
  26. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +28 -0
  27. package/api/@xmachines/play-dom/interfaces/EventHandle.md +15 -0
  28. package/api/@xmachines/play-dom/interfaces/MountOptions.md +18 -0
  29. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +30 -0
  30. package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +26 -0
  31. package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +32 -0
  32. package/api/@xmachines/play-dom/type-aliases/ActionFn.md +46 -0
  33. package/api/@xmachines/play-dom/type-aliases/Actions.md +18 -0
  34. package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +114 -0
  35. package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +25 -0
  36. package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +26 -0
  37. package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +15 -0
  38. package/api/@xmachines/play-dom/type-aliases/ConfirmHandler.md +44 -0
  39. package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +39 -0
  40. package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +20 -0
  41. package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +9 -0
  42. package/api/@xmachines/play-dom/type-aliases/DomSchema.md +9 -0
  43. package/api/@xmachines/play-dom/type-aliases/MountFn.md +27 -0
  44. package/api/@xmachines/play-dom/type-aliases/RenderErrorHandler.md +23 -0
  45. package/api/@xmachines/play-dom/type-aliases/SetState.md +30 -0
  46. package/api/@xmachines/play-dom/variables/schema.md +62 -0
  47. package/api/@xmachines/play-dom-router/README.md +271 -0
  48. package/api/@xmachines/play-dom-router/functions/connectRouter.md +43 -0
  49. package/api/@xmachines/{play-router → play-dom-router}/functions/createBrowserHistory.md +10 -2
  50. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +39 -0
  51. package/api/@xmachines/play-dom-router/functions/createRouter.md +54 -0
  52. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +176 -0
  53. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +69 -0
  54. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +15 -0
  55. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +129 -0
  56. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +68 -0
  57. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +54 -0
  58. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +121 -0
  59. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +13 -0
  60. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +27 -0
  61. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +104 -0
  62. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +28 -0
  63. package/api/@xmachines/play-react/README.md +185 -334
  64. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +46 -42
  65. package/api/@xmachines/play-react/functions/ActionProvider.md +21 -0
  66. package/api/@xmachines/play-react/functions/JSONUIProvider.md +21 -0
  67. package/api/@xmachines/play-react/functions/Renderer.md +21 -0
  68. package/api/@xmachines/play-react/functions/StateProvider.md +27 -0
  69. package/api/@xmachines/play-react/functions/ValidationProvider.md +21 -0
  70. package/api/@xmachines/play-react/functions/VisibilityProvider.md +21 -0
  71. package/api/@xmachines/play-react/functions/defineRegistry.md +49 -0
  72. package/api/@xmachines/play-react/functions/useActor.md +13 -0
  73. package/api/@xmachines/play-react/functions/useBoundProp.md +45 -0
  74. package/api/@xmachines/play-react/functions/usePlayView.md +32 -0
  75. package/api/@xmachines/play-react/functions/useSignalEffect.md +29 -20
  76. package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +15 -0
  77. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +27 -0
  78. package/api/@xmachines/play-react/interfaces/ComponentContext.md +37 -0
  79. package/api/@xmachines/play-react/interfaces/JSONUIProviderProps.md +22 -0
  80. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +7 -7
  81. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +6 -6
  82. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +26 -0
  83. package/api/@xmachines/play-react/interfaces/RendererProps.md +17 -0
  84. package/api/@xmachines/play-react/interfaces/StateProviderProps.md +16 -0
  85. package/api/@xmachines/play-react/interfaces/ValidationProviderProps.md +14 -0
  86. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +20 -0
  87. package/api/@xmachines/play-react/interfaces/VisibilityProviderProps.md +13 -0
  88. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +11 -0
  89. package/api/@xmachines/play-react/type-aliases/ComponentFn.md +36 -0
  90. package/api/@xmachines/play-react/type-aliases/RenderErrorHandler.md +23 -0
  91. package/api/@xmachines/play-react/variables/ActorProvider.md +33 -0
  92. package/api/@xmachines/play-react/variables/PlayRenderer.md +6 -56
  93. package/api/@xmachines/play-react/variables/PlayUIProvider.md +43 -0
  94. package/api/@xmachines/play-react-router/README.md +130 -114
  95. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +19 -242
  96. package/api/@xmachines/play-react-router/classes/RouteMap.md +48 -36
  97. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +45 -0
  98. package/api/@xmachines/play-react-router/functions/createRouteMap.md +39 -0
  99. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +23 -12
  100. package/api/@xmachines/play-react-router/interfaces/PlayActor.md +68 -0
  101. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +22 -12
  102. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
  103. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +25 -9
  104. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +13 -0
  105. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +19 -9
  106. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +8 -8
  107. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
  108. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +32 -0
  109. package/api/@xmachines/play-router/README.md +275 -353
  110. package/api/@xmachines/play-router/classes/RouteMap.md +149 -0
  111. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +21 -221
  112. package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +32 -0
  113. package/api/@xmachines/play-router/functions/buildRouteTree.md +12 -2
  114. package/api/@xmachines/play-router/functions/createRouteMap.md +22 -36
  115. package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +46 -0
  116. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +14 -7
  117. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +10 -46
  118. package/api/@xmachines/play-router/functions/extractQuery.md +22 -0
  119. package/api/@xmachines/play-router/functions/extractRouteParams.md +54 -0
  120. package/api/@xmachines/play-router/functions/findRouteById.md +2 -2
  121. package/api/@xmachines/play-router/functions/findRouteByPath.md +2 -2
  122. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +2 -2
  123. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +2 -2
  124. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +43 -0
  125. package/api/@xmachines/play-router/functions/isRouteReachable.md +38 -0
  126. package/api/@xmachines/play-router/functions/machineToGraph.md +19 -0
  127. package/api/@xmachines/play-router/functions/routeExists.md +2 -2
  128. package/api/@xmachines/play-router/functions/sanitizePathname.md +40 -0
  129. package/api/@xmachines/play-router/functions/validateRouteFormat.md +10 -9
  130. package/api/@xmachines/play-router/functions/validateStateExists.md +9 -9
  131. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +13 -0
  132. package/api/@xmachines/play-router/interfaces/LocationLike.md +27 -0
  133. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +15 -0
  134. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +17 -0
  135. package/api/@xmachines/play-router/interfaces/PlayActor.md +68 -0
  136. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +22 -12
  137. package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +17 -0
  138. package/api/@xmachines/play-router/interfaces/RoutableActor.md +64 -0
  139. package/api/@xmachines/play-router/interfaces/RouteInfo.md +11 -11
  140. package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +13 -0
  141. package/api/@xmachines/play-router/interfaces/RouteMapping.md +27 -0
  142. package/api/@xmachines/play-router/interfaces/RouteMatch.md +12 -0
  143. package/api/@xmachines/play-router/interfaces/RouteNode.md +13 -13
  144. package/api/@xmachines/play-router/interfaces/RouteObject.md +5 -5
  145. package/api/@xmachines/play-router/interfaces/RouteTree.md +8 -7
  146. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +55 -0
  147. package/api/@xmachines/play-router/interfaces/RouterBridge.md +8 -8
  148. package/api/@xmachines/play-router/interfaces/WindowLike.md +65 -0
  149. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +20 -0
  150. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +2 -2
  151. package/api/@xmachines/play-signals/README.md +116 -65
  152. package/api/@xmachines/play-signals/functions/watchSignal.md +42 -0
  153. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +7 -5
  154. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +3 -3
  155. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +7 -5
  156. package/api/@xmachines/play-signals/interfaces/SignalState.md +4 -4
  157. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +5 -5
  158. package/api/@xmachines/play-signals/namespaces/Signal/README.md +1 -1
  159. package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +7 -7
  160. package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +8 -8
  161. package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +7 -7
  162. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +1 -1
  163. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +9 -9
  164. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +2 -2
  165. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +2 -2
  166. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +2 -2
  167. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +2 -2
  168. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +2 -2
  169. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +2 -2
  170. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +2 -2
  171. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +2 -2
  172. package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +2 -2
  173. package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +2 -2
  174. package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +2 -2
  175. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +2 -2
  176. package/api/@xmachines/play-solid/README.md +196 -234
  177. package/api/@xmachines/play-solid/functions/ActionProvider.md +19 -0
  178. package/api/@xmachines/play-solid/functions/JSONUIProvider.md +21 -0
  179. package/api/@xmachines/play-solid/functions/Renderer.md +21 -0
  180. package/api/@xmachines/play-solid/functions/StateProvider.md +19 -0
  181. package/api/@xmachines/play-solid/functions/ValidationProvider.md +19 -0
  182. package/api/@xmachines/play-solid/functions/VisibilityProvider.md +20 -0
  183. package/api/@xmachines/play-solid/functions/defineRegistry.md +49 -0
  184. package/api/@xmachines/play-solid/functions/useAction.md +24 -0
  185. package/api/@xmachines/play-solid/functions/useActions.md +13 -0
  186. package/api/@xmachines/play-solid/functions/useActor.md +13 -0
  187. package/api/@xmachines/play-solid/functions/useBoundProp.md +45 -0
  188. package/api/@xmachines/play-solid/functions/useFieldValidation.md +29 -0
  189. package/api/@xmachines/play-solid/functions/useIsVisible.md +19 -0
  190. package/api/@xmachines/play-solid/functions/useOptionalValidation.md +13 -0
  191. package/api/@xmachines/play-solid/functions/usePlayView.md +30 -0
  192. package/api/@xmachines/play-solid/functions/useStateBinding.md +25 -0
  193. package/api/@xmachines/play-solid/functions/useStateStore.md +13 -0
  194. package/api/@xmachines/play-solid/functions/useStateValue.md +25 -0
  195. package/api/@xmachines/play-solid/functions/useVisibility.md +13 -0
  196. package/api/@xmachines/play-solid/interfaces/ActionProviderProps.md +12 -0
  197. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +30 -0
  198. package/api/@xmachines/play-solid/interfaces/ComponentContext.md +37 -0
  199. package/api/@xmachines/play-solid/interfaces/DefineRegistryResult.md +15 -0
  200. package/api/@xmachines/play-solid/interfaces/JSONUIProviderProps.md +22 -0
  201. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +26 -0
  202. package/api/@xmachines/play-solid/interfaces/RendererProps.md +17 -0
  203. package/api/@xmachines/play-solid/interfaces/StateProviderProps.md +13 -0
  204. package/api/@xmachines/play-solid/interfaces/ValidationProviderProps.md +11 -0
  205. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +21 -0
  206. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +11 -0
  207. package/api/@xmachines/play-solid/type-aliases/ComponentFn.md +36 -0
  208. package/api/@xmachines/play-solid/type-aliases/ComponentRegistry.md +11 -0
  209. package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +23 -0
  210. package/api/@xmachines/play-solid/type-aliases/SetState.md +21 -0
  211. package/api/@xmachines/play-solid/type-aliases/VisibilityProviderProps.md +9 -0
  212. package/api/@xmachines/play-solid/variables/ActorContext.md +13 -0
  213. package/api/@xmachines/play-solid/variables/ActorProvider.md +27 -0
  214. package/api/@xmachines/play-solid/variables/PlayRenderer.md +6 -62
  215. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +26 -0
  216. package/api/@xmachines/play-solid-router/README.md +151 -560
  217. package/api/@xmachines/play-solid-router/classes/RouteMap.md +31 -32
  218. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +27 -242
  219. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +44 -0
  220. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +18 -11
  221. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +84 -115
  222. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +68 -0
  223. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +22 -12
  224. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +30 -0
  225. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +25 -9
  226. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +13 -0
  227. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +20 -7
  228. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +8 -8
  229. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +34 -0
  230. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +8 -4
  231. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +22 -19
  232. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +52 -0
  233. package/api/@xmachines/play-svelte/README.md +269 -0
  234. package/api/@xmachines/play-svelte/functions/defineRegistry.md +31 -0
  235. package/api/@xmachines/play-svelte/functions/getActorContext.md +21 -0
  236. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +19 -0
  237. package/api/@xmachines/play-svelte/functions/setActorContext.md +19 -0
  238. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +44 -0
  239. package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +29 -0
  240. package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +29 -0
  241. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +24 -0
  242. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +43 -0
  243. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +24 -0
  244. package/api/@xmachines/play-svelte/type-aliases/ActionFn.md +30 -0
  245. package/api/@xmachines/play-svelte/type-aliases/Actions.md +17 -0
  246. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -0
  247. package/api/@xmachines/play-svelte/type-aliases/ComponentFn.md +18 -0
  248. package/api/@xmachines/play-svelte/type-aliases/JSONUIProviderProps.md +7 -0
  249. package/api/@xmachines/play-svelte/type-aliases/PlayRenderer.md +9 -0
  250. package/api/@xmachines/play-svelte/type-aliases/RenderErrorHandler.md +23 -0
  251. package/api/@xmachines/play-svelte/type-aliases/SetState.md +21 -0
  252. package/api/@xmachines/play-svelte/variables/PlayRenderer.md +9 -0
  253. package/api/@xmachines/play-svelte-spa-router/README.md +199 -0
  254. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +149 -0
  255. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +32 -0
  256. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +39 -0
  257. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +17 -0
  258. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +129 -0
  259. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +13 -0
  260. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +27 -0
  261. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +104 -0
  262. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +65 -0
  263. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +9 -0
  264. package/api/@xmachines/play-sveltekit-router/README.md +211 -0
  265. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +149 -0
  266. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +32 -0
  267. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +39 -0
  268. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -0
  269. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +27 -0
  270. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +129 -0
  271. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +13 -0
  272. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +27 -0
  273. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +104 -0
  274. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +9 -0
  275. package/api/@xmachines/play-tanstack-react-router/README.md +155 -126
  276. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +48 -36
  277. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +31 -252
  278. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +45 -0
  279. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +22 -36
  280. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +23 -12
  281. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +28 -0
  282. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +68 -0
  283. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +22 -12
  284. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
  285. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +25 -9
  286. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +13 -0
  287. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +19 -9
  288. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +6 -6
  289. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +8 -8
  290. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
  291. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +2 -2
  292. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +40 -18
  293. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +34 -0
  294. package/api/@xmachines/play-tanstack-router/README.md +58 -0
  295. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +131 -0
  296. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +57 -0
  297. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +100 -0
  298. package/api/@xmachines/play-tanstack-solid-router/README.md +215 -175
  299. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +31 -32
  300. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +121 -0
  301. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +44 -0
  302. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +18 -11
  303. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +68 -0
  304. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +22 -12
  305. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +31 -0
  306. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +23 -9
  307. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +13 -0
  308. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +14 -10
  309. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +8 -8
  310. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
  311. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +8 -4
  312. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +3 -3
  313. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +40 -18
  314. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +33 -0
  315. package/api/@xmachines/play-vue/README.md +192 -210
  316. package/api/@xmachines/play-vue/functions/defineRegistry.md +32 -0
  317. package/api/@xmachines/play-vue/functions/getPlayViewContext.md +28 -0
  318. package/api/@xmachines/play-vue/functions/useActor.md +13 -0
  319. package/api/@xmachines/play-vue/functions/useBoundProp.md +45 -0
  320. package/api/@xmachines/play-vue/interfaces/ActionProviderProps.md +12 -0
  321. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +25 -0
  322. package/api/@xmachines/play-vue/interfaces/ComponentContext.md +37 -0
  323. package/api/@xmachines/play-vue/interfaces/DefineRegistryResult.md +15 -0
  324. package/api/@xmachines/play-vue/interfaces/JSONUIProviderProps.md +21 -0
  325. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +24 -0
  326. package/api/@xmachines/play-vue/interfaces/RendererProps.md +17 -0
  327. package/api/@xmachines/play-vue/interfaces/StateProviderProps.md +15 -0
  328. package/api/@xmachines/play-vue/interfaces/ValidationProviderProps.md +11 -0
  329. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +21 -0
  330. package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +5 -0
  331. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -0
  332. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +16 -0
  333. package/api/@xmachines/play-vue/type-aliases/ComponentFn.md +35 -0
  334. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +15 -0
  335. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +22 -0
  336. package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +23 -0
  337. package/api/@xmachines/play-vue/variables/ActionProvider.md +64 -0
  338. package/api/@xmachines/play-vue/variables/JSONUIProvider.md +105 -0
  339. package/api/@xmachines/play-vue/variables/PlayRenderer.md +2 -2
  340. package/api/@xmachines/play-vue/variables/Renderer.md +88 -0
  341. package/api/@xmachines/play-vue/variables/StateProvider.md +79 -0
  342. package/api/@xmachines/play-vue/variables/ValidationProvider.md +55 -0
  343. package/api/@xmachines/play-vue/variables/VisibilityProvider.md +40 -0
  344. package/api/@xmachines/play-vue-router/README.md +173 -487
  345. package/api/@xmachines/play-vue-router/classes/RouteMap.md +56 -116
  346. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +23 -271
  347. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +26 -6
  348. package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +68 -0
  349. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +22 -12
  350. package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +13 -0
  351. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +20 -8
  352. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +8 -8
  353. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +8 -4
  354. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +12 -6
  355. package/api/@xmachines/play-xstate/README.md +178 -347
  356. package/api/@xmachines/play-xstate/classes/PlayerActor.md +161 -191
  357. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +31 -20
  358. package/api/@xmachines/play-xstate/functions/composeGuards.md +2 -2
  359. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +2 -2
  360. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +38 -0
  361. package/api/@xmachines/play-xstate/functions/definePlayer.md +14 -63
  362. package/api/@xmachines/play-xstate/functions/deriveRoute.md +3 -3
  363. package/api/@xmachines/play-xstate/functions/eventMatches.md +2 -2
  364. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +3 -3
  365. package/api/@xmachines/play-xstate/functions/hasContext.md +2 -2
  366. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +2 -2
  367. package/api/@xmachines/play-xstate/functions/negateGuard.md +2 -2
  368. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +10 -14
  369. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +22 -0
  370. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +12 -13
  371. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +15 -13
  372. package/api/@xmachines/play-xstate/interfaces/RouteObject.md +17 -0
  373. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +2 -2
  374. package/api/@xmachines/play-xstate/type-aliases/Guard.md +2 -2
  375. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +3 -3
  376. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +10 -9
  377. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +15 -5
  378. package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +9 -0
  379. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +22 -6
  380. package/api/@xmachines/shared/README.md +95 -295
  381. package/api/@xmachines/shared/vite-aliases/README.md +11 -0
  382. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +38 -0
  383. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +27 -0
  384. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +30 -0
  385. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +42 -0
  386. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +33 -0
  387. package/api/@xmachines/shared/vitest/README.md +12 -0
  388. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +42 -0
  389. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +34 -0
  390. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +16 -0
  391. package/api/README.md +6 -7
  392. package/api/llms.txt +72 -23
  393. package/contributing/README.md +10 -0
  394. package/contributing/architecture.md +599 -0
  395. package/contributing/configuration.md +368 -0
  396. package/contributing/deployment.md +312 -0
  397. package/contributing/development.md +464 -0
  398. package/contributing/testing.md +453 -0
  399. package/examples/@xmachines/play-dom-demo/README.md +181 -0
  400. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +24 -0
  401. package/examples/@xmachines/play-dom-demo/functions/initShell.md +24 -0
  402. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +9 -0
  403. package/examples/@xmachines/play-dom-demo/variables/About.md +12 -0
  404. package/examples/@xmachines/play-dom-demo/variables/Contact.md +12 -0
  405. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +13 -0
  406. package/examples/@xmachines/play-dom-demo/variables/Home.md +13 -0
  407. package/examples/@xmachines/play-dom-demo/variables/Login.md +13 -0
  408. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +16 -0
  409. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +13 -0
  410. package/examples/@xmachines/play-dom-demo/variables/Overview.md +13 -0
  411. package/examples/@xmachines/play-dom-demo/variables/Profile.md +13 -0
  412. package/examples/@xmachines/play-dom-demo/variables/Settings.md +13 -0
  413. package/examples/@xmachines/play-dom-demo/variables/Stats.md +13 -0
  414. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +172 -0
  415. package/examples/@xmachines/play-dom-router-demo/README.md +145 -0
  416. package/examples/@xmachines/play-react-demo/README.md +187 -0
  417. package/examples/@xmachines/play-react-demo/functions/App.md +13 -0
  418. package/examples/@xmachines/play-react-demo/functions/DebugPanel.md +20 -0
  419. package/examples/@xmachines/play-react-demo/functions/HeaderNav.md +20 -0
  420. package/examples/@xmachines/play-react-demo/functions/Shell.md +22 -0
  421. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +9 -0
  422. package/examples/@xmachines/play-react-demo/variables/About.md +14 -0
  423. package/examples/@xmachines/play-react-demo/variables/Contact.md +14 -0
  424. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +15 -0
  425. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +15 -0
  426. package/examples/@xmachines/play-react-demo/variables/Home.md +14 -0
  427. package/examples/@xmachines/play-react-demo/variables/Login.md +16 -0
  428. package/examples/@xmachines/play-react-demo/variables/NavBar.md +16 -0
  429. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +15 -0
  430. package/examples/@xmachines/play-react-demo/variables/Navigation.md +14 -0
  431. package/examples/@xmachines/play-react-demo/variables/Overview.md +14 -0
  432. package/examples/@xmachines/play-react-demo/variables/Profile.md +14 -0
  433. package/examples/@xmachines/play-react-demo/variables/Settings.md +14 -0
  434. package/examples/@xmachines/play-react-demo/variables/Shell.md +18 -0
  435. package/examples/@xmachines/play-react-demo/variables/Stats.md +14 -0
  436. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +172 -0
  437. package/examples/@xmachines/play-react-router-demo/README.md +151 -0
  438. package/examples/@xmachines/play-solid-demo/README.md +187 -0
  439. package/examples/@xmachines/play-solid-demo/functions/App.md +13 -0
  440. package/examples/@xmachines/play-solid-demo/functions/DebugPanel.md +20 -0
  441. package/examples/@xmachines/play-solid-demo/functions/HeaderNav.md +20 -0
  442. package/examples/@xmachines/play-solid-demo/functions/Shell.md +22 -0
  443. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +9 -0
  444. package/examples/@xmachines/play-solid-demo/variables/About.md +9 -0
  445. package/examples/@xmachines/play-solid-demo/variables/Contact.md +9 -0
  446. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +9 -0
  447. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +15 -0
  448. package/examples/@xmachines/play-solid-demo/variables/Home.md +9 -0
  449. package/examples/@xmachines/play-solid-demo/variables/Login.md +9 -0
  450. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +11 -0
  451. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +15 -0
  452. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +9 -0
  453. package/examples/@xmachines/play-solid-demo/variables/Overview.md +9 -0
  454. package/examples/@xmachines/play-solid-demo/variables/Profile.md +9 -0
  455. package/examples/@xmachines/play-solid-demo/variables/Settings.md +9 -0
  456. package/examples/@xmachines/play-solid-demo/variables/Shell.md +17 -0
  457. package/examples/@xmachines/play-solid-demo/variables/Stats.md +9 -0
  458. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +172 -0
  459. package/examples/@xmachines/play-solid-router-demo/README.md +137 -0
  460. package/examples/@xmachines/play-svelte-demo/README.md +143 -0
  461. package/examples/@xmachines/play-svelte-demo/type-aliases/App.md +9 -0
  462. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +9 -0
  463. package/examples/@xmachines/play-svelte-demo/variables/App.md +9 -0
  464. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +172 -0
  465. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +129 -0
  466. package/examples/@xmachines/play-sveltekit-router-demo/README.md +133 -0
  467. package/examples/@xmachines/play-tanstack-react-router-demo/README.md +156 -0
  468. package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +139 -0
  469. package/examples/@xmachines/play-vue-demo/README.md +183 -0
  470. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +9 -0
  471. package/examples/@xmachines/play-vue-demo/variables/App.md +9 -0
  472. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +172 -0
  473. package/examples/@xmachines/play-vue-router-demo/README.md +139 -0
  474. package/examples/README.md +78 -30
  475. package/examples/basic-state-machine.md +75 -31
  476. package/examples/form-validation.md +261 -118
  477. package/examples/multi-router-integration.md +314 -194
  478. package/examples/routing-patterns.md +230 -189
  479. package/examples/traffic-light.md +114 -65
  480. package/guides/README.md +9 -21
  481. package/guides/actor-model.md +180 -0
  482. package/guides/getting-started.md +619 -137
  483. package/guides/signals.md +166 -0
  484. package/guides/state-machines.md +284 -0
  485. package/package.json +18 -7
  486. package/rfc/broker.md +100 -0
  487. package/rfc/browser.md +44 -0
  488. package/rfc/cli.md +118 -0
  489. package/rfc/git.md +61 -0
  490. package/rfc/mcp.md +43 -0
  491. package/rfc/node.md +36 -0
  492. package/rfc/play.md +472 -0
  493. package/rfc/rest.md +102 -0
  494. package/rfc/run.md +159 -0
  495. package/rfc/streams.md +168 -0
  496. package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +0 -17
  497. package/api/@xmachines/play-catalog/README.md +0 -331
  498. package/api/@xmachines/play-catalog/functions/defineCatalog.md +0 -98
  499. package/api/@xmachines/play-catalog/functions/defineComponents.md +0 -134
  500. package/api/@xmachines/play-catalog/type-aliases/Catalog.md +0 -48
  501. package/api/@xmachines/play-catalog/type-aliases/ComponentsFor.md +0 -20
  502. package/api/@xmachines/play-catalog/type-aliases/InferComponentProps.md +0 -65
  503. package/api/@xmachines/play-catalog/type-aliases/NoExtraKeys.md +0 -17
  504. package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +0 -15
  505. package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +0 -19
  506. package/api/@xmachines/play-react-router-demo/README.md +0 -137
  507. package/api/@xmachines/play-router/classes/BaseRouteMap.md +0 -142
  508. package/api/@xmachines/play-router/functions/connectRouter.md +0 -67
  509. package/api/@xmachines/play-router/functions/crawlMachine.md +0 -92
  510. package/api/@xmachines/play-router/functions/createRouter.md +0 -76
  511. package/api/@xmachines/play-router/functions/extractRoute.md +0 -45
  512. package/api/@xmachines/play-router/interfaces/BaseRouteMapping.md +0 -27
  513. package/api/@xmachines/play-router/interfaces/BrowserHistory.md +0 -172
  514. package/api/@xmachines/play-router/interfaces/BrowserWindow.md +0 -69
  515. package/api/@xmachines/play-router/interfaces/ConnectRouterOptions.md +0 -13
  516. package/api/@xmachines/play-router/interfaces/RouteMap.md +0 -56
  517. package/api/@xmachines/play-router/interfaces/StateVisit.md +0 -15
  518. package/api/@xmachines/play-router/interfaces/VanillaRouter.md +0 -28
  519. package/api/@xmachines/play-router-demo/README.md +0 -137
  520. package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +0 -15
  521. package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +0 -19
  522. package/api/@xmachines/play-solid-router-demo/README.md +0 -127
  523. package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +0 -19
  524. package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +0 -38
  525. package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +0 -33
  526. package/api/@xmachines/play-tanstack-react-router/variables/extractMachineRoutes.md +0 -64
  527. package/api/@xmachines/play-tanstack-react-router-demo/README.md +0 -126
  528. package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +0 -343
  529. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +0 -19
  530. package/api/@xmachines/play-tanstack-solid-router-demo/README.md +0 -126
  531. package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +0 -14
  532. package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +0 -201
  533. package/api/@xmachines/play-vue-router-demo/README.md +0 -133
  534. package/api/@xmachines/play-xstate/functions/mergeViewProps.md +0 -26
  535. package/api/@xmachines/play-xstate/functions/stateMatches.md +0 -25
  536. package/api/@xmachines/play-xstate/functions/validateComponentBinding.md +0 -39
  537. package/api/@xmachines/play-xstate/functions/validateViewProps.md +0 -80
  538. package/api/@xmachines/play-xstate/interfaces/CatalogEntry.md +0 -16
  539. package/api/@xmachines/play-xstate/type-aliases/Catalog.md +0 -21
  540. package/api/@xmachines/play-xstate/type-aliases/ValidationResult.md +0 -17
  541. package/api/@xmachines/play-xstate/type-aliases/ViewMergeContext.md +0 -35
  542. package/api/@xmachines/shared/functions/defineXmVitestConfig.md +0 -29
  543. package/api/@xmachines/shared/functions/xmAliases.md +0 -24
  544. package/guides/installation.md +0 -323
@@ -0,0 +1,28 @@
1
+ [API](../../../README.md) / [@xmachines/play-actor](../README.md) / PlaySpec
2
+
3
+ # Interface: PlaySpec
4
+
5
+ Defined in: [packages/play-actor/src/abstract-actor.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-actor/src/abstract-actor.ts#L48)
6
+
7
+ XMachines extension of `@xmachines/json-render-core` `Spec`.
8
+
9
+ Adds `contextProps` — an explicit allowlist of machine context fields that
10
+ `deriveCurrentView` merges into element props as low-priority slots. Only
11
+ fields named here are ever exposed to components; nothing leaks from context
12
+ without an opt-in declaration.
13
+
14
+ Use `typedSpec<TContext>(...)` at the definition site to validate `contextProps`
15
+ entries against your machine's context type at compile time.
16
+
17
+ ## Extends
18
+
19
+ - `Spec`
20
+
21
+ ## Properties
22
+
23
+ | Property | Modifier | Type | Description | Inherited from | Defined in |
24
+ | -------------------------------------------------- | ---------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
25
+ | <a id="property-contextprops"></a> `contextProps?` | `readonly` | readonly `string`[] | Explicit allowlist of machine context field names to expose as prop slots. Each named field is merged into every spec element's `props` at view derivation time, filling any slot whose current value is `undefined`. Use `typedSpec<TContext>(...)` to constrain entries to `keyof TContext & string`. | - | [packages/play-actor/src/abstract-actor.ts:56](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-actor/src/abstract-actor.ts#L56) |
26
+ | <a id="property-elements"></a> `elements` | `public` | `Record`\<`string`, `UIElement`\> | Flat map of elements by key | `Spec.elements` | - |
27
+ | <a id="property-root"></a> `root` | `public` | `string` | Root element key | `Spec.root` | - |
28
+ | <a id="property-state"></a> `state?` | `public` | `Record`\<`string`, `unknown`\> | Optional initial state to seed the state model. Components using statePath will read from / write to this state. | `Spec.state` | - |
@@ -1,29 +1,14 @@
1
- [Documentation](../../../README.md) / [@xmachines/play-actor](../README.md) / Routable
1
+ [API](../../../README.md) / [@xmachines/play-actor](../README.md) / Routable
2
2
 
3
3
  # Interface: Routable
4
4
 
5
- Defined in: [packages/play-actor/src/abstract-actor.ts:41](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-actor/src/abstract-actor.ts#L41)
5
+ Defined in: [packages/play-actor/src/abstract-actor.ts:32](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-actor/src/abstract-actor.ts#L32)
6
6
 
7
7
  Optional capability: Routing support
8
8
 
9
- Actors implementing this interface can derive a route from their state.
10
- Router adapters observe the currentRoute signal to sync browser URLs.
11
-
12
- ## Example
13
-
14
- ```typescript
15
- class MyActor extends AbstractActor implements Routable {
16
- currentRoute = new Signal.Computed(() => deriveRoute(this.state.get()));
17
- }
18
-
19
- // Router requires Routable
20
- function connectRouter<T extends AbstractActor & Routable>(actor: T) {
21
- watcher.watch(actor.currentRoute);
22
- }
23
- ```
24
-
25
9
  ## Properties
26
10
 
27
- | Property | Modifier | Type | Description | Defined in |
28
- | ------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
29
- | <a id="property-currentroute"></a> `currentRoute` | `readonly` | [`Computed`](../../play-signals/namespaces/Signal/classes/Computed.md)\<`string` \| `null`\> | Current route signal Computed signal derived from state machine. Infrastructure observes to sync browser URL. Invariant: Passive Infrastructure - Infrastructure reflects route, never decides. **Example** `const watcher = new Signal.subtle.Watcher(() => { const route = actor.currentRoute.get(); console.log('Route changed:', route); }); watcher.watch(actor.currentRoute);` | [packages/play-actor/src/abstract-actor.ts:58](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-actor/src/abstract-actor.ts#L58) |
11
+ | Property | Modifier | Type | Defined in |
12
+ | ------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
13
+ | <a id="property-currentroute"></a> `currentRoute` | `readonly` | [`Computed`](../../play-signals/namespaces/Signal/classes/Computed.md)\<`string` \| `null`\> | [packages/play-actor/src/abstract-actor.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-actor/src/abstract-actor.ts#L33) |
14
+ | <a id="property-initialroute"></a> `initialRoute` | `readonly` | `string` \| `null` | [packages/play-actor/src/abstract-actor.ts:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-actor/src/abstract-actor.ts#L34) |
@@ -1,12 +1,18 @@
1
- [Documentation](../../../README.md) / [@xmachines/play-actor](../README.md) / Viewable
1
+ [API](../../../README.md) / [@xmachines/play-actor](../README.md) / Viewable
2
2
 
3
3
  # Interface: Viewable
4
4
 
5
- Defined in: [packages/play-actor/src/abstract-actor.ts:94](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-actor/src/abstract-actor.ts#L94)
5
+ Defined in: [packages/play-actor/src/abstract-actor.ts:104](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-actor/src/abstract-actor.ts#L104)
6
+
7
+ Actor capability for exposing renderable view state.
8
+
9
+ `Viewable` marks actors that publish a `currentView` signal.
10
+ Renderers such as `PlayRenderer` consume this contract to resolve the
11
+ current view description into concrete UI without embedding view logic inside the
12
+ framework adapter.
6
13
 
7
14
  ## Properties
8
15
 
9
- | Property | Modifier | Type | Description | Defined in |
10
- | ----------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
11
- | <a id="property-catalog"></a> `catalog` | `readonly` | `Record`\<`string`, `unknown`\> | Component catalog for view resolution Maps component names to actual component implementations. Used by renderers to resolve view.component to actual UI components. | [packages/play-actor/src/abstract-actor.ts:119](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-actor/src/abstract-actor.ts#L119) |
12
- | <a id="property-currentview"></a> `currentView` | `readonly` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<[`ViewMetadata`](ViewMetadata.md) \| `null`\> | Current view signal State signal containing UI structure schema from meta.view. Infrastructure renders view. Invariant: Logic-Driven UI - View structure is defined by business logic, not JSX. **Example** `const watcher = new Signal.subtle.Watcher(() => { const view = actor.currentView.get(); console.log('View changed:', view); }); watcher.watch(actor.currentView);` | [packages/play-actor/src/abstract-actor.ts:111](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-actor/src/abstract-actor.ts#L111) |
16
+ | Property | Modifier | Type | Description | Defined in |
17
+ | ----------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
18
+ | <a id="property-currentview"></a> `currentView` | `readonly` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<[`PlaySpec`](PlaySpec.md) \| `null`\> | Current view signal. Contains the json-render PlaySpec for the current machine state, or null when no view is active. Infrastructure renders view — Logic-Driven UI invariant. | [packages/play-actor/src/abstract-actor.ts:111](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-actor/src/abstract-actor.ts#L111) |
@@ -0,0 +1,384 @@
1
+ [API](../../README.md) / @xmachines/play-dom
2
+
3
+ <!-- generated-by: gsd-doc-writer -->
4
+
5
+ # @xmachines/play-dom
6
+
7
+ Vanilla DOM renderer for XMachines Play architecture with signal-driven rendering.
8
+
9
+ Part of the [XMachines Play monorepo](../../README.md).
10
+
11
+ ## Installation
12
+
13
+ ```bash
14
+ pnpm add @xmachines/play-dom
15
+ ```
16
+
17
+ **Peer dependencies:**
18
+
19
+ ```bash
20
+ pnpm add xstate @xstate/store @xmachines/json-render-core @xmachines/json-render-xstate
21
+ ```
22
+
23
+ ## Quick Start
24
+
25
+ ```typescript
26
+ import { createRenderer, schema } from "@xmachines/play-dom";
27
+ import { defineCatalog } from "@xmachines/json-render-core";
28
+ import { z } from "zod";
29
+ import type { ComponentFn } from "@xmachines/play-dom";
30
+
31
+ // 1. Define a catalog
32
+ const catalog = defineCatalog(schema, {
33
+ components: {
34
+ Home: { props: z.object({ title: z.string() }) },
35
+ Login: { props: z.object({ title: z.string(), username: z.string().optional() }) },
36
+ },
37
+ actions: {
38
+ login: { params: z.object({ username: z.string() }) },
39
+ logout: {},
40
+ },
41
+ });
42
+
43
+ // 2. Implement components
44
+ const Home: ComponentFn<typeof catalog, "Home"> = ({ props }) => {
45
+ const el = document.createElement("section");
46
+ el.textContent = props.title;
47
+ return el;
48
+ };
49
+
50
+ const Login: ComponentFn<typeof catalog, "Login"> = ({ props, on }) => {
51
+ const el = document.createElement("section");
52
+ const btn = document.createElement("button");
53
+ const submit = on("submit");
54
+ btn.addEventListener("click", () => submit.emit());
55
+ el.append(btn);
56
+ return el;
57
+ };
58
+
59
+ // 3. Build the factory once (module scope)
60
+ const mount = createRenderer(catalog, { Home, Login });
61
+
62
+ // 4. Mount when actor and container are ready
63
+ const disconnect = mount(actor, document.getElementById("app")!);
64
+
65
+ // 5. Cleanup on teardown
66
+ disconnect();
67
+ ```
68
+
69
+ ## Usage
70
+
71
+ ### `createRenderer` — one-call factory (recommended)
72
+
73
+ `createRenderer` is the simplest integration path. Call it once at module scope with your catalog and component map, then call the returned `mount` function for each actor/container pair.
74
+
75
+ ```typescript
76
+ import { createRenderer, schema } from "@xmachines/play-dom";
77
+ import { defineCatalog } from "@xmachines/json-render-core";
78
+
79
+ const catalog = defineCatalog(schema, {/* ... */});
80
+
81
+ const mount = createRenderer(catalog, { MyComponent });
82
+
83
+ const disconnect = mount(actor, document.getElementById("app")!);
84
+ // Returns a cleanup function — call it to stop rendering and clear the container.
85
+ disconnect();
86
+ ```
87
+
88
+ ### `createPlayUI` — batteries-included factory with full options
89
+
90
+ Use `createPlayUI` when you need render error handling, a fallback element, navigation integration, computed functions, or custom validation — or when you need to reference `registryResult` programmatically (e.g. for `executeAction`).
91
+
92
+ Factory-level options (`functions`, `validationFunctions`, `navigate`, `onRenderError`, `fallback`) are closed over at creation time and applied on every `mount()` call. Per-mount options (`store`, `loading`) are passed to `mount()` itself.
93
+
94
+ ```typescript
95
+ import { defineRegistry, createPlayUI, schema } from "@xmachines/play-dom";
96
+ import { defineCatalog } from "@xmachines/json-render-core";
97
+
98
+ const catalog = defineCatalog(schema, {/* ... */});
99
+
100
+ const registryResult = defineRegistry(catalog, {
101
+ components: { Home, Login },
102
+ actions: {
103
+ login: async (params, setState) => {
104
+ /* ... */
105
+ },
106
+ logout: async () => actor.send({ type: "auth.logout" }),
107
+ },
108
+ });
109
+
110
+ const mount = createPlayUI(registryResult, {
111
+ onRenderError: console.error,
112
+ fallback: document.getElementById("loading")!,
113
+ navigate: (path) => myRouter.push(path),
114
+ functions: {
115
+ fullName: (args) => `${args.first} ${args.last}`,
116
+ },
117
+ });
118
+
119
+ const disconnect = mount(actor, document.getElementById("app")!);
120
+ disconnect();
121
+ ```
122
+
123
+ ### `PlayRenderer` — class-based lifecycle control
124
+
125
+ Use `PlayRenderer` directly when you need explicit `connect()` / `disconnect()` lifecycle control, or when integrating into a system that manages the renderer's lifetime externally.
126
+
127
+ ```typescript
128
+ import { PlayRenderer, defineRegistry, schema } from "@xmachines/play-dom";
129
+
130
+ const registryResult = defineRegistry(catalog, { components, actions });
131
+
132
+ const renderer = new PlayRenderer(container, actor, registryResult.registry, { registryResult });
133
+
134
+ renderer.connect();
135
+ // Later:
136
+ renderer.disconnect();
137
+ ```
138
+
139
+ **Controlled store mode** — supply an external `StateStore` so the renderer shares state with other parts of your app:
140
+
141
+ ```typescript
142
+ import { createAtom } from "@xstate/store";
143
+ import { xstateStoreStateStore } from "@xmachines/json-render-xstate";
144
+
145
+ const atom = createAtom({ username: "" });
146
+ const store = xstateStoreStateStore({ atom });
147
+
148
+ const renderer = new PlayRenderer(container, actor, registryResult.registry, {
149
+ registryResult,
150
+ store,
151
+ });
152
+ renderer.connect();
153
+ ```
154
+
155
+ ## Provider Options
156
+
157
+ All entry points (`createPlayUI`, `PlayRenderer`) accept the same set of UI-provider options via `UIProviderOptions`. These are forwarded into `DomRenderContext` on every render pass, making them available to component implementations via `ctx.ctx.*`.
158
+
159
+ ### `functions` — named compute functions for `$computed` prop expressions
160
+
161
+ Enables `{ "$computed": "name", "args": {...} }` dynamic prop values in specs. Each function receives the resolved `args` object and returns the computed value.
162
+
163
+ ```typescript
164
+ const mount = createPlayUI(registryResult, {
165
+ functions: {
166
+ fullName: (args) => `${args.first} ${args.last}`,
167
+ formatDate: (args) => new Date(args.iso as string).toLocaleDateString(),
168
+ },
169
+ });
170
+ ```
171
+
172
+ Without `functions`, any `$computed` expression silently resolves to `undefined` (no throw, backward-compatible).
173
+
174
+ ### `validationFunctions` — custom field validation
175
+
176
+ Provides named validation functions for inline field validation within components. Functions receive `(value, args?)` and return `true` (valid) or `false` (invalid).
177
+
178
+ Unlike the framework renderers, the DOM renderer has no automatic `ValidationProvider` tree. Components must invoke validation explicitly using `runValidationCheck` / `runValidation` from `@xmachines/json-render-core`, passing `ctx.ctx.validationFunctions` as `customFunctions`.
179
+
180
+ ```typescript
181
+ import { runValidationCheck } from "@xmachines/json-render-core";
182
+
183
+ const mount = createPlayUI(registryResult, {
184
+ validationFunctions: {
185
+ isEven: (value) => typeof value === "number" && value % 2 === 0,
186
+ phoneNumber: (value) => /^\+?[\d\s\-()]{7,}$/.test(String(value)),
187
+ },
188
+ });
189
+
190
+ // Inside a ComponentFn:
191
+ const MyField: ComponentFn<typeof catalog, "MyField"> = ({ ctx }) => {
192
+ const result = runValidationCheck(
193
+ { type: "isEven", message: "must be even" },
194
+ { value: someValue, stateModel: {}, customFunctions: ctx.ctx.validationFunctions },
195
+ );
196
+ // result.valid, result.message
197
+ };
198
+ ```
199
+
200
+ ### `navigate` — programmatic navigation from action bindings
201
+
202
+ A callback invoked when an action binding resolves with `onSuccess: { navigate: "/path" }`. The resolved path string is passed as the sole argument. Integrate with any router:
203
+
204
+ ```typescript
205
+ // React Router / TanStack Router / any push-based router:
206
+ const mount = createPlayUI(registryResult, {
207
+ navigate: (path) => myRouter.push(path),
208
+ });
209
+ ```
210
+
211
+ With a spec binding:
212
+
213
+ ```json
214
+ {
215
+ "on": {
216
+ "click": {
217
+ "action": "submitForm",
218
+ "onSuccess": { "navigate": "/dashboard" }
219
+ }
220
+ }
221
+ }
222
+ ```
223
+
224
+ When `submitForm` completes successfully, `navigate("/dashboard")` is called automatically.
225
+
226
+ The function is also readable by component implementations directly via `ctx.ctx.navigate` for cases where navigation needs to be triggered outside of an action binding.
227
+
228
+ ### `onRenderError` — unified error handler
229
+
230
+ Receives `(error, name)` for three distinct error classes:
231
+
232
+ - **Component render errors** — when a `ComponentFn` throws synchronously during `renderSpec`. `name` is the catalog component name (e.g. `"Home"`).
233
+ - **Action handler rejections (emit path)** — when an `ActionFn` throws or returns a rejected promise during `emit()`. `name` is the catalog action name (e.g. `"submitForm"`).
234
+ - **Action handler rejections (watch path)** — when an `ActionFn` rejects during a `watch` binding callback. `name` is the catalog action name.
235
+
236
+ ```typescript
237
+ const mount = createPlayUI(registryResult, {
238
+ onRenderError: (err, name) => {
239
+ // Route to your application's error tracking
240
+ Sentry.captureException(err, { extra: { name } });
241
+ },
242
+ });
243
+ ```
244
+
245
+ The argument order matches the upstream `RenderErrorHandler` type from `@xmachines/json-render-core`: **error first, name second**. This is consistent with the framework renderers (`@xmachines/json-render-solid`, `@xmachines/json-render-react`).
246
+
247
+ Without `onRenderError`, all three error types are logged via `console.error` and swallowed. No exception propagates, and no unhandled promise rejection is created.
248
+
249
+ The handler is also available to component implementations via `ctx.ctx.onRenderError`, enabling components to route their own internal errors through the same channel:
250
+
251
+ ```typescript
252
+ const MyComponent: ComponentFn<typeof catalog, "MyComponent"> = ({ ctx }) => {
253
+ try {
254
+ const el = doSomethingRisky();
255
+ return el;
256
+ } catch (err) {
257
+ ctx.ctx.onRenderError?.(err, "MyComponent");
258
+ return null;
259
+ }
260
+ };
261
+ ```
262
+
263
+ ## API Summary
264
+
265
+ ### XMachines Layer
266
+
267
+ | Export | Kind | Description |
268
+ | ---------------------------------------- | -------- | --------------------------------------------------------------------------- |
269
+ | `createRenderer(catalog, components)` | function | One-call factory — returns `mount(actor, container, options?) → disconnect` |
270
+ | `createPlayUI(registryResult, options?)` | function | Batteries-included factory — returns `MountFn` |
271
+ | `PlayRenderer` | class | Class-based renderer with `connect()` / `disconnect()` lifecycle |
272
+ | `defineRegistry(catalog, options)` | function | Build a catalog-typed `DomRegistry` with typed handlers |
273
+ | `renderSpec(...)` | function | Pure Spec → DOM renderer (low-level) |
274
+ | `schema` | const | The `@xmachines/json-render-dom` schema — pass to `defineCatalog()` |
275
+
276
+ ### Key Types
277
+
278
+ | Type | Description |
279
+ | ------------------------ | ------------------------------------------------------------------------------------------ |
280
+ | `ComponentFn<C, K>` | Catalog-typed component function — returns `HTMLElement \| Text \| null` |
281
+ | `ComponentContext<C, K>` | Context passed to each component: `props`, `children`, `emit`, `on`, `bindings`, `ctx` |
282
+ | `ActionFn<C, K>` | Catalog-typed action function — receives `(params, setState, state)` |
283
+ | `EventHandle` | Handle returned by `on(eventName)` — has `emit()`, `shouldPreventDefault`, `bound` |
284
+ | `SetState` | State updater: `(prev => next) => void` |
285
+ | `DefineRegistryResult` | Result from `defineRegistry` — has `registry`, `handlers`, `executeAction` |
286
+ | `PlayDomOptions` | Options for `PlayRenderer` — extends `UIProviderOptions` |
287
+ | `CreatePlayUIOptions` | Options for `createPlayUI` — extends `UIProviderOptions`, adds `fallback` |
288
+ | `MountOptions` | Per-mount options for `MountFn`: `store`, `loading` |
289
+ | `MountFn` | The mount function returned by `createPlayUI`: `(actor, container, options?) → disconnect` |
290
+ | `UIProviderOptions` | Shared options: `functions`, `validationFunctions`, `navigate`, `onRenderError` |
291
+ | `BaseComponentProps<P>` | Catalog-agnostic component props for shared component libraries |
292
+ | `DomRegistry` | Raw registry type: `Record<string, DomComponentRenderer>` |
293
+ | `DomSchema` | Type of the `schema` export |
294
+ | `ComputedFunction` | Type for named compute functions used with the `functions` option |
295
+
296
+ ## Rendering Behaviour
297
+
298
+ - **Initial render is synchronous** — the container is populated before `connect()` returns.
299
+ - **Signal-driven re-renders are microtask-deferred** — `watchSignal` schedules updates on the next microtask queue tick.
300
+ - **Null view** clears the container. A `fallback` element can be shown on initial mount when the view is `null`; it is **not** re-appended if the view later transitions back to `null` after a non-null view.
301
+ - **Double `connect()` is safe** — calling `connect()` on an already-connected renderer auto-disconnects first.
302
+ - **`disconnect()` clears the container** and unsubscribes all signal and store watchers.
303
+
304
+ ## Testing
305
+
306
+ ```bash
307
+ # Run all tests (jsdom environment)
308
+ pnpm test
309
+
310
+ # Run with coverage
311
+ pnpm run test:coverage
312
+ ```
313
+
314
+ Tests live in `test/` and use [Vitest](https://vitest.dev/) with a jsdom environment. Coverage thresholds: 80% lines, functions, branches, and statements.
315
+
316
+ @xmachines/play-dom — Vanilla DOM renderer for XMachines Play architecture.
317
+
318
+ Public API split into two layers:
319
+
320
+ **XMachines layer** (this package):
321
+
322
+ - `createRenderer()` — one-call factory: returns `mount(actor, container, options?) → disconnect`
323
+ - `createPlayUI()` — batteries-included factory with full options: returns `MountFn`
324
+ - `PlayRenderer` — class-based renderer with `connect()` / `disconnect()` lifecycle
325
+ - `PlayDomOptions`, `CreatePlayUIOptions`, `MountFn`, `MountOptions`
326
+
327
+ **json-render layer** (re-exported from @xmachines/json-render-dom):
328
+
329
+ - `defineRegistry` — build a catalog-typed DomRegistry
330
+ - `renderSpec` — pure Spec → DOM renderer (uses resolveElementProps from core)
331
+ - `ComponentFn` — catalog-typed component function type
332
+ - `ComponentContext` — catalog-typed render context (props, emit, on, children, bindings)
333
+ - `ComponentRegistry` — catalog-typed registry input type
334
+ - `DomComponentRenderer` — raw element-level renderer type
335
+ - `DomRegistry` — raw registry type
336
+ - `DomRenderContext` — raw render context
337
+ - `EventHandle` — event handle returned by on()
338
+ - `SetState` — state updater function passed to ActionFn
339
+ - `CatalogHasActions` — conditional type: true when catalog declares actions
340
+ - `BaseComponentProps` — base props type for catalog component definitions
341
+
342
+ ## Classes
343
+
344
+ - [PlayRenderer](classes/PlayRenderer.md)
345
+
346
+ ## Interfaces
347
+
348
+ - [ComponentContext](interfaces/ComponentContext.md)
349
+ - [CreatePlayUIOptions](interfaces/CreatePlayUIOptions.md)
350
+ - [DefineRegistryResult](interfaces/DefineRegistryResult.md)
351
+ - [DomRenderContext](interfaces/DomRenderContext.md)
352
+ - [EventHandle](interfaces/EventHandle.md)
353
+ - [MountOptions](interfaces/MountOptions.md)
354
+ - [PlayDomOptions](interfaces/PlayDomOptions.md)
355
+ - [RenderSpecOptions](interfaces/RenderSpecOptions.md)
356
+ - [UIProviderOptions](interfaces/UIProviderOptions.md)
357
+
358
+ ## Type Aliases
359
+
360
+ - [ActionFn](type-aliases/ActionFn.md)
361
+ - [Actions](type-aliases/Actions.md)
362
+ - [BaseComponentProps](type-aliases/BaseComponentProps.md)
363
+ - [CatalogHasActions](type-aliases/CatalogHasActions.md)
364
+ - [ComponentFn](type-aliases/ComponentFn.md)
365
+ - [ComponentRegistry](type-aliases/ComponentRegistry.md)
366
+ - [ConfirmHandler](type-aliases/ConfirmHandler.md)
367
+ - [DefineRegistryOptions](type-aliases/DefineRegistryOptions.md)
368
+ - [DomComponentRenderer](type-aliases/DomComponentRenderer.md)
369
+ - [DomRegistry](type-aliases/DomRegistry.md)
370
+ - [DomSchema](type-aliases/DomSchema.md)
371
+ - [MountFn](type-aliases/MountFn.md)
372
+ - [RenderErrorHandler](type-aliases/RenderErrorHandler.md)
373
+ - [SetState](type-aliases/SetState.md)
374
+
375
+ ## Variables
376
+
377
+ - [schema](variables/schema.md)
378
+
379
+ ## Functions
380
+
381
+ - [createPlayUI](functions/createPlayUI.md)
382
+ - [createRenderer](functions/createRenderer.md)
383
+ - [defineRegistry](functions/defineRegistry.md)
384
+ - [renderSpec](functions/renderSpec.md)
@@ -0,0 +1,115 @@
1
+ [API](../../../README.md) / [@xmachines/play-dom](../README.md) / PlayRenderer
2
+
3
+ # Class: PlayRenderer
4
+
5
+ Defined in: [packages/play-dom/src/PlayRenderer.ts:67](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-dom/src/PlayRenderer.ts#L67)
6
+
7
+ PlayRenderer connects an actor's `currentView` signal to the DOM renderer.
8
+
9
+ Watches `actor.currentView` via TC39 Signals and renders `DomComponentRenderer`
10
+ functions into `container` on every view transition. Cleared on `disconnect()`.
11
+
12
+ Options from `PlayDomOptions` (which extends `UIProviderOptions`) are all forwarded
13
+ into `DomRenderContext` on every render pass:
14
+
15
+ - `functions` — named compute functions for `{ $computed: "name" }` prop expressions
16
+ - `directives` — custom `$`-prefixed dynamic values (from `defineDirective`), resolved during prop resolution
17
+ - `validationFunctions` — custom validation functions, available at `ctx.ctx.validationFunctions`
18
+ - `navigate` — navigation callback, invoked on `onSuccess: { navigate: "..." }` action bindings
19
+ - `onRenderError` — called with `(error, name)` for component render errors and action handler rejections
20
+
21
+ **Preferred usage — via `registryResult`:**
22
+
23
+ ```typescript
24
+ import { PlayRenderer, defineRegistry } from "@xmachines/play-dom";
25
+
26
+ const registryResult = defineRegistry(catalog, { components, actions });
27
+ const renderer = new PlayRenderer(container, actor, registryResult.registry, {
28
+ registryResult, // wires setState/getState from xstate store automatically
29
+ navigate: (path) => myRouter.push(path),
30
+ functions: { fullName: (args) => `${args.first} ${args.last}` },
31
+ });
32
+ renderer.connect();
33
+ // Later:
34
+ renderer.disconnect();
35
+ ```
36
+
37
+ **Controlled store mode** — bring your own `StateStore`:
38
+
39
+ ```typescript
40
+ import { createAtom } from "@xstate/store";
41
+ import { xstateStoreStateStore } from "@xmachines/json-render-xstate";
42
+
43
+ const atom = createAtom({ username: "" });
44
+ const store = xstateStoreStateStore({ atom });
45
+ const renderer = new PlayRenderer(container, actor, registry, { registryResult, store });
46
+ renderer.connect();
47
+ ```
48
+
49
+ Double `connect()` is safe — calling `connect()` while already connected
50
+ automatically disconnects first, preventing double-render subscriptions.
51
+
52
+ ## Constructors
53
+
54
+ ### Constructor
55
+
56
+ ```ts
57
+ new PlayRenderer(
58
+ container,
59
+ actor,
60
+ registry,
61
+ options?): PlayRenderer;
62
+ ```
63
+
64
+ Defined in: [packages/play-dom/src/PlayRenderer.ts:102](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-dom/src/PlayRenderer.ts#L102)
65
+
66
+ #### Parameters
67
+
68
+ | Parameter | Type | Description |
69
+ | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
70
+ | `container` | `HTMLElement` | `HTMLElement` to render into. Cleared and repopulated on every view transition. |
71
+ | `actor` | [`AbstractActor`](../../play-actor/classes/AbstractActor.md)\<[`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic), [`EventObject`](https://www.jsdocs.io/package/xstate#EventObject)\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | Actor providing the `currentView` signal (must implement `Viewable`). |
72
+ | `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | Component renderer map — typically `registryResult.registry` from `defineRegistry`. |
73
+ | `options` | [`PlayDomOptions`](../interfaces/PlayDomOptions.md) | Configuration (see [PlayDomOptions](../interfaces/PlayDomOptions.md)): - `registryResult` — auto-wires `setState`/`state` from the xstate store. - `store` — external `StateStore` (controlled mode; overrides `spec.state` seeding). - `loading` — streaming mode flag; suppresses missing-child warnings. - `functions` — named compute functions for `$computed` prop expressions. - `directives` — custom `$`-prefixed dynamic values resolved during prop resolution. - `validationFunctions` — custom validation functions; available at `ctx.ctx.validationFunctions`. - `navigate` — navigation callback; invoked on `onSuccess: { navigate: "..." }`. - `onRenderError` — `(error, name)` handler for component render errors and action handler rejections; suppresses `console.error` fallback. |
74
+
75
+ #### Returns
76
+
77
+ `PlayRenderer`
78
+
79
+ ## Methods
80
+
81
+ ### connect()
82
+
83
+ ```ts
84
+ connect(): void;
85
+ ```
86
+
87
+ Defined in: [packages/play-dom/src/PlayRenderer.ts:118](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-dom/src/PlayRenderer.ts#L118)
88
+
89
+ Start watching actor.currentView and render to container.
90
+ Renders the initial view synchronously, then subscribes to signal changes.
91
+
92
+ Calling `connect()` on an already-connected renderer (where a previous
93
+ `connect()` was never followed by `disconnect()`) would silently install a
94
+ second `watchSignal` subscription, causing double-renders on every view
95
+ change. Guard against this by auto-disconnecting first.
96
+
97
+ #### Returns
98
+
99
+ `void`
100
+
101
+ ---
102
+
103
+ ### disconnect()
104
+
105
+ ```ts
106
+ disconnect(): void;
107
+ ```
108
+
109
+ Defined in: [packages/play-dom/src/PlayRenderer.ts:127](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-dom/src/PlayRenderer.ts#L127)
110
+
111
+ Stop watching and clear the container.
112
+
113
+ #### Returns
114
+
115
+ `void`
@@ -0,0 +1,28 @@
1
+ [API](../../../README.md) / [@xmachines/play-dom](../README.md) / createPlayUI
2
+
3
+ # Function: createPlayUI()
4
+
5
+ ```ts
6
+ function createPlayUI(registryResult, options?): MountFn;
7
+ ```
8
+
9
+ Defined in: [packages/play-dom/src/create-play-ui.ts:93](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-dom/src/create-play-ui.ts#L93)
10
+
11
+ Create a batteries-included DOM renderer mount function.
12
+
13
+ The caller is responsible for producing `registryResult` via `defineRegistry`.
14
+ `createPlayUI` closes over it and returns a `MountFn` that can be invoked
15
+ once per actor/container pair.
16
+
17
+ ## Parameters
18
+
19
+ | Parameter | Type | Description |
20
+ | ---------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
21
+ | `registryResult` | [`DefineRegistryResult`](../interfaces/DefineRegistryResult.md) | Result from `defineRegistry()` — provides the registry and the lazy handlers factory. |
22
+ | `options` | [`CreatePlayUIOptions`](../interfaces/CreatePlayUIOptions.md) | Factory-level configuration (see [CreatePlayUIOptions](../interfaces/CreatePlayUIOptions.md)): - `functions` — named compute functions for `$computed` prop expressions. - `directives` — custom `$`-prefixed dynamic values resolved during prop resolution. - `validationFunctions` — custom validation functions; available at `ctx.ctx.validationFunctions`. - `navigate` — navigation callback; invoked on `onSuccess: { navigate: "..." }`. - `onRenderError` — `(error, name)` handler for component render errors and action handler rejections. - `fallback` — element shown when the actor's initial view is `null`. |
23
+
24
+ ## Returns
25
+
26
+ [`MountFn`](../type-aliases/MountFn.md)
27
+
28
+ `MountFn`: `(actor, container, mountOptions?) → disconnect`