@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,473 +1,326 @@
1
- [Documentation](../../README.md) / @xmachines/play-xstate
1
+ [API](../../README.md) / @xmachines/play-xstate
2
2
 
3
3
  # @xmachines/play-xstate
4
4
 
5
- **XState v5 adapter for Play Architecture with signal-driven reactivity and routing**
5
+ > XState v5 adapter for the XMachines Play Architecture — bind state machines to the actor base with signal-driven reactivity and router integration.
6
6
 
7
- Transform declarative state machines into live actors with TC39 Signals and parameter-aware navigation.
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-xstate)
8
9
 
9
- ## Overview
10
+ Part of the [XMachines Play](../../README.md) monorepo.
10
11
 
11
- `@xmachines/play-xstate` provides `definePlayer()`, the primary API for binding XState v5 state machines to the Play Architecture actor base. It enables business logic to control routing and state through guard-enforced transitions with catalog binding, signal lifecycle management, and XState DevTools compatibility.
12
-
13
- Per [RFC Play v1](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md), this package implements:
14
-
15
- - **Actor Authority (INV-01):** State machine guards decide navigation validity
16
- - **Strict Separation (INV-02):** Zero React/framework imports in business logic
17
- - **Signal-Only Reactivity (INV-05):** TC39 Signals expose all state changes
18
-
19
- **Routing:** Supports `meta.route` patterns, `play.route` events with parameters, and route extraction.
12
+ ---
20
13
 
21
14
  ## Installation
22
15
 
23
16
  ```bash
24
- npm install xstate@^5.0.0
25
- npm install @xmachines/play-xstate
17
+ pnpm add @xmachines/play-xstate xstate
26
18
  ```
27
19
 
28
- **Peer dependencies:**
29
-
30
- - `xstate` ^5.0.0 — State machine runtime
20
+ `xstate ^5.31.0` is a peer dependency and must be installed alongside this package.
31
21
 
32
- > `zod` is a direct dependency of `@xmachines/play-xstate` (not a peer). You do not need to install it separately unless you use it in your own catalog schemas.
22
+ ---
33
23
 
34
24
  ## Quick Start
35
25
 
36
26
  ```typescript
37
27
  import { setup } from "xstate";
38
- import { z } from "zod";
39
28
  import { definePlayer } from "@xmachines/play-xstate";
40
- import { defineCatalog } from "@xmachines/play-catalog";
41
29
 
42
- // 1. Define XState machine with meta.route
43
- const machine = setup({
44
- types: {
45
- context: {} as { userId: string },
46
- events: {} as { type: "play.route"; to: string } | { type: "auth.login"; userId: string },
47
- },
48
- guards: {
49
- isLoggedIn: ({ context }) => !!context.userId,
50
- },
51
- }).createMachine({
52
- id: "app",
53
- initial: "login",
54
- context: { userId: "" },
30
+ // 1. Define your XState v5 machine
31
+ const machine = setup({}).createMachine({
32
+ initial: "idle",
55
33
  states: {
56
- login: {
57
- id: "login",
58
- meta: {
59
- route: "/login",
60
- view: { component: "LoginForm" },
61
- },
62
- on: {
63
- "auth.login": {
64
- guard: "isLoggedIn",
65
- target: "dashboard",
66
- },
67
- },
68
- },
69
- dashboard: {
70
- id: "dashboard",
71
- meta: {
72
- route: "/dashboard",
73
- view: { component: "Dashboard", props: { userId: "" } },
74
- },
75
- },
34
+ idle: { meta: { route: "/" } },
35
+ active: { meta: { route: "/active" } },
76
36
  },
77
37
  });
78
38
 
79
- // 2. Define catalog with Zod schemas
80
- const catalog = defineCatalog({
81
- LoginForm: z.object({ error: z.string().optional() }),
82
- Dashboard: z.object({ userId: z.string() }),
83
- });
84
-
85
- // 3. Create player factory
86
- const createPlayer = definePlayer({ machine, catalog });
39
+ // 2. Create a player factory
40
+ const createPlayer = definePlayer({ machine });
87
41
 
88
- // 4. Create and start actor
89
- const actor = createPlayer({ userId: "" });
42
+ // 3. Instantiate and start an actor
43
+ const actor = createPlayer();
90
44
  actor.start();
91
45
 
92
- // 5. Send events (play.route with parameters)
93
- actor.send({ type: "play.route", to: "/login" });
46
+ // 4. Observe TC39 Signal-based reactive state
47
+ console.log(actor.currentRoute.get()); // "/"
48
+ console.log(actor.state.get().value); // "idle"
94
49
 
95
- // 6. Observe signals
96
- console.log(actor.currentRoute.get()); // "/login"
97
- console.log(actor.currentView.get()); // { component: "LoginForm", props: {...} }
50
+ // 5. Send events — machine guards decide transitions
51
+ actor.send({ type: "activate" });
98
52
 
99
- // 7. Cleanup
100
- actor.dispose();
53
+ actor.stop();
101
54
  ```
102
55
 
103
- ## API Reference
56
+ ---
104
57
 
105
- ### definePlayer()
58
+ ## API Summary
106
59
 
107
- Create a player factory from XState machine and catalog:
60
+ ### `definePlayer(config)`
108
61
 
109
- ```typescript
110
- const createPlayer = definePlayer<TMachine, TCatalog>({
111
- machine: AnyStateMachine,
112
- catalog?: Catalog,
113
- options?: PlayerOptions,
114
- }): PlayerFactory;
115
- ```
62
+ Creates a `PlayerFactory` from an XState v5 machine. The factory pattern enables multiple independent actor instances from a single configuration — useful for multi-user scenarios, SSR, or testing.
116
63
 
117
- **Config:**
118
-
119
- - `machine` (required) - XState v5 state machine
120
- - `catalog` (optional) - UI component catalog with Zod schemas
121
- - `options` (optional) - Lifecycle hooks
122
-
123
- **Returns:** Factory function `(input?) => PlayerActor`
64
+ ```typescript
65
+ import { setup } from "xstate";
66
+ import { definePlayer } from "@xmachines/play-xstate";
124
67
 
125
- **Example:**
68
+ const machine = setup({
69
+ types: {
70
+ context: {} as { userId: string },
71
+ input: {} as { userId: string },
72
+ },
73
+ }).createMachine({
74
+ context: ({ input }) => ({ userId: input.userId }),
75
+ initial: "home",
76
+ states: { home: {} },
77
+ });
126
78
 
127
- ```typescript
128
79
  const createPlayer = definePlayer({
129
- machine: authMachine,
130
- catalog: authCatalog,
80
+ machine,
131
81
  options: {
132
- onStart: (actor) => console.log("Started:", actor.id),
133
- onTransition: (actor, prev, next) => {
134
- console.log("Transition:", prev.value, "", next.value);
135
- },
82
+ onStart: (actor) => console.log("started"),
83
+ onStop: (actor) => console.log("stopped"),
84
+ onTransition: (actor, prev, next) => console.log("transitioned"),
85
+ onStateChange: (actor, state) => console.log("state changed"),
86
+ onError: (actor, err) => console.error(err),
87
+ inspect: (event) => console.log(event.type), // handed to XState's actor constructor — enables @statelyai/inspect
136
88
  },
137
89
  });
138
90
 
139
- const actor1 = createPlayer({ userId: "user1" });
140
- const actor2 = createPlayer({ userId: "user2" });
141
- // Multiple independent actor instances
91
+ // Each call returns an independent PlayerActor instance
92
+ const alice = createPlayer({ userId: "alice" });
93
+ const bob = createPlayer({ userId: "bob" });
142
94
  ```
143
95
 
144
- ### PlayerActor
96
+ #### `PlayerFactory` signature
145
97
 
146
- Concrete actor implementing Play signal protocol:
98
+ `input` requiredness mirrors XState's `createActor`: a machine whose input type
99
+ cannot be `undefined` makes the factory's first argument required, so forgetting
100
+ it is a compile error instead of an actor stuck in an error status.
147
101
 
148
- **Signal Properties:**
102
+ ```typescript
103
+ type PlayerFactory<TMachine> =
104
+ undefined extends InputFrom<TMachine>
105
+ ? (
106
+ input?: InputFrom<TMachine>,
107
+ options?: PlayerFactoryResumeOptions<TMachine>,
108
+ ) => PlayerActor<TMachine>
109
+ : (
110
+ input: InputFrom<TMachine>,
111
+ options?: PlayerFactoryResumeOptions<TMachine>,
112
+ ) => PlayerActor<TMachine>;
113
+ ```
149
114
 
150
- - `state: Signal.State<AnyMachineSnapshot>` Reactive snapshot of current state
151
- - `currentRoute: Signal.Computed<string | null>` — Derived navigation path
152
- - `currentView: Signal.State<ViewMetadata | null>` — Current UI structure (updated at state entry)
115
+ #### Restoring from a snapshot
153
116
 
154
- **Actor Properties:**
117
+ ```typescript
118
+ const snapshot = actor.getPersistedSnapshot();
119
+ actor.stop();
155
120
 
156
- - `catalog: Catalog` Component catalog
121
+ // Restore to the exact saved state
122
+ const restored = createPlayer({ userId: "alice" }, { snapshot });
123
+ restored.start();
124
+ console.log(restored.currentRoute.get()); // same route as when saved
125
+ ```
157
126
 
158
- **Constructor:**
127
+ > **Note:** Persist with `getPersistedSnapshot()`, not `getSnapshot()` — it is
128
+ > the form `createActor` accepts, and the only one that round-trips machines
129
+ > with invoked or spawned children.
159
130
 
160
- ```typescript
161
- new PlayerActor(machine, catalog, options, input?)
162
- ```
131
+ ---
132
+
133
+ ### `PlayerActor<TMachine>`
163
134
 
164
- - `input` Typed as `InputFrom<TMachine>`. Consumers receive compile-time validation against the machine's input schema. Pass initial context values required by the machine.
135
+ Concrete actor class: an XState v5 actor that also exposes TC39 Signal-based reactive signals. Implements both `Routable` and `Viewable` interfaces from `@xmachines/play-actor`.
165
136
 
166
- **Methods:**
137
+ #### Signals
167
138
 
168
- - `start()` Start the actor (must call after creation)
169
- - `stop()` Stop the actor
170
- - `send(event: PlayEvent)` Send event to actor
171
- - `dispose()` Convenience cleanup (calls stop())
139
+ | Signal | Type | Description |
140
+ | -------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
141
+ | `state` | `Signal.State<SnapshotFrom<TMachine>>` | Current XState snapshot; updated on every active transition |
142
+ | `currentRoute` | `Signal.Computed<string \| null>` | Derived URL from active state's `meta.route` template and context |
143
+ | `currentView` | `Signal.State<PlaySpec \| null>` | View spec from active state's `meta.view` metadata; enriched with context params |
144
+ | `initialRoute` | `readonly string \| null` | Machine's initial-state route (fixed at construction; used by router bridges for deep-link vs restore detection) |
172
145
 
173
- **Prop validation modes** (via `PlayerOptions.propValidation`):
146
+ #### Methods
174
147
 
175
- - `"lenient"` (default) — On catalog prop validation failure, calls `onError` hook and renders with unvalidated props
176
- - `"strict"` On catalog prop validation failure, calls `onError` hook and sets `currentView` to `null` (blocks render)
148
+ | Method | Description |
149
+ | --------------- | -------------------------------------------------------------- |
150
+ | `start()` | Start the actor and fire `onStart` hook |
151
+ | `stop()` | Stop the actor, clean up subscriptions, fire `onStop` hook |
152
+ | `send(event)` | Send a typed event to the machine; fires `onTransition` hook |
153
+ | `can(event)` | Returns `true` if the current state can accept the given event |
154
+ | `getSnapshot()` | Returns the current XState snapshot |
155
+ | `dispose()` | Alias for `stop()` |
177
156
 
178
- **Example:**
157
+ #### Signal usage example
179
158
 
180
159
  ```typescript
181
- const actor = createPlayer();
182
- actor.start();
160
+ import { Signal } from "@xmachines/play-signals";
183
161
 
184
- // Observe signals with watcher
185
162
  const watcher = new Signal.subtle.Watcher(() => {
186
163
  queueMicrotask(() => {
187
- const route = actor.currentRoute.get();
188
- console.log("Route changed:", route);
164
+ console.log("Route changed:", actor.currentRoute.get());
189
165
  });
190
166
  });
167
+
191
168
  watcher.watch(actor.currentRoute);
192
- actor.currentRoute.get(); // Initial read
169
+ actor.start();
193
170
  ```
194
171
 
195
- ### Guard Composition
172
+ ---
173
+
174
+ ### Guard utilities
175
+
176
+ > **Deprecated:** the guard helpers wrap XState's own `and()` / `or()` / `not()`
177
+ > combinators without composing with `setup()`-typed guard slots. Use XState's
178
+ > combinators directly; this module will be removed in the next major.
179
+
180
+ Composable guard helpers that wrap XState's built-in `and()`, `or()`, and `not()` for use in machine `setup({ guards })` definitions.
196
181
 
197
182
  ```typescript
183
+ import { setup } from "xstate";
198
184
  import {
199
- composeGuards,
200
- composeGuardsOr,
201
- negateGuard,
202
- hasContext,
203
- eventMatches,
204
- stateMatches,
185
+ composeGuards, // AND logic: all guards must pass
186
+ composeGuardsOr, // OR logic: at least one guard must pass
187
+ negateGuard, // NOT logic: inverts a guard
188
+ hasContext, // guard: context field is present and non-null
189
+ eventMatches, // guard: event type matches a string
190
+ contextFieldMatches, // guard: context field equals a value
205
191
  } from "@xmachines/play-xstate";
206
192
 
207
193
  const machine = setup({
208
194
  guards: {
209
- isLoggedIn: hasContext("userId"),
210
- isAdmin: ({ context }) => context.role === "admin",
195
+ isLoggedIn: ({ context }) => !!context.userId,
196
+ hasAdminRole: ({ context }) => context.role === "admin",
211
197
  },
212
198
  }).createMachine({
213
199
  on: {
214
200
  accessAdmin: {
215
- // Array means AND - all guards must pass
216
- guard: composeGuards(["isLoggedIn", "isAdmin"]),
201
+ guard: composeGuards(["isLoggedIn", "hasAdminRole"]),
217
202
  target: "adminPanel",
218
203
  },
219
- accessPublic: {
220
- // OR composition - any guard passes
221
- guard: composeGuardsOr(["isLoggedIn", ({ event }) => event.type === "guest.access"]),
222
- target: "publicArea",
223
- },
224
- logout: {
225
- // NOT composition
226
- guard: negateGuard("isLoggedIn"),
227
- target: "login",
204
+ accessDashboard: {
205
+ guard: negateGuard("isGuest"),
206
+ target: "dashboard",
228
207
  },
229
208
  },
209
+ // ...
230
210
  });
231
211
  ```
232
212
 
233
- **Helpers:**
213
+ ---
234
214
 
235
- - `hasContext(path: string)` - Check if context property is truthy
236
- - `eventMatches(type: string)` - Check event type
237
- - `stateMatches(value: string)` - Check state value
238
- - `composeGuards(guards: Array)` - AND composition
239
- - `composeGuardsOr(guards: Array)` - OR composition
240
- - `negateGuard(guard)` - NOT composition
215
+ ### Routing utilities
241
216
 
242
- ## Examples
217
+ Helper functions for declarative route configuration in XState machines.
243
218
 
244
- ### Guard Placement Philosophy
219
+ #### `formatPlayRouteTransitions(machineConfig)`
245
220
 
246
- **Guards check if you can BE in a state (state entry), not if you can TAKE an event (event handlers).**
221
+ Crawls machine states with `meta.route` and auto-generates `play.route` event handlers at the root level eliminating boilerplate routing transitions.
247
222
 
248
223
  ```typescript
249
224
  import { setup } from "xstate";
250
- import { definePlayer, formatPlayRouteTransitions } from "@xmachines/play-xstate";
251
- import { defineCatalog } from "@xmachines/play-catalog";
225
+ import { formatPlayRouteTransitions } from "@xmachines/play-xstate";
252
226
 
253
- // Pattern 1: RECOMMENDED - Use formatPlayRouteTransitions utility
254
- const machineConfig = {
227
+ const config = formatPlayRouteTransitions({
255
228
  id: "app",
256
- initial: "home",
257
- context: { isAuthenticated: false },
258
229
  states: {
259
230
  home: {
260
231
  id: "home",
261
- meta: { route: "/", view: { component: "Home" } },
232
+ meta: { route: "/home" },
262
233
  },
263
- dashboard: {
264
- id: "dashboard",
265
- meta: { route: "/dashboard", view: { component: "Dashboard" } },
266
- // Always-guard validates state entry
267
- always: [
268
- {
269
- target: "login",
270
- guard: ({ context }) => !context.isAuthenticated,
271
- },
272
- ],
234
+ profile: {
235
+ id: "profile",
236
+ meta: { route: "/users/:userId" },
273
237
  },
274
- login: {
275
- id: "login",
276
- meta: { route: "/login", view: { component: "Login" } },
277
- },
278
- },
279
- };
280
-
281
- // formatPlayRouteTransitions handles routing infrastructure
282
- const machine = setup({
283
- types: {
284
- events: {} as { type: "play.route"; to: string } | { type: "auth.login" },
285
238
  },
286
- }).createMachine(formatPlayRouteTransitions(machineConfig));
287
-
288
- const catalog = defineCatalog({
289
- Home,
290
- Dashboard,
291
- Login,
292
239
  });
293
240
 
294
- const createPlayer = definePlayer({ machine, catalog });
295
- const actor = createPlayer();
296
- actor.start();
297
-
298
- // Navigation via play.route event
299
- actor.send({ type: "play.route", to: "/dashboard" });
300
- // Guard validates: Can I BE in dashboard state?
301
- // If !isAuthenticated → redirects to login
241
+ // config now includes auto-generated play.route handlers:
242
+ // on: { "play.route": [ { target: ".home", guard: e => e.to === "#home" }, ... ] }
243
+ const machine = setup({}).createMachine(config);
302
244
  ```
303
245
 
304
- **Why this works:**
246
+ > **Note:** Every state with `meta.route` must also have an explicit `id` field; omitting it throws `MissingStateIdError` at machine-definition time.
305
247
 
306
- - `formatPlayRouteTransitions` adds routing infrastructure (event.to → state mapping)
307
- - Always-guards handle business logic (authentication checks)
308
- - Clear separation: routing is infrastructure, guards are business logic
248
+ #### Other routing exports
309
249
 
310
- **Anti-pattern (DON'T DO THIS):**
250
+ | Export | Description |
251
+ | ---------------------------------- | ------------------------------------------------------------------------- |
252
+ | `deriveRoute(meta)` | Extract the route template string from a state's metadata object |
253
+ | `isAbsoluteRoute(route)` | Returns `true` if the route string is an absolute URL path |
254
+ | `buildRouteUrl(template, context)` | Substitute `:param` placeholders in a route template using context values |
311
255
 
312
- ```typescript
313
- // ❌ WRONG - Guard on event checking event properties
314
- on: {
315
- "play.route": {
316
- guard: ({ event }) => event.to === "/dashboard",
317
- target: "dashboard"
318
- }
319
- }
320
- ```
321
-
322
- **Reference:** See `docs/examples/routing-patterns.md` for canonical `formatPlayRouteTransitions` usage with always-guards for authentication.
323
-
324
- ### Lifecycle Hooks
325
-
326
- ```typescript
327
- const createPlayer = definePlayer({
328
- machine,
329
- catalog,
330
- options: {
331
- onStart: (actor) => {
332
- console.log("Actor started:", actor.id);
333
- },
334
- onStop: (actor) => {
335
- console.log("Actor stopped:", actor.id);
336
- },
337
- onTransition: (actor, prev, next) => {
338
- console.log("State change:", {
339
- from: prev.value,
340
- to: next.value,
341
- timestamp: Date.now(),
342
- });
343
- },
344
- onStateChange: (actor, state) => {
345
- // Called on every state update
346
- console.log("Snapshot updated:", state.value);
347
- },
348
- onError: (actor, error) => {
349
- console.error("Actor error:", error);
350
- // Log to monitoring service, show error UI, etc.
351
- },
352
- },
353
- });
354
- ```
256
+ ---
355
257
 
356
- ### XState DevTools Integration
258
+ ## Exported Types
357
259
 
358
260
  ```typescript
359
- import { createBrowserInspector } from "@statelyai/inspect";
360
- import { definePlayer } from "@xmachines/play-xstate";
361
-
362
- const { inspect } = createBrowserInspector();
363
-
364
- const createPlayer = definePlayer({ machine, catalog });
365
- const actor = createPlayer();
366
- actor.start();
367
-
368
- // PlayerActor maintains XState Inspector compatibility
369
- // Inspector displays:
370
- // - State transitions and values
371
- // - Context data
372
- // - Events sent to actor
373
- // - Guard evaluation results
374
-
375
- // Signals accessible via actor properties, not snapshots
376
- console.log(actor.currentRoute.get()); // "/dashboard"
261
+ import type {
262
+ PlayerConfig, // definePlayer() config argument shape
263
+ PlayerOptions, // Lifecycle hooks (onStart, onStop, onTransition, onStateChange, onError) + inspect
264
+ PlayerFactory, // Factory function returned by definePlayer()
265
+ PlayerFactoryResumeOptions, // { snapshot? } for restoring actor state
266
+ Guard, // deprecated with the guard utilities — removed in the next major
267
+ GuardArray, // deprecated with the guard utilities — removed in the next major
268
+ ComposedGuard, // deprecated with the guard utilities — removed in the next major
269
+ RouteMachineConfig, // Minimal machine config accepted by formatPlayRouteTransitions
270
+ RouteStateNode, // Single state node shape used during route crawling
271
+ RouteContext, // Context shape expected by buildRouteUrl ({ params?, query?, basePath?, hash? })
272
+ RouteObject, // Route metadata object shape: { path: string }
273
+ RouteMetadata, // Union: string | RouteObject
274
+ } from "@xmachines/play-xstate";
377
275
  ```
378
276
 
379
- ## Metadata Conventions
277
+ ---
380
278
 
381
- ### Route Metadata
279
+ ## Error Classes
382
280
 
383
- ```typescript
384
- // meta.route marks states as routable
385
- states: {
386
- dashboard: {
387
- id: "dashboard",
388
- meta: {
389
- route: "/dashboard", // URL path - marks state as routable
390
- },
391
- },
392
- }
393
-
394
- // Parameters
395
- meta: {
396
- route: "/profile/:userId", // Required parameter
397
- route: "/settings/:section?", // Optional parameter
398
- }
399
-
400
- // Inheritance
401
- meta: {
402
- route: "/absolute", // Starts with / → doesn't inherit parent route
403
- route: "relative", // Doesn't start with / → inherits parent route
404
- }
405
- ```
406
-
407
- ### View Metadata
281
+ Error classes are exported from the `@xmachines/play-xstate/errors` sub-path to keep the main bundle lean.
408
282
 
409
283
  ```typescript
410
- meta: {
411
- view: {
412
- component: "Dashboard", // Must exist in catalog
413
- props: { userId: "user123" }, // Validated against Zod schema
414
- title: "Dashboard", // Additional metadata
415
- },
416
- }
417
-
418
- // Dynamic props from context
419
- meta: {
420
- view: {
421
- component: "Dashboard",
422
- props: (context) => ({
423
- userId: context.userId,
424
- notifications: context.unreadCount,
425
- }),
426
- },
427
- }
284
+ import {
285
+ MissingRouteParamError, // Required :param absent from context when resolving currentRoute
286
+ MissingQueryContextError, // deprecated: no longer thrown
287
+ MissingStateIdError, // meta.route declared without a state id field
288
+ InvalidMachineError, // PlayerActor constructed with a non-object machine
289
+ InvalidEventError, // actor.send() called with null/undefined/non-object
290
+ ActorThrewNonErrorError, // actor failed with a thrown value that is not an Error
291
+ InvalidRouteMetadataError, // meta.route is neither a string nor { path: string }
292
+ EmptyGuardArrayError, // composeGuards/composeGuardsOr called with empty array
293
+ } from "@xmachines/play-xstate/errors";
428
294
  ```
429
295
 
430
- ## Architecture
296
+ All error classes extend `PlayError` from `@xmachines/play` and carry typed detail fields (`param`, `template`, `combinator`, etc.) for programmatic inspection without message parsing.
431
297
 
432
- This package implements RFC Play v1 requirements:
298
+ ---
433
299
 
434
- **Architectural Invariants:**
300
+ ## Testing
435
301
 
436
- - **Actor Authority (INV-01):** Guards decide navigation validity
437
- - **Strict Separation (INV-02):** Zero framework imports
438
- - **Signal-Only Reactivity (INV-05):** All state via TC39 Signals
439
-
440
- **XState DevTools:** Maintains Inspector compatibility — snapshots remain pure XState format, signals accessible via actor properties.
441
-
442
- **Routing:**
443
-
444
- - `meta.route` property marks states as routable
445
- - `play.route` events support parameters (enhancement)
446
- - Route extraction for URL patterns
302
+ ```bash
303
+ # Run tests for this package in isolation
304
+ pnpm --filter @xmachines/play-xstate test
447
305
 
448
- **Note:** Route parameter extraction uses URLPattern API. See [@xmachines/play-tanstack-react-router browser support](../play-tanstack-react-router/README.md) for polyfill requirements.
306
+ # Watch mode
307
+ pnpm --filter @xmachines/play-xstate run test:watch
308
+ ```
449
309
 
450
- ## Related Packages
310
+ Tests use [Vitest](https://vitest.dev/) and live in `packages/play-xstate/test/`.
451
311
 
452
- - **[@xmachines/play-actor](../play-actor/README.md)** - AbstractActor base class
453
- - **[@xmachines/play-signals](../play-signals/README.md)** - TC39 Signals polyfill
454
- - **[@xmachines/play-catalog](../play-catalog/README.md)** - UI schema validation
455
- - **[@xmachines/play-router](../play-router/README.md)** - Route extraction
456
- - **[@xmachines/play](../play/README.md)** - Protocol types (PlayEvent)
312
+ ---
457
313
 
458
314
  ## License
459
315
 
460
- Copyright (c) 2016 [Mikael Karon](mailto:mikael@karon.se). All rights reserved.
461
-
462
- This work is licensed under the terms of the MIT license.
463
- For a copy, see <https://opensource.org/licenses/MIT>.
316
+ MIT see [LICENSE](LICENSE) for details.
464
317
 
465
318
  @xmachines/play-xstate - XState v5 adapter for Play Architecture
466
319
 
467
320
  Provides definePlayer() API for binding XState state machines to the
468
- actor base with catalog binding, signal lifecycle, and DevTools integration.
321
+ actor base with signal lifecycle and DevTools integration.
469
322
 
470
- Per RFC Play v1, this package implements the Logic Layer adapter that
323
+ Per the Play RFC, this package implements the Logic Layer adapter that
471
324
  transforms declarative machine definitions into live actors with signal-driven
472
325
  reactivity.
473
326
 
@@ -477,36 +330,32 @@ reactivity.
477
330
 
478
331
  ## Interfaces
479
332
 
480
- - [CatalogEntry](interfaces/CatalogEntry.md)
481
333
  - [PlayerConfig](interfaces/PlayerConfig.md)
334
+ - [PlayerFactoryResumeOptions](interfaces/PlayerFactoryResumeOptions.md)
482
335
  - [PlayerOptions](interfaces/PlayerOptions.md)
483
336
  - [RouteContext](interfaces/RouteContext.md)
337
+ - [RouteObject](interfaces/RouteObject.md)
484
338
 
485
339
  ## Type Aliases
486
340
 
487
- - [Catalog](type-aliases/Catalog.md)
488
- - [ComposedGuard](type-aliases/ComposedGuard.md)
489
- - [Guard](type-aliases/Guard.md)
490
- - [GuardArray](type-aliases/GuardArray.md)
341
+ - [~~ComposedGuard~~](type-aliases/ComposedGuard.md)
342
+ - [~~Guard~~](type-aliases/Guard.md)
343
+ - [~~GuardArray~~](type-aliases/GuardArray.md)
491
344
  - [PlayerFactory](type-aliases/PlayerFactory.md)
492
345
  - [RouteMachineConfig](type-aliases/RouteMachineConfig.md)
346
+ - [RouteMetadata](type-aliases/RouteMetadata.md)
493
347
  - [RouteStateNode](type-aliases/RouteStateNode.md)
494
- - [ValidationResult](type-aliases/ValidationResult.md)
495
- - [ViewMergeContext](type-aliases/ViewMergeContext.md)
496
348
 
497
349
  ## Functions
498
350
 
499
351
  - [buildRouteUrl](functions/buildRouteUrl.md)
500
- - [composeGuards](functions/composeGuards.md)
501
- - [composeGuardsOr](functions/composeGuardsOr.md)
352
+ - [~~composeGuards~~](functions/composeGuards.md)
353
+ - [~~composeGuardsOr~~](functions/composeGuardsOr.md)
354
+ - [~~contextFieldMatches~~](functions/contextFieldMatches.md)
502
355
  - [definePlayer](functions/definePlayer.md)
503
356
  - [deriveRoute](functions/deriveRoute.md)
504
- - [eventMatches](functions/eventMatches.md)
357
+ - [~~eventMatches~~](functions/eventMatches.md)
505
358
  - [formatPlayRouteTransitions](functions/formatPlayRouteTransitions.md)
506
- - [hasContext](functions/hasContext.md)
359
+ - [~~hasContext~~](functions/hasContext.md)
507
360
  - [isAbsoluteRoute](functions/isAbsoluteRoute.md)
508
- - [mergeViewProps](functions/mergeViewProps.md)
509
- - [negateGuard](functions/negateGuard.md)
510
- - [stateMatches](functions/stateMatches.md)
511
- - [validateComponentBinding](functions/validateComponentBinding.md)
512
- - [validateViewProps](functions/validateViewProps.md)
361
+ - [~~negateGuard~~](functions/negateGuard.md)