@xmachines/docs 1.0.0-beta.24 → 1.0.0-beta.26

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 (250) hide show
  1. package/api/@xmachines/play/classes/PlayError.md +10 -4
  2. package/api/@xmachines/play/type-aliases/PlayEvent.md +2 -2
  3. package/api/@xmachines/play-actor/README.md +4 -0
  4. package/api/@xmachines/play-actor/classes/AbstractActor.md +49 -92
  5. package/api/@xmachines/play-actor/functions/typedSpec.md +57 -0
  6. package/api/@xmachines/play-actor/interfaces/PlaySpec.md +9 -18
  7. package/api/@xmachines/play-actor/interfaces/Routable.md +5 -21
  8. package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +6 -6
  9. package/api/@xmachines/play-actor/interfaces/Viewable.md +5 -6
  10. package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
  11. package/api/@xmachines/play-dom/functions/connectRenderer.md +1 -1
  12. package/api/@xmachines/play-dom/functions/renderSpec.md +1 -1
  13. package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +7 -7
  14. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +7 -7
  15. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +3 -3
  16. package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +1 -1
  17. package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +1 -1
  18. package/api/@xmachines/play-dom-router/README.md +10 -0
  19. package/api/@xmachines/play-dom-router/functions/connectRouter.md +18 -46
  20. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  21. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +38 -0
  22. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  23. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +16 -16
  24. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +16 -16
  25. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +6 -6
  26. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +119 -0
  27. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +114 -0
  28. package/api/@xmachines/play-dom-router/interfaces/RouteMapLike.md +50 -0
  29. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +27 -0
  30. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +104 -0
  31. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +6 -6
  32. package/api/@xmachines/play-dom-router/type-aliases/RoutableActor.md +9 -0
  33. package/api/@xmachines/play-react/README.md +4 -4
  34. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +31 -5
  35. package/api/@xmachines/play-react/functions/defineRegistry.md +2 -0
  36. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  37. package/api/@xmachines/play-react/functions/useBoundProp.md +2 -0
  38. package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
  39. package/api/@xmachines/play-react/functions/useStateBinding.md +2 -0
  40. package/api/@xmachines/play-react/interfaces/ComponentContext.md +2 -0
  41. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +4 -4
  42. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +3 -3
  43. package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +7 -7
  44. package/api/@xmachines/play-react/type-aliases/ComponentFn.md +2 -0
  45. package/api/@xmachines/play-react/type-aliases/PlayActor.md +1 -1
  46. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  47. package/api/@xmachines/play-react-router/README.md +5 -1
  48. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +102 -25
  49. package/api/@xmachines/play-react-router/classes/RouteMap.md +17 -33
  50. package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +8 -1
  51. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +21 -11
  52. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +8 -8
  53. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +7 -7
  54. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +18 -8
  55. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  56. package/api/@xmachines/play-router/README.md +42 -5
  57. package/api/@xmachines/play-router/classes/BaseRouteMap.md +12 -17
  58. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +100 -25
  59. package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +1 -1
  60. package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
  61. package/api/@xmachines/play-router/functions/createRouteMap.md +1 -1
  62. package/api/@xmachines/play-router/functions/createRouteMapFromMachine.md +38 -0
  63. package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +45 -0
  64. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
  65. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
  66. package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
  67. package/api/@xmachines/play-router/functions/extractRouteParams.md +46 -0
  68. package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
  69. package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
  70. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
  71. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
  72. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
  73. package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
  74. package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
  75. package/api/@xmachines/play-router/functions/routeExists.md +1 -1
  76. package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
  77. package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
  78. package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
  79. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
  80. package/api/@xmachines/play-router/interfaces/LocationLike.md +27 -0
  81. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
  82. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
  83. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +8 -8
  84. package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
  85. package/api/@xmachines/play-router/interfaces/RouteMap.md +4 -4
  86. package/api/@xmachines/play-router/interfaces/{BaseRouteMapping.md → RouteMapping.md} +5 -5
  87. package/api/@xmachines/play-router/interfaces/RouteMatch.md +5 -5
  88. package/api/@xmachines/play-router/interfaces/RouteNode.md +12 -12
  89. package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
  90. package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
  91. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +6 -6
  92. package/api/@xmachines/play-router/interfaces/RouterBridge.md +3 -3
  93. package/api/@xmachines/play-router/interfaces/WindowLike.md +65 -0
  94. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
  95. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
  96. package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
  97. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
  98. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
  99. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
  100. package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
  101. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
  102. package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +6 -0
  103. package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +8 -0
  104. package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +2 -0
  105. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +10 -0
  106. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +2 -0
  107. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +2 -0
  108. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +2 -0
  109. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +2 -0
  110. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +2 -0
  111. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +2 -0
  112. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +2 -0
  113. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +2 -0
  114. package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +2 -0
  115. package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +2 -0
  116. package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +2 -0
  117. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
  118. package/api/@xmachines/play-solid/README.md +4 -4
  119. package/api/@xmachines/play-solid/functions/defineRegistry.md +2 -0
  120. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  121. package/api/@xmachines/play-solid/functions/useStateBinding.md +2 -0
  122. package/api/@xmachines/play-solid/interfaces/ComponentContext.md +2 -0
  123. package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +7 -7
  124. package/api/@xmachines/play-solid/type-aliases/ComponentFn.md +2 -0
  125. package/api/@xmachines/play-solid/type-aliases/PlayActor.md +1 -1
  126. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  127. package/api/@xmachines/play-solid-router/README.md +2 -2
  128. package/api/@xmachines/play-solid-router/classes/RouteMap.md +13 -26
  129. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +121 -46
  130. package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +1 -1
  131. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +15 -9
  132. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +47 -92
  133. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +8 -8
  134. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  135. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +19 -6
  136. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  137. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
  138. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +21 -18
  139. package/api/@xmachines/play-svelte/README.md +119 -0
  140. package/api/@xmachines/play-svelte/functions/defineRegistry.md +54 -0
  141. package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +29 -0
  142. package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +29 -0
  143. package/api/@xmachines/play-svelte/interfaces/PlayRendererProps.md +22 -0
  144. package/api/@xmachines/play-svelte/type-aliases/ComponentFn.md +18 -0
  145. package/api/@xmachines/play-svelte/type-aliases/PlayRenderer.md +9 -0
  146. package/api/@xmachines/play-svelte/variables/PlayRenderer.md +9 -0
  147. package/api/@xmachines/play-svelte/variables/getBoundProp.md +7 -0
  148. package/api/@xmachines/play-svelte-spa-router/README.md +54 -0
  149. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +137 -0
  150. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +32 -0
  151. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +38 -0
  152. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +17 -0
  153. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +119 -0
  154. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +27 -0
  155. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +104 -0
  156. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +65 -0
  157. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +9 -0
  158. package/api/@xmachines/play-svelte-spa-router-demo/README.md +23 -0
  159. package/api/@xmachines/play-sveltekit-router/README.md +54 -0
  160. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +137 -0
  161. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +32 -0
  162. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +38 -0
  163. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -0
  164. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +27 -0
  165. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +119 -0
  166. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +27 -0
  167. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +104 -0
  168. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +9 -0
  169. package/api/@xmachines/play-sveltekit-router-demo/README.md +23 -0
  170. package/api/@xmachines/play-tanstack-react-router/README.md +5 -3
  171. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +17 -33
  172. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +93 -25
  173. package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +1 -1
  174. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +1 -1
  175. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +21 -11
  176. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
  177. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +8 -8
  178. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  179. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +18 -8
  180. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
  181. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  182. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  183. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +6 -26
  184. package/api/@xmachines/play-tanstack-solid-router/README.md +8 -8
  185. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +13 -26
  186. package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +101 -36
  187. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +1 -1
  188. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +15 -9
  189. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +8 -8
  190. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  191. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +13 -9
  192. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  193. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
  194. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  195. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +23 -24
  196. package/api/@xmachines/play-vue/README.md +4 -4
  197. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  198. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  199. package/api/@xmachines/play-vue/functions/useStateBinding.md +2 -0
  200. package/api/@xmachines/play-vue/interfaces/ComponentContext.md +2 -0
  201. package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +5 -5
  202. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  203. package/api/@xmachines/play-vue/type-aliases/ComponentFn.md +2 -0
  204. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  205. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  206. package/api/@xmachines/play-vue/type-aliases/PlayActor.md +1 -1
  207. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  208. package/api/@xmachines/play-vue-router/README.md +2 -2
  209. package/api/@xmachines/play-vue-router/classes/RouteMap.md +18 -108
  210. package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +44 -104
  211. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +127 -62
  212. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
  213. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +8 -8
  214. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +19 -7
  215. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
  216. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
  217. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
  218. package/api/@xmachines/play-xstate/README.md +15 -15
  219. package/api/@xmachines/play-xstate/classes/PlayerActor.md +46 -30
  220. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +20 -15
  221. package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
  222. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
  223. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
  224. package/api/@xmachines/play-xstate/functions/definePlayer.md +1 -1
  225. package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
  226. package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
  227. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +2 -2
  228. package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
  229. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
  230. package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
  231. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
  232. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
  233. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
  234. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +14 -12
  235. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
  236. package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
  237. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
  238. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
  239. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
  240. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
  241. package/api/@xmachines/shared/functions/defineXmVitestConfig.md +2 -2
  242. package/api/@xmachines/shared/functions/xmAliases.md +1 -1
  243. package/api/README.md +9 -4
  244. package/api/llms.txt +6 -3
  245. package/examples/README.md +5 -0
  246. package/examples/multi-router-integration.md +34 -6
  247. package/examples/routing-patterns.md +6 -4
  248. package/package.json +2 -2
  249. package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +0 -38
  250. package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +0 -33
@@ -0,0 +1,104 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-svelte-spa-router](../README.md) / RouterBridge
2
+
3
+ # Interface: RouterBridge
4
+
5
+ Defined in: [play-router/src/types.ts:271](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/types.ts#L271)
6
+
7
+ RouterBridge interface for runtime infrastructure adapters
8
+
9
+ Defines the lifecycle connection between Infrastructure (e.g., TanStack Router) and
10
+ the Actor. Infrastructure "bridges" to the Actor by observing its signals and
11
+ managing its own lifecycle accordingly.
12
+
13
+ **Architectural Context:** Implements **Passive Infrastructure (INV-04)** by establishing
14
+ a unidirectional observation pattern. Infrastructure connects to observe Actor signals
15
+ (currentRoute, currentView, state) and reflects changes without making state decisions.
16
+
17
+ ## Example
18
+
19
+ TanStack Router bridge implementation
20
+
21
+ ```typescript
22
+ import type { RouterBridge } from "@xmachines/play-router";
23
+ import { Signal } from "@xmachines/play-signals";
24
+
25
+ class TanStackRouterBridge implements RouterBridge {
26
+ private watcher: Signal.Watcher | null = null;
27
+
28
+ async connect(): Promise<void> {
29
+ // Start observing actor.currentRoute signal
30
+ this.watcher = new Signal.subtle.Watcher(() => {
31
+ const route = actor.currentRoute.get();
32
+ if (route) router.navigate(route);
33
+ });
34
+ this.watcher.watch(actor.currentRoute);
35
+ }
36
+
37
+ async disconnect(): Promise<void> {
38
+ // Stop observing, cleanup watchers
39
+ this.watcher?.unwatch(actor.currentRoute);
40
+ this.watcher = null;
41
+ }
42
+ }
43
+ ```
44
+
45
+ ## See
46
+
47
+ [Play RFC](../../../../rfc/play.md) - Invariant INV-04
48
+
49
+ ## Methods
50
+
51
+ ### connect()
52
+
53
+ ```ts
54
+ connect(): void | Promise<void>;
55
+ ```
56
+
57
+ Defined in: [play-router/src/types.ts:287](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/types.ts#L287)
58
+
59
+ Connect the router bridge to the Actor
60
+
61
+ Called when Infrastructure should begin observing Actor signals and
62
+ synchronizing its state (e.g., browser URL) with Actor state.
63
+
64
+ #### Returns
65
+
66
+ `void` \| `Promise`\<`void`\>
67
+
68
+ Promise that resolves when connection is established, or void for synchronous connection
69
+
70
+ #### Example
71
+
72
+ ```typescript
73
+ const bridge: RouterBridge = createBridge(actor, router);
74
+ await bridge.connect();
75
+ // Bridge now observing actor.currentRoute signal
76
+ ```
77
+
78
+ ---
79
+
80
+ ### disconnect()
81
+
82
+ ```ts
83
+ disconnect(): void | Promise<void>;
84
+ ```
85
+
86
+ Defined in: [play-router/src/types.ts:303](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/types.ts#L303)
87
+
88
+ Disconnect the router bridge from the Actor
89
+
90
+ Called when Infrastructure should stop observing and clean up resources
91
+ (e.g., signal watchers, event listeners).
92
+
93
+ #### Returns
94
+
95
+ `void` \| `Promise`\<`void`\>
96
+
97
+ Promise that resolves when disconnection is complete, or void for synchronous disconnection
98
+
99
+ #### Example
100
+
101
+ ```typescript
102
+ await bridge.disconnect();
103
+ // Bridge stopped observing, resources cleaned up
104
+ ```
@@ -0,0 +1,65 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-svelte-spa-router](../README.md) / WindowLike
2
+
3
+ # Interface: WindowLike
4
+
5
+ Defined in: [play-router/src/types.ts:324](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/types.ts#L324)
6
+
7
+ Minimal window interface required by adapters that subscribe to DOM events
8
+ (e.g. `hashchange`). Injectable for SSR and testing — pass a mock instead of
9
+ the global `window` when the DOM is unavailable.
10
+
11
+ Defined structurally (no `Window` reference) so this package compiles without
12
+ the DOM lib.
13
+
14
+ ## Example
15
+
16
+ ```typescript
17
+ // Normal usage — global window (default)
18
+ connectRouter({ actor, routeMap });
19
+
20
+ // SSR / test — injected mock
21
+ const mockWin: WindowLike = { addEventListener: vi.fn(), removeEventListener: vi.fn() };
22
+ connectRouter({ actor, routeMap, window: mockWin });
23
+ ```
24
+
25
+ ## Methods
26
+
27
+ ### addEventListener()
28
+
29
+ ```ts
30
+ addEventListener(type, listener): void;
31
+ ```
32
+
33
+ Defined in: [play-router/src/types.ts:325](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/types.ts#L325)
34
+
35
+ #### Parameters
36
+
37
+ | Parameter | Type |
38
+ | ---------- | ------------------- |
39
+ | `type` | `string` |
40
+ | `listener` | (`event`) => `void` |
41
+
42
+ #### Returns
43
+
44
+ `void`
45
+
46
+ ---
47
+
48
+ ### removeEventListener()
49
+
50
+ ```ts
51
+ removeEventListener(type, listener): void;
52
+ ```
53
+
54
+ Defined in: [play-router/src/types.ts:326](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/types.ts#L326)
55
+
56
+ #### Parameters
57
+
58
+ | Parameter | Type |
59
+ | ---------- | ------------------- |
60
+ | `type` | `string` |
61
+ | `listener` | (`event`) => `void` |
62
+
63
+ #### Returns
64
+
65
+ `void`
@@ -0,0 +1,9 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-svelte-spa-router](../README.md) / RoutableActor
2
+
3
+ # Type Alias: RoutableActor
4
+
5
+ ```ts
6
+ type RoutableActor = AbstractActor<AnyActorLogic> & Routable;
7
+ ```
8
+
9
+ Defined in: [play-svelte-spa-router/src/types.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-svelte-spa-router/src/types.ts#L6)
@@ -0,0 +1,23 @@
1
+ [Documentation](../../README.md) / @xmachines/play-svelte-spa-router-demo
2
+
3
+ # @xmachines/play-svelte-spa-router demo
4
+
5
+ Compact browser demo for the Svelte SPA router adapter.
6
+
7
+ ## Imports
8
+
9
+ - `@xmachines/play-svelte` for the Svelte renderer and registry helpers
10
+ - `@xmachines/play-svelte-spa-router` for hash-based URL ↔ actor sync
11
+
12
+ ## Commands
13
+
14
+ ```bash
15
+ npm run dev -w @xmachines/play-svelte-spa-router-demo
16
+ npm run build -w @xmachines/play-svelte-spa-router-demo
17
+ npm run test:browser -w @xmachines/play-svelte-spa-router-demo
18
+ ```
19
+
20
+ ## What it proves
21
+
22
+ - Clicking a navigation control updates the rendered view
23
+ - Browser back/forward restores the route and view
@@ -0,0 +1,54 @@
1
+ [Documentation](../../README.md) / @xmachines/play-sveltekit-router
2
+
3
+ # @xmachines/play-sveltekit-router
4
+
5
+ Thin SvelteKit adapter for XMachines Play.
6
+
7
+ ## What it does
8
+
9
+ - Keeps `actor.currentRoute` and SvelteKit navigation in sync.
10
+ - Exposes a local `RouteMap` plus `createRouteMap(machine)` helper.
11
+ - No intermediate shared package — all shared logic lives in `@xmachines/play-router`.
12
+ - Extracts route params and query values when browser navigation enters through SvelteKit.
13
+
14
+ ## Usage
15
+
16
+ ```ts
17
+ import { connectRouter, createRouteMap } from "@xmachines/play-sveltekit-router";
18
+
19
+ const routeMap = createRouteMap(machine);
20
+ const disconnect = connectRouter({ actor, routeMap });
21
+
22
+ onDestroy(disconnect);
23
+ ```
24
+
25
+ ## Notes
26
+
27
+ - `connectRouter()` returns a cleanup function. Call it during teardown to stop syncing actor updates.
28
+ - Actor routes may be either state IDs or resolved paths; the adapter normalizes both.
29
+ - Incoming SvelteKit paths are converted into `play.route` events with extracted `params` and `query`.
30
+
31
+ ## Route map
32
+
33
+ `createRouteMap(machine)` reads route metadata from the machine and builds a Play route map for SvelteKit paths.
34
+
35
+ ## Classes
36
+
37
+ - [RouteMap](classes/RouteMap.md)
38
+
39
+ ## Interfaces
40
+
41
+ - [ConnectRouterOptions](interfaces/ConnectRouterOptions.md)
42
+ - [LocationLike](interfaces/LocationLike.md)
43
+ - [PlayRouteEvent](interfaces/PlayRouteEvent.md)
44
+ - [RouteMapping](interfaces/RouteMapping.md)
45
+ - [RouterBridge](interfaces/RouterBridge.md)
46
+
47
+ ## Type Aliases
48
+
49
+ - [RoutableActor](type-aliases/RoutableActor.md)
50
+
51
+ ## Functions
52
+
53
+ - [connectRouter](functions/connectRouter.md)
54
+ - [createRouteMap](functions/createRouteMap.md)
@@ -0,0 +1,137 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-sveltekit-router](../README.md) / RouteMap
2
+
3
+ # Class: RouteMap
4
+
5
+ Defined in: [play-router/src/base-route-map.ts:100](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/base-route-map.ts#L100)
6
+
7
+ Shared bidirectional route map base class.
8
+
9
+ All framework adapter `RouteMap` classes extend this — they add no logic of their
10
+ own and inherit the full public API from here.
11
+
12
+ **Lookup strategy:**
13
+
14
+ - Static paths (no `:param`) → O(1) `Map` lookup
15
+ - Dynamic paths → O(k) bucket-indexed scan using `URLPattern`, where `k` is the number
16
+ of routes sharing the same first path segment
17
+ - Results are cached after the first match in an LRU cache (default 500 entries,
18
+ configurable via the `cacheSize` constructor option)
19
+
20
+ **Pattern syntax** (`:param` / `:param?`):
21
+
22
+ - `:param` — required segment, matches exactly one non-`/` segment
23
+ - `:param?` — optional segment, matches zero or one non-`/` segment
24
+
25
+ ## Example
26
+
27
+ ```typescript
28
+ import { BaseRouteMap } from "@xmachines/play-router";
29
+
30
+ const map = new BaseRouteMap([
31
+ { stateId: "home", path: "/" },
32
+ { stateId: "profile", path: "/profile/:userId" },
33
+ { stateId: "settings", path: "/settings/:section?" },
34
+ ]);
35
+
36
+ map.getStateIdByPath("/"); // "home"
37
+ map.getStateIdByPath("/profile/123"); // "profile"
38
+ map.getStateIdByPath("/settings"); // "settings"
39
+ map.getStateIdByPath("/unknown"); // null
40
+
41
+ map.getPathByStateId("profile"); // "/profile/:userId"
42
+ map.getPathByStateId("missing"); // null
43
+ ```
44
+
45
+ ## Constructors
46
+
47
+ ### Constructor
48
+
49
+ ```ts
50
+ new RouteMap(mappings, options?): BaseRouteMap;
51
+ ```
52
+
53
+ Defined in: [play-router/src/base-route-map.ts:125](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/base-route-map.ts#L125)
54
+
55
+ Build a route map from an array of state ID ↔ path mappings.
56
+
57
+ Static paths (no `:param`) are indexed in an O(1) `Map`.
58
+ Parameterized paths are compiled to `URLPattern` and grouped into first-segment
59
+ buckets for efficient candidate selection.
60
+
61
+ #### Parameters
62
+
63
+ | Parameter | Type | Description |
64
+ | -------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
65
+ | `mappings` | [`RouteMapping`](../interfaces/RouteMapping.md)[] | Array of `{ stateId, path }` entries. Order determines priority when multiple patterns could match the same path. |
66
+ | `options` | \{ `cacheSize?`: `number`; \} | Optional configuration. `options.cacheSize`: Maximum number of resolved parameterized path lookups to cache. Defaults to `500`. Increase for applications with many unique parameterized URL values (e.g. user profile pages with thousands of distinct IDs). After eviction the path falls back to the O(k) bucket pattern scan — correct but slower. Minimum effective value is `1` (QuickLRU constraint). |
67
+ | `options.cacheSize?` | `number` | - |
68
+
69
+ #### Returns
70
+
71
+ `BaseRouteMap`
72
+
73
+ ## Methods
74
+
75
+ ### getPathByStateId()
76
+
77
+ ```ts
78
+ getPathByStateId(stateId): string | null;
79
+ ```
80
+
81
+ Defined in: [play-router/src/base-route-map.ts:209](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/base-route-map.ts#L209)
82
+
83
+ Look up the path pattern registered for a state ID.
84
+
85
+ #### Parameters
86
+
87
+ | Parameter | Type | Description |
88
+ | --------- | -------- | --------------------------------------------------------- |
89
+ | `stateId` | `string` | State machine state ID (e.g., `"profile"`, `"#settings"`) |
90
+
91
+ #### Returns
92
+
93
+ `string` \| `null`
94
+
95
+ The registered path pattern, or `null` if the state ID is unknown
96
+
97
+ #### Example
98
+
99
+ ```typescript
100
+ map.getPathByStateId("profile"); // "/profile/:userId"
101
+ map.getPathByStateId("missing"); // null
102
+ ```
103
+
104
+ ---
105
+
106
+ ### getStateIdByPath()
107
+
108
+ ```ts
109
+ getStateIdByPath(path): string | null;
110
+ ```
111
+
112
+ Defined in: [play-router/src/base-route-map.ts:174](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/base-route-map.ts#L174)
113
+
114
+ Resolve a URL path to its mapped state ID.
115
+
116
+ Strips query strings and hash fragments before matching. Tries an O(1) exact
117
+ lookup first, then falls back to bucket-indexed pattern matching. Results are
118
+ cached after the first pattern match.
119
+
120
+ #### Parameters
121
+
122
+ | Parameter | Type | Description |
123
+ | --------- | -------- | ------------------------------------------------------------------------------ |
124
+ | `path` | `string` | URL pathname, optionally including query/hash (e.g., `"/profile/123?ref=nav"`) |
125
+
126
+ #### Returns
127
+
128
+ `string` \| `null`
129
+
130
+ The mapped state ID, or `null` if no route matches
131
+
132
+ #### Example
133
+
134
+ ```typescript
135
+ map.getStateIdByPath("/profile/123"); // "profile"
136
+ map.getStateIdByPath("/unknown"); // null
137
+ ```
@@ -0,0 +1,32 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-sveltekit-router](../README.md) / connectRouter
2
+
3
+ # Function: connectRouter()
4
+
5
+ ```ts
6
+ function connectRouter(options): () => void;
7
+ ```
8
+
9
+ Defined in: [play-sveltekit-router/src/connect-router.ts:29](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-sveltekit-router/src/connect-router.ts#L29)
10
+
11
+ Connect SvelteKit router to actor.
12
+
13
+ Returns a cleanup function. The public API surface is unchanged (D-14).
14
+
15
+ ## Parameters
16
+
17
+ | Parameter | Type |
18
+ | --------- | --------------------------------------------------------------- |
19
+ | `options` | [`ConnectRouterOptions`](../interfaces/ConnectRouterOptions.md) |
20
+
21
+ ## Returns
22
+
23
+ () => `void`
24
+
25
+ ## Example
26
+
27
+ ```typescript
28
+ import { connectRouter, createRouteMap } from "@xmachines/play-sveltekit-router";
29
+ const routeMap = createRouteMap(machine);
30
+ const disconnect = connectRouter({ actor, routeMap });
31
+ onDestroy(() => disconnect());
32
+ ```
@@ -0,0 +1,38 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-sveltekit-router](../README.md) / createRouteMap
2
+
3
+ # Function: createRouteMap()
4
+
5
+ ```ts
6
+ function createRouteMap(machine): RouteMap;
7
+ ```
8
+
9
+ Defined in: [play-router/src/create-route-map-from-machine.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/create-route-map-from-machine.ts#L26)
10
+
11
+ Create a `BaseRouteMap` from an XState state machine.
12
+
13
+ Extracts all routable states (those with `meta.route`) and builds a bidirectional
14
+ path ↔ stateId lookup structure. The returned map is used by `RouterBridgeBase`
15
+ subclasses to translate browser URL changes into `play.route` actor events and
16
+ vice-versa.
17
+
18
+ ## Parameters
19
+
20
+ | Parameter | Type | Description |
21
+ | --------- | ------------------------------------------------------------------------- | ---------------------------------------------------------------- |
22
+ | `machine` | [`AnyStateMachine`](https://www.jsdocs.io/package/xstate#AnyStateMachine) | XState v5 state machine with `meta.route` annotations on states. |
23
+
24
+ ## Returns
25
+
26
+ [`RouteMap`](../classes/RouteMap.md)
27
+
28
+ A `BaseRouteMap` for passing to any `RouterBridgeBase`-based adapter.
29
+
30
+ ## Example
31
+
32
+ ```typescript
33
+ import { createRouteMapFromMachine } from "@xmachines/play-router";
34
+ import { connectRouter } from "@xmachines/play-dom-router";
35
+
36
+ const routeMap = createRouteMapFromMachine(myMachine);
37
+ const disconnect = connectRouter({ actor, router, routeMap });
38
+ ```
@@ -0,0 +1,13 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-sveltekit-router](../README.md) / ConnectRouterOptions
2
+
3
+ # Interface: ConnectRouterOptions
4
+
5
+ Defined in: [play-sveltekit-router/src/connect-router.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-sveltekit-router/src/connect-router.ts#L6)
6
+
7
+ ## Properties
8
+
9
+ | Property | Modifier | Type | Description | Defined in |
10
+ | ------------------------------------------ | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
11
+ | <a id="property-actor"></a> `actor` | `readonly` | [`AbstractActor`](../../play-actor/classes/AbstractActor.md)\<[`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic), [`EventObject`](https://www.jsdocs.io/package/xstate#EventObject)\> & [`Routable`](../../play-actor/interfaces/Routable.md) | - | [play-sveltekit-router/src/connect-router.ts:7](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-sveltekit-router/src/connect-router.ts#L7) |
12
+ | <a id="property-location"></a> `location?` | `readonly` | [`LocationLike`](LocationLike.md) \| `null` | Location-like object for initial URL reads. Defaults to `globalThis.location`. Pass a mock in tests or a stub in SSR environments. | [play-sveltekit-router/src/connect-router.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-sveltekit-router/src/connect-router.ts#L13) |
13
+ | <a id="property-routemap"></a> `routeMap` | `readonly` | [`RouteMap`](../classes/RouteMap.md) | - | [play-sveltekit-router/src/connect-router.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-sveltekit-router/src/connect-router.ts#L8) |
@@ -0,0 +1,27 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-sveltekit-router](../README.md) / LocationLike
2
+
3
+ # Interface: LocationLike
4
+
5
+ Defined in: [play-router/src/types.ts:344](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/types.ts#L344)
6
+
7
+ Minimal location interface required by adapters that read the current URL at
8
+ `connect()` time. Injectable for SSR and testing — pass a mock instead of the
9
+ global `location` when the DOM is unavailable.
10
+
11
+ Defined structurally (no `Location` reference) so this package compiles without
12
+ the DOM lib.
13
+
14
+ ## Example
15
+
16
+ ```typescript
17
+ // SSR / test — injected mock
18
+ const mockLoc: LocationLike = { pathname: "/dashboard", search: "?tab=posts" };
19
+ connectRouter({ actor, routeMap, location: mockLoc });
20
+ ```
21
+
22
+ ## Properties
23
+
24
+ | Property | Modifier | Type | Defined in |
25
+ | ----------------------------------------- | ---------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------- |
26
+ | <a id="property-pathname"></a> `pathname` | `readonly` | `string` | [play-router/src/types.ts:345](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/types.ts#L345) |
27
+ | <a id="property-search"></a> `search` | `readonly` | `string` | [play-router/src/types.ts:346](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/types.ts#L346) |
@@ -0,0 +1,119 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-sveltekit-router](../README.md) / PlayRouteEvent
2
+
3
+ # Interface: PlayRouteEvent
4
+
5
+ Defined in: [play-router/src/types.ts:223](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/types.ts#L223)
6
+
7
+ Enhanced routing event with parameter and query support
8
+
9
+ Unified routing event used throughout the Play architecture. Supports parameter-aware
10
+ navigation patterns (e.g., `/profile/:userId`) for dynamic route segments.
11
+
12
+ **Architectural Context:** Implements **Passive Infrastructure (INV-04)** by representing
13
+ user navigation intent that the Actor evaluates through guards. Infrastructure proposes
14
+ via `play.route` events, Actor decides via state machine transitions.
15
+
16
+ **Browser Navigation Flow:**
17
+
18
+ 1. Browser fires `popstate`
19
+ 2. Router adapter resolves URL to route target
20
+ 3. Adapter sends `PlayRouteEvent` to Actor
21
+ 4. Actor validates transition via state machine guards
22
+
23
+ ## Param
24
+
25
+ Event discriminator (always "play.route")
26
+
27
+ ## Param
28
+
29
+ Target state ID with # prefix (e.g., '#home', '#profile')
30
+
31
+ ## Param
32
+
33
+ Path-only route parameters extracted from the URL path (e.g., `{ userId: '123' }` from `/profile/123`). Query parameters are kept separate in `query`.
34
+
35
+ ## Param
36
+
37
+ Query parameters only (isolated from path params)
38
+
39
+ ## Param
40
+
41
+ Full URLPattern match result for debugging/observability (optional)
42
+
43
+ ## Examples
44
+
45
+ Combining base and routing events
46
+
47
+ ```typescript
48
+ import type { PlayEvent } from "@xmachines/play";
49
+ import type { PlayRouteEvent } from "@xmachines/play-router";
50
+
51
+ type AppEvent = PlayEvent | PlayRouteEvent;
52
+ ```
53
+
54
+ Basic navigation to a route
55
+
56
+ ```typescript
57
+ import type { PlayRouteEvent } from "@xmachines/play-router";
58
+
59
+ const event: PlayRouteEvent = {
60
+ type: "play.route",
61
+ to: "#home",
62
+ };
63
+ actor.send(event);
64
+ ```
65
+
66
+ Navigation with route parameters
67
+
68
+ ```typescript
69
+ import type { PlayRouteEvent } from "@xmachines/play-router";
70
+
71
+ const event: PlayRouteEvent = {
72
+ type: "play.route",
73
+ to: "#profile",
74
+ params: { userId: "123" },
75
+ };
76
+ actor.send(event);
77
+ // Resolves to route: /profile/123
78
+ ```
79
+
80
+ Navigation with query parameters
81
+
82
+ ```typescript
83
+ import type { PlayRouteEvent } from "@xmachines/play-router";
84
+
85
+ const event: PlayRouteEvent = {
86
+ type: "play.route",
87
+ to: "#settings",
88
+ params: { section: "profile" }, // Path-only route parameter
89
+ query: { tab: "security" }, // Query-only
90
+ };
91
+ actor.send(event);
92
+ // Resolves to route: /settings/profile?tab=security
93
+ ```
94
+
95
+ ## See
96
+
97
+ [Play RFC](../../../../rfc/play.md)
98
+
99
+ ## Remarks
100
+
101
+ Use `play.route` when you need parameter-aware navigation with the `route: {}`
102
+ config pattern on your state machine nodes. The `match` field exposes the full
103
+ URLPatternResult for advanced use cases (debugging, pattern analysis).
104
+
105
+ ## Indexable
106
+
107
+ ```ts
108
+ [key: string]: unknown
109
+ ```
110
+
111
+ ## Properties
112
+
113
+ | Property | Modifier | Type | Defined in |
114
+ | -------------------------------------- | ---------- | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
115
+ | <a id="property-match"></a> `match?` | `readonly` | `unknown` | [play-router/src/types.ts:228](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/types.ts#L228) |
116
+ | <a id="property-params"></a> `params?` | `readonly` | `Record`\<`string`, `string`\> | [play-router/src/types.ts:226](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/types.ts#L226) |
117
+ | <a id="property-query"></a> `query?` | `readonly` | `Record`\<`string`, `string`\> | [play-router/src/types.ts:227](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/types.ts#L227) |
118
+ | <a id="property-to"></a> `to` | `readonly` | `string` | [play-router/src/types.ts:225](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/types.ts#L225) |
119
+ | <a id="property-type"></a> `type` | `readonly` | `"play.route"` | [play-router/src/types.ts:224](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/types.ts#L224) |
@@ -0,0 +1,27 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-sveltekit-router](../README.md) / RouteMapping
2
+
3
+ # Interface: RouteMapping
4
+
5
+ Defined in: [play-router/src/base-route-map.ts:57](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/base-route-map.ts#L57)
6
+
7
+ A single state ID ↔ path mapping entry.
8
+
9
+ Both fields are `readonly` — mappings are immutable once passed to `BaseRouteMap`.
10
+ Adapter packages re-export a structurally compatible `RouteMapping` type under
11
+ their own name. This type is published from `@xmachines/play-router` as
12
+ `BaseRouteMapping` to avoid name collisions with those adapter-local types.
13
+
14
+ ## Example
15
+
16
+ ```typescript
17
+ const mapping: BaseRouteMapping = { stateId: "home", path: "/" };
18
+ const paramMapping: BaseRouteMapping = { stateId: "profile", path: "/profile/:userId" };
19
+ const optionalMapping: BaseRouteMapping = { stateId: "settings", path: "/settings/:section?" };
20
+ ```
21
+
22
+ ## Properties
23
+
24
+ | Property | Modifier | Type | Description | Defined in |
25
+ | --------------------------------------- | ---------- | -------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
26
+ | <a id="property-path"></a> `path` | `readonly` | `string` | URL path pattern (e.g., `"/"`, `"/profile/:userId"`, `"/settings/:section?"`) | [play-router/src/base-route-map.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/base-route-map.ts#L61) |
27
+ | <a id="property-stateid"></a> `stateId` | `readonly` | `string` | State machine state ID (e.g., `"home"`, `"#profile"`) | [play-router/src/base-route-map.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.26/packages/play-router/src/base-route-map.ts#L59) |