@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,260 +1,333 @@
1
- # Routing Patterns - Play Architecture
1
+ <!-- generated-by: gsd-doc-writer -->
2
2
 
3
- Learn how to implement parameter-aware navigation using routing patterns with `meta.route` URL patterns and `play.route` events.
3
+ # Routing Patterns
4
+
5
+ How the `authMachine` uses `meta.route`, `play.route` events, `formatPlayRouteTransitions`, and `always` transitions to implement actor-authoritative URL routing.
4
6
 
5
7
  ## Overview
6
8
 
7
- introduces enhanced routing capabilities that allow state machines to handle dynamic routes with parameters while maintaining Actor Authority (INV-01). The router observes actor state changes and syncs the browser URL, but the actor decides which routes are valid through guards.
9
+ XMachines inverts the usual routing model. The **actor** owns navigation its guards decide which states are valid. The **router** is passive infrastructure that observes `actor.currentRoute` and keeps the browser URL in sync. This is **Actor Authority (INV-01)**.
10
+
11
+ Every routing interaction starts with a `play.route` event sent to the actor. If the machine's guards allow the transition, the state changes and `actor.currentRoute` updates. The router bridge sees the new signal value and pushes a history entry. The URL never changes unless the actor approves.
8
12
 
9
13
  ## Key Concepts
10
14
 
11
- ### Route Marker
15
+ ### `meta.route` — Marking States as Routable
12
16
 
13
- States with `meta.route` property are routable - they can receive `play.route` events and be navigated to by URL. States without `meta.route` are internal machine states that don't correspond to URLs.
17
+ Add a `meta.route` URL template to any state to make it routable:
14
18
 
15
19
  ```typescript
16
20
  states: {
21
+ home: {
22
+ id: "home", // required: used as the play.route target ("#home")
23
+ meta: {
24
+ route: "/", // absolute URL path
25
+ },
26
+ },
17
27
  dashboard: {
28
+ id: "dashboard",
29
+ meta: {
30
+ route: "/dashboard", // absolute URL path
31
+ },
32
+ states: {
33
+ overview: {
34
+ id: "dashboard-overview",
35
+ meta: {
36
+ route: "overview", // RELATIVE — resolves to /dashboard/overview
37
+ },
38
+ },
39
+ },
40
+ },
41
+ profile: {
42
+ id: "profile",
43
+ meta: {
44
+ route: "/profile/:username", // required parameter
45
+ },
46
+ },
47
+ settings: {
48
+ id: "settings",
18
49
  meta: {
19
- route: '/dashboard', // Marks state as routable
20
- view: { component: 'Dashboard' }
21
- }
22
- }
50
+ route: "/settings/:section?", // optional parameter
51
+ },
52
+ },
23
53
  }
24
54
  ```
25
55
 
26
- ### Play.route Events with Parameters
56
+ **Rules:**
27
57
 
28
- Use `play.route` events to navigate with parameters. Unlike `xstate.route` (which doesn't support parameters), `play.route` allows passing data alongside navigation:
29
-
30
- ```typescript
31
- // Navigate to profile with userId parameter
32
- actor.send({
33
- type: "play.route",
34
- to: "/profile/user123",
35
- params: { userId: "user123" },
36
- });
37
- ```
58
+ - Absolute paths start with `/`.
59
+ - Relative paths (no leading `/`) are resolved against the parent state's route.
60
+ - Parameter segments use `:param` (required) and `:param?` (optional).
61
+ - Every routable state **must** have an `id` — `formatPlayRouteTransitions` throws `MissingStateIdError` otherwise.
38
62
 
39
- ### Parameter Patterns in meta.route
63
+ ### `formatPlayRouteTransitions` Auto-Generating Route Handlers
40
64
 
41
- Define URL patterns with `:param` syntax for required parameters and `:param?` for optional ones:
65
+ Instead of hand-writing `play.route` event handlers for every routable state, create the machine through `createRoutedMachine` — it has the same signature as the setup's own `createMachine` (full config inference) and applies `formatPlayRouteTransitions` at runtime:
42
66
 
43
67
  ```typescript
44
- meta: {
45
- route: '/profile/:userId', // Required parameter
46
- route: '/settings/:section?', // Optional parameter
68
+ import { setup, types } from "xstate";
69
+ import {
70
+ createRoutedMachine,
71
+ definePlayer,
72
+ emptyEventSchema,
73
+ playMetaSchema,
74
+ playRouteEventSchema,
75
+ } from "@xmachines/play-xstate";
76
+
77
+ interface AuthContext {
78
+ isAuthenticated: boolean;
79
+ username: string | null;
80
+ params: Record<string, string>; // required for formatPlayRouteTransitions
81
+ query: Record<string, string>; // required for formatPlayRouteTransitions
47
82
  }
48
- ```
49
-
50
- ## Complete Example
51
-
52
- See [routing-example.ts](./src/routing-example.ts) for a complete runnable example demonstrating all patterns.
53
-
54
- ### Machine Configuration
55
83
 
56
- ```typescript
57
- import { setup } from "xstate";
58
- import { definePlayer } from "@xmachines/play-xstate";
59
-
60
- const authMachine = setup({
61
- types: {
62
- context: {} as {
63
- isAuthenticated: boolean;
64
- userId: string;
65
- routeParams: Record<string, string>;
84
+ const authSetup = setup({
85
+ schemas: {
86
+ context: types<AuthContext>(),
87
+ input: types<Partial<AuthContext> | undefined>(),
88
+ events: {
89
+ "play.route": playRouteEventSchema,
90
+ "auth.login": types<{ username: string }>(),
91
+ "auth.logout": emptyEventSchema,
66
92
  },
67
- events: {} as
68
- | { type: "play.route"; to: string; params?: Record<string, string> }
69
- | { type: "auth.login"; userId: string },
70
- },
71
- }).createMachine({
72
- initial: "login",
73
- context: {
74
- isAuthenticated: false,
75
- userId: "",
76
- routeParams: {},
93
+ meta: playMetaSchema,
77
94
  },
78
- states: {
79
- login: {
80
- id: "login",
81
- meta: {
82
- route: "/login",
83
- view: { component: "LoginView" },
84
- },
85
- on: {
86
- "auth.login": {
87
- target: "profile",
88
- actions: ({ context, event }) => {
89
- context.isAuthenticated = true;
90
- context.userId = event.userId;
91
- },
92
- },
93
- },
94
- },
95
+ });
95
96
 
96
- profile: {
97
- id: "profile",
98
- meta: {
99
- route: "/profile/:userId",
100
- view: {
101
- component: "ProfileView",
102
- userId: (ctx) => ctx.routeParams.userId || ctx.userId,
103
- },
104
- },
105
- always: [
106
- {
107
- target: "login",
108
- guard: ({ context }) => !context.isAuthenticated,
109
- // Redirect to login if not authenticated
110
- },
111
- ],
112
- on: {
113
- "play.route": {
114
- actions: ({ context, event }) => {
115
- if (event.params?.userId) {
116
- context.routeParams = { userId: event.params.userId };
117
- }
118
- },
119
- },
120
- },
121
- },
97
+ const authMachine = createRoutedMachine(authSetup)({
98
+ id: "auth",
99
+ initial: "home",
100
+ context: ({ input }) => ({
101
+ isAuthenticated: input?.isAuthenticated ?? false,
102
+ username: input?.username ?? null,
103
+ params: input?.params ?? {},
104
+ query: input?.query ?? {},
105
+ }),
106
+ states: {
107
+ home: { id: "home", meta: { route: "/" } },
108
+ about: { id: "about", meta: { route: "/about" } },
109
+ login: { id: "login", meta: { route: "/login" } },
110
+ profile: { id: "profile", meta: { route: "/profile/:username" } },
122
111
  },
123
112
  });
124
-
125
- const createPlayer = definePlayer({ machine: authMachine });
126
113
  ```
127
114
 
128
- ### Using the Actor
115
+ Under the hood, `formatPlayRouteTransitions` wires the routed states to XState v6's **native routing**: each routed state receives a static `route: {}` config (making it targetable via the built-in `xstate.route` event and visible to graph tooling), and one root-level `play.route` forwarder handles the public API by navigating those targets **directly, in one atomic transition**:
129
116
 
130
117
  ```typescript
131
- // Create and start actor
132
- const actor = createPlayer();
133
- actor.start();
118
+ // Equivalent of what formatPlayRouteTransitions produces:
119
+ states: {
120
+ home: { id: "home", meta: { route: "/" }, route: {} },
121
+ about: { id: "about", meta: { route: "/about" }, route: {} },
122
+ login: { id: "login", meta: { route: "/login" }, route: {} },
123
+ profile: { id: "profile", meta: { route: "/profile/:username" }, route: {} },
124
+ },
125
+ on: {
126
+ "play.route": [
127
+ // routeTargets maps each routed #id to its state path, collected during
128
+ // the crawl (or to null when the state declares its OWN route config).
129
+ ({ event }, enq) => {
130
+ const target = routeTargets.get(event.to);
131
+ if (target === undefined) return undefined; // fall through to your fallbacks
132
+ if (target === null) {
133
+ // user-declared route config: its resolver decides (and owns any patch)
134
+ enq.raise({ ...event, type: "xstate.route" });
135
+ return {};
136
+ }
137
+ // one atomic transition: navigation + params/query patch together
138
+ return {
139
+ target,
140
+ reenter: true,
141
+ context: { params: event.params ?? {}, query: event.query ?? {} },
142
+ };
143
+ },
144
+ // ...your own play.route fallbacks (e.g. a 404 route) run for unknown targets
145
+ ],
146
+ }
147
+ ```
148
+
149
+ For injected routes the forwarder navigates directly — navigation and the `params`/`query` patch are one atomic transition, so exit actions see the old params and no `always` transition can observe a half-navigated state. The injected `route: {}` configs keep statically-targeted `xstate.route` edges in the graph for tooling. States that declare their **own** `route` config are re-raised as `xstate.route` instead, so the user's resolver decides (including blocking — in which case context stays untouched). Unknown targets return `undefined`, falling through to any `play.route` fallbacks you define yourself.
134
150
 
135
- // Login (transitions to profile)
136
- actor.send({ type: "auth.login", userId: "user123" });
151
+ ### `play.route` Events Navigation
137
152
 
138
- // Navigate to different profile with parameters
153
+ To navigate, send a `play.route` event with `to: "#stateId"`:
154
+
155
+ ```typescript
156
+ // Navigate to home
157
+ actor.send({ type: "play.route", to: "#home" });
158
+
159
+ // Navigate to profile — params are stored in context and used to resolve the URL
139
160
  actor.send({
140
161
  type: "play.route",
141
- to: "/profile/user456",
142
- params: { userId: "user456" },
162
+ to: "#profile",
163
+ params: { username: "alice" },
143
164
  });
144
165
 
145
- // Parameter extracted and available in view
146
- const view = actor.currentView.get();
147
- console.log(view.userId); // 'user456'
166
+ // actor.currentRoute.get() "/profile/alice"
167
+
168
+ // Navigate with query string
169
+ actor.send({
170
+ type: "play.route",
171
+ to: "#settings",
172
+ params: { section: "privacy" },
173
+ query: { tab: "advanced" },
174
+ });
148
175
  ```
149
176
 
150
- ## Pattern Matching for Dynamic Routes
177
+ **`to` always uses `"#stateId"` format** — the state's `id` field prefixed with `#`. Do not pass URL paths here.
151
178
 
152
- Routes with parameters use pattern matching to resolve URL paths:
179
+ ### `always` Transitions Protected Routes
153
180
 
154
- - `/profile/:userId` matches `/profile/user123`, `/profile/alice`, etc.
155
- - `/settings/:section?` matches `/settings` (no section) or `/settings/privacy`
181
+ Use XState `always` transitions to protect states. An `always` transition is a function evaluated on state entry: return `{ target }` to redirect _before_ the state is fully entered, or `undefined` to stay:
156
182
 
157
- The router extracts parameters from the URL and passes them in `play.route` events, which the machine stores in context for view projection.
183
+ ```typescript
184
+ dashboard: {
185
+ id: "dashboard",
186
+ meta: { route: "/dashboard" },
187
+ always: ({ context }) => {
188
+ // If not authenticated, redirect to login immediately
189
+ if (context.isAuthenticated) return;
190
+ return { target: "login" };
191
+ },
192
+ },
193
+ profile: {
194
+ id: "profile",
195
+ meta: { route: "/profile/:username" },
196
+ always: ({ context }) => {
197
+ if (context.isAuthenticated) return;
198
+ return { target: "login" };
199
+ },
200
+ },
201
+ ```
158
202
 
159
- ## Guard Placement Architecture
203
+ **Why `always` and not guards on events?** Guard checks inside event transitions answer "can I TAKE this transition?". `always` transitions check "can I BE in this state?" — the correct invariant for authentication. The actor enforces the check even on direct URL access (browser back/forward or deep link), because the router sends a `play.route` event which triggers the `always` transition.
160
204
 
161
- **Core Principle:** Guards check if you can BE in a state (state entry), not if you can TAKE an event (event handlers).
205
+ ### Root-Level Event Handlers
162
206
 
163
- ### Pattern 1: Using formatPlayRouteTransitions (RECOMMENDED)
207
+ Domain events placed at the root `on:` level are handled from any state:
164
208
 
165
209
  ```typescript
166
- import { formatPlayRouteTransitions } from "@xmachines/play-xstate";
167
-
168
- const machineConfig = {
169
- initial: "home",
170
- context: { isAuthenticated: false },
171
- states: {
172
- home: { id: "home", meta: { route: "/" } },
173
- profile: {
174
- id: "profile",
175
- meta: { route: "/profile/:userId" },
176
- // Always-guard validates state entry
177
- always: [
178
- {
179
- target: "login",
180
- guard: ({ context }) => !context.isAuthenticated,
210
+ const authMachine = createRoutedMachine(authSetup)({
211
+ // ...
212
+ on: {
213
+ "auth.login": ({ context, event }) => {
214
+ if (context.isAuthenticated) return;
215
+ return {
216
+ target: ".dashboard",
217
+ context: {
218
+ isAuthenticated: true,
219
+ username: event.username,
181
220
  },
182
- ],
221
+ };
222
+ },
223
+ "auth.logout": ({ context }) => {
224
+ if (!context.isAuthenticated) return;
225
+ return {
226
+ target: ".home",
227
+ context: {
228
+ isAuthenticated: false,
229
+ username: null,
230
+ },
231
+ };
183
232
  },
184
233
  },
185
- };
186
-
187
- // Utility handles routing infrastructure
188
- const machine = createMachine(formatPlayRouteTransitions(machineConfig));
234
+ states: {/* ... */},
235
+ });
189
236
  ```
190
237
 
191
- **Why this works:**
238
+ ## Complete Actor Usage
239
+
240
+ ```typescript
241
+ const createPlayer = definePlayer({ machine: authMachine });
242
+ const actor = createPlayer();
243
+ actor.start();
244
+
245
+ // Initial state
246
+ console.log(actor.currentRoute.get()); // "/"
192
247
 
193
- - `formatPlayRouteTransitions` adds routing infrastructure (event.to matching)
194
- - Always-guards handle business logic (authentication, authorization)
195
- - Clear separation: routing layer (infrastructure) vs validation layer (business logic)
248
+ // Navigate to about
249
+ actor.send({ type: "play.route", to: "#about" });
250
+ console.log(actor.currentRoute.get()); // "/about"
196
251
 
197
- ### Pattern 2: Manual Always-Guards (Advanced)
252
+ // Attempt protected route (redirect fires because isAuthenticated=false)
253
+ actor.send({ type: "play.route", to: "#dashboard" });
254
+ console.log(actor.getSnapshot().value); // "login" — guard redirected
198
255
 
199
- For advanced users who need full control:
256
+ // Login first
257
+ actor.send({ type: "auth.login", username: "alice" });
258
+ // auth.login root handler transitions to dashboard
259
+ console.log(actor.getSnapshot().value); // "dashboard"
260
+ console.log(actor.getSnapshot().context.username); // "alice"
200
261
 
201
- ```typescript
202
- const machine = createMachine({
203
- context: { intendedRoute: null, isAuthenticated: false },
204
- on: {
205
- "play.route": {
206
- actions: assign({
207
- intendedRoute: ({ event }) => event.to,
208
- }),
209
- },
210
- },
211
- always: [
212
- {
213
- target: "profile",
214
- guard: ({ context }) => context.intendedRoute === "#profile" && context.isAuthenticated,
215
- reenter: true,
216
- },
217
- {
218
- target: "login",
219
- guard: ({ context }) =>
220
- context.intendedRoute === "#profile" && !context.isAuthenticated,
221
- },
222
- ],
223
- });
262
+ // Navigate to profile with params
263
+ actor.send({ type: "play.route", to: "#profile", params: { username: "alice" } });
264
+ console.log(actor.currentRoute.get()); // "/profile/alice"
265
+
266
+ actor.stop();
224
267
  ```
225
268
 
226
- ### Anti-Pattern: Guards on Events
269
+ ## Vanilla Router Setup
227
270
 
228
- **NEVER do this:**
271
+ To sync the browser URL with `actor.currentRoute`, use `@xmachines/play-dom-router`:
229
272
 
230
273
  ```typescript
231
- // ❌ WRONG - Guard on event checking event property
232
- on: {
233
- 'play.route': [
234
- {
235
- guard: ({ event }) => event.to === "#dashboard",
236
- target: "dashboard"
237
- }
238
- ]
239
- }
274
+ import {
275
+ createBrowserHistory,
276
+ createRouter,
277
+ connectRouter,
278
+ createRouteMap,
279
+ } from "@xmachines/play-dom-router";
280
+
281
+ // createRouteMap extracts meta.route declarations from the machine
282
+ const routeMap = createRouteMap(authMachine);
283
+
284
+ const history = createBrowserHistory({ window });
285
+ const router = createRouter({ routeTree: authMachine, history });
286
+
287
+ // connectRouter handles all bidirectional sync:
288
+ // - actor.currentRoute signal → browser URL (history.push)
289
+ // - browser URL changes → play.route event sent to actor
290
+ const disconnect = connectRouter({ actor, router, routeMap });
291
+
292
+ // Cleanup on unload
293
+ window.addEventListener("beforeunload", () => {
294
+ disconnect();
295
+ router.destroy();
296
+ });
240
297
  ```
241
298
 
242
- **Why this is wrong:** The state doesn't care HOW it was entered (which event triggered it). Guards should validate state invariants: "Can I BE in this state given current context?" not "Can I TAKE this event?"
299
+ ## React Router Setup
300
+
301
+ For React, use `@xmachines/play-react-router` or `@xmachines/play-tanstack-react-router`:
243
302
 
244
- **Correct approach:** Use `formatPlayRouteTransitions` for routing infrastructure, use always-guards for state validation.
303
+ ```tsx
304
+ import { PlayRouterProvider, createRouteMapFromTree } from "@xmachines/play-tanstack-react-router";
305
+ import { extractMachineRoutes } from "@xmachines/play-router";
306
+
307
+ const routeTree = extractMachineRoutes(authMachine);
308
+ const routeMap = createRouteMapFromTree(routeTree);
309
+
310
+ function App() {
311
+ return <PlayRouterProvider actor={actor} router={router} routeMap={routeMap} />;
312
+ }
313
+ ```
245
314
 
246
- ### Actor Authority in Action
315
+ ## Architectural Invariants
247
316
 
248
- This demonstrates **Actor Authority (INV-01)** — the state machine controls navigation through guards, not the router. If a guard returns `false`, the transition is rejected and the URL doesn't change.
317
+ | Invariant | Description |
318
+ | ----------------------------------- | ---------------------------------------------------------------------------------------------- |
319
+ | **Actor Authority (INV-01)** | Guards on the machine validate every navigation. The router cannot change state directly. |
320
+ | **Passive Infrastructure (INV-04)** | The router observes `actor.currentRoute` — it never decides where to go. |
321
+ | **State-Driven Reset (INV-03)** | Browser back/forward sends `play.route` events to the actor. History is driven by actor state. |
322
+ | **Strict Separation (INV-02)** | The machine has zero framework imports. Guards, transitions, and context are pure TypeScript. |
249
323
 
250
324
  ## Next Steps
251
325
 
252
- - **[Multi-Router Integration](./multi-router-integration.md)** - Learn about renderer prop pattern
253
- - **[Integration Example](./src/integration-example.ts)** - See complete authentication flow with all patterns
254
- - **[React + TanStack Router Demo](../../packages/play-tanstack-react-router/examples/demo-app/)** - Production example with all 5 architectural invariants
326
+ - **[Multi-Router Integration](./multi-router-integration.md)** All 8 router adapters and the two integration patterns
327
+ - **[Examples Index](./README.md)** Complete catalog of runnable demos
255
328
 
256
329
  ## Learn More
257
330
 
258
- - [XState Routes Documentation](https://stately.ai/docs/routes) - Official Stately routing patterns
259
- - [RFC Play v1](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md) - Complete architectural specification
260
- - [play-router README](../../packages/play-router/README.md) - Route extraction and tree building
331
+ - [Play RFC](../rfc/play.md) Complete architectural specification
332
+ - [play-router](../api/@xmachines/play-router/README.md) Route extraction and tree building
333
+ - [play-dom-router](../api/@xmachines/play-dom-router/README.md) Vanilla DOM bindings