@xmachines/docs 1.0.0-beta.9 → 2.0.0-alpha.1

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 (551) hide show
  1. package/README.md +137 -7
  2. package/api/@xmachines/play/README.md +160 -38
  3. package/api/@xmachines/play/classes/NonNullableError.md +189 -0
  4. package/api/@xmachines/play/classes/PlayError.md +251 -0
  5. package/api/@xmachines/play/functions/assertNonNullable.md +56 -0
  6. package/api/@xmachines/play/type-aliases/PlayEvent.md +6 -6
  7. package/api/@xmachines/play-actor/README.md +141 -160
  8. package/api/@xmachines/play-actor/classes/AbstractActor.md +96 -126
  9. package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +40 -0
  10. package/api/@xmachines/play-actor/functions/toAtomState.md +33 -0
  11. package/api/@xmachines/play-actor/functions/typedSpec.md +54 -0
  12. package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +46 -0
  13. package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +33 -0
  14. package/api/@xmachines/play-actor/interfaces/PlaySpec.md +28 -0
  15. package/api/@xmachines/play-actor/interfaces/Routable.md +6 -21
  16. package/api/@xmachines/play-actor/interfaces/Viewable.md +12 -6
  17. package/api/@xmachines/play-dom/README.md +384 -0
  18. package/api/@xmachines/play-dom/classes/PlayRenderer.md +115 -0
  19. package/api/@xmachines/play-dom/functions/createPlayUI.md +28 -0
  20. package/api/@xmachines/play-dom/functions/createRenderer.md +44 -0
  21. package/api/@xmachines/play-dom/functions/defineRegistry.md +26 -0
  22. package/api/@xmachines/play-dom/functions/renderSpec.md +67 -0
  23. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +23 -0
  24. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +34 -0
  25. package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +17 -0
  26. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +28 -0
  27. package/api/@xmachines/play-dom/interfaces/EventHandle.md +15 -0
  28. package/api/@xmachines/play-dom/interfaces/MountOptions.md +18 -0
  29. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +30 -0
  30. package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +26 -0
  31. package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +32 -0
  32. package/api/@xmachines/play-dom/type-aliases/ActionFn.md +46 -0
  33. package/api/@xmachines/play-dom/type-aliases/Actions.md +18 -0
  34. package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +114 -0
  35. package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +25 -0
  36. package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +26 -0
  37. package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +15 -0
  38. package/api/@xmachines/play-dom/type-aliases/ConfirmHandler.md +44 -0
  39. package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +39 -0
  40. package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +20 -0
  41. package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +9 -0
  42. package/api/@xmachines/play-dom/type-aliases/DomSchema.md +9 -0
  43. package/api/@xmachines/play-dom/type-aliases/MountFn.md +27 -0
  44. package/api/@xmachines/play-dom/type-aliases/RenderErrorHandler.md +23 -0
  45. package/api/@xmachines/play-dom/type-aliases/SetState.md +30 -0
  46. package/api/@xmachines/play-dom/variables/schema.md +62 -0
  47. package/api/@xmachines/play-dom-router/README.md +271 -0
  48. package/api/@xmachines/play-dom-router/functions/connectRouter.md +43 -0
  49. package/api/@xmachines/{play-router → play-dom-router}/functions/createBrowserHistory.md +10 -2
  50. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +39 -0
  51. package/api/@xmachines/play-dom-router/functions/createRouter.md +54 -0
  52. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +176 -0
  53. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +69 -0
  54. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +15 -0
  55. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +129 -0
  56. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +68 -0
  57. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +54 -0
  58. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +121 -0
  59. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +13 -0
  60. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +27 -0
  61. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +104 -0
  62. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +28 -0
  63. package/api/@xmachines/play-react/README.md +185 -334
  64. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +46 -42
  65. package/api/@xmachines/play-react/functions/ActionProvider.md +21 -0
  66. package/api/@xmachines/play-react/functions/JSONUIProvider.md +21 -0
  67. package/api/@xmachines/play-react/functions/Renderer.md +21 -0
  68. package/api/@xmachines/play-react/functions/StateProvider.md +27 -0
  69. package/api/@xmachines/play-react/functions/ValidationProvider.md +21 -0
  70. package/api/@xmachines/play-react/functions/VisibilityProvider.md +21 -0
  71. package/api/@xmachines/play-react/functions/defineRegistry.md +49 -0
  72. package/api/@xmachines/play-react/functions/useActor.md +13 -0
  73. package/api/@xmachines/play-react/functions/useBoundProp.md +45 -0
  74. package/api/@xmachines/play-react/functions/usePlayView.md +32 -0
  75. package/api/@xmachines/play-react/functions/useSignalEffect.md +29 -20
  76. package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +15 -0
  77. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +27 -0
  78. package/api/@xmachines/play-react/interfaces/ComponentContext.md +37 -0
  79. package/api/@xmachines/play-react/interfaces/JSONUIProviderProps.md +22 -0
  80. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +7 -7
  81. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +6 -6
  82. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +26 -0
  83. package/api/@xmachines/play-react/interfaces/RendererProps.md +17 -0
  84. package/api/@xmachines/play-react/interfaces/StateProviderProps.md +16 -0
  85. package/api/@xmachines/play-react/interfaces/ValidationProviderProps.md +14 -0
  86. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +20 -0
  87. package/api/@xmachines/play-react/interfaces/VisibilityProviderProps.md +13 -0
  88. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +11 -0
  89. package/api/@xmachines/play-react/type-aliases/ComponentFn.md +36 -0
  90. package/api/@xmachines/play-react/type-aliases/RenderErrorHandler.md +23 -0
  91. package/api/@xmachines/play-react/variables/ActorProvider.md +33 -0
  92. package/api/@xmachines/play-react/variables/PlayRenderer.md +6 -56
  93. package/api/@xmachines/play-react/variables/PlayUIProvider.md +43 -0
  94. package/api/@xmachines/play-react-router/README.md +130 -114
  95. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +19 -242
  96. package/api/@xmachines/play-react-router/classes/RouteMap.md +48 -36
  97. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +45 -0
  98. package/api/@xmachines/play-react-router/functions/createRouteMap.md +39 -0
  99. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +23 -12
  100. package/api/@xmachines/play-react-router/interfaces/PlayActor.md +68 -0
  101. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +22 -12
  102. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
  103. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +25 -9
  104. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +13 -0
  105. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +19 -9
  106. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +8 -8
  107. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
  108. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +32 -0
  109. package/api/@xmachines/play-router/README.md +285 -355
  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 +17 -0
  134. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +17 -0
  135. package/api/@xmachines/play-router/interfaces/PlayActor.md +68 -0
  136. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +22 -12
  137. package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +17 -0
  138. package/api/@xmachines/play-router/interfaces/RoutableActor.md +64 -0
  139. package/api/@xmachines/play-router/interfaces/RouteInfo.md +11 -11
  140. package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +13 -0
  141. package/api/@xmachines/play-router/interfaces/RouteMapping.md +27 -0
  142. package/api/@xmachines/play-router/interfaces/RouteMatch.md +12 -0
  143. package/api/@xmachines/play-router/interfaces/RouteNode.md +13 -13
  144. package/api/@xmachines/play-router/interfaces/RouteObject.md +5 -5
  145. package/api/@xmachines/play-router/interfaces/RouteTree.md +8 -7
  146. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +55 -0
  147. package/api/@xmachines/play-router/interfaces/RouterBridge.md +8 -8
  148. package/api/@xmachines/play-router/interfaces/WindowLike.md +65 -0
  149. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +20 -0
  150. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +2 -2
  151. package/api/@xmachines/play-signals/README.md +116 -65
  152. package/api/@xmachines/play-signals/functions/watchSignal.md +42 -0
  153. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +7 -5
  154. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +3 -3
  155. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +7 -5
  156. package/api/@xmachines/play-signals/interfaces/SignalState.md +4 -4
  157. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +5 -5
  158. package/api/@xmachines/play-signals/namespaces/Signal/README.md +1 -1
  159. package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +7 -7
  160. package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +8 -8
  161. package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +7 -7
  162. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +1 -1
  163. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +9 -9
  164. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +2 -2
  165. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +2 -2
  166. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +2 -2
  167. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +2 -2
  168. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +2 -2
  169. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +2 -2
  170. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +2 -2
  171. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +2 -2
  172. package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +2 -2
  173. package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +2 -2
  174. package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +2 -2
  175. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +2 -2
  176. package/api/@xmachines/play-solid/README.md +196 -234
  177. package/api/@xmachines/play-solid/functions/ActionProvider.md +19 -0
  178. package/api/@xmachines/play-solid/functions/JSONUIProvider.md +21 -0
  179. package/api/@xmachines/play-solid/functions/Renderer.md +21 -0
  180. package/api/@xmachines/play-solid/functions/StateProvider.md +19 -0
  181. package/api/@xmachines/play-solid/functions/ValidationProvider.md +19 -0
  182. package/api/@xmachines/play-solid/functions/VisibilityProvider.md +20 -0
  183. package/api/@xmachines/play-solid/functions/defineRegistry.md +49 -0
  184. package/api/@xmachines/play-solid/functions/useAction.md +24 -0
  185. package/api/@xmachines/play-solid/functions/useActions.md +13 -0
  186. package/api/@xmachines/play-solid/functions/useActor.md +13 -0
  187. package/api/@xmachines/play-solid/functions/useBoundProp.md +45 -0
  188. package/api/@xmachines/play-solid/functions/useFieldValidation.md +29 -0
  189. package/api/@xmachines/play-solid/functions/useIsVisible.md +19 -0
  190. package/api/@xmachines/play-solid/functions/useOptionalValidation.md +13 -0
  191. package/api/@xmachines/play-solid/functions/usePlayView.md +30 -0
  192. package/api/@xmachines/play-solid/functions/useStateBinding.md +25 -0
  193. package/api/@xmachines/play-solid/functions/useStateStore.md +13 -0
  194. package/api/@xmachines/play-solid/functions/useStateValue.md +25 -0
  195. package/api/@xmachines/play-solid/functions/useVisibility.md +13 -0
  196. package/api/@xmachines/play-solid/interfaces/ActionProviderProps.md +12 -0
  197. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +30 -0
  198. package/api/@xmachines/play-solid/interfaces/ComponentContext.md +37 -0
  199. package/api/@xmachines/play-solid/interfaces/DefineRegistryResult.md +15 -0
  200. package/api/@xmachines/play-solid/interfaces/JSONUIProviderProps.md +22 -0
  201. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +26 -0
  202. package/api/@xmachines/play-solid/interfaces/RendererProps.md +17 -0
  203. package/api/@xmachines/play-solid/interfaces/StateProviderProps.md +13 -0
  204. package/api/@xmachines/play-solid/interfaces/ValidationProviderProps.md +11 -0
  205. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +21 -0
  206. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +11 -0
  207. package/api/@xmachines/play-solid/type-aliases/ComponentFn.md +36 -0
  208. package/api/@xmachines/play-solid/type-aliases/ComponentRegistry.md +11 -0
  209. package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +23 -0
  210. package/api/@xmachines/play-solid/type-aliases/SetState.md +21 -0
  211. package/api/@xmachines/play-solid/type-aliases/VisibilityProviderProps.md +9 -0
  212. package/api/@xmachines/play-solid/variables/ActorContext.md +13 -0
  213. package/api/@xmachines/play-solid/variables/ActorProvider.md +27 -0
  214. package/api/@xmachines/play-solid/variables/PlayRenderer.md +6 -62
  215. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +26 -0
  216. package/api/@xmachines/play-solid-router/README.md +153 -562
  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 +89 -119
  222. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +68 -0
  223. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +22 -12
  224. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +30 -0
  225. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +25 -9
  226. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +13 -0
  227. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +20 -7
  228. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +8 -8
  229. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +34 -0
  230. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +8 -4
  231. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +22 -19
  232. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +52 -0
  233. package/api/@xmachines/play-svelte/README.md +269 -0
  234. package/api/@xmachines/play-svelte/functions/defineRegistry.md +31 -0
  235. package/api/@xmachines/play-svelte/functions/getActorContext.md +21 -0
  236. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +19 -0
  237. package/api/@xmachines/play-svelte/functions/setActorContext.md +19 -0
  238. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +44 -0
  239. package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +29 -0
  240. package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +29 -0
  241. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +24 -0
  242. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +43 -0
  243. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +24 -0
  244. package/api/@xmachines/play-svelte/type-aliases/ActionFn.md +30 -0
  245. package/api/@xmachines/play-svelte/type-aliases/Actions.md +17 -0
  246. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -0
  247. package/api/@xmachines/play-svelte/type-aliases/ComponentFn.md +18 -0
  248. package/api/@xmachines/play-svelte/type-aliases/JSONUIProviderProps.md +7 -0
  249. package/api/@xmachines/play-svelte/type-aliases/PlayRenderer.md +9 -0
  250. package/api/@xmachines/play-svelte/type-aliases/RenderErrorHandler.md +23 -0
  251. package/api/@xmachines/play-svelte/type-aliases/SetState.md +21 -0
  252. package/api/@xmachines/play-svelte/variables/PlayRenderer.md +9 -0
  253. package/api/@xmachines/play-svelte-spa-router/README.md +205 -0
  254. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +149 -0
  255. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +32 -0
  256. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +39 -0
  257. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +17 -0
  258. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +129 -0
  259. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +13 -0
  260. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +27 -0
  261. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +104 -0
  262. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +65 -0
  263. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +9 -0
  264. package/api/@xmachines/play-sveltekit-router/README.md +211 -0
  265. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +149 -0
  266. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +32 -0
  267. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +39 -0
  268. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -0
  269. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +27 -0
  270. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +129 -0
  271. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +13 -0
  272. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +27 -0
  273. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +104 -0
  274. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +9 -0
  275. package/api/@xmachines/play-tanstack-react-router/README.md +155 -126
  276. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +48 -36
  277. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +31 -252
  278. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +45 -0
  279. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +22 -36
  280. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +23 -12
  281. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +28 -0
  282. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +68 -0
  283. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +22 -12
  284. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
  285. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +25 -9
  286. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +13 -0
  287. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +19 -9
  288. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +6 -6
  289. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +8 -8
  290. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
  291. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +2 -2
  292. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +40 -18
  293. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +34 -0
  294. package/api/@xmachines/play-tanstack-router/README.md +58 -0
  295. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +131 -0
  296. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +57 -0
  297. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +100 -0
  298. package/api/@xmachines/play-tanstack-solid-router/README.md +215 -175
  299. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +31 -32
  300. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +121 -0
  301. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +44 -0
  302. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +18 -11
  303. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +68 -0
  304. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +22 -12
  305. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +31 -0
  306. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +23 -9
  307. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +13 -0
  308. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +14 -10
  309. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +8 -8
  310. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
  311. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +8 -4
  312. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +3 -3
  313. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +40 -18
  314. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +33 -0
  315. package/api/@xmachines/play-vue/README.md +192 -210
  316. package/api/@xmachines/play-vue/functions/defineRegistry.md +32 -0
  317. package/api/@xmachines/play-vue/functions/getPlayViewContext.md +28 -0
  318. package/api/@xmachines/play-vue/functions/useActor.md +13 -0
  319. package/api/@xmachines/play-vue/functions/useBoundProp.md +45 -0
  320. package/api/@xmachines/play-vue/interfaces/ActionProviderProps.md +12 -0
  321. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +25 -0
  322. package/api/@xmachines/play-vue/interfaces/ComponentContext.md +37 -0
  323. package/api/@xmachines/play-vue/interfaces/DefineRegistryResult.md +15 -0
  324. package/api/@xmachines/play-vue/interfaces/JSONUIProviderProps.md +21 -0
  325. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +24 -0
  326. package/api/@xmachines/play-vue/interfaces/RendererProps.md +17 -0
  327. package/api/@xmachines/play-vue/interfaces/StateProviderProps.md +15 -0
  328. package/api/@xmachines/play-vue/interfaces/ValidationProviderProps.md +11 -0
  329. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +21 -0
  330. package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +5 -0
  331. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -0
  332. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +16 -0
  333. package/api/@xmachines/play-vue/type-aliases/ComponentFn.md +35 -0
  334. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +15 -0
  335. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +22 -0
  336. package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +23 -0
  337. package/api/@xmachines/play-vue/variables/ActionProvider.md +64 -0
  338. package/api/@xmachines/play-vue/variables/JSONUIProvider.md +105 -0
  339. package/api/@xmachines/play-vue/variables/PlayRenderer.md +2 -2
  340. package/api/@xmachines/play-vue/variables/Renderer.md +88 -0
  341. package/api/@xmachines/play-vue/variables/StateProvider.md +79 -0
  342. package/api/@xmachines/play-vue/variables/ValidationProvider.md +55 -0
  343. package/api/@xmachines/play-vue/variables/VisibilityProvider.md +40 -0
  344. package/api/@xmachines/play-vue-router/README.md +173 -487
  345. package/api/@xmachines/play-vue-router/classes/RouteMap.md +56 -116
  346. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +23 -271
  347. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +26 -6
  348. package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +68 -0
  349. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +22 -12
  350. package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +13 -0
  351. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +20 -8
  352. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +8 -8
  353. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +8 -4
  354. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +12 -6
  355. package/api/@xmachines/play-xstate/README.md +234 -340
  356. package/api/@xmachines/play-xstate/classes/PlayerActor.md +166 -195
  357. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +31 -20
  358. package/api/@xmachines/play-xstate/functions/composeGuards.md +24 -18
  359. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +17 -17
  360. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +38 -0
  361. package/api/@xmachines/play-xstate/functions/createRoutedMachine.md +87 -0
  362. package/api/@xmachines/play-xstate/functions/definePlayer.md +14 -63
  363. package/api/@xmachines/play-xstate/functions/deriveRoute.md +3 -3
  364. package/api/@xmachines/play-xstate/functions/eventMatches.md +2 -2
  365. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +46 -12
  366. package/api/@xmachines/play-xstate/functions/hasContext.md +2 -2
  367. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +2 -2
  368. package/api/@xmachines/play-xstate/functions/negateGuard.md +16 -16
  369. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +10 -14
  370. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +22 -0
  371. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +12 -13
  372. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +15 -13
  373. package/api/@xmachines/play-xstate/interfaces/RouteObject.md +17 -0
  374. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +27 -6
  375. package/api/@xmachines/play-xstate/type-aliases/Guard.md +2 -2
  376. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +3 -3
  377. package/api/@xmachines/play-xstate/type-aliases/PlayRoutePayload.md +30 -0
  378. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +10 -9
  379. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +22 -5
  380. package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +9 -0
  381. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +34 -6
  382. package/api/@xmachines/play-xstate/type-aliases/SetupLike.md +33 -0
  383. package/api/@xmachines/play-xstate/type-aliases/WithOptional.md +31 -0
  384. package/api/@xmachines/play-xstate/variables/emptyEventSchema.md +37 -0
  385. package/api/@xmachines/play-xstate/variables/playMetaSchema.md +40 -0
  386. package/api/@xmachines/play-xstate/variables/playRouteEventSchema.md +9 -0
  387. package/api/@xmachines/shared/README.md +95 -295
  388. package/api/@xmachines/shared/vite-aliases/README.md +11 -0
  389. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +38 -0
  390. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +27 -0
  391. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +30 -0
  392. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +42 -0
  393. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +33 -0
  394. package/api/@xmachines/shared/vitest/README.md +12 -0
  395. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +42 -0
  396. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +34 -0
  397. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +16 -0
  398. package/api/README.md +6 -7
  399. package/api/llms.txt +72 -23
  400. package/contributing/README.md +10 -0
  401. package/contributing/architecture.md +602 -0
  402. package/contributing/configuration.md +368 -0
  403. package/contributing/deployment.md +312 -0
  404. package/contributing/development.md +464 -0
  405. package/contributing/testing.md +453 -0
  406. package/examples/@xmachines/play-dom-demo/README.md +181 -0
  407. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +24 -0
  408. package/examples/@xmachines/play-dom-demo/functions/initShell.md +24 -0
  409. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +9 -0
  410. package/examples/@xmachines/play-dom-demo/variables/About.md +12 -0
  411. package/examples/@xmachines/play-dom-demo/variables/Contact.md +12 -0
  412. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +13 -0
  413. package/examples/@xmachines/play-dom-demo/variables/Home.md +13 -0
  414. package/examples/@xmachines/play-dom-demo/variables/Login.md +13 -0
  415. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +16 -0
  416. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +13 -0
  417. package/examples/@xmachines/play-dom-demo/variables/Overview.md +13 -0
  418. package/examples/@xmachines/play-dom-demo/variables/Profile.md +13 -0
  419. package/examples/@xmachines/play-dom-demo/variables/Settings.md +13 -0
  420. package/examples/@xmachines/play-dom-demo/variables/Stats.md +13 -0
  421. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +172 -0
  422. package/examples/@xmachines/play-dom-router-demo/README.md +145 -0
  423. package/examples/@xmachines/play-react-demo/README.md +187 -0
  424. package/examples/@xmachines/play-react-demo/functions/App.md +13 -0
  425. package/examples/@xmachines/play-react-demo/functions/DebugPanel.md +20 -0
  426. package/examples/@xmachines/play-react-demo/functions/HeaderNav.md +20 -0
  427. package/examples/@xmachines/play-react-demo/functions/Shell.md +22 -0
  428. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +9 -0
  429. package/examples/@xmachines/play-react-demo/variables/About.md +14 -0
  430. package/examples/@xmachines/play-react-demo/variables/Contact.md +14 -0
  431. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +15 -0
  432. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +15 -0
  433. package/examples/@xmachines/play-react-demo/variables/Home.md +14 -0
  434. package/examples/@xmachines/play-react-demo/variables/Login.md +16 -0
  435. package/examples/@xmachines/play-react-demo/variables/NavBar.md +16 -0
  436. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +15 -0
  437. package/examples/@xmachines/play-react-demo/variables/Navigation.md +14 -0
  438. package/examples/@xmachines/play-react-demo/variables/Overview.md +14 -0
  439. package/examples/@xmachines/play-react-demo/variables/Profile.md +14 -0
  440. package/examples/@xmachines/play-react-demo/variables/Settings.md +14 -0
  441. package/examples/@xmachines/play-react-demo/variables/Shell.md +18 -0
  442. package/examples/@xmachines/play-react-demo/variables/Stats.md +14 -0
  443. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +172 -0
  444. package/examples/@xmachines/play-react-router-demo/README.md +151 -0
  445. package/examples/@xmachines/play-solid-demo/README.md +187 -0
  446. package/examples/@xmachines/play-solid-demo/functions/App.md +13 -0
  447. package/examples/@xmachines/play-solid-demo/functions/DebugPanel.md +20 -0
  448. package/examples/@xmachines/play-solid-demo/functions/HeaderNav.md +20 -0
  449. package/examples/@xmachines/play-solid-demo/functions/Shell.md +22 -0
  450. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +9 -0
  451. package/examples/@xmachines/play-solid-demo/variables/About.md +9 -0
  452. package/examples/@xmachines/play-solid-demo/variables/Contact.md +9 -0
  453. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +9 -0
  454. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +15 -0
  455. package/examples/@xmachines/play-solid-demo/variables/Home.md +9 -0
  456. package/examples/@xmachines/play-solid-demo/variables/Login.md +9 -0
  457. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +11 -0
  458. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +15 -0
  459. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +9 -0
  460. package/examples/@xmachines/play-solid-demo/variables/Overview.md +9 -0
  461. package/examples/@xmachines/play-solid-demo/variables/Profile.md +9 -0
  462. package/examples/@xmachines/play-solid-demo/variables/Settings.md +9 -0
  463. package/examples/@xmachines/play-solid-demo/variables/Shell.md +17 -0
  464. package/examples/@xmachines/play-solid-demo/variables/Stats.md +9 -0
  465. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +172 -0
  466. package/examples/@xmachines/play-solid-router-demo/README.md +137 -0
  467. package/examples/@xmachines/play-svelte-demo/README.md +143 -0
  468. package/examples/@xmachines/play-svelte-demo/type-aliases/App.md +9 -0
  469. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +9 -0
  470. package/examples/@xmachines/play-svelte-demo/variables/App.md +9 -0
  471. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +172 -0
  472. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +129 -0
  473. package/examples/@xmachines/play-sveltekit-router-demo/README.md +133 -0
  474. package/examples/@xmachines/play-tanstack-react-router-demo/README.md +156 -0
  475. package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +139 -0
  476. package/examples/@xmachines/play-vue-demo/README.md +183 -0
  477. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +9 -0
  478. package/examples/@xmachines/play-vue-demo/variables/App.md +9 -0
  479. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +172 -0
  480. package/examples/@xmachines/play-vue-router-demo/README.md +139 -0
  481. package/examples/README.md +78 -30
  482. package/examples/basic-state-machine.md +73 -31
  483. package/examples/form-validation.md +267 -115
  484. package/examples/multi-router-integration.md +314 -194
  485. package/examples/routing-patterns.md +260 -187
  486. package/examples/traffic-light.md +96 -58
  487. package/guides/README.md +9 -21
  488. package/guides/actor-model.md +180 -0
  489. package/guides/getting-started.md +630 -137
  490. package/guides/signals.md +166 -0
  491. package/guides/state-machines.md +300 -0
  492. package/package.json +18 -7
  493. package/rfc/broker.md +100 -0
  494. package/rfc/browser.md +44 -0
  495. package/rfc/cli.md +118 -0
  496. package/rfc/git.md +61 -0
  497. package/rfc/mcp.md +43 -0
  498. package/rfc/node.md +36 -0
  499. package/rfc/play.md +472 -0
  500. package/rfc/rest.md +102 -0
  501. package/rfc/run.md +159 -0
  502. package/rfc/streams.md +168 -0
  503. package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +0 -17
  504. package/api/@xmachines/play-catalog/README.md +0 -331
  505. package/api/@xmachines/play-catalog/functions/defineCatalog.md +0 -98
  506. package/api/@xmachines/play-catalog/functions/defineComponents.md +0 -134
  507. package/api/@xmachines/play-catalog/type-aliases/Catalog.md +0 -48
  508. package/api/@xmachines/play-catalog/type-aliases/ComponentsFor.md +0 -20
  509. package/api/@xmachines/play-catalog/type-aliases/InferComponentProps.md +0 -65
  510. package/api/@xmachines/play-catalog/type-aliases/NoExtraKeys.md +0 -17
  511. package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +0 -15
  512. package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +0 -19
  513. package/api/@xmachines/play-react-router-demo/README.md +0 -137
  514. package/api/@xmachines/play-router/classes/BaseRouteMap.md +0 -142
  515. package/api/@xmachines/play-router/functions/connectRouter.md +0 -67
  516. package/api/@xmachines/play-router/functions/crawlMachine.md +0 -92
  517. package/api/@xmachines/play-router/functions/createRouter.md +0 -76
  518. package/api/@xmachines/play-router/functions/extractRoute.md +0 -45
  519. package/api/@xmachines/play-router/interfaces/BaseRouteMapping.md +0 -27
  520. package/api/@xmachines/play-router/interfaces/BrowserHistory.md +0 -172
  521. package/api/@xmachines/play-router/interfaces/BrowserWindow.md +0 -69
  522. package/api/@xmachines/play-router/interfaces/ConnectRouterOptions.md +0 -13
  523. package/api/@xmachines/play-router/interfaces/RouteMap.md +0 -56
  524. package/api/@xmachines/play-router/interfaces/StateVisit.md +0 -15
  525. package/api/@xmachines/play-router/interfaces/VanillaRouter.md +0 -28
  526. package/api/@xmachines/play-router-demo/README.md +0 -137
  527. package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +0 -15
  528. package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +0 -19
  529. package/api/@xmachines/play-solid-router-demo/README.md +0 -127
  530. package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +0 -19
  531. package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +0 -38
  532. package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +0 -33
  533. package/api/@xmachines/play-tanstack-react-router/variables/extractMachineRoutes.md +0 -64
  534. package/api/@xmachines/play-tanstack-react-router-demo/README.md +0 -126
  535. package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +0 -343
  536. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +0 -19
  537. package/api/@xmachines/play-tanstack-solid-router-demo/README.md +0 -126
  538. package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +0 -14
  539. package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +0 -201
  540. package/api/@xmachines/play-vue-router-demo/README.md +0 -133
  541. package/api/@xmachines/play-xstate/functions/mergeViewProps.md +0 -26
  542. package/api/@xmachines/play-xstate/functions/stateMatches.md +0 -25
  543. package/api/@xmachines/play-xstate/functions/validateComponentBinding.md +0 -39
  544. package/api/@xmachines/play-xstate/functions/validateViewProps.md +0 -80
  545. package/api/@xmachines/play-xstate/interfaces/CatalogEntry.md +0 -16
  546. package/api/@xmachines/play-xstate/type-aliases/Catalog.md +0 -21
  547. package/api/@xmachines/play-xstate/type-aliases/ValidationResult.md +0 -17
  548. package/api/@xmachines/play-xstate/type-aliases/ViewMergeContext.md +0 -35
  549. package/api/@xmachines/shared/functions/defineXmVitestConfig.md +0 -29
  550. package/api/@xmachines/shared/functions/xmAliases.md +0 -24
  551. package/guides/installation.md +0 -323
@@ -1,473 +1,361 @@
1
- [Documentation](../../README.md) / @xmachines/play-xstate
1
+ [API](../../README.md) / @xmachines/play-xstate
2
2
 
3
- # @xmachines/play-xstate
4
-
5
- **XState v5 adapter for Play Architecture with signal-driven reactivity and routing**
3
+ <!-- generated-by: gsd-doc-writer -->
6
4
 
7
- Transform declarative state machines into live actors with TC39 Signals and parameter-aware navigation.
8
-
9
- ## Overview
5
+ # @xmachines/play-xstate
10
6
 
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.
7
+ > XState v6 adapter for the XMachines Play Architecture bind state machines to the actor base with signal-driven reactivity and router integration.
12
8
 
13
- Per [RFC Play v1](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md), this package implements:
9
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
10
+ [![Version](https://img.shields.io/badge/version-1.0.0--beta.51-blue)](https://www.npmjs.com/package/@xmachines/play-xstate)
14
11
 
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
12
+ Part of the [XMachines Play](../../README.md) monorepo.
18
13
 
19
- **Routing:** Supports `meta.route` patterns, `play.route` events with parameters, and route extraction.
14
+ ---
20
15
 
21
16
  ## Installation
22
17
 
23
18
  ```bash
24
- npm install xstate@^5.0.0
25
- npm install @xmachines/play-xstate
19
+ pnpm add @xmachines/play-xstate xstate
26
20
  ```
27
21
 
28
- **Peer dependencies:**
22
+ `xstate ^6.0.0-alpha.19` is a peer dependency and must be installed alongside this package.
29
23
 
30
- - `xstate` ^5.0.0 — State machine runtime
31
-
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.
24
+ ---
33
25
 
34
26
  ## Quick Start
35
27
 
36
28
  ```typescript
37
29
  import { setup } from "xstate";
38
- import { z } from "zod";
39
- import { definePlayer } from "@xmachines/play-xstate";
40
- import { defineCatalog } from "@xmachines/play-catalog";
30
+ import { definePlayer, emptyEventSchema, playMetaSchema } from "@xmachines/play-xstate";
41
31
 
42
- // 1. Define XState machine with meta.route
32
+ // 1. Define your XState v6 machine
43
33
  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,
34
+ schemas: {
35
+ events: { activate: emptyEventSchema },
36
+ meta: playMetaSchema, // types meta.route / meta.view on state nodes
50
37
  },
51
38
  }).createMachine({
52
- id: "app",
53
- initial: "login",
54
- context: { userId: "" },
39
+ initial: "idle",
55
40
  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
- },
41
+ idle: { meta: { route: "/" }, on: { activate: { target: "active" } } },
42
+ active: { meta: { route: "/active" } },
76
43
  },
77
44
  });
78
45
 
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 });
46
+ // 2. Create a player factory
47
+ const createPlayer = definePlayer({ machine });
87
48
 
88
- // 4. Create and start actor
89
- const actor = createPlayer({ userId: "" });
49
+ // 3. Instantiate and start an actor
50
+ const actor = createPlayer();
90
51
  actor.start();
91
52
 
92
- // 5. Send events (play.route with parameters)
93
- actor.send({ type: "play.route", to: "/login" });
53
+ // 4. Observe TC39 Signal-based reactive state
54
+ console.log(actor.currentRoute.get()); // "/"
55
+ console.log(actor.state.get().value); // "idle"
94
56
 
95
- // 6. Observe signals
96
- console.log(actor.currentRoute.get()); // "/login"
97
- console.log(actor.currentView.get()); // { component: "LoginForm", props: {...} }
57
+ // 5. Send events — machine guards decide transitions
58
+ actor.send({ type: "activate" });
98
59
 
99
- // 7. Cleanup
100
- actor.dispose();
60
+ actor.stop();
101
61
  ```
102
62
 
103
- ## API Reference
63
+ ---
104
64
 
105
- ### definePlayer()
65
+ ## API Summary
106
66
 
107
- Create a player factory from XState machine and catalog:
67
+ ### `definePlayer(config)`
108
68
 
109
- ```typescript
110
- const createPlayer = definePlayer<TMachine, TCatalog>({
111
- machine: AnyStateMachine,
112
- catalog?: Catalog,
113
- options?: PlayerOptions,
114
- }): PlayerFactory;
115
- ```
69
+ Creates a `PlayerFactory` from an XState v6 machine. The factory pattern enables multiple independent actor instances from a single configuration — useful for multi-user scenarios, SSR, or testing.
116
70
 
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`
71
+ ```typescript
72
+ import { setup, types } from "xstate";
73
+ import { definePlayer } from "@xmachines/play-xstate";
124
74
 
125
- **Example:**
75
+ const machine = setup({
76
+ schemas: {
77
+ context: types<{ userId: string }>(),
78
+ input: types<{ userId: string }>(),
79
+ },
80
+ }).createMachine({
81
+ context: ({ input }) => ({ userId: input.userId }),
82
+ initial: "home",
83
+ states: { home: {} },
84
+ });
126
85
 
127
- ```typescript
128
86
  const createPlayer = definePlayer({
129
- machine: authMachine,
130
- catalog: authCatalog,
87
+ machine,
131
88
  options: {
132
- onStart: (actor) => console.log("Started:", actor.id),
133
- onTransition: (actor, prev, next) => {
134
- console.log("Transition:", prev.value, "", next.value);
135
- },
89
+ onStart: (actor) => console.log("started"),
90
+ onStop: (actor) => console.log("stopped"),
91
+ onTransition: (actor, prev, next) => console.log("transitioned"),
92
+ onStateChange: (actor, state) => console.log("state changed"),
93
+ onError: (actor, err) => console.error(err),
136
94
  },
137
95
  });
138
96
 
139
- const actor1 = createPlayer({ userId: "user1" });
140
- const actor2 = createPlayer({ userId: "user2" });
141
- // Multiple independent actor instances
97
+ // Each call returns an independent PlayerActor instance
98
+ const alice = createPlayer({ userId: "alice" });
99
+ const bob = createPlayer({ userId: "bob" });
142
100
  ```
143
101
 
144
- ### PlayerActor
145
-
146
- Concrete actor implementing Play signal protocol:
102
+ #### `PlayerFactory` signature
147
103
 
148
- **Signal Properties:**
104
+ ```typescript
105
+ type PlayerFactory<TMachine> = (
106
+ input?: InputFrom<TMachine>,
107
+ options?: PlayerFactoryResumeOptions<TMachine>,
108
+ ) => PlayerActor<TMachine>;
109
+ ```
149
110
 
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)
111
+ #### Restoring from a snapshot
153
112
 
154
- **Actor Properties:**
113
+ ```typescript
114
+ const snapshot = actor.getSnapshot();
115
+ actor.stop();
155
116
 
156
- - `catalog: Catalog` Component catalog
117
+ // Restore to the exact saved state
118
+ const restored = createPlayer({ userId: "alice" }, { snapshot });
119
+ restored.start();
120
+ console.log(restored.currentRoute.get()); // same route as when saved
121
+ ```
157
122
 
158
- **Constructor:**
123
+ ---
159
124
 
160
- ```typescript
161
- new PlayerActor(machine, catalog, options, input?)
162
- ```
125
+ ### `PlayerActor<TMachine>`
163
126
 
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.
127
+ Concrete actor class that wraps an XState v6 actor and exposes TC39 Signal-based reactive signals. Implements both `Routable` and `Viewable` interfaces from `@xmachines/play-actor`.
165
128
 
166
- **Methods:**
129
+ #### Signals
167
130
 
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())
131
+ | Signal | Type | Description |
132
+ | -------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
133
+ | `state` | `Signal.State<SnapshotFrom<TMachine>>` | Current XState snapshot; updated on every active transition |
134
+ | `currentRoute` | `Signal.Computed<string \| null>` | Derived URL from active state's `meta.route` template and context |
135
+ | `currentView` | `Signal.State<PlaySpec \| null>` | View spec from active state's `meta.view` metadata; enriched with context params |
136
+ | `initialRoute` | `readonly string \| null` | Machine's initial-state route (fixed at construction; used by router bridges for deep-link vs restore detection) |
172
137
 
173
- **Prop validation modes** (via `PlayerOptions.propValidation`):
138
+ #### Methods
174
139
 
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)
140
+ | Method | Description |
141
+ | --------------- | -------------------------------------------------------------- |
142
+ | `start()` | Start the actor and fire `onStart` hook |
143
+ | `stop()` | Stop the actor, clean up subscriptions, fire `onStop` hook |
144
+ | `send(event)` | Send a typed event to the machine; fires `onTransition` hook |
145
+ | `can(event)` | Returns `true` if the current state can accept the given event |
146
+ | `getSnapshot()` | Returns the current XState snapshot |
147
+ | `dispose()` | Alias for `stop()` |
177
148
 
178
- **Example:**
149
+ #### Signal usage example
179
150
 
180
151
  ```typescript
181
- const actor = createPlayer();
182
- actor.start();
152
+ import { Signal } from "@xmachines/play-signals";
183
153
 
184
- // Observe signals with watcher
185
154
  const watcher = new Signal.subtle.Watcher(() => {
186
155
  queueMicrotask(() => {
187
- const route = actor.currentRoute.get();
188
- console.log("Route changed:", route);
156
+ console.log("Route changed:", actor.currentRoute.get());
189
157
  });
190
158
  });
159
+
191
160
  watcher.watch(actor.currentRoute);
192
- actor.currentRoute.get(); // Initial read
161
+ actor.start();
193
162
  ```
194
163
 
195
- ### Guard Composition
164
+ ---
165
+
166
+ ### Guard utilities
167
+
168
+ Composable guard helpers that combine predicates with AND, OR, and NOT logic. Each helper returns a plain predicate — call it inside a transition function with the transition arguments and return early to block the transition. String guard names are resolved against the named guards declared in `setup({ guards })`.
196
169
 
197
170
  ```typescript
171
+ import { setup } from "xstate";
198
172
  import {
199
- composeGuards,
200
- composeGuardsOr,
201
- negateGuard,
202
- hasContext,
203
- eventMatches,
204
- stateMatches,
173
+ composeGuards, // AND logic: all guards must pass
174
+ composeGuardsOr, // OR logic: at least one guard must pass
175
+ negateGuard, // NOT logic: inverts a guard
176
+ hasContext, // guard: context field is present and non-null
177
+ eventMatches, // guard: event type matches a string
178
+ contextFieldMatches, // guard: context field equals a value
205
179
  } from "@xmachines/play-xstate";
206
180
 
181
+ const canAccessAdmin = composeGuards(["isLoggedIn", "hasAdminRole"]);
182
+ const isAuthenticated = negateGuard("isGuest");
183
+
207
184
  const machine = setup({
208
185
  guards: {
209
- isLoggedIn: hasContext("userId"),
210
- isAdmin: ({ context }) => context.role === "admin",
186
+ isLoggedIn: ({ context }) => !!context.userId,
187
+ hasAdminRole: ({ context }) => context.role === "admin",
188
+ isGuest: ({ context }) => !context.userId,
211
189
  },
212
190
  }).createMachine({
213
191
  on: {
214
- accessAdmin: {
215
- // Array means AND - all guards must pass
216
- guard: composeGuards(["isLoggedIn", "isAdmin"]),
217
- target: "adminPanel",
192
+ accessAdmin: (args) => {
193
+ if (!canAccessAdmin(args)) return;
194
+ return { target: "adminPanel" };
218
195
  },
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",
196
+ accessDashboard: (args) => {
197
+ if (!isAuthenticated(args)) return;
198
+ return { target: "dashboard" };
228
199
  },
229
200
  },
201
+ // ...
230
202
  });
231
203
  ```
232
204
 
233
- **Helpers:**
205
+ ---
234
206
 
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
207
+ ### Routing utilities
241
208
 
242
- ## Examples
209
+ Helper functions for declarative route configuration in XState machines.
243
210
 
244
- ### Guard Placement Philosophy
211
+ #### `createRoutedMachine(setup)`
245
212
 
246
- **Guards check if you can BE in a state (state entry), not if you can TAKE an event (event handlers).**
213
+ The recommended entry point: returns a `createMachine` with the same signature as the setup's own full contextual typing for the config — that wires routing up at runtime.
247
214
 
248
215
  ```typescript
249
216
  import { setup } from "xstate";
250
- import { definePlayer, formatPlayRouteTransitions } from "@xmachines/play-xstate";
251
- import { defineCatalog } from "@xmachines/play-catalog";
217
+ import { createRoutedMachine } from "@xmachines/play-xstate";
218
+
219
+ const appSetup = setup({/* schemas, guards, ... */});
252
220
 
253
- // Pattern 1: RECOMMENDED - Use formatPlayRouteTransitions utility
254
- const machineConfig = {
221
+ const machine = createRoutedMachine(appSetup)({
255
222
  id: "app",
256
- initial: "home",
257
- context: { isAuthenticated: false },
258
223
  states: {
259
224
  home: {
260
225
  id: "home",
261
- meta: { route: "/", view: { component: "Home" } },
226
+ meta: { route: "/home" },
262
227
  },
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
- ],
273
- },
274
- login: {
275
- id: "login",
276
- meta: { route: "/login", view: { component: "Login" } },
228
+ profile: {
229
+ id: "profile",
230
+ meta: { route: "/users/:userId" },
277
231
  },
278
232
  },
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
- },
286
- }).createMachine(formatPlayRouteTransitions(machineConfig));
287
-
288
- const catalog = defineCatalog({
289
- Home,
290
- Dashboard,
291
- Login,
292
233
  });
293
-
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
302
234
  ```
303
235
 
304
- **Why this works:**
305
-
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
236
+ #### `formatPlayRouteTransitions(machineConfig)`
309
237
 
310
- **Anti-pattern (DON'T DO THIS):**
238
+ The underlying transform. Crawls machine states with `meta.route` and wires them to XState v6's native routing: each routed state gets a native `route: {}` config (targetable via the built-in `xstate.route` event and visible to graph tooling), and one root `play.route` forwarder navigates those targets in a single atomic transition — patching `params`/`query` into context — while re-raising `xstate.route` only for states that declare their own `route` config. Unknown targets fall through to user-defined `play.route` fallbacks (e.g. a 404 route); one `play.route` send is one atomic transition, so exit actions see the old `params` and entry actions the new ones.
311
239
 
312
240
  ```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
241
+ import { setup } from "xstate";
242
+ import {
243
+ formatPlayRouteTransitions,
244
+ playMetaSchema,
245
+ playRouteEventSchema,
246
+ } from "@xmachines/play-xstate";
325
247
 
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);
248
+ const config = formatPlayRouteTransitions({
249
+ id: "app",
250
+ states: {
251
+ home: {
252
+ id: "home",
253
+ meta: { route: "/home" },
347
254
  },
348
- onError: (actor, error) => {
349
- console.error("Actor error:", error);
350
- // Log to monitoring service, show error UI, etc.
255
+ profile: {
256
+ id: "profile",
257
+ meta: { route: "/users/:userId" },
351
258
  },
352
259
  },
353
260
  });
354
- ```
355
261
 
356
- ### XState DevTools Integration
262
+ // config now carries native route configs plus the play.route forwarder:
263
+ // states: { home: { ..., route: {} }, profile: { ..., route: {} } }
264
+ // on: { "play.route": [forwarder, ...userFallbacks] }
265
+ // The forwarder navigates injected-route targets directly (atomically);
266
+ // xstate.route is raised only for states declaring their own route config.
267
+ const machine = setup({
268
+ schemas: {
269
+ events: { "play.route": playRouteEventSchema },
270
+ meta: playMetaSchema,
271
+ },
272
+ }).createMachine(config);
273
+ ```
357
274
 
358
- ```typescript
359
- import { createBrowserInspector } from "@statelyai/inspect";
360
- import { definePlayer } from "@xmachines/play-xstate";
275
+ Because the injected `route` configs are static, route transitions keep statically-known targets — `machineToGraph()` sees real edges to every routed state, so reachability queries work.
361
276
 
362
- const { inspect } = createBrowserInspector();
277
+ > **Note:** Every state with `meta.route` must also have an explicit `id` field; omitting it throws `MissingStateIdError` at machine-definition time.
363
278
 
364
- const createPlayer = definePlayer({ machine, catalog });
365
- const actor = createPlayer();
366
- actor.start();
279
+ #### Other routing exports
367
280
 
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
281
+ | Export | Description |
282
+ | ---------------------------------- | ------------------------------------------------------------------------- |
283
+ | `playMetaSchema` | Shared `schemas.meta` declaration for `meta.route` / `meta.view` metadata |
284
+ | `playRouteEventSchema` | Shared `schemas.events` entry for the `play.route` event payload |
285
+ | `emptyEventSchema` | Shared `schemas.events` entry for events that carry no payload |
286
+ | `deriveRoute(meta)` | Extract the route template string from a state's metadata object |
287
+ | `isAbsoluteRoute(route)` | Returns `true` if the route string is an absolute URL path |
288
+ | `buildRouteUrl(template, context)` | Substitute `:param` placeholders in a route template using context values |
374
289
 
375
- // Signals accessible via actor properties, not snapshots
376
- console.log(actor.currentRoute.get()); // "/dashboard"
377
- ```
378
-
379
- ## Metadata Conventions
290
+ ---
380
291
 
381
- ### Route Metadata
292
+ ## Exported Types
382
293
 
383
294
  ```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
- }
295
+ import type {
296
+ PlayerConfig, // definePlayer() config argument shape
297
+ PlayerOptions, // Lifecycle hooks (onStart, onStop, onTransition, onStateChange, onError)
298
+ PlayerFactory, // Factory function returned by definePlayer()
299
+ PlayerFactoryResumeOptions, // { snapshot? } for restoring actor state
300
+ Guard, // Single XState guard predicate
301
+ GuardArray, // Array of guards for compose helpers
302
+ ComposedGuard, // Return type of composeGuards / composeGuardsOr / negateGuard
303
+ RouteMachineConfig, // Minimal machine config accepted by formatPlayRouteTransitions
304
+ RouteStateNode, // Single state node shape used during route crawling
305
+ RouteContext, // Context shape expected by buildRouteUrl ({ params?, query?, basePath?, hash? })
306
+ RouteObject, // Route metadata object shape: { path: string }
307
+ RouteMetadata, // Union: string | RouteObject
308
+ } from "@xmachines/play-xstate";
405
309
  ```
406
310
 
407
- ### View Metadata
311
+ ---
408
312
 
409
- ```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
- }
428
- ```
313
+ ## Error Classes
429
314
 
430
- ## Architecture
315
+ Error classes are exported from the `@xmachines/play-xstate/errors` sub-path to keep the main bundle lean.
431
316
 
432
- This package implements RFC Play v1 requirements:
433
-
434
- **Architectural Invariants:**
317
+ ```typescript
318
+ import {
319
+ MissingRouteParamError, // Required :param absent from context when resolving currentRoute
320
+ MissingQueryContextError, // context.params present but context.query missing
321
+ MissingStateIdError, // meta.route declared without a state id field
322
+ InvalidMachineError, // PlayerActor constructed with a non-object machine
323
+ InvalidEventError, // actor.send() called with null/undefined/non-object
324
+ InvalidRouteMetadataError, // meta.route is neither a string nor { path: string }
325
+ EmptyGuardArrayError, // composeGuards/composeGuardsOr called with empty array
326
+ UnresolvableGuardNameError, // string guard name could not be resolved at call time
327
+ InvalidGuardEntryError, // guard entry was neither a predicate nor a name (e.g. undefined)
328
+ } from "@xmachines/play-xstate/errors";
329
+ ```
435
330
 
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
331
+ All error classes extend `PlayError` from `@xmachines/play` and carry typed detail fields (`param`, `template`, `combinator`, etc.) for programmatic inspection without message parsing.
439
332
 
440
- **XState DevTools:** Maintains Inspector compatibility — snapshots remain pure XState format, signals accessible via actor properties.
333
+ ---
441
334
 
442
- **Routing:**
335
+ ## Testing
443
336
 
444
- - `meta.route` property marks states as routable
445
- - `play.route` events support parameters (enhancement)
446
- - Route extraction for URL patterns
337
+ ```bash
338
+ # Run tests for this package in isolation
339
+ pnpm --filter @xmachines/play-xstate test
447
340
 
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.
341
+ # Watch mode
342
+ pnpm --filter @xmachines/play-xstate run test:watch
343
+ ```
449
344
 
450
- ## Related Packages
345
+ Tests use [Vitest](https://vitest.dev/) and live in `packages/play-xstate/test/`.
451
346
 
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)
347
+ ---
457
348
 
458
349
  ## License
459
350
 
460
- Copyright (c) 2016 [Mikael Karon](mailto:mikael@karon.se). All rights reserved.
351
+ MIT see [LICENSE](LICENSE) for details.
461
352
 
462
- This work is licensed under the terms of the MIT license.
463
- For a copy, see <https://opensource.org/licenses/MIT>.
464
-
465
- @xmachines/play-xstate - XState v5 adapter for Play Architecture
353
+ @xmachines/play-xstate - XState v6 adapter for Play Architecture
466
354
 
467
355
  Provides definePlayer() API for binding XState state machines to the
468
- actor base with catalog binding, signal lifecycle, and DevTools integration.
356
+ actor base with signal lifecycle and DevTools integration.
469
357
 
470
- Per RFC Play v1, this package implements the Logic Layer adapter that
358
+ Per the Play RFC, this package implements the Logic Layer adapter that
471
359
  transforms declarative machine definitions into live actors with signal-driven
472
360
  reactivity.
473
361
 
@@ -477,36 +365,42 @@ reactivity.
477
365
 
478
366
  ## Interfaces
479
367
 
480
- - [CatalogEntry](interfaces/CatalogEntry.md)
481
368
  - [PlayerConfig](interfaces/PlayerConfig.md)
369
+ - [PlayerFactoryResumeOptions](interfaces/PlayerFactoryResumeOptions.md)
482
370
  - [PlayerOptions](interfaces/PlayerOptions.md)
483
371
  - [RouteContext](interfaces/RouteContext.md)
372
+ - [RouteObject](interfaces/RouteObject.md)
484
373
 
485
374
  ## Type Aliases
486
375
 
487
- - [Catalog](type-aliases/Catalog.md)
488
376
  - [ComposedGuard](type-aliases/ComposedGuard.md)
489
377
  - [Guard](type-aliases/Guard.md)
490
378
  - [GuardArray](type-aliases/GuardArray.md)
491
379
  - [PlayerFactory](type-aliases/PlayerFactory.md)
380
+ - [PlayRoutePayload](type-aliases/PlayRoutePayload.md)
492
381
  - [RouteMachineConfig](type-aliases/RouteMachineConfig.md)
382
+ - [RouteMetadata](type-aliases/RouteMetadata.md)
493
383
  - [RouteStateNode](type-aliases/RouteStateNode.md)
494
- - [ValidationResult](type-aliases/ValidationResult.md)
495
- - [ViewMergeContext](type-aliases/ViewMergeContext.md)
384
+ - [SetupLike](type-aliases/SetupLike.md)
385
+ - [WithOptional](type-aliases/WithOptional.md)
386
+
387
+ ## Variables
388
+
389
+ - [emptyEventSchema](variables/emptyEventSchema.md)
390
+ - [playMetaSchema](variables/playMetaSchema.md)
391
+ - [playRouteEventSchema](variables/playRouteEventSchema.md)
496
392
 
497
393
  ## Functions
498
394
 
499
395
  - [buildRouteUrl](functions/buildRouteUrl.md)
500
396
  - [composeGuards](functions/composeGuards.md)
501
397
  - [composeGuardsOr](functions/composeGuardsOr.md)
398
+ - [contextFieldMatches](functions/contextFieldMatches.md)
399
+ - [createRoutedMachine](functions/createRoutedMachine.md)
502
400
  - [definePlayer](functions/definePlayer.md)
503
401
  - [deriveRoute](functions/deriveRoute.md)
504
402
  - [eventMatches](functions/eventMatches.md)
505
403
  - [formatPlayRouteTransitions](functions/formatPlayRouteTransitions.md)
506
404
  - [hasContext](functions/hasContext.md)
507
405
  - [isAbsoluteRoute](functions/isAbsoluteRoute.md)
508
- - [mergeViewProps](functions/mergeViewProps.md)
509
406
  - [negateGuard](functions/negateGuard.md)
510
- - [stateMatches](functions/stateMatches.md)
511
- - [validateComponentBinding](functions/validateComponentBinding.md)
512
- - [validateViewProps](functions/validateViewProps.md)