@xmachines/docs 2.0.0-alpha.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/README.md +6 -5
  2. package/api/@xmachines/play/README.md +1 -4
  3. package/api/@xmachines/play/classes/NonNullableError.md +11 -11
  4. package/api/@xmachines/play/classes/PlayError.md +11 -11
  5. package/api/@xmachines/play/functions/assertNonNullable.md +1 -1
  6. package/api/@xmachines/play/type-aliases/PlayEvent.md +4 -4
  7. package/api/@xmachines/play-actor/README.md +81 -26
  8. package/api/@xmachines/play-actor/classes/AbstractActor.md +35 -20
  9. package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +1 -1
  10. package/api/@xmachines/play-actor/functions/composePlayState.md +26 -0
  11. package/api/@xmachines/play-actor/functions/createViewStoreLifecycle.md +21 -0
  12. package/api/@xmachines/play-actor/functions/guardContextWrites.md +41 -0
  13. package/api/@xmachines/play-actor/functions/refreshContextSubtree.md +27 -0
  14. package/api/@xmachines/play-actor/functions/reuseComposedState.md +41 -0
  15. package/api/@xmachines/play-actor/functions/shallowEqualExcept.md +28 -0
  16. package/api/@xmachines/play-actor/functions/toAtomState.md +1 -1
  17. package/api/@xmachines/play-actor/functions/typedSpec.md +23 -26
  18. package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +7 -7
  19. package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +7 -7
  20. package/api/@xmachines/play-actor/interfaces/PlaySpec.md +12 -14
  21. package/api/@xmachines/play-actor/interfaces/ResolveViewStoreOptions.md +11 -0
  22. package/api/@xmachines/play-actor/interfaces/Routable.md +5 -5
  23. package/api/@xmachines/play-actor/interfaces/ViewStoreLifecycle.md +50 -0
  24. package/api/@xmachines/play-actor/interfaces/ViewStoreResolution.md +15 -0
  25. package/api/@xmachines/play-actor/interfaces/Viewable.md +4 -4
  26. package/api/@xmachines/play-actor/variables/CONTEXT_STATE_KEY.md +15 -0
  27. package/api/@xmachines/play-dom/README.md +6 -3
  28. package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
  29. package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
  30. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  31. package/api/@xmachines/play-dom/functions/createValidationRegistry.md +22 -0
  32. package/api/@xmachines/play-dom/functions/defineRegistry.md +5 -5
  33. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +9 -8
  34. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +10 -10
  35. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +2 -0
  36. package/api/@xmachines/play-dom/interfaces/FieldValidationState.md +16 -0
  37. package/api/@xmachines/play-dom/interfaces/MountOptions.md +5 -5
  38. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +12 -12
  39. package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +2 -0
  40. package/api/@xmachines/play-dom/interfaces/ValidationRegistry.md +21 -0
  41. package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +10 -0
  42. package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
  43. package/api/@xmachines/play-dom/variables/schema.md +35 -45
  44. package/api/@xmachines/play-dom-router/README.md +3 -3
  45. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  46. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  47. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +2 -2
  48. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  49. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +16 -16
  50. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +16 -16
  51. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +6 -6
  52. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +8 -8
  53. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +6 -6
  54. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  55. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +3 -3
  56. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +4 -4
  57. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +5 -5
  58. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
  59. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +6 -6
  60. package/api/@xmachines/play-react/README.md +4 -3
  61. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +5 -5
  62. package/api/@xmachines/play-react/functions/defineRegistry.md +5 -5
  63. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  64. package/api/@xmachines/play-react/functions/useFieldValidation.md +31 -0
  65. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  66. package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
  67. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +10 -10
  68. package/api/@xmachines/play-react/interfaces/ComponentContext.md +9 -8
  69. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
  70. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +5 -5
  71. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
  72. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +7 -7
  73. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
  74. package/api/@xmachines/play-react/variables/ActorProvider.md +1 -1
  75. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  76. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  77. package/api/@xmachines/play-react-router/README.md +2 -4
  78. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +4 -4
  79. package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
  80. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
  81. package/api/@xmachines/play-react-router/functions/createRouteMap.md +2 -2
  82. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
  83. package/api/@xmachines/play-react-router/interfaces/PlayActor.md +7 -7
  84. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +8 -8
  85. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +7 -7
  86. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +7 -7
  87. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +4 -4
  88. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +5 -5
  89. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  90. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  91. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
  92. package/api/@xmachines/play-router/README.md +9 -17
  93. package/api/@xmachines/play-router/classes/RouteMap.md +4 -4
  94. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +4 -4
  95. package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +1 -1
  96. package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
  97. package/api/@xmachines/play-router/functions/createRouteMap.md +2 -2
  98. package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +1 -1
  99. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
  100. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +2 -2
  101. package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
  102. package/api/@xmachines/play-router/functions/extractRouteParams.md +1 -1
  103. package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
  104. package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
  105. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
  106. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
  107. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
  108. package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
  109. package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
  110. package/api/@xmachines/play-router/functions/routeExists.md +1 -1
  111. package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
  112. package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
  113. package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
  114. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +6 -6
  115. package/api/@xmachines/play-router/interfaces/LocationLike.md +5 -5
  116. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +5 -7
  117. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +7 -7
  118. package/api/@xmachines/play-router/interfaces/PlayActor.md +7 -7
  119. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +8 -8
  120. package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +5 -5
  121. package/api/@xmachines/play-router/interfaces/RoutableActor.md +6 -6
  122. package/api/@xmachines/play-router/interfaces/RouteInfo.md +10 -10
  123. package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +4 -4
  124. package/api/@xmachines/play-router/interfaces/RouteMapping.md +5 -5
  125. package/api/@xmachines/play-router/interfaces/RouteMatch.md +5 -5
  126. package/api/@xmachines/play-router/interfaces/RouteNode.md +12 -12
  127. package/api/@xmachines/play-router/interfaces/RouteObject.md +4 -4
  128. package/api/@xmachines/play-router/interfaces/RouteTree.md +7 -7
  129. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
  130. package/api/@xmachines/play-router/interfaces/RouterBridge.md +3 -3
  131. package/api/@xmachines/play-router/interfaces/WindowLike.md +3 -3
  132. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
  133. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
  134. package/api/@xmachines/play-signals/README.md +2 -2
  135. package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
  136. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +4 -4
  137. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
  138. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +4 -4
  139. package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
  140. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
  141. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
  142. package/api/@xmachines/play-solid/README.md +2 -2
  143. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  144. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  145. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +10 -10
  146. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
  147. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +7 -7
  148. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
  149. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  150. package/api/@xmachines/play-solid/variables/ActorProvider.md +1 -1
  151. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  152. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  153. package/api/@xmachines/play-solid-router/README.md +7 -7
  154. package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
  155. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +5 -5
  156. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
  157. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +2 -2
  158. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +35 -20
  159. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +7 -7
  160. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +8 -8
  161. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +7 -7
  162. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +7 -7
  163. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +4 -4
  164. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +5 -5
  165. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  166. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  167. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
  168. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  169. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
  170. package/api/@xmachines/play-svelte/README.md +22 -4
  171. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  172. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  173. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  174. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  175. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +10 -10
  176. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +6 -6
  177. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +13 -13
  178. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +7 -7
  179. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
  180. package/api/@xmachines/play-svelte-spa-router/README.md +19 -28
  181. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
  182. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  183. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +2 -2
  184. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +6 -6
  185. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +8 -8
  186. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +4 -4
  187. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +5 -5
  188. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  189. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  190. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
  191. package/api/@xmachines/play-sveltekit-router/README.md +7 -7
  192. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
  193. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  194. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +2 -2
  195. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +6 -6
  196. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +5 -5
  197. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +8 -8
  198. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +4 -4
  199. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +5 -5
  200. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  201. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
  202. package/api/@xmachines/play-tanstack-react-router/README.md +3 -3
  203. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
  204. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +4 -4
  205. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
  206. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +2 -2
  207. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  208. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +2 -2
  209. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +7 -7
  210. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +8 -8
  211. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +7 -7
  212. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +7 -7
  213. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +4 -4
  214. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +5 -5
  215. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +5 -5
  216. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  217. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  218. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  219. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
  220. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
  221. package/api/@xmachines/play-tanstack-router/README.md +2 -0
  222. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +2 -2
  223. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  224. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +4 -4
  225. package/api/@xmachines/play-tanstack-solid-router/README.md +7 -7
  226. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
  227. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +5 -5
  228. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
  229. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +2 -2
  230. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +7 -7
  231. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +8 -8
  232. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +7 -7
  233. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +7 -7
  234. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +4 -4
  235. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +5 -5
  236. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  237. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  238. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
  239. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  240. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +4 -4
  241. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
  242. package/api/@xmachines/play-vue/README.md +3 -5
  243. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  244. package/api/@xmachines/play-vue/functions/getPlayViewContext.md +1 -1
  245. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  246. package/api/@xmachines/play-vue/functions/useFieldValidation.md +31 -0
  247. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +7 -7
  248. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +10 -10
  249. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +7 -7
  250. package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +1 -1
  251. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
  252. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  253. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  254. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +4 -4
  255. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  256. package/api/@xmachines/play-vue-router/README.md +3 -3
  257. package/api/@xmachines/play-vue-router/classes/RouteMap.md +4 -4
  258. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +5 -5
  259. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +2 -2
  260. package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +7 -7
  261. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +8 -8
  262. package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +4 -4
  263. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +5 -5
  264. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
  265. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
  266. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
  267. package/api/@xmachines/play-xstate/README.md +100 -111
  268. package/api/@xmachines/play-xstate/classes/PlayerActor.md +81 -58
  269. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +5 -12
  270. package/api/@xmachines/play-xstate/functions/composeGuards.md +23 -24
  271. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +22 -17
  272. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +7 -2
  273. package/api/@xmachines/play-xstate/functions/definePlayer.md +3 -3
  274. package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
  275. package/api/@xmachines/play-xstate/functions/eventMatches.md +7 -2
  276. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +11 -45
  277. package/api/@xmachines/play-xstate/functions/hasContext.md +7 -4
  278. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
  279. package/api/@xmachines/play-xstate/functions/negateGuard.md +21 -16
  280. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +5 -5
  281. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +4 -4
  282. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +10 -11
  283. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +7 -7
  284. package/api/@xmachines/play-xstate/interfaces/RouteObject.md +4 -4
  285. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +9 -25
  286. package/api/@xmachines/play-xstate/type-aliases/Guard.md +7 -5
  287. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +7 -5
  288. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +11 -15
  289. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +6 -13
  290. package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +1 -1
  291. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -16
  292. package/api/@xmachines/shared/README.md +2 -2
  293. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
  294. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  295. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +12 -7
  296. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  297. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +9 -4
  298. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  299. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
  300. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +6 -6
  301. package/contributing/architecture.md +27 -28
  302. package/contributing/configuration.md +10 -10
  303. package/contributing/deployment.md +51 -30
  304. package/contributing/development.md +62 -21
  305. package/contributing/testing.md +36 -14
  306. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
  307. package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
  308. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  309. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  310. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  311. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  312. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  313. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  314. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  315. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  316. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  317. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  318. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  319. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  320. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  321. package/examples/@xmachines/play-react-demo/functions/App.md +1 -1
  322. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  323. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  324. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  325. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  326. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
  327. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  328. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  329. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  330. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  331. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  332. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  333. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  334. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  335. package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
  336. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  337. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  338. package/examples/@xmachines/play-solid-demo/functions/App.md +1 -1
  339. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  340. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  341. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  342. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  343. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
  344. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  345. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  346. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  347. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  348. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  349. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  350. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  351. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  352. package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
  353. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  354. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
  355. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
  356. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +1 -1
  357. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
  358. package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
  359. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +1 -1
  360. package/examples/README.md +4 -1
  361. package/examples/basic-state-machine.md +24 -24
  362. package/examples/form-validation.md +110 -121
  363. package/examples/multi-router-integration.md +0 -2
  364. package/examples/routing-patterns.md +60 -94
  365. package/examples/traffic-light.md +57 -48
  366. package/guides/README.md +6 -2
  367. package/guides/actor-model.md +1 -1
  368. package/guides/getting-started.md +89 -90
  369. package/guides/inspector.md +197 -0
  370. package/guides/state-machines.md +55 -69
  371. package/package.json +10 -7
  372. package/rfc/play.md +15 -6
  373. package/api/@xmachines/play-xstate/functions/createRoutedMachine.md +0 -87
  374. package/api/@xmachines/play-xstate/type-aliases/PlayRoutePayload.md +0 -30
  375. package/api/@xmachines/play-xstate/type-aliases/SetupLike.md +0 -33
  376. package/api/@xmachines/play-xstate/type-aliases/WithOptional.md +0 -31
  377. package/api/@xmachines/play-xstate/variables/emptyEventSchema.md +0 -37
  378. package/api/@xmachines/play-xstate/variables/playMetaSchema.md +0 -40
  379. package/api/@xmachines/play-xstate/variables/playRouteEventSchema.md +0 -9
@@ -2,14 +2,16 @@
2
2
 
3
3
  # Class: PlayerActor\<TMachine\>
4
4
 
5
- Defined in: [packages/play-xstate/src/player-actor.ts:362](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L362)
5
+ Defined in: [packages/play-xstate/src/player-actor.ts:190](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L190)
6
6
 
7
7
  Concrete XState actor implementing Play Architecture signal protocol
8
8
 
9
- Extends [@xmachines/play-actor!AbstractActor](../../play-actor/classes/AbstractActor.md) to provide XState v6 integration
10
- while maintaining ecosystem compatibility (XState inspection, devtools). This actor
11
- wraps an internal XState actor and exposes TC39 Signal-based reactive state for
12
- Infrastructure observation.
9
+ Extends [@xmachines/play-actor!AbstractActor](../../play-actor/classes/AbstractActor.md) and so XState's own `Actor` —
10
+ to provide XState v5 integration while maintaining ecosystem compatibility (XState
11
+ inspection, devtools). The machine is handed to the base constructor, so a
12
+ `PlayerActor` **is** the XState actor rather than a wrapper around one: everything
13
+ XState's `Actor` exposes operates on this instance's own state, and the class adds
14
+ TC39 Signal-based reactive state for Infrastructure observation on top.
13
15
 
14
16
  **Capabilities:** Implements both [@xmachines/play-actor!Routable](../../play-actor/interfaces/Routable.md) and
15
17
  [@xmachines/play-actor!Viewable](../../play-actor/interfaces/Viewable.md) interfaces, providing routing and view
@@ -32,7 +34,14 @@ const machine = setup({}).createMachine({
32
34
  initial: "idle",
33
35
  states: {
34
36
  idle: {
35
- meta: { route: "/", view: { component: "HomePage" } },
37
+ meta: {
38
+ route: "/",
39
+ // A view spec needs `root` and `elements` — other shapes derive null.
40
+ view: {
41
+ root: "home",
42
+ elements: { home: { type: "HomePage", props: {}, children: [] } },
43
+ },
44
+ },
36
45
  },
37
46
  },
38
47
  });
@@ -43,7 +52,7 @@ actor.start();
43
52
 
44
53
  // Observe signals
45
54
  console.log(actor.currentRoute.get()); // '/'
46
- console.log(actor.currentView.get()); // { component: 'HomePage' }
55
+ console.log(actor.currentView.get()?.root); // 'home'
47
56
  ```
48
57
 
49
58
  Signal lifecycle with watchers
@@ -89,7 +98,7 @@ cached and updated at state entry, not computed on every read.
89
98
 
90
99
  | Type Parameter | Description |
91
100
  | ---------------------------------------------------------------------------------------------- | ---------------------------- |
92
- | `TMachine` _extends_ [`AnyStateMachine`](https://www.jsdocs.io/package/xstate#AnyStateMachine) | XState v6 state machine type |
101
+ | `TMachine` _extends_ [`AnyStateMachine`](https://www.jsdocs.io/package/xstate#AnyStateMachine) | XState v5 state machine type |
93
102
 
94
103
  ## Implements
95
104
 
@@ -108,16 +117,16 @@ new PlayerActor<TMachine>(
108
117
  restoredSnapshot?): PlayerActor<TMachine>;
109
118
  ```
110
119
 
111
- Defined in: [packages/play-xstate/src/player-actor.ts:459](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L459)
120
+ Defined in: [packages/play-xstate/src/player-actor.ts:342](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L342)
112
121
 
113
122
  #### Parameters
114
123
 
115
- | Parameter | Type |
116
- | ------------------- | --------------------------------------------------------------------------------- |
117
- | `machine` | `TMachine` |
118
- | `options` | [`PlayerOptions`](../interfaces/PlayerOptions.md)\<`TMachine`\> |
119
- | `input?` | [`InputFrom`](https://www.jsdocs.io/package/xstate#InputFrom)\<`TMachine`\> |
120
- | `restoredSnapshot?` | [`SnapshotFrom`](https://www.jsdocs.io/package/xstate#SnapshotFrom)\<`TMachine`\> |
124
+ | Parameter | Type |
125
+ | ------------------- | --------------------------------------------------------------------------- |
126
+ | `machine` | `TMachine` |
127
+ | `options` | [`PlayerOptions`](../interfaces/PlayerOptions.md)\<`TMachine`\> |
128
+ | `input?` | [`InputFrom`](https://www.jsdocs.io/package/xstate#InputFrom)\<`TMachine`\> |
129
+ | `restoredSnapshot?` | [`Snapshot`](https://www.jsdocs.io/package/xstate#Snapshot)\<`unknown`\> |
121
130
 
122
131
  #### Returns
123
132
 
@@ -129,23 +138,22 @@ Defined in: [packages/play-xstate/src/player-actor.ts:459](https://gitlab.com/xm
129
138
 
130
139
  ## Properties
131
140
 
132
- | Property | Modifier | Type | Description | Overrides | Inherited from | Defined in |
133
- | ------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
134
- | <a id="property-_parent"></a> `_parent?` | `public` | `AnyActor` | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`_parent`](../../play-actor/classes/AbstractActor.md#property-_parent) | - |
135
- | <a id="property-clock"></a> `clock` | `public` | [`Clock`](https://www.jsdocs.io/package/xstate#Clock) | The clock that is responsible for setting and clearing timeouts, such as delayed events and transitions. | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`clock`](../../play-actor/classes/AbstractActor.md#property-clock) | - |
136
- | <a id="property-currentroute"></a> `currentRoute` | `public` | [`Computed`](../../play-signals/namespaces/Signal/classes/Computed.md)\<`string` \| `null`\> | A TC39 `Signal.Computed` that derives the current URL path from the active machine state's `meta.route` template and the actor's context. Returns `null` when the current state has no `meta.route`, or when the route template cannot be fully resolved (e.g. a required parameter is absent from context). **Throws** When a required `:param` placeholder in the route template has no matching value in the actor's context. Import the class from `@xmachines/play-xstate/errors`. **Example** `// Returns "/profile/alice" when context.userId === "alice" const route = actor.currentRoute.get();` | - | - | [packages/play-xstate/src/player-actor.ts:413](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L413) |
137
- | <a id="property-currentview"></a> `currentView` | `public` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<[`PlaySpec`](../../play-actor/interfaces/PlaySpec.md) \| `null`\> | Reactive signal containing the current view spec derived from the active state's `meta.view` metadata. Emits a **fresh object reference** whenever the rendered view actually changes — a different state's view, or a param/context change that alters the resolved spec (including `reenter: true` re-entries with new params). Snapshots that do not change the rendered view (e.g. context-only assigns) keep the previous reference so downstream providers do not remount the UI on every event. The emitted `PlaySpec` has its element `props` enriched with `context.params` before emission — URL path parameters (e.g. `:section?`) flow into component props automatically. See `mergeRouteParamsIntoProps` for the merge priority rules. Returns `null` when the current state has no `meta.view` metadata. **Example** `const view = actor.currentView.get(); if (view) { console.log(view.root); // e.g. "root" console.log(view.elements); // @xmachines/json-render-core Spec elements }` | - | - | [packages/play-xstate/src/player-actor.ts:457](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L457) |
138
- | <a id="property-id"></a> `id` | `public` | `string` | The unique identifier for this actor relative to its parent. | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`id`](../../play-actor/classes/AbstractActor.md#property-id) | - |
139
- | <a id="property-initialroute"></a> `initialRoute` | `readonly` | `string` \| `null` | The route derived from the machine's initial state — fixed at construction, never changes even when the actor is restored from a snapshot. Router bridges compare this against the browser URL to distinguish a deep-link (non-initial URL → router wins) from a restore (initial URL + actor at a different restored route → actor wins). Derived statically from the machine definition via `deriveInitialRoute` (XState's pure `initialTransition` helper): the initial state chain and its `meta.route` templates are fixed at machine definition time, while `:param` substitution uses the machine's real initial context for this actor's `input`. No extra actor is ever created, and a restored snapshot never influences the value — it is always the machine's **default** initial route. | - | - | [packages/play-xstate/src/player-actor.ts:430](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L430) |
140
- | <a id="property-logic"></a> `logic` | `public` | [`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic) | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`logic`](../../play-actor/classes/AbstractActor.md#property-logic) | - |
141
- | <a id="property-options"></a> `options` | `public` | `Readonly`\<[`ActorOptions`](https://www.jsdocs.io/package/xstate#ActorOptions)\<`TLogic`\>\> | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`options`](../../play-actor/classes/AbstractActor.md#property-options) | - |
142
- | <a id="property-ref"></a> `ref` | `public` | [`ActorRef`](https://www.jsdocs.io/package/xstate#ActorRef)\<`any`, `any`, [`EventObject`](https://www.jsdocs.io/package/xstate#EventObject), `any`\> | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`ref`](../../play-actor/classes/AbstractActor.md#property-ref) | - |
143
- | <a id="property-registrykey"></a> `registryKey` | `public` | `string` \| `undefined` | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`registryKey`](../../play-actor/classes/AbstractActor.md#property-registrykey) | - |
144
- | <a id="property-sessionid"></a> `sessionId` | `public` | `string` | The globally unique process ID for this invocation. | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`sessionId`](../../play-actor/classes/AbstractActor.md#property-sessionid) | - |
145
- | <a id="property-src"></a> `src` | `public` | \| `string` \| [`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic) | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`src`](../../play-actor/classes/AbstractActor.md#property-src) | - |
146
- | <a id="property-state"></a> `state` | `public` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<[`SnapshotFrom`](https://www.jsdocs.io/package/xstate#SnapshotFrom)\<`TMachine`\>\> | Reactive snapshot of current actor state. Infrastructure observes this signal to react to state changes without directly coupling to the actor's internal state machine implementation. | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`state`](../../play-actor/classes/AbstractActor.md#property-state) | - | [packages/play-xstate/src/player-actor.ts:375](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L375) |
147
- | <a id="property-system"></a> `system` | `public` | [`AnyActorSystem`](https://www.jsdocs.io/package/xstate#AnyActorSystem) | The system to which this actor belongs. | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`system`](../../play-actor/classes/AbstractActor.md#property-system) | - |
148
- | <a id="property-trigger"></a> `trigger` | `public` | `ActorTrigger`\<`SendableEventFromLogic`\<`TLogic`\>\> | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`trigger`](../../play-actor/classes/AbstractActor.md#property-trigger) | - |
141
+ | Property | Modifier | Type | Description | Overrides | Inherited from | Defined in |
142
+ | ------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
143
+ | <a id="property-_parent"></a> `_parent?` | `public` | [`AnyActorRef`](https://www.jsdocs.io/package/xstate#AnyActorRef) | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`_parent`](../../play-actor/classes/AbstractActor.md#property-_parent) | - |
144
+ | <a id="property-clock"></a> `clock` | `public` | [`Clock`](https://www.jsdocs.io/package/xstate#Clock) | The clock that is responsible for setting and clearing timeouts, such as delayed events and transitions. | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`clock`](../../play-actor/classes/AbstractActor.md#property-clock) | - |
145
+ | <a id="property-currentroute"></a> `currentRoute` | `public` | [`Computed`](../../play-signals/namespaces/Signal/classes/Computed.md)\<`string` \| `null`\> | A TC39 `Signal.Computed` that derives the current URL path from the active machine state's `meta.route` template and the actor's context. Returns `null` when the current state has no `meta.route`, or when the route template cannot be fully resolved a required `:param` absent from context is caught internally (`MissingRouteParamError` never escapes `get()`): the condition is transient mid-transition and the signal recomputes on the next snapshot. **Example** `// Returns "/profile/alice" when context.params.userId === "alice", // and null while the param is still missing. const route = actor.currentRoute.get();` | - | - | [packages/play-xstate/src/player-actor.ts:289](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L289) |
146
+ | <a id="property-currentview"></a> `currentView` | `readonly` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<[`PlaySpec`](../../play-actor/interfaces/PlaySpec.md) \| `null`\> | Reactive signal containing the current view spec derived from the active state's `meta.view` metadata. Emits a **fresh object reference** whenever the rendered view actually changes — a different state's view, or a param/context change that alters the resolved spec (including `reenter: true` re-entries with new params). Snapshots that do not change the rendered view (e.g. context-only assigns) keep the previous reference so downstream providers do not remount the UI on every event. The emitted `PlaySpec` carries the machine's context in its composed `state` under the read-only `/context` subtree, so specs read context — URL params included through the ordinary state grammar (`{ $state: "/context/params/section" }`). See `@xmachines/play-actor`'s context-projection module for the full contract. Returns `null` when the current state has no `meta.view` metadata. Two states declaring separate but structurally identical `meta.view` literals emit distinct references on a transition between them (a provider remount); hoist the shared literal into one `typedSpec` constant to deduplicate by identity. **Example** `const view = actor.currentView.get(); if (view) { console.log(view.root); // e.g. "root" console.log(view.elements); // @xmachines/json-render-core Spec elements }` | - | - | [packages/play-xstate/src/player-actor.ts:340](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L340) |
147
+ | <a id="property-id"></a> `id` | `public` | `string` | The unique identifier for this actor relative to its parent. | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`id`](../../play-actor/classes/AbstractActor.md#property-id) | - |
148
+ | <a id="property-initialroute"></a> `initialRoute` | `readonly` | `string` \| `null` | The route derived from the machine's initial state — fixed at construction, never changes even when the actor is restored from a snapshot. Router bridges compare this against the browser URL to distinguish a deep-link (non-initial URL → router wins) from a restore (initial URL + actor at a different restored route → actor wins). Derived statically from the machine definition via `deriveInitialRoute` (XState's pure `initialTransition` helper): the initial state chain and its `meta.route` templates are fixed at machine definition time, while `:param` substitution uses the machine's real initial context for this actor's `input`. No extra actor is ever created, and a restored snapshot never influences the value — it is always the machine's **default** initial route. | - | - | [packages/play-xstate/src/player-actor.ts:306](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L306) |
149
+ | <a id="property-logic"></a> `logic` | `public` | [`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic) | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`logic`](../../play-actor/classes/AbstractActor.md#property-logic) | - |
150
+ | <a id="property-options"></a> `options` | `public` | `Readonly`\<[`ActorOptions`](https://www.jsdocs.io/package/xstate#ActorOptions)\<`TLogic`\>\> | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`options`](../../play-actor/classes/AbstractActor.md#property-options) | - |
151
+ | <a id="property-ref"></a> `ref` | `public` | [`ActorRef`](https://www.jsdocs.io/package/xstate#ActorRef)\<`any`, `any`, `any`\> | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`ref`](../../play-actor/classes/AbstractActor.md#property-ref) | - |
152
+ | <a id="property-sessionid"></a> `sessionId` | `public` | `string` | The globally unique process ID for this invocation. | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`sessionId`](../../play-actor/classes/AbstractActor.md#property-sessionid) | - |
153
+ | <a id="property-src"></a> `src` | `public` | \| `string` \| [`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic) | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`src`](../../play-actor/classes/AbstractActor.md#property-src) | - |
154
+ | <a id="property-state"></a> `state` | `public` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<`ReturnType`\<`TMachine`\[`"transition"`\]\>\> | Reactive snapshot of current actor state. Infrastructure observes this signal to react to state changes without directly coupling to the actor's internal state machine implementation. | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`state`](../../play-actor/classes/AbstractActor.md#property-state) | - | [packages/play-xstate/src/player-actor.ts:249](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L249) |
155
+ | <a id="property-system"></a> `system` | `public` | [`AnyActorSystem`](https://www.jsdocs.io/package/xstate#AnyActorSystem) | The system to which this actor belongs. | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`system`](../../play-actor/classes/AbstractActor.md#property-system) | - |
156
+ | <a id="property-systemid"></a> `systemId` | `public` | `string` \| `undefined` | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`systemId`](../../play-actor/classes/AbstractActor.md#property-systemid) | - |
149
157
 
150
158
  ## Methods
151
159
 
@@ -173,12 +181,12 @@ Defined in: `xstate`
173
181
  can(event): boolean;
174
182
  ```
175
183
 
176
- Defined in: [packages/play-xstate/src/player-actor.ts:388](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L388)
184
+ Defined in: [packages/play-xstate/src/player-actor.ts:262](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L262)
177
185
 
178
186
  Returns whether the actor's current state can accept the given event.
179
187
 
180
188
  Typed to the machine's event union — passing an unknown event type is a
181
- compile error. Delegates to the underlying XState actor's snapshot.
189
+ compile error. Evaluated against the current snapshot signal.
182
190
 
183
191
  #### Parameters
184
192
 
@@ -204,11 +212,9 @@ if (actor.can({ type: "auth.logout" })) { ... }
204
212
  dispose(): void;
205
213
  ```
206
214
 
207
- Defined in: [packages/play-xstate/src/player-actor.ts:731](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L731)
215
+ Defined in: [packages/play-xstate/src/player-actor.ts:722](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L722)
208
216
 
209
- Convenience dispose method for cleanup
210
-
211
- Per CONTEXT.md: "Both .dispose() convenience method and manual machine.stop()"
217
+ Convenience dispose method for cleanup — an alias for [stop](#stop).
212
218
 
213
219
  #### Returns
214
220
 
@@ -219,16 +225,22 @@ Per CONTEXT.md: "Both .dispose() convenience method and manual machine.stop()"
219
225
  ### getPersistedSnapshot()
220
226
 
221
227
  ```ts
222
- getPersistedSnapshot(): Snapshot<unknown>;
228
+ getPersistedSnapshot(options?): Snapshot<unknown>;
223
229
  ```
224
230
 
225
- Defined in: [packages/play-xstate/src/player-actor.ts:689](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L689)
231
+ Defined in: [packages/play-xstate/src/player-actor.ts:671](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L671)
226
232
 
227
- Get the persisted snapshot of the wrapped XState actor.
233
+ Get this actor's persisted snapshot.
228
234
 
229
235
  Suitable for serialization and later restoration via the factory's
230
236
  `restore.snapshot` option.
231
237
 
238
+ #### Parameters
239
+
240
+ | Parameter | Type |
241
+ | ---------- | --------- |
242
+ | `options?` | `unknown` |
243
+
232
244
  #### Returns
233
245
 
234
246
  [`Snapshot`](https://www.jsdocs.io/package/xstate#Snapshot)\<`unknown`\>
@@ -245,7 +257,7 @@ Suitable for serialization and later restoration via the factory's
245
257
  getSnapshot(): SnapshotFrom<TMachine>;
246
258
  ```
247
259
 
248
- Defined in: [packages/play-xstate/src/player-actor.ts:613](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L613)
260
+ Defined in: [packages/play-xstate/src/player-actor.ts:569](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L569)
249
261
 
250
262
  Get current snapshot
251
263
 
@@ -265,15 +277,15 @@ Get current snapshot
265
277
  on<TType>(type, handler): Subscription;
266
278
  ```
267
279
 
268
- Defined in: [packages/play-xstate/src/player-actor.ts:674](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L674)
280
+ Defined in: [packages/play-xstate/src/player-actor.ts:656](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L656)
269
281
 
270
- Listen for events emitted by the wrapped XState actor via the `emit` action.
282
+ Listen for events this actor emits via the `emit` action.
271
283
 
272
284
  #### Type Parameters
273
285
 
274
- | Type Parameter |
275
- | -------------------------- |
276
- | `TType` _extends_ `string` |
286
+ | Type Parameter |
287
+ | ----------------------- |
288
+ | `TType` _extends_ `any` |
277
289
 
278
290
  #### Parameters
279
291
 
@@ -331,9 +343,9 @@ Defined in: `xstate`
331
343
  send(event): void;
332
344
  ```
333
345
 
334
- Defined in: [packages/play-xstate/src/player-actor.ts:590](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L590)
346
+ Defined in: [packages/play-xstate/src/player-actor.ts:531](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L531)
335
347
 
336
- Send an event to the underlying XState actor.
348
+ Send an event to this actor.
337
349
 
338
350
  The actor's state machine guards decide whether the event causes a transition.
339
351
  Pass any event from the machine's event union — domain events, routing events, etc.
@@ -375,11 +387,15 @@ actor.send({ type: "play.route", to: "#home" });
375
387
  start(): this;
376
388
  ```
377
389
 
378
- Defined in: [packages/play-xstate/src/player-actor.ts:545](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L545)
390
+ Defined in: [packages/play-xstate/src/player-actor.ts:459](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L459)
379
391
 
380
- Start the actor
392
+ Start the actor.
381
393
 
382
- Per RESEARCH.md Pitfall 1: Always call start() after creation
394
+ Fires `onStart` on each real start every transition from not-running to
395
+ running, including a start after a stop, which XState allows (its own
396
+ `start()` bails only while the actor is already RUNNING). A repeated call
397
+ while running does not re-fire it, so a defensive double mount does not
398
+ re-run `onStart` side effects for one actual start.
383
399
 
384
400
  #### Returns
385
401
 
@@ -397,9 +413,16 @@ Per RESEARCH.md Pitfall 1: Always call start() after creation
397
413
  stop(): this;
398
414
  ```
399
415
 
400
- Defined in: [packages/play-xstate/src/player-actor.ts:559](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L559)
416
+ Defined in: [packages/play-xstate/src/player-actor.ts:489](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L489)
417
+
418
+ Stop the actor and clean up.
401
419
 
402
- Stop the actor and cleanup
420
+ Fires `onStop` only when the actor was actually running — mirroring
421
+ XState, where stopping a never-started or already-stopped actor is a
422
+ no-op with zero teardown — so paired cleanup never runs twice, nor
423
+ against resources `onStart` never acquired. Stopping does not close the
424
+ actor for good: a later `start()` is a fresh lifecycle and fires
425
+ `onStart` again.
403
426
 
404
427
  #### Returns
405
428
 
@@ -419,9 +442,9 @@ Stop the actor and cleanup
419
442
  subscribe(observer): Subscription;
420
443
  ```
421
444
 
422
- Defined in: [packages/play-xstate/src/player-actor.ts:635](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L635)
445
+ Defined in: [packages/play-xstate/src/player-actor.ts:593](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L593)
423
446
 
424
- Subscribe to snapshot updates from the wrapped XState actor.
447
+ Subscribe to this actor's snapshot updates.
425
448
 
426
449
  Accepts an observer object, exactly like XState's `Actor.subscribe`.
427
450
 
@@ -450,9 +473,9 @@ subscribe(
450
473
  completeListener?): Subscription;
451
474
  ```
452
475
 
453
- Defined in: [packages/play-xstate/src/player-actor.ts:646](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/player-actor.ts#L646)
476
+ Defined in: [packages/play-xstate/src/player-actor.ts:604](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L604)
454
477
 
455
- Subscribe to snapshot updates from the wrapped XState actor.
478
+ Subscribe to this actor's snapshot updates.
456
479
 
457
480
  Accepts listener functions, exactly like XState's `Actor.subscribe`.
458
481
 
@@ -6,7 +6,7 @@
6
6
  function buildRouteUrl(routeTemplate, context?): string;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-xstate/src/routing/build-url.ts:40](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/routing/build-url.ts#L40)
9
+ Defined in: [packages/play-xstate/src/routing/build-url.ts:35](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/routing/build-url.ts#L35)
10
10
 
11
11
  Build a full URL from a route template and the actor's context.
12
12
 
@@ -19,10 +19,10 @@ error rather than silently resolving to `undefined`.
19
19
 
20
20
  ## Parameters
21
21
 
22
- | Parameter | Type | Description |
23
- | --------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
24
- | `routeTemplate` | `string` | Route path template, e.g. `"/profile/:userId"` or `"/settings/:section?"`. |
25
- | `context` | [`RouteContext`](../interfaces/RouteContext.md) | Actor context object. Route parameters must be in `context.params`; flat context fields are not inspected. **Must include a `query` field** (use `query: {}` when no query parameters are needed). Omitting `query` when `params` is present throws `MissingQueryContextError` to prevent silent query-string loss. |
22
+ | Parameter | Type | Description |
23
+ | --------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
24
+ | `routeTemplate` | `string` | Route path template, e.g. `"/profile/:userId"` or `"/settings/:section?"`. |
25
+ | `context` | [`RouteContext`](../interfaces/RouteContext.md) | Actor context object. Route parameters must be in `context.params`; flat context fields are not inspected. A missing `query` field builds a query-less URL, exactly like `query: {}`. |
26
26
 
27
27
  ## Returns
28
28
 
@@ -36,13 +36,6 @@ When a **required** `:param` placeholder has no
36
36
  matching value in context. Optional parameters (`:param?`) are silently omitted
37
37
  when missing. Import the class from `@xmachines/play-xstate/errors`.
38
38
 
39
- ## Throws
40
-
41
- When the context has a `params` field but no
42
- `query` field. This indicates a routing-aware machine context that was not set up
43
- to receive query parameters, which would silently drop query params from
44
- `play.route` events. Import the class from `@xmachines/play-xstate/errors`.
45
-
46
39
  ## Example
47
40
 
48
41
  ```typescript
@@ -1,43 +1,41 @@
1
1
  [API](../../../README.md) / [@xmachines/play-xstate](../README.md) / composeGuards
2
2
 
3
- # Function: composeGuards()
3
+ # ~~Function: composeGuards()~~
4
4
 
5
5
  ```ts
6
6
  function composeGuards<TContext, TEvent>(guards): ComposedGuard;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-xstate/src/guards/compose.ts:130](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/guards/compose.ts#L130)
9
+ Defined in: [packages/play-xstate/src/guards/compose.ts:97](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/guards/compose.ts#L97)
10
10
 
11
- Compose guards with AND logic.
11
+ Compose guards with AND logic using XState's and() helper
12
12
 
13
13
  Combines multiple guard predicates using AND semantics—all guards must pass for
14
- the composition to succeed. Evaluation is short-circuiting, left to right.
14
+ the composition to succeed. Uses XState's built-in `and()` helper to ensure proper
15
+ type inference and machine serialization.
15
16
 
16
17
  **Architectural Context:** Supports **Actor Authority (INV-01)** by enabling
17
18
  declarative guard composition in state machine transitions. Guards enforce business
18
19
  logic rules that determine whether navigation or actions are valid.
19
20
 
20
- **XState v6:** the composed value is a plain predicate. Call it inside a
21
- transition function and return early to block the transition:
22
-
23
21
  ## Type Parameters
24
22
 
25
- | Type Parameter | Default type | Description |
26
- | -------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------- |
27
- | `TContext` | `any` | State machine context type (defaults to `any` so the documented inline-predicate examples compile without annotations) |
28
- | `TEvent` | `any` | Event type |
23
+ | Type Parameter | Default type | Description |
24
+ | -------------- | ------------ | -------------------------- |
25
+ | `TContext` | `any` | State machine context type |
26
+ | `TEvent` | `any` | Event type |
29
27
 
30
28
  ## Parameters
31
29
 
32
- | Parameter | Type | Description |
33
- | --------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
34
- | `guards` | [`GuardArray`](../type-aliases/GuardArray.md)\<`TContext`, `TEvent`\> | Array of guard predicates or guard names (string references resolved against `args.guards` from `setup({ guards })`) |
30
+ | Parameter | Type | Description |
31
+ | --------- | --------------------------------------------------------------------- | ------------------------------------------------------------ |
32
+ | `guards` | [`GuardArray`](../type-aliases/GuardArray.md)\<`TContext`, `TEvent`\> | Array of guard predicates or guard names (string references) |
35
33
 
36
34
  ## Returns
37
35
 
38
36
  [`ComposedGuard`](../type-aliases/ComposedGuard.md)
39
37
 
40
- Predicate returning `true` only when every guard passes
38
+ XState and() guard composition
41
39
 
42
40
  ## Throws
43
41
 
@@ -51,8 +49,6 @@ AND composition with named guards
51
49
  import { setup } from "xstate";
52
50
  import { composeGuards } from "@xmachines/play-xstate";
53
51
 
54
- const canAccessAdmin = composeGuards(["isLoggedIn", "hasPermission"]);
55
-
56
52
  const machine = setup({
57
53
  guards: {
58
54
  isLoggedIn: ({ context }) => !!context.userId,
@@ -60,9 +56,10 @@ const machine = setup({
60
56
  },
61
57
  }).createMachine({
62
58
  on: {
63
- accessAdmin: (args) => {
64
- if (!canAccessAdmin(args)) return;
65
- return { target: "adminPanel" };
59
+ accessAdmin: {
60
+ // Both guards must pass
61
+ guard: composeGuards(["isLoggedIn", "hasPermission"]),
62
+ target: "adminPanel",
66
63
  },
67
64
  },
68
65
  });
@@ -73,13 +70,15 @@ AND composition with inline predicates
73
70
  ```typescript
74
71
  import { composeGuards } from "@xmachines/play-xstate";
75
72
 
76
- const isEligible = composeGuards([
77
- ({ context }) => context.age >= 18,
78
- ({ context }) => context.verified,
79
- ]);
73
+ guard: composeGuards([({ context }) => context.age >= 18, ({ context }) => context.verified]);
80
74
  ```
81
75
 
82
76
  ## See
83
77
 
84
78
  - [composeGuardsOr](composeGuardsOr.md) for OR composition
85
79
  - [negateGuard](negateGuard.md) for NOT logic
80
+
81
+ ## Deprecated
82
+
83
+ Use XState's own `and()`/`or()`/`not()` directly — this helper does not
84
+ compose with `setup()`-typed guard slots and will be removed in the next major.