@xmachines/docs 1.0.0-beta.25 → 1.0.0-beta.27

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 (268) 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/README.md +24 -8
  11. package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
  12. package/api/@xmachines/play-dom/functions/connectRenderer.md +1 -1
  13. package/api/@xmachines/play-dom/functions/defineRegistry.md +61 -0
  14. package/api/@xmachines/play-dom/functions/renderSpec.md +29 -12
  15. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +62 -0
  16. package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +9 -9
  17. package/api/@xmachines/play-dom/interfaces/DefineRegistryOptions.md +25 -0
  18. package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +18 -0
  19. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +13 -10
  20. package/api/@xmachines/play-dom/interfaces/EventHandle.md +29 -0
  21. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +5 -5
  22. package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +53 -0
  23. package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +21 -0
  24. package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +16 -3
  25. package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +5 -2
  26. package/api/@xmachines/play-dom-router/README.md +10 -0
  27. package/api/@xmachines/play-dom-router/functions/connectRouter.md +18 -46
  28. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  29. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +38 -0
  30. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  31. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +16 -16
  32. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +16 -16
  33. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +6 -6
  34. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +119 -0
  35. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +114 -0
  36. package/api/@xmachines/play-dom-router/interfaces/RouteMapLike.md +50 -0
  37. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +27 -0
  38. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +104 -0
  39. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +6 -6
  40. package/api/@xmachines/play-dom-router/type-aliases/RoutableActor.md +9 -0
  41. package/api/@xmachines/play-dom-router-demo/README.md +46 -51
  42. package/api/@xmachines/play-react/README.md +4 -4
  43. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +31 -5
  44. package/api/@xmachines/play-react/functions/defineRegistry.md +2 -0
  45. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  46. package/api/@xmachines/play-react/functions/useBoundProp.md +2 -0
  47. package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
  48. package/api/@xmachines/play-react/functions/useStateBinding.md +2 -0
  49. package/api/@xmachines/play-react/interfaces/ComponentContext.md +2 -0
  50. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +4 -4
  51. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +3 -3
  52. package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +7 -7
  53. package/api/@xmachines/play-react/type-aliases/ComponentFn.md +2 -0
  54. package/api/@xmachines/play-react/type-aliases/PlayActor.md +1 -1
  55. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  56. package/api/@xmachines/play-react-router/README.md +5 -1
  57. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +102 -25
  58. package/api/@xmachines/play-react-router/classes/RouteMap.md +17 -33
  59. package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +8 -1
  60. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +21 -11
  61. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +8 -8
  62. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +7 -7
  63. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +18 -8
  64. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  65. package/api/@xmachines/play-router/README.md +42 -5
  66. package/api/@xmachines/play-router/classes/BaseRouteMap.md +12 -19
  67. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +100 -25
  68. package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +1 -1
  69. package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
  70. package/api/@xmachines/play-router/functions/createRouteMap.md +1 -1
  71. package/api/@xmachines/play-router/functions/createRouteMapFromMachine.md +38 -0
  72. package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +45 -0
  73. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
  74. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
  75. package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
  76. package/api/@xmachines/play-router/functions/extractRouteParams.md +46 -0
  77. package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
  78. package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
  79. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
  80. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
  81. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
  82. package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
  83. package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
  84. package/api/@xmachines/play-router/functions/routeExists.md +1 -1
  85. package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
  86. package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
  87. package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
  88. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
  89. package/api/@xmachines/play-router/interfaces/LocationLike.md +27 -0
  90. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
  91. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
  92. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +8 -8
  93. package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
  94. package/api/@xmachines/play-router/interfaces/RouteMap.md +4 -4
  95. package/api/@xmachines/play-router/interfaces/{BaseRouteMapping.md → RouteMapping.md} +5 -5
  96. package/api/@xmachines/play-router/interfaces/RouteMatch.md +5 -5
  97. package/api/@xmachines/play-router/interfaces/RouteNode.md +12 -12
  98. package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
  99. package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
  100. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
  101. package/api/@xmachines/play-router/interfaces/RouterBridge.md +3 -3
  102. package/api/@xmachines/play-router/interfaces/WindowLike.md +65 -0
  103. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
  104. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
  105. package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
  106. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
  107. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
  108. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
  109. package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
  110. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
  111. package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +6 -0
  112. package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +8 -0
  113. package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +2 -0
  114. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +10 -0
  115. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +2 -0
  116. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +2 -0
  117. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +2 -0
  118. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +2 -0
  119. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +2 -0
  120. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +2 -0
  121. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +2 -0
  122. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +2 -0
  123. package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +2 -0
  124. package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +2 -0
  125. package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +2 -0
  126. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
  127. package/api/@xmachines/play-solid/README.md +4 -4
  128. package/api/@xmachines/play-solid/functions/defineRegistry.md +2 -0
  129. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  130. package/api/@xmachines/play-solid/functions/useStateBinding.md +2 -0
  131. package/api/@xmachines/play-solid/interfaces/ComponentContext.md +2 -0
  132. package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +7 -7
  133. package/api/@xmachines/play-solid/type-aliases/ComponentFn.md +2 -0
  134. package/api/@xmachines/play-solid/type-aliases/PlayActor.md +1 -1
  135. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  136. package/api/@xmachines/play-solid-router/README.md +2 -2
  137. package/api/@xmachines/play-solid-router/classes/RouteMap.md +13 -26
  138. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +121 -46
  139. package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +1 -1
  140. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +15 -9
  141. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +47 -92
  142. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +8 -8
  143. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  144. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +19 -6
  145. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  146. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
  147. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +21 -18
  148. package/api/@xmachines/play-solid-router-demo/README.md +25 -28
  149. package/api/@xmachines/play-svelte/README.md +28 -0
  150. package/api/@xmachines/play-svelte/functions/defineRegistry.md +2 -0
  151. package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +2 -0
  152. package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +2 -0
  153. package/api/@xmachines/play-svelte/interfaces/PlayRendererProps.md +9 -9
  154. package/api/@xmachines/play-svelte/type-aliases/ComponentFn.md +2 -0
  155. package/api/@xmachines/play-svelte/type-aliases/PlayRenderer.md +2 -0
  156. package/api/@xmachines/play-svelte/variables/PlayRenderer.md +2 -0
  157. package/api/@xmachines/play-svelte-spa-router/README.md +1 -0
  158. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +13 -26
  159. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +14 -1
  160. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +23 -4
  161. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +6 -5
  162. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +10 -10
  163. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +20 -5
  164. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  165. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +65 -0
  166. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
  167. package/api/@xmachines/play-svelte-spa-router-demo/README.md +119 -12
  168. package/api/@xmachines/play-sveltekit-router/README.md +2 -1
  169. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +46 -24
  170. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +14 -1
  171. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +23 -4
  172. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +6 -5
  173. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +27 -0
  174. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +10 -10
  175. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +20 -5
  176. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  177. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
  178. package/api/@xmachines/play-sveltekit-router-demo/README.md +120 -12
  179. package/api/@xmachines/play-tanstack-react-router/README.md +5 -3
  180. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +17 -33
  181. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +93 -25
  182. package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +1 -1
  183. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +1 -1
  184. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +21 -11
  185. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
  186. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +8 -8
  187. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  188. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +18 -8
  189. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
  190. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  191. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  192. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +13 -19
  193. package/api/@xmachines/play-tanstack-react-router-demo/README.md +23 -29
  194. package/api/@xmachines/play-tanstack-solid-router/README.md +8 -8
  195. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +13 -26
  196. package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +101 -36
  197. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +1 -1
  198. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +15 -9
  199. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +8 -8
  200. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  201. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +13 -9
  202. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  203. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
  204. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  205. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +23 -24
  206. package/api/@xmachines/play-tanstack-solid-router-demo/README.md +25 -26
  207. package/api/@xmachines/play-vue/README.md +4 -4
  208. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  209. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  210. package/api/@xmachines/play-vue/functions/useStateBinding.md +2 -0
  211. package/api/@xmachines/play-vue/interfaces/ComponentContext.md +2 -0
  212. package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +5 -5
  213. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  214. package/api/@xmachines/play-vue/type-aliases/ComponentFn.md +2 -0
  215. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  216. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +4 -3
  217. package/api/@xmachines/play-vue/type-aliases/PlayActor.md +1 -1
  218. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  219. package/api/@xmachines/play-vue-router/README.md +2 -2
  220. package/api/@xmachines/play-vue-router/classes/RouteMap.md +18 -108
  221. package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +44 -104
  222. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +127 -62
  223. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
  224. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +8 -8
  225. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +19 -7
  226. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
  227. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
  228. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
  229. package/api/@xmachines/play-vue-router-demo/README.md +47 -40
  230. package/api/@xmachines/play-xstate/README.md +15 -15
  231. package/api/@xmachines/play-xstate/classes/PlayerActor.md +46 -30
  232. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +20 -15
  233. package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
  234. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
  235. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
  236. package/api/@xmachines/play-xstate/functions/definePlayer.md +1 -1
  237. package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
  238. package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
  239. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +2 -2
  240. package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
  241. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
  242. package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
  243. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
  244. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
  245. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
  246. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +14 -12
  247. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
  248. package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
  249. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
  250. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
  251. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
  252. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
  253. package/api/@xmachines/shared/functions/defineXmVitestConfig.md +3 -7
  254. package/api/@xmachines/shared/functions/xmAliases.md +1 -1
  255. package/api/README.md +4 -4
  256. package/api/llms.txt +3 -3
  257. package/examples/README.md +50 -32
  258. package/examples/basic-state-machine.md +75 -31
  259. package/examples/form-validation.md +199 -127
  260. package/examples/multi-router-integration.md +312 -230
  261. package/examples/routing-patterns.md +243 -187
  262. package/examples/traffic-light.md +114 -65
  263. package/guides/README.md +29 -15
  264. package/guides/getting-started.md +224 -144
  265. package/guides/installation.md +153 -213
  266. package/package.json +2 -2
  267. package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +0 -38
  268. package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +0 -33
@@ -2,35 +2,45 @@
2
2
 
3
3
  # Class: VueBaseRouteMap
4
4
 
5
- Defined in: [play-vue-router/src/vue-base-route-map.ts:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-vue-router/src/vue-base-route-map.ts#L28)
5
+ Defined in: [play-router/src/base-route-map.ts:100](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/base-route-map.ts#L100)
6
6
 
7
- VueBaseRouteMap intermediate base class for Vue Router adapters.
7
+ Shared bidirectional route map base class.
8
8
 
9
- Extends `BaseRouteMap` (bucket-indexed O(k) pattern matching + QuickLRU 500-entry
10
- cache) and adds the Vue-specific adapter layer: `routeName` ↔ `stateId` bidirectional
11
- lookup and optional URL pattern access.
9
+ All framework adapter `RouteMap` classes extend this they add no logic of their
10
+ own and inherit the full public API from here.
12
11
 
13
- **Why a separate base class?** Vue Router uses named routes (`routeName`) rather than
14
- URL paths for navigation. `BaseRouteMap` operates on path strings; `VueBaseRouteMap`
15
- bridges the two by translating `RouteMapping` entries at construction time — only
16
- mappings with a `pattern` field participate in URL path resolution via `BaseRouteMap`.
12
+ **Lookup strategy:**
17
13
 
18
- Exported from `@xmachines/play-vue-router` for consumers who need to extend or test
19
- the Vue routing layer directly. Most consumers use `RouteMap` instead.
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
20
24
 
21
25
  ## Example
22
26
 
23
27
  ```typescript
24
- import { VueBaseRouteMap } from "@xmachines/play-vue-router";
28
+ import { BaseRouteMap } from "@xmachines/play-router";
25
29
 
26
- class MyVueRouteMap extends VueBaseRouteMap {
27
- // add custom resolution logic
28
- }
29
- ```
30
+ const map = new BaseRouteMap([
31
+ { stateId: "home", path: "/" },
32
+ { stateId: "profile", path: "/profile/:userId" },
33
+ { stateId: "settings", path: "/settings/:section?" },
34
+ ]);
30
35
 
31
- ## Extends
36
+ map.getStateIdByPath("/"); // "home"
37
+ map.getStateIdByPath("/profile/123"); // "profile"
38
+ map.getStateIdByPath("/settings"); // "settings"
39
+ map.getStateIdByPath("/unknown"); // null
32
40
 
33
- - [`BaseRouteMap`](../../play-router/classes/BaseRouteMap.md)
41
+ map.getPathByStateId("profile"); // "/profile/:userId"
42
+ map.getPathByStateId("missing"); // null
43
+ ```
34
44
 
35
45
  ## Extended by
36
46
 
@@ -41,24 +51,28 @@ class MyVueRouteMap extends VueBaseRouteMap {
41
51
  ### Constructor
42
52
 
43
53
  ```ts
44
- new VueBaseRouteMap(mappings): VueBaseRouteMap;
54
+ new VueBaseRouteMap(mappings, options?): BaseRouteMap;
45
55
  ```
46
56
 
47
- Defined in: [play-vue-router/src/vue-base-route-map.ts:32](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-vue-router/src/vue-base-route-map.ts#L32)
57
+ Defined in: [play-router/src/base-route-map.ts:125](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/base-route-map.ts#L125)
48
58
 
49
- #### Parameters
59
+ Build a route map from an array of state ID ↔ path mappings.
50
60
 
51
- | Parameter | Type |
52
- | ---------- | ------------------------------------------------- |
53
- | `mappings` | [`RouteMapping`](../interfaces/RouteMapping.md)[] |
61
+ Static paths (no `:param`) are indexed in an O(1) `Map`.
62
+ Parameterized paths are compiled to `URLPattern` and grouped into first-segment
63
+ buckets for efficient candidate selection.
54
64
 
55
- #### Returns
65
+ #### Parameters
56
66
 
57
- `VueBaseRouteMap`
67
+ | Parameter | Type | Description |
68
+ | -------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
69
+ | `mappings` | [`RouteMapping`](../interfaces/RouteMapping.md)[] | Array of `{ stateId, path }` entries. Order determines priority when multiple patterns could match the same path. |
70
+ | `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). |
71
+ | `options.cacheSize?` | `number` | - |
58
72
 
59
- #### Overrides
73
+ #### Returns
60
74
 
61
- [`BaseRouteMap`](../../play-router/classes/BaseRouteMap.md).[`constructor`](../../play-router/classes/BaseRouteMap.md#constructor)
75
+ `BaseRouteMap`
62
76
 
63
77
  ## Methods
64
78
 
@@ -68,7 +82,7 @@ Defined in: [play-vue-router/src/vue-base-route-map.ts:32](https://gitlab.com/xm
68
82
  getPathByStateId(stateId): string | null;
69
83
  ```
70
84
 
71
- Defined in: [play-router/src/base-route-map.ts:202](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/base-route-map.ts#L202)
85
+ Defined in: [play-router/src/base-route-map.ts:209](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/base-route-map.ts#L209)
72
86
 
73
87
  Look up the path pattern registered for a state ID.
74
88
 
@@ -91,76 +105,6 @@ map.getPathByStateId("profile"); // "/profile/:userId"
91
105
  map.getPathByStateId("missing"); // null
92
106
  ```
93
107
 
94
- #### Inherited from
95
-
96
- [`BaseRouteMap`](../../play-router/classes/BaseRouteMap.md).[`getPathByStateId`](../../play-router/classes/BaseRouteMap.md#getpathbystateid)
97
-
98
- ---
99
-
100
- ### getPattern()
101
-
102
- ```ts
103
- getPattern(stateId): string | undefined;
104
- ```
105
-
106
- Defined in: [play-vue-router/src/vue-base-route-map.ts:58](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-vue-router/src/vue-base-route-map.ts#L58)
107
-
108
- Get the URL path pattern for a given state ID (e.g. `"/profile/:userId"`).
109
-
110
- #### Parameters
111
-
112
- | Parameter | Type |
113
- | --------- | -------- |
114
- | `stateId` | `string` |
115
-
116
- #### Returns
117
-
118
- `string` \| `undefined`
119
-
120
- ---
121
-
122
- ### getRouteName()
123
-
124
- ```ts
125
- getRouteName(stateId): string | undefined;
126
- ```
127
-
128
- Defined in: [play-vue-router/src/vue-base-route-map.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-vue-router/src/vue-base-route-map.ts#L48)
129
-
130
- Get the Vue Router route name for a given state ID.
131
-
132
- #### Parameters
133
-
134
- | Parameter | Type |
135
- | --------- | -------- |
136
- | `stateId` | `string` |
137
-
138
- #### Returns
139
-
140
- `string` \| `undefined`
141
-
142
- ---
143
-
144
- ### getStateId()
145
-
146
- ```ts
147
- getStateId(routeName): string | undefined;
148
- ```
149
-
150
- Defined in: [play-vue-router/src/vue-base-route-map.ts:53](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-vue-router/src/vue-base-route-map.ts#L53)
151
-
152
- Get the state ID for a given Vue Router route name.
153
-
154
- #### Parameters
155
-
156
- | Parameter | Type |
157
- | ----------- | -------- |
158
- | `routeName` | `string` |
159
-
160
- #### Returns
161
-
162
- `string` \| `undefined`
163
-
164
108
  ---
165
109
 
166
110
  ### getStateIdByPath()
@@ -169,7 +113,7 @@ Get the state ID for a given Vue Router route name.
169
113
  getStateIdByPath(path): string | null;
170
114
  ```
171
115
 
172
- Defined in: [play-router/src/base-route-map.ts:167](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/base-route-map.ts#L167)
116
+ Defined in: [play-router/src/base-route-map.ts:174](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/base-route-map.ts#L174)
173
117
 
174
118
  Resolve a URL path to its mapped state ID.
175
119
 
@@ -195,7 +139,3 @@ The mapped state ID, or `null` if no route matches
195
139
  map.getStateIdByPath("/profile/123"); // "profile"
196
140
  map.getStateIdByPath("/unknown"); // null
197
141
  ```
198
-
199
- #### Inherited from
200
-
201
- [`BaseRouteMap`](../../play-router/classes/BaseRouteMap.md).[`getStateIdByPath`](../../play-router/classes/BaseRouteMap.md#getstateidbypath)
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Class: VueRouterBridge
4
4
 
5
- Defined in: [play-vue-router/src/vue-router-bridge.ts:47](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-vue-router/src/vue-router-bridge.ts#L47)
5
+ Defined in: [play-vue-router/src/vue-router-bridge.ts:16](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-vue-router/src/vue-router-bridge.ts#L16)
6
6
 
7
7
  @xmachines/play-vue-router - Vue Router 4.x adapter for XMachines Play
8
8
 
@@ -20,33 +20,23 @@ Provides bidirectional integration between Vue Router and XMachines state machin
20
20
  new VueRouterBridge(
21
21
  vueRouter,
22
22
  actor,
23
- vueRouteMap): VueRouterBridge;
23
+ routeMap): VueRouterBridge;
24
24
  ```
25
25
 
26
- Defined in: [play-vue-router/src/vue-router-bridge.ts:137](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-vue-router/src/vue-router-bridge.ts#L137)
27
-
28
- Create a Vue Router bridge
26
+ Defined in: [play-vue-router/src/vue-router-bridge.ts:21](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-vue-router/src/vue-router-bridge.ts#L21)
29
27
 
30
28
  #### Parameters
31
29
 
32
- | Parameter | Type | Description |
33
- | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- |
34
- | `vueRouter` | `Router` | Vue Router instance |
35
- | `actor` | [`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) | XMachines actor instance |
36
- | `vueRouteMap` | [`RouteMap`](RouteMap.md) | Bidirectional state ID ↔ route name mapping |
30
+ | Parameter | Type |
31
+ | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
32
+ | `vueRouter` | `Router` |
33
+ | `actor` | [`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) |
34
+ | `routeMap` | [`RouteMap`](RouteMap.md) |
37
35
 
38
36
  #### Returns
39
37
 
40
38
  `VueRouterBridge`
41
39
 
42
- #### Example
43
-
44
- ```typescript
45
- const bridge = new VueRouterBridge(router, actor, routeMap);
46
- bridge.connect(); // Explicit connect — NOT automatic
47
- onUnmounted(() => bridge.disconnect());
48
- ```
49
-
50
40
  #### Overrides
51
41
 
52
42
  [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`constructor`](../../play-router/classes/RouterBridgeBase.md#constructor)
@@ -55,15 +45,15 @@ onUnmounted(() => bridge.disconnect());
55
45
 
56
46
  | Property | Modifier | Type | Default value | Description | Inherited from | Defined in |
57
47
  | --------------------------------------------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
58
- | <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) | `undefined` | A `Routable` actor exposing `currentRoute` and `send`. | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`actor`](../../play-router/classes/RouterBridgeBase.md#property-actor) | [play-router/src/router-bridge-base.ts:102](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/router-bridge-base.ts#L102) |
59
- | <a id="property-hasconnectedonce"></a> `hasConnectedOnce` | `protected` | `boolean` | `false` | - | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`hasConnectedOnce`](../../play-router/classes/RouterBridgeBase.md#property-hasconnectedonce) | [play-router/src/router-bridge-base.ts:90](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/router-bridge-base.ts#L90) |
60
- | <a id="property-isconnected"></a> `isConnected` | `protected` | `boolean` | `false` | - | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`isConnected`](../../play-router/classes/RouterBridgeBase.md#property-isconnected) | [play-router/src/router-bridge-base.ts:89](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/router-bridge-base.ts#L89) |
61
- | <a id="property-isprocessingnavigation"></a> `isProcessingNavigation` | `protected` | `boolean` | `false` | - | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`isProcessingNavigation`](../../play-router/classes/RouterBridgeBase.md#property-isprocessingnavigation) | [play-router/src/router-bridge-base.ts:92](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/router-bridge-base.ts#L92) |
62
- | <a id="property-lastsyncedpath"></a> `lastSyncedPath` | `protected` | `string` \| `null` | `null` | - | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`lastSyncedPath`](../../play-router/classes/RouterBridgeBase.md#property-lastsyncedpath) | [play-router/src/router-bridge-base.ts:91](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/router-bridge-base.ts#L91) |
63
- | <a id="property-routemap"></a> `routeMap` | `readonly` | `object` | `undefined` | Bidirectional route map for `stateId ↔ path` resolution. Provide `getStateIdByPath` and `getPathByStateId`. Framework adapters typically wrap the result of `createRouteMap()` or an equivalent. | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`routeMap`](../../play-router/classes/RouterBridgeBase.md#property-routemap) | [play-router/src/router-bridge-base.ts:103](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/router-bridge-base.ts#L103) |
64
- | `routeMap.getPathByStateId` | `public` | `string` \| `null` \| `undefined` | `undefined` | - | - | [play-router/src/router-bridge-base.ts:105](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/router-bridge-base.ts#L105) |
65
- | `routeMap.getStateIdByPath` | `public` | `string` \| `null` \| `undefined` | `undefined` | - | - | [play-router/src/router-bridge-base.ts:104](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/router-bridge-base.ts#L104) |
66
- | <a id="property-routewatcher"></a> `routeWatcher` | `protected` | \| [`RouteWatcherHandle`](../../play-router/interfaces/RouteWatcherHandle.md) \| `null` | `null` | - | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`routeWatcher`](../../play-router/classes/RouterBridgeBase.md#property-routewatcher) | [play-router/src/router-bridge-base.ts:93](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/router-bridge-base.ts#L93) |
48
+ | <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) | `undefined` | A `Routable` actor exposing `currentRoute` and `send`. | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`actor`](../../play-router/classes/RouterBridgeBase.md#property-actor) | [play-router/src/router-bridge-base.ts:99](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L99) |
49
+ | <a id="property-hasconnectedonce"></a> `hasConnectedOnce` | `protected` | `boolean` | `false` | - | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`hasConnectedOnce`](../../play-router/classes/RouterBridgeBase.md#property-hasconnectedonce) | [play-router/src/router-bridge-base.ts:87](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L87) |
50
+ | <a id="property-isconnected"></a> `isConnected` | `protected` | `boolean` | `false` | - | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`isConnected`](../../play-router/classes/RouterBridgeBase.md#property-isconnected) | [play-router/src/router-bridge-base.ts:86](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L86) |
51
+ | <a id="property-isprocessingnavigation"></a> `isProcessingNavigation` | `protected` | `boolean` | `false` | - | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`isProcessingNavigation`](../../play-router/classes/RouterBridgeBase.md#property-isprocessingnavigation) | [play-router/src/router-bridge-base.ts:89](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L89) |
52
+ | <a id="property-lastsyncedpath"></a> `lastSyncedPath` | `protected` | `string` \| `null` | `null` | - | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`lastSyncedPath`](../../play-router/classes/RouterBridgeBase.md#property-lastsyncedpath) | [play-router/src/router-bridge-base.ts:88](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L88) |
53
+ | <a id="property-routemap"></a> `routeMap` | `readonly` | `object` | `undefined` | Bidirectional route map for `stateId ↔ path` resolution. Provide `getStateIdByPath` and `getPathByStateId`. Framework adapters typically wrap the result of `createRouteMap()` or an equivalent. | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`routeMap`](../../play-router/classes/RouterBridgeBase.md#property-routemap) | [play-router/src/router-bridge-base.ts:100](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L100) |
54
+ | `routeMap.getPathByStateId` | `public` | `string` \| `null` \| `undefined` | `undefined` | - | - | [play-router/src/router-bridge-base.ts:102](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L102) |
55
+ | `routeMap.getStateIdByPath` | `public` | `string` \| `null` \| `undefined` | `undefined` | - | - | [play-router/src/router-bridge-base.ts:101](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L101) |
56
+ | <a id="property-routewatcher"></a> `routeWatcher` | `protected` | \| [`RouteWatcherHandle`](../../play-router/interfaces/RouteWatcherHandle.md) \| `null` | `null` | - | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`routeWatcher`](../../play-router/classes/RouterBridgeBase.md#property-routewatcher) | [play-router/src/router-bridge-base.ts:90](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L90) |
67
57
 
68
58
  ## Methods
69
59
 
@@ -73,7 +63,7 @@ onUnmounted(() => bridge.disconnect());
73
63
  connect(): void;
74
64
  ```
75
65
 
76
- Defined in: [play-router/src/router-bridge-base.ts:129](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/router-bridge-base.ts#L129)
66
+ Defined in: [play-router/src/router-bridge-base.ts:126](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L126)
77
67
 
78
68
  Connect the router bridge to the Actor.
79
69
 
@@ -105,7 +95,7 @@ Adapters that need custom initial-sync behavior should override
105
95
  disconnect(): void;
106
96
  ```
107
97
 
108
- Defined in: [play-router/src/router-bridge-base.ts:197](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/router-bridge-base.ts#L197)
98
+ Defined in: [play-router/src/router-bridge-base.ts:209](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L209)
109
99
 
110
100
  Disconnect the router bridge from the Actor.
111
101
 
@@ -127,20 +117,14 @@ Stops signal watching and unregisters framework-specific router listener.
127
117
  dispose(): void;
128
118
  ```
129
119
 
130
- Defined in: [play-vue-router/src/vue-router-bridge.ts:280](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-vue-router/src/vue-router-bridge.ts#L280)
120
+ Defined in: [play-vue-router/src/vue-router-bridge.ts:135](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-vue-router/src/vue-router-bridge.ts#L135)
131
121
 
132
- Cleanup alias for component lifecycle integration.
122
+ Cleanup alias for Vue component lifecycle (`onUnmounted(() => bridge.dispose())`).
133
123
 
134
124
  #### Returns
135
125
 
136
126
  `void`
137
127
 
138
- #### Example
139
-
140
- ```typescript
141
- onUnmounted(() => bridge.dispose());
142
- ```
143
-
144
128
  ---
145
129
 
146
130
  ### extractParams()
@@ -149,14 +133,14 @@ onUnmounted(() => bridge.dispose());
149
133
  protected extractParams(pathname, stateId): Record<string, string>;
150
134
  ```
151
135
 
152
- Defined in: [play-router/src/router-bridge-base.ts:300](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/router-bridge-base.ts#L300)
136
+ Defined in: [play-router/src/router-bridge-base.ts:318](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L318)
153
137
 
154
138
  Extract path parameters from URL using the URLPattern API.
155
139
 
156
140
  Accesses `globalThis.URLPattern` at runtime — no polyfill is imported by this
157
- library. If `URLPattern` is unavailable (Node.js < 24, older browsers without a
158
- polyfill), this method returns `{}` silently (graceful degradation routing still
159
- works, params will be empty).
141
+ library. If `URLPattern` is unavailable and the matched route has parameterized
142
+ segments, a `URLPatternUnavailableError` is throwncallers must provide a polyfill
143
+ for environments without native URLPattern support (Node.js < 24, older browsers).
160
144
 
161
145
  #### Parameters
162
146
 
@@ -169,7 +153,11 @@ works, params will be empty).
169
153
 
170
154
  `Record`\<`string`, `string`\>
171
155
 
172
- Extracted path parameters, or empty object if URLPattern is unavailable or no match
156
+ Extracted path parameters, or empty object if no match
157
+
158
+ #### Throws
159
+
160
+ When URLPattern is absent and the route is parameterized
173
161
 
174
162
  #### Inherited from
175
163
 
@@ -183,7 +171,7 @@ Extracted path parameters, or empty object if URLPattern is unavailable or no ma
183
171
  protected extractQuery(search): Record<string, string>;
184
172
  ```
185
173
 
186
- Defined in: [play-router/src/router-bridge-base.ts:321](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/router-bridge-base.ts#L321)
174
+ Defined in: [play-router/src/router-bridge-base.ts:355](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L355)
187
175
 
188
176
  Extract query parameters from URL search string.
189
177
 
@@ -211,14 +199,25 @@ Extracted query parameters or empty object
211
199
  protected getInitialRouterPath(): string | null;
212
200
  ```
213
201
 
214
- Defined in: [play-vue-router/src/vue-router-bridge.ts:268](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-vue-router/src/vue-router-bridge.ts#L268)
202
+ Defined in: [play-vue-router/src/vue-router-bridge.ts:115](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-vue-router/src/vue-router-bridge.ts#L115)
203
+
204
+ Return the router's current pathname at connect() time.
215
205
 
216
- Return the current Vue Router URL for initial sync.
206
+ Called once during connect() to perform the initial URL → actor sync.
207
+ router.subscribe() only fires on _future_ navigation events; it does not
208
+ replay the already-loaded location. Subclasses that can read the router's
209
+ current location synchronously (e.g. `router.state.location.pathname`)
210
+ should override this method so that deep-link / direct-URL loads drive the
211
+ actor to the correct state instead of leaving it at its machine default.
217
212
 
218
- The base class `connect()` uses this together with `actor.initialRoute` to
219
- distinguish a deep-link (non-initial URL → router wins, guards evaluate) from
220
- a restore (initial URL + actor at a different restored route actor wins,
221
- bridge pushes actor's route to the router).
213
+ Return semantics:
214
+
215
+ - `string` router has a current path; base connect() will sync actor from router
216
+ - `null` router is active but has no current path yet; base connect() will sync router from actor
217
+ - `undefined` → adapter handles initial sync itself and base connect() should stay out of the way
218
+
219
+ The default returns `undefined`, preserving the previous behaviour for
220
+ bridges that have not yet implemented this hook.
222
221
 
223
222
  #### Returns
224
223
 
@@ -230,19 +229,44 @@ bridge pushes actor's route to the router).
230
229
 
231
230
  ---
232
231
 
232
+ ### getInitialRouterSearch()
233
+
234
+ ```ts
235
+ protected getInitialRouterSearch(): string | undefined;
236
+ ```
237
+
238
+ Defined in: [play-vue-router/src/vue-router-bridge.ts:127](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-vue-router/src/vue-router-bridge.ts#L127)
239
+
240
+ Return the initial URL search string for query-param forwarding on `connect()`.
241
+
242
+ Vue Router does not expose a raw `search` string on the normalized route — only
243
+ `fullPath` (e.g. `"/profile/123?tab=posts"`). The search is extracted by slicing
244
+ from the first `"?"`. Returns `undefined` when no query string is present so
245
+ `syncActorFromRouter` produces `query: {}` rather than parsing an empty string.
246
+
247
+ #### Returns
248
+
249
+ `string` \| `undefined`
250
+
251
+ #### Overrides
252
+
253
+ [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`getInitialRouterSearch`](../../play-router/classes/RouterBridgeBase.md#getinitialroutersearch)
254
+
255
+ ---
256
+
233
257
  ### navigateRouter()
234
258
 
235
259
  ```ts
236
260
  protected navigateRouter(path): void;
237
261
  ```
238
262
 
239
- Defined in: [play-vue-router/src/vue-router-bridge.ts:155](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-vue-router/src/vue-router-bridge.ts#L155)
263
+ Defined in: [play-vue-router/src/vue-router-bridge.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-vue-router/src/vue-router-bridge.ts#L64)
240
264
 
241
- Navigate Vue Router to the given path/stateId.
265
+ Navigate Vue Router to the given path.
242
266
 
243
- For state IDs (starting with #), resolves to named route.
244
- For paths (starting with /), navigates directly.
245
- Navigation errors are thrown as [VueRouterNavigationError](#).
267
+ Receives a raw actor route value (stateId or concrete path).
268
+ `resolveNavigationPath` normalizes to a concrete path; parameterized patterns
269
+ are skipped. Navigation errors are thrown as [VueRouterNavigationError](#).
246
270
 
247
271
  #### Parameters
248
272
 
@@ -260,13 +284,52 @@ Navigation errors are thrown as [VueRouterNavigationError](#).
260
284
 
261
285
  ---
262
286
 
287
+ ### resolveNavigationPath()
288
+
289
+ ```ts
290
+ protected resolveNavigationPath(route): string | null;
291
+ ```
292
+
293
+ Defined in: [play-router/src/router-bridge-base.ts:340](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L340)
294
+
295
+ Resolve an actor route value to a concrete URL path for navigation.
296
+
297
+ Bridges that receive raw `actor.currentRoute` values in `navigateRouter`
298
+ can call this to normalize stateIds (with or without `#` prefix) to paths.
299
+ Returns `null` when navigation is not possible:
300
+
301
+ - unknown stateId with no route map entry
302
+ - parameterized pattern (e.g. `/profile/:id`) — no concrete values available
303
+ - non-path string that isn't a known stateId
304
+
305
+ Route maps may store stateIds with or without the `#` prefix; both forms
306
+ are tried automatically.
307
+
308
+ #### Parameters
309
+
310
+ | Parameter | Type | Description |
311
+ | --------- | -------- | -------------------------------------------------------------- |
312
+ | `route` | `string` | Raw actor route value (stateId, `#`-stateId, or concrete path) |
313
+
314
+ #### Returns
315
+
316
+ `string` \| `null`
317
+
318
+ Concrete URL path, or `null` if navigation should be skipped
319
+
320
+ #### Inherited from
321
+
322
+ [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`resolveNavigationPath`](../../play-router/classes/RouterBridgeBase.md#resolvenavigationpath)
323
+
324
+ ---
325
+
263
326
  ### syncActorFromRouter()
264
327
 
265
328
  ```ts
266
329
  protected syncActorFromRouter(pathname, search?): void;
267
330
  ```
268
331
 
269
- Defined in: [play-router/src/router-bridge-base.ts:248](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/router-bridge-base.ts#L248)
332
+ Defined in: [play-router/src/router-bridge-base.ts:260](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L260)
270
333
 
271
334
  Sync actor state when router location changes.
272
335
 
@@ -296,7 +359,7 @@ Prevents circular updates via isProcessingNavigation flag.
296
359
  protected syncRouterFromActor(route): void;
297
360
  ```
298
361
 
299
- Defined in: [play-router/src/router-bridge-base.ts:228](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/router-bridge-base.ts#L228)
362
+ Defined in: [play-router/src/router-bridge-base.ts:240](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/router-bridge-base.ts#L240)
300
363
 
301
364
  Sync router location when actor route signal changes.
302
365
 
@@ -329,9 +392,11 @@ suppressed as circular echoes.
329
392
  protected unwatchRouterChanges(): void;
330
393
  ```
331
394
 
332
- Defined in: [play-vue-router/src/vue-router-bridge.ts:255](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-vue-router/src/vue-router-bridge.ts#L255)
395
+ Defined in: [play-vue-router/src/vue-router-bridge.ts:110](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-vue-router/src/vue-router-bridge.ts#L110)
396
+
397
+ Stop watching for router location changes.
333
398
 
334
- Unsubscribe from Vue Router afterEach guard.
399
+ Called by disconnect(). Should clean up the framework-specific subscription.
335
400
 
336
401
  #### Returns
337
402
 
@@ -349,12 +414,12 @@ Unsubscribe from Vue Router afterEach guard.
349
414
  protected watchRouterChanges(): void;
350
415
  ```
351
416
 
352
- Defined in: [play-vue-router/src/vue-router-bridge.ts:186](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-vue-router/src/vue-router-bridge.ts#L186)
417
+ Defined in: [play-vue-router/src/vue-router-bridge.ts:78](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-vue-router/src/vue-router-bridge.ts#L78)
353
418
 
354
- Start watching for router location changes.
419
+ Subscribe to Vue Router changes using `afterEach`.
355
420
 
356
- Called by connect(). Should set up the framework-specific subscription
357
- for location changes and call syncActorFromRouter() on each change.
421
+ Uses Vue's native `to.params` / `to.query` for accurate extraction
422
+ instead of URLPattern-based re-parsing.
358
423
 
359
424
  #### Returns
360
425
 
@@ -6,7 +6,7 @@
6
6
  function createRouteMap(machine): RouteMap;
7
7
  ```
8
8
 
9
- Defined in: [play-vue-router/src/create-route-map.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-vue-router/src/create-route-map.ts#L9)
9
+ Defined in: [play-vue-router/src/create-route-map.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-vue-router/src/create-route-map.ts#L5)
10
10
 
11
11
  ## Parameters
12
12
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: PlayRouteEvent
4
4
 
5
- Defined in: [play-router/src/types.ts:216](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/types.ts#L216)
5
+ Defined in: [play-router/src/types.ts:223](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/types.ts#L223)
6
6
 
7
7
  Enhanced routing event with parameter and query support
8
8
 
@@ -30,7 +30,7 @@ Target state ID with # prefix (e.g., '#home', '#profile')
30
30
 
31
31
  ## Param
32
32
 
33
- Merged path + query parameters (path parameters win conflicts)
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
34
 
35
35
  ## Param
36
36
 
@@ -85,7 +85,7 @@ import type { PlayRouteEvent } from "@xmachines/play-router";
85
85
  const event: PlayRouteEvent = {
86
86
  type: "play.route",
87
87
  to: "#settings",
88
- params: { section: "profile" }, // Merged: path + query
88
+ params: { section: "profile" }, // Path-only route parameter
89
89
  query: { tab: "security" }, // Query-only
90
90
  };
91
91
  actor.send(event);
@@ -112,8 +112,8 @@ URLPatternResult for advanced use cases (debugging, pattern analysis).
112
112
 
113
113
  | Property | Modifier | Type | Defined in |
114
114
  | -------------------------------------- | ---------- | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
115
- | <a id="property-match"></a> `match?` | `readonly` | `unknown` | [play-router/src/types.ts:221](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/types.ts#L221) |
116
- | <a id="property-params"></a> `params?` | `readonly` | `Record`\<`string`, `string`\> | [play-router/src/types.ts:219](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/types.ts#L219) |
117
- | <a id="property-query"></a> `query?` | `readonly` | `Record`\<`string`, `string`\> | [play-router/src/types.ts:220](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/types.ts#L220) |
118
- | <a id="property-to"></a> `to` | `readonly` | `string` | [play-router/src/types.ts:218](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/types.ts#L218) |
119
- | <a id="property-type"></a> `type` | `readonly` | `"play.route"` | [play-router/src/types.ts:217](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.25/packages/play-router/src/types.ts#L217) |
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.27/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.27/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.27/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.27/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.27/packages/play-router/src/types.ts#L224) |