@xmachines/docs 1.0.0-beta.9 → 1.1.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 +135 -7
  2. package/api/@xmachines/play/README.md +159 -39
  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 +153 -160
  8. package/api/@xmachines/play-actor/classes/AbstractActor.md +106 -121
  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 +385 -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 +272 -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 -333
  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 -115
  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 -352
  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 +117 -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 -233
  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 -559
  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 +99 -114
  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 +270 -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 +197 -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 +212 -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 -125
  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 +61 -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 +216 -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 +190 -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 -486
  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 +203 -354
  356. package/api/@xmachines/play-xstate/classes/PlayerActor.md +195 -201
  357. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +24 -20
  358. package/api/@xmachines/play-xstate/functions/composeGuards.md +8 -3
  359. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +8 -3
  360. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +43 -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 +8 -3
  364. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +3 -3
  365. package/api/@xmachines/play-xstate/functions/hasContext.md +8 -5
  366. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +2 -2
  367. package/api/@xmachines/play-xstate/functions/negateGuard.md +8 -3
  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 +14 -16
  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 +8 -3
  374. package/api/@xmachines/play-xstate/type-aliases/Guard.md +8 -6
  375. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +9 -7
  376. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +15 -18
  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 +35 -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 +601 -0
  395. package/contributing/configuration.md +368 -0
  396. package/contributing/deployment.md +333 -0
  397. package/contributing/development.md +503 -0
  398. package/contributing/testing.md +461 -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 +25 -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 +16 -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 +19 -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 +17 -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 +18 -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 +73 -31
  476. package/examples/form-validation.md +259 -118
  477. package/examples/multi-router-integration.md +312 -194
  478. package/examples/routing-patterns.md +228 -189
  479. package/examples/traffic-light.md +112 -65
  480. package/guides/README.md +7 -21
  481. package/guides/actor-model.md +180 -0
  482. package/guides/getting-started.md +627 -137
  483. package/guides/signals.md +166 -0
  484. package/guides/state-machines.md +284 -0
  485. package/package.json +21 -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
@@ -1,423 +1,275 @@
1
- [Documentation](../../README.md) / @xmachines/play-react
1
+ [API](../../README.md) / @xmachines/play-react
2
2
 
3
3
  # @xmachines/play-react
4
4
 
5
- **React renderer consuming signals and UI schema with provider pattern**
5
+ React renderer for XMachines Play architecture with signal-driven rendering.
6
6
 
7
- Signal-driven React rendering layer observing actor state with zero React state for business logic.
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
+ [![Version](https://img.shields.io/badge/version-1.1.0-blue)](https://www.npmjs.com/package/@xmachines/play-react)
8
9
 
9
- ## Overview
10
+ Part of the [xmachines-js monorepo](../../README.md).
10
11
 
11
- `@xmachines/play-react` provides `PlayRenderer` and `useSignalEffect` for building React UIs that passively observe actor signals. This package enables framework-swappable architecture where React is just a rendering target subscribing to signal changes — business logic lives entirely in the actor.
12
-
13
- Per [RFC Play v1](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md), this package implements:
14
-
15
- - **Signal-Only Reactivity (INV-05):** No useState/useReducer for business logic, signals only
16
- - **Passive Infrastructure (INV-04):** Components observe signals, send events to actor
17
-
18
- **Key Principle:** React state is never used for business logic. Signals are the source of truth.
12
+ ## Installation
19
13
 
20
- Renderer receives actor via props (provider pattern), not children.
14
+ ```bash
15
+ pnpm add @xmachines/play-react
16
+ ```
21
17
 
22
- ## Installation
18
+ **Peer dependencies** (must be installed separately):
23
19
 
24
20
  ```bash
25
- npm install react@^18.0.0 react-dom@^18.0.0
26
- npm install @xmachines/play-react
21
+ pnpm add react react-dom xstate @xstate/store @xmachines/json-render-react @xmachines/json-render-core @xmachines/json-render-xstate
27
22
  ```
28
23
 
29
- ## Current Exports
24
+ Supported versions:
30
25
 
31
- - `PlayRenderer`
32
- - `useSignalEffect`
33
- - `PlayErrorBoundary`
34
- - `PlayRendererProps` (type)
35
- - `PlayErrorBoundaryProps` (type)
26
+ - `react` / `react-dom`: `^18.0.0 || ^19.0.0`
27
+ - `xstate`: `^5.31.0`
28
+ - `@xstate/store`: `^3.17.0`
29
+ - `@xmachines/json-render-*`: `^0.18.0`
36
30
 
37
- **Peer dependencies:**
31
+ ## Usage
38
32
 
39
- - `react` ^18.0.0 || ^19.0.0 React runtime
40
- - `react-dom` ^18.0.0 || ^19.0.0 — React DOM renderer
33
+ ### Standard usage `PlayUIProvider` + `PlayRenderer`
41
34
 
42
- ## Quick Start
35
+ The recommended pattern for actor-driven React rendering:
43
36
 
44
- ```typescript
45
- import { createRoot } from "react-dom/client";
37
+ ```tsx
38
+ import { PlayUIProvider, PlayRenderer, defineRegistry } from "@xmachines/play-react";
46
39
  import { definePlayer } from "@xmachines/play-xstate";
47
- import { defineCatalog } from "@xmachines/play-catalog";
48
- import { PlayRenderer } from "@xmachines/play-react";
49
- import { z } from "zod";
50
-
51
- // 1. Define catalog (business logic layer)
52
- const catalog = defineCatalog({
53
- LoginForm: z.object({ error: z.string().optional() }),
54
- Dashboard: z.object({
55
- userId: z.string(),
56
- username: z.string(),
57
- }),
58
- });
59
40
 
60
- // 2. Create React components (view layer)
61
- const components = {
62
- LoginForm: ({ error, send }) => (
63
- <form
64
- onSubmit={(e) => {
65
- e.preventDefault();
66
- const data = new FormData(e.currentTarget);
67
- send({
68
- type: "auth.login",
69
- username: data.get("username"),
70
- });
71
- }}
72
- >
73
- {error && <p style={{ color: "red" }}>{error}</p>}
74
- <input name="username" required placeholder="Username" />
75
- <button type="submit">Log In</button>
76
- </form>
77
- ),
78
- Dashboard: ({ userId, username, send }) => (
79
- <div>
80
- <h1>Welcome, {username}!</h1>
81
- <p>User ID: {userId}</p>
82
- <button onClick={() => send({ type: "auth.logout" })}>Log Out</button>
83
- </div>
84
- ),
85
- };
86
-
87
- // 3. Create player actor (business logic runtime)
88
- const createPlayer = definePlayer({ machine: authMachine, catalog });
89
- const actor = createPlayer();
41
+ // 1. Create and start the actor
42
+ const actor = definePlayer({ machine: myMachine })();
90
43
  actor.start();
91
44
 
92
- // 4. Render UI (actor via props)
93
- const root = createRoot(document.getElementById("app")!);
94
- root.render(<PlayRenderer actor={actor} components={components} />);
95
- ```
96
-
97
- ## API Reference
98
-
99
- ### PlayRenderer
100
-
101
- Main renderer component subscribing to actor signals and dynamically rendering catalog components:
45
+ // 2. Define the component registry with action handlers
46
+ const registryResult = defineRegistry(myCatalog, {
47
+ components: { Login, Dashboard },
48
+ actions: {
49
+ login: async ({ username }) => actor.send({ type: "auth.login", username }),
50
+ logout: async () => actor.send({ type: "auth.logout" }),
51
+ },
52
+ });
102
53
 
103
- ```typescript
104
- interface PlayRendererProps {
105
- actor: AbstractActor<AnyActorLogic> & Viewable;
106
- components: Record<string, React.ElementType>;
107
- fallback?: React.ReactNode;
54
+ // 3. Render — signals drive view transitions automatically
55
+ function App() {
56
+ return (
57
+ <PlayUIProvider actor={actor} registryResult={registryResult}>
58
+ <PlayRenderer />
59
+ </PlayUIProvider>
60
+ );
108
61
  }
109
62
  ```
110
63
 
111
- **Props:**
112
-
113
- - `actor` - Actor instance with `currentView` signal
114
- - `components` - Map of component names to React components
115
- - `fallback` - Component shown when `currentView` is null (default: `null`)
64
+ ### With optional `JSONUIProvider` props
116
65
 
117
- **Behavior:**
66
+ Pass navigation and validation helpers through `PlayUIProvider`:
118
67
 
119
- 1. Subscribes to `actor.currentView` signal via `useSignalEffect`
120
- 2. Looks up component from `components` map using `view.component` string
121
- 3. Renders component with props from `view.props` + `send` function
122
-
123
- **Example:**
124
-
125
- ```typescript
126
- <PlayRenderer
68
+ ```tsx
69
+ <PlayUIProvider
127
70
  actor={actor}
128
- components={{
129
- HomePage: ({ send }) => <div>Home</div>,
130
- AboutPage: ({ send }) => <div>About</div>,
131
- }}
132
- fallback={<div>Loading...</div>}
133
- />
134
- ```
135
-
136
- ### useSignalEffect()
137
-
138
- Hook for subscribing to signal changes with automatic cleanup:
139
-
140
- ```typescript
141
- useSignalEffect(() => {
142
- const value = signal.get();
143
- // React re-renders when signal changes
144
- });
71
+ registryResult={registryResult}
72
+ navigate={(path) => router.push(path)}
73
+ validationFunctions={{ isEmail: (v) => /^.+@.+$/.test(String(v)) }}
74
+ >
75
+ <PlayRenderer />
76
+ </PlayUIProvider>
145
77
  ```
146
78
 
147
- **Behavior:**
148
-
149
- - Tracks signal dependencies automatically via `Signal.Computed` wrapper
150
- - Uses `Signal.subtle.Watcher` with microtask batching
151
- - Triggers React state update to force re-render
152
- - Cleans up watcher on unmount with explicit `unwatch`
153
-
154
- **Canonical watcher lifecycle:**
155
-
156
- 1. `notify`
157
- 2. `queueMicrotask`
158
- 3. drain pending work (`getPending` and/or `Computed.get`)
159
- 4. run effect + trigger render
160
- 5. re-arm watcher via `watch()`
79
+ ### Escape hatch — custom provider composition
161
80
 
162
- Watcher notification is one-shot, so re-arm and explicit cleanup are both required.
81
+ Use `ActorProvider` directly when you need to compose providers manually:
163
82
 
164
- **Example:**
165
-
166
- ```typescript
167
- import { useSignalEffect } from "@xmachines/play-react";
168
- import { useState } from "react";
169
-
170
- function RouteDisplay({ actor }: { actor: AbstractActor<any> }) {
171
- const [route, setRoute] = useState<string | null>(null);
172
-
173
- useSignalEffect(() => {
174
- const currentRoute = actor.currentRoute.get();
175
- setRoute(currentRoute);
176
- });
83
+ ```tsx
84
+ import { ActorProvider, JSONUIProvider, PlayRenderer } from "@xmachines/play-react";
177
85
 
178
- return <div>Current Route: {route ?? "None"}</div>;
179
- }
86
+ <ActorProvider actor={actor} registryResult={registryResult}>
87
+ <JSONUIProvider registry={registryResult.registry}>
88
+ <PlayRenderer />
89
+ </JSONUIProvider>
90
+ </ActorProvider>;
180
91
  ```
181
92
 
182
- ### PlayErrorBoundary
183
-
184
- React class component error boundary for catching catalog component render errors.
93
+ ### Accessing the actor from inside the tree
185
94
 
186
- `PlayRenderer` wraps its render output in `PlayErrorBoundary` automatically. You can also use it directly to wrap any component that may throw during render.
95
+ ```tsx
96
+ import { useActor } from "@xmachines/play-react";
187
97
 
188
- ```typescript
189
- interface PlayErrorBoundaryProps {
190
- fallback?: React.ReactNode; // UI shown when a child throws (default: null)
191
- children: React.ReactNode;
192
- onError?: (error: Error, info: React.ErrorInfo) => void; // Forward to Sentry, Datadog, etc.
98
+ function SubmitButton() {
99
+ const actor = useActor();
100
+ return <button onClick={() => actor.send({ type: "SUBMIT" })}>Submit</button>;
193
101
  }
194
102
  ```
195
103
 
196
- **Props:**
197
-
198
- - `fallback` — ReactNode rendered when a child component throws. Defaults to `null`.
199
- - `onError` — Optional callback forwarded on every caught error. Use for production observability (Sentry, Datadog, custom logging).
200
-
201
- **Example:**
104
+ ### Subscribing to signals directly
202
105
 
203
106
  ```tsx
204
- import { PlayErrorBoundary } from "@xmachines/play-react";
205
-
206
- <PlayErrorBoundary
207
- fallback={<div className="error">Something went wrong.</div>}
208
- onError={(error) => Sentry.captureException(error)}
209
- >
210
- <YourCatalogComponent />
211
- </PlayErrorBoundary>;
212
- ```
213
-
214
- Works with React 18 and React 19. Uses the standard class component `componentDidCatch` + `getDerivedStateFromError` pattern.
215
-
216
- ## Examples
217
-
218
- ### Component Receiving Props from Catalog
219
-
220
- ```typescript
221
- import { PlayRenderer } from "@xmachines/play-react";
222
- import { defineCatalog } from "@xmachines/play-catalog";
223
- import { z } from "zod";
224
-
225
- // Define schema in catalog
226
- const catalog = defineCatalog({
227
- UserProfile: z.object({
228
- userId: z.string(),
229
- name: z.string(),
230
- avatar: z.string().url().optional(),
231
- stats: z.object({
232
- posts: z.number(),
233
- followers: z.number(),
234
- }),
235
- }),
236
- });
237
-
238
- // Component receives type-safe props + send
239
- const components = {
240
- UserProfile: ({ userId, name, avatar, stats, send }) => (
241
- <div>
242
- {avatar && <img src={avatar} alt={name} />}
243
- <h1>{name}</h1>
244
- <p>ID: {userId}</p>
245
- <div>
246
- <span>{stats.posts} posts</span>
247
- <span>{stats.followers} followers</span>
248
- </div>
249
- <button
250
- onClick={() =>
251
- send({
252
- type: "profile.edit",
253
- userId,
254
- })
255
- }
256
- >
257
- Edit Profile
258
- </button>
259
- </div>
260
- ),
261
- };
262
-
263
- <PlayRenderer actor={actor} components={components} />;
264
- ```
265
-
266
- ### useSignalEffect for Custom Rendering
267
-
268
- ```typescript
269
107
  import { useSignalEffect } from "@xmachines/play-react";
270
- import { AbstractActor } from "@xmachines/play-actor";
271
108
 
272
- function CustomRenderer({ actor }: { actor: AbstractActor<any> }) {
109
+ function MyComponent({ actor }) {
273
110
  const [view, setView] = useState(null);
274
111
 
275
- // Subscribe to currentView signal
276
112
  useSignalEffect(() => {
277
- const currentView = actor.currentView.get();
278
- setView(currentView);
279
- });
280
-
281
- if (!view) return <div>No view</div>;
282
-
283
- // Custom rendering logic
284
- if (view.component === "SpecialCase") {
285
- return <SpecialCaseComponent {...view.props} actor={actor} />;
286
- }
113
+ setView(actor.currentView.get());
114
+ }, [actor]); // deps: re-subscribe when the actor prop swaps
287
115
 
288
- // Fallback to standard rendering
289
- return <DefaultComponent view={view} actor={actor} />;
116
+ return <div>{view?.component}</div>;
290
117
  }
291
118
  ```
292
119
 
293
- ### Provider Pattern
294
-
295
- ```typescript
296
- import { PlayTanStackRouterProvider } from "@xmachines/play-tanstack-react-router";
297
- import { PlayRenderer } from "@xmachines/play-react";
298
-
299
- // Renderer receives actor via props (not children)
300
- function App() {
301
- return (
302
- <PlayTanStackRouterProvider
303
- actor={actor}
304
- router={router}
305
- renderer={(currentActor, currentRouter) => {
306
- void currentRouter;
307
- return (
308
- <div>
309
- <Header actor={currentActor} />
310
- <PlayRenderer actor={currentActor} components={components} />
311
- <Footer />
312
- </div>
313
- );
314
- }}
315
- />
316
- );
317
- }
318
-
319
- // Header component also receives actor
320
- function Header({ actor }: { actor: AbstractActor<any> }) {
321
- const [route, setRoute] = useState<string | null>(null);
322
-
323
- useSignalEffect(() => {
324
- setRoute(actor.currentRoute.get());
325
- });
326
-
327
- return (
328
- <header>
329
- <nav>Current: {route}</nav>
330
- </header>
331
- );
332
- }
120
+ ## API Summary
121
+
122
+ ### Components
123
+
124
+ | Export | Description |
125
+ | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
126
+ | `<PlayUIProvider>` | Batteries-included provider: wraps `ActorProvider` + `JSONUIProvider`. Standard entry point. |
127
+ | `<PlayRenderer>` | Zero-prop leaf component. Reads the current actor view from context and renders it. Must be inside `PlayUIProvider` or `ActorProvider`. |
128
+ | `<ActorProvider>` | Escape-hatch primitive. Owns actor bridging, signal subscription, and per-view `StateStore` lifecycle. |
129
+ | `<PlayErrorBoundary>` | React class error boundary for catching catalog component render errors. |
130
+
131
+ ### Hooks
132
+
133
+ | Export | Description |
134
+ | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
135
+ | `useSignalEffect(callback, deps?)` | Subscribes to TC39 signal changes; re-runs the callback when any accessed signal changes (re-render via the callback's own setState). Optional `deps` recreates the subscription, like `useEffect`. Cleanup is automatic on unmount. |
136
+ | `useActor()` | Returns the raw actor instance. Must be called inside an `ActorProvider`/`PlayUIProvider` tree. |
137
+ | `usePlayView()` | Returns `{ spec, handlers, registry, store }` for the current view. Must be called inside an `ActorProvider`/`PlayUIProvider` tree. |
138
+
139
+ ### Types
140
+
141
+ | Export | Description |
142
+ | ------------------------ | ---------------------------------------------------------------------------------------------- |
143
+ | `PlayUIProviderProps` | Props for `<PlayUIProvider>` |
144
+ | `ActorProviderProps` | Props for `<ActorProvider>` (also exported as `PlayRendererProps` for migration compatibility) |
145
+ | `PlayErrorBoundaryProps` | Props for `<PlayErrorBoundary>` |
146
+ | `PlayErrorBoundaryState` | State shape for `<PlayErrorBoundary>` |
147
+ | `AnyPlayActor` | Type alias for `AbstractActor<AnyActorLogic>` the bare actor type used by context providers |
148
+ | `ViewContextValue` | Value shape returned by `usePlayView()` |
149
+ | `RenderErrorHandler` | Error handler callback type for render errors |
150
+
151
+ ### Re-exports from `@xmachines/json-render-react`
152
+
153
+ `@xmachines/play-react` re-exports the full `@xmachines/json-render-react` surface so consumers only need one import:
154
+
155
+ ```ts
156
+ import {
157
+ defineRegistry,
158
+ useBoundProp,
159
+ JSONUIProvider,
160
+ StateProvider,
161
+ ActionProvider,
162
+ VisibilityProvider,
163
+ ValidationProvider,
164
+ Renderer,
165
+ } from "@xmachines/play-react";
333
166
  ```
334
167
 
335
- ## Architecture
336
-
337
- This package implements **Signal-Only Reactivity (INV-05)** and **Passive Infrastructure (INV-04)**:
338
-
339
- 1. **No Business Logic in React:**
340
- - No useState/useReducer for business state
341
- - No useEffect for side effects
342
- - React only triggers renders, doesn't control state
168
+ ## Key Principle
343
169
 
344
- 2. **Signals as Source of Truth:**
345
- - `actor.currentView.get()` provides UI structure
346
- - `actor.currentRoute.get()` provides navigation state
347
- - Components observe signals via `useSignalEffect`
170
+ React state is **never** used for business logic — only for triggering React's render cycle. Signals (`@xmachines/play-signals`) are the source of truth. `PlayUIProvider` passively observes actor signals via `useSignalEffect` and re-renders when the current view changes. Rapid signal updates are batched via microtasks to prevent unnecessary React renders.
348
171
 
349
- 3. **Event Forwarding:**
350
- - Components receive `send` function via props
351
- - User actions send events to actor (e.g., `{ type: "auth.login" }`)
352
- - Actor guards validate and process events
172
+ ## Testing
353
173
 
354
- 4. **Microtask Batching:**
355
- - `Signal.subtle.Watcher` coalesces rapid signal changes
356
- - Prevents React thrashing from multiple signal updates
357
- - Single React render per microtask batch
174
+ Run unit tests (jsdom environment):
358
175
 
359
- 5. **Explicit Disposal Contract:**
360
- - Component teardown must call watcher `unwatch` in cleanup
361
- - Do not rely on GC-only cleanup
362
-
363
- **Pattern:**
364
-
365
- - Renderer receives actor via props (provider pattern)
366
- - Enables composition with navigation, headers, footers
367
- - Supports multiple renderers in same app
368
-
369
- **Architectural Invariants:**
176
+ ```bash
177
+ pnpm --filter @xmachines/play-react test
178
+ ```
370
179
 
371
- - **Signal-Only Reactivity (INV-05):** No React state for business logic
372
- - **Passive Infrastructure (INV-04):** Components reflect, never decide
180
+ Run tests with coverage:
373
181
 
374
- ## Benefits
182
+ ```bash
183
+ pnpm --filter @xmachines/play-react run test:coverage
184
+ ```
375
185
 
376
- - **Framework Swappable:** Business logic has zero React imports
377
- - **Type Safety:** Props validated against catalog schemas
378
- - **Simple Testing:** Test actors without React renderer
379
- - **Performance:** Microtask batching reduces unnecessary renders
380
- - **Composability:** Renderer prop enables complex layouts ()
186
+ Run browser integration tests (requires Chromium):
381
187
 
382
- ## Related Packages
188
+ ```bash
189
+ pnpm --filter @xmachines/play-react run test:browser
190
+ ```
383
191
 
384
- - **[@xmachines/play-xstate](../play-xstate/README.md)** - XState adapter providing actors
385
- - **[@xmachines/play-catalog](../play-catalog/README.md)** - UI schema validation
386
- - **[@xmachines/play-tanstack-react-router](../play-tanstack-react-router/README.md)** - TanStack Router integration
387
- - **[@xmachines/play-actor](../play-actor/README.md)** - Actor base
388
- - **[@xmachines/play-signals](../play-signals/README.md)** - TC39 Signals primitives
192
+ Coverage thresholds: 80% lines, functions, branches, and statements.
389
193
 
390
194
  ## License
391
195
 
392
- Copyright (c) 2016 [Mikael Karon](mailto:mikael@karon.se). All rights reserved.
393
-
394
- This work is licensed under the terms of the MIT license.
395
- For a copy, see <https://opensource.org/licenses/MIT>.
196
+ MIT see [LICENSE](./LICENSE).
396
197
 
397
198
  @xmachines/play-react - React renderer for XMachines Play architecture
398
199
 
399
- Provides a thin React rendering layer that passively observes actor signals
400
- and renders UI components from catalog definitions. This package enables
200
+ Provides a provider-based React rendering layer that passively observes actor signals
201
+ and renders UI components via @xmachines/json-render-react. This package enables
401
202
  framework-swappable architecture where React is just a rendering target
402
203
  that subscribes to signal changes.
403
204
 
404
205
  **Key principle:** React state is NEVER used for business logic—only for
405
206
  triggering React's render cycle. Signals are the source of truth.
406
207
 
208
+ **Standard usage:**
209
+
210
+ ```tsx
211
+ <PlayUIProvider actor={actor} registryResult={registryResult}>
212
+ <PlayRenderer />
213
+ </PlayUIProvider>
214
+ ```
215
+
216
+ **Escape hatch (custom composition):**
217
+
218
+ ```tsx
219
+ <ActorProvider actor={actor} registryResult={registryResult}>
220
+ <JSONUIProvider registry={registryResult.registry}>
221
+ <PlayRenderer />
222
+ </JSONUIProvider>
223
+ </ActorProvider>
224
+ ```
225
+
407
226
  ## Classes
408
227
 
409
228
  - [PlayErrorBoundary](classes/PlayErrorBoundary.md)
410
229
 
411
230
  ## Interfaces
412
231
 
232
+ - [ActionProviderProps](interfaces/ActionProviderProps.md)
233
+ - [ActorProviderProps](interfaces/ActorProviderProps.md)
234
+ - [ComponentContext](interfaces/ComponentContext.md)
235
+ - [JSONUIProviderProps](interfaces/JSONUIProviderProps.md)
413
236
  - [PlayErrorBoundaryProps](interfaces/PlayErrorBoundaryProps.md)
414
237
  - [PlayErrorBoundaryState](interfaces/PlayErrorBoundaryState.md)
415
- - [PlayRendererProps](interfaces/PlayRendererProps.md)
238
+ - [PlayUIProviderProps](interfaces/PlayUIProviderProps.md)
239
+ - [RendererProps](interfaces/RendererProps.md)
240
+ - [StateProviderProps](interfaces/StateProviderProps.md)
241
+ - [ValidationProviderProps](interfaces/ValidationProviderProps.md)
242
+ - [ViewContextValue](interfaces/ViewContextValue.md)
243
+ - [VisibilityProviderProps](interfaces/VisibilityProviderProps.md)
244
+
245
+ ## Type Aliases
246
+
247
+ - [AnyPlayActor](type-aliases/AnyPlayActor.md)
248
+ - [ComponentFn](type-aliases/ComponentFn.md)
249
+ - [RenderErrorHandler](type-aliases/RenderErrorHandler.md)
416
250
 
417
251
  ## Variables
418
252
 
253
+ - [ActorProvider](variables/ActorProvider.md)
419
254
  - [PlayRenderer](variables/PlayRenderer.md)
255
+ - [PlayUIProvider](variables/PlayUIProvider.md)
420
256
 
421
257
  ## Functions
422
258
 
259
+ - [ActionProvider](functions/ActionProvider.md)
260
+ - [defineRegistry](functions/defineRegistry.md)
261
+ - [JSONUIProvider](functions/JSONUIProvider.md)
262
+ - [Renderer](functions/Renderer.md)
263
+ - [StateProvider](functions/StateProvider.md)
264
+ - [useActor](functions/useActor.md)
265
+ - [useBoundProp](functions/useBoundProp.md)
266
+ - [usePlayView](functions/usePlayView.md)
423
267
  - [useSignalEffect](functions/useSignalEffect.md)
268
+ - [ValidationProvider](functions/ValidationProvider.md)
269
+ - [VisibilityProvider](functions/VisibilityProvider.md)
270
+
271
+ ## References
272
+
273
+ ### PlayRendererProps
274
+
275
+ Renames and re-exports [ActorProviderProps](interfaces/ActorProviderProps.md)